學(xué)習(xí)啦>學(xué)習(xí)電腦>電腦安全>系統(tǒng)安全>

C語言學(xué)生成績管理系統(tǒng)如何開發(fā)

時(shí)間: 林澤1002 分享

  有很多人C語言學(xué)生成績管理系統(tǒng)不會開發(fā),該怎么辦呢,下面是學(xué)習(xí)啦小編收集整理的C語言學(xué)生成績管理系統(tǒng)如何開發(fā),希望對大家有幫助~~

  C語言學(xué)生成績管理系統(tǒng)開發(fā)的方法

  1. 用戶對系統(tǒng)數(shù)據(jù)的輸入。

  2. 系統(tǒng)計(jì)算所對應(yīng)的每門課程的總分和平均分。

  3. 對于相對應(yīng)學(xué)生的數(shù)據(jù)處理。

  4. 排序功能

  a.總分高到低以及總分從低到高

  b.學(xué)號由大到小

  c.姓名字典順序

  5.查詢功能

  a.學(xué)號查詢

  b.姓名查詢

  6.分析數(shù)據(jù)

  7.輸出學(xué)生對應(yīng)的所有數(shù)據(jù)。

  8.數(shù)據(jù)存入文件的寫入與讀取

  

  【設(shè)計(jì)思路】

  通過switch case語句實(shí)現(xiàn)用戶菜單操作,在菜單中通過用戶的選擇調(diào)用相關(guān)的函數(shù)來完成用戶的一系列操作以及應(yīng)用。

 

  【模塊圖】

  程序總流程圖

  

  【算法步驟】

  菜單:

  for(i=0;i<66;i++)

  printf("*");

  printf("\n");

  printf("1.Input record\n");

  printf("2.Caculate totel and average score of every course\n");

  printf("3.Caculate totel and average score of every student\n");

  printf("4.Sort in descending order by total score of every student\n");

  printf("5.Sort in ascending order by total score of every student\n");

  printf("6.Sort in ascending order by number\n");

  printf("7.Sort in ascending order by name\n");

  printf("8.Search by number\n");

  printf("9.Search by name\n");

  printf("10.Statistic analysis for every course\n");

  printf("11.List record\n");

  printf("12.Write to a file\n");

  printf("13.Read from a file\n");

  printf("0.Exit\n");

  for(i=0;i<66;i++)

  printf("*");

  printf("\n");

  printf("Please enter your choice:");

  printf("\n");

  輸入函數(shù):

  void Readscore (STU stu[],int n,int m) //1.輸入數(shù)據(jù)

  {

  int i,j;

  for(i=0;i

  {

  printf("Input student's ID ,name and score");

  scanf("%ld",&stu[i].studentID);

  scanf("%s",stu[i].studentName);

  for(j=0;j

  scanf("%d",&stu[i].score[j]);

  }

  }

  數(shù)據(jù)處理函數(shù):

  void Tota (STU stu[],int n,int m) //2.計(jì)算每門課程的總分和平均分

  {

  int i,j,sum[M];

  double ave[M];

  for(j=0;j

  {

  sum[j]=0;

  for(i=0;i

  {

  sum[j]=sum[j]+stu[i].score[j];

  }

  ave[j]=(double)sum[j]/n;

  }

  for(i=0;i

  printf("Project %d 總分=%d,課程的平均分=%f\n",i+1,sum[i],ave[i]);

  }

  void Datasort_1 (STU stu[],int n,int m) //3.計(jì)算每個(gè)學(xué)生的總分和平均分

  {

  int i,j,sum[N];

  double ave[N];

  for(i=0;i

  {

  sum[i]=0;

  for(j=0;j

  {

  sum[i]=sum[i]+stu[i].score[j];

  }

  ave[i]=(double)sum[i]/m;

  }

  for(i=0;i

  printf("ID:%10ld,Name: %s Allscore=%d,The ave=%f\n",stu[i].studentID,stu[i].studentName,sum[i],ave[i]);

  }

  排序函數(shù):

  void Datasort_2 (STU stu[],int n,int m) //4.按每個(gè)學(xué)生的總分由高到低排出名次表

  {

  int i,j,k,h,sum[N];

  STU t;

  for(i=0;i

  {

  sum[i]=0;

  for(j=0;j

  {

  sum[i]=sum[i]+stu[i].score[j];

  }

  }

  for(i=0;i

  {

  k=i;

  for(j=i+1;j

  {

  if (sum[j]>sum[k])

  k=j;

  }

  if(i!=k)

  {

  t=stu[i],h=sum[i];

  stu[i]=stu[k],sum[i]=sum[k];

  stu[k]=t,sum[k]=h;

  }

  }

  for(i=0;i

  printf("ID:%10ld,Name:%s,Score:%d\n",stu[i].studentID,stu[i].studentName,sum[i]);

  }

  void Datasort_3 (STU stu[],int n,int m) //5.按每個(gè)學(xué)生的總分由低到高排出名次表

  {

  int i,j,k,h,sum[N];

  STU t;

  for(i=0;i

  {

  sum[i]=0;

  for(j=0;j

  {

  sum[i]=sum[i]+stu[i].score[j];

  }

  }

  for(i=0;i

  {

  k=i;

  for(j=i+1;j

  {

  if (sum[j]

  k=j;

  }

  if(i!=k)

  {

  t=stu[i],h=sum[i];

  stu[i]=stu[k],sum[i]=sum[k];

  stu[k]=t,sum[k]=h;

  }

  }

  for(i=0;i

  printf("ID:%10ld,Name:%s,score:%d\n",stu[i].studentID,stu[i].studentName,sum[i]);

  }

  void Datasort_4 (STU stu[],int n,int m) //6.按學(xué)號由小到大排出名次表

  {

  int i,j,k;

  STU t;

  for(i=0;i

  {

  k=i;

  for(j=i+1;j

  {

  if (stu[j].studentID

  k=j;

  }

  if(i!=k)

  t=stu[k],stu[k]=stu[i],stu[i]=t;

  }

  for(i=0;i

  {

  printf("ID:%10ld,Name:%s\n",stu[i].studentID,stu[i].studentName);

  for(j=0;j

  printf("Project %d Score:%d\n",j+1,stu[i].score[j]);

  }

  }

  數(shù)據(jù)分析函數(shù):

  void Statistis (STU stu[],int n,int m) //10.

  {

  int i,j,count_1,count_2,count_3,count_4,count_5;

  for(j=0;j

  {

  count_1=0,count_2=0,count_3=0,count_4=0,count_5=0;

  for(i=0;i

  {

  if(stu[i].score[j]>=90)

  count_1++;

  else if(stu[i].score[j]>=80)

  count_2++;

  else if(stu[i].score[j]>=70)

  count_3++;

  else if(stu[i].score[j]>=60)

  count_4++;

  else

  count_5++;

  }

  printf("project %d\n",j+1);

  printf("優(yōu)秀:%d\t優(yōu)秀率:%f%\n",count_1,(float)count_1/n);

  printf("良好:%d\t良好率:%f%\n",count_2,(float)count_2/n);

  printf("中等:%d\t中等率:%f\n",count_3,(float)count_3/n);

  printf("及格:%d\t及格率:%f\n",count_4,(float)count_4/n);

  printf("不及格:%d\t不及格率:%f\n",count_5,(float)count_5/n);

  }

  }

  數(shù)據(jù)界面打印函數(shù):

  void List (STU stu[],int n,int m) //11.

  {

  int i,j,sum[N];

  double ave[N];

  for(i=0;i

  {

  sum[i]=0;

  for(j=0;j

  {

  sum[i]=sum[i]+stu[i].score[j];

  }

  ave[i]=(double)sum[i]/m;

  }

  for(i=0;i

  {

  printf("ID:%10ld,Name:%s\n",stu[i].studentID,stu[i].studentName);

  for(j=0;j

  {

  printf("Score %d :%d\n",j+1,stu[i].score[j]);

  }

  printf("Allscore=%d\n平均分%f\n",sum[i],ave[i]);

  }

  }

  文件處理函數(shù):

  void WritetoFile(STU stu[],int n,int m) //將每個(gè)學(xué)生的記錄信息寫入文件

  {

  Tota(stu,n,m);

  Datasort_2 (stu,n,m);

  FILE *fp;

  if((fp=fopen("student.txt","w"))==NULL)

  {

  printf("Failure to open student.txt!\n");

  exit(0);

  }

  fwrite(stu,sizeof(STU),n,fp);

  fclose(fp);

  }

  int ReadfromFile(STU stu[],int n,int m)//從文件中讀出每個(gè)學(xué)生的記錄信息并顯示

  {

  FILE *fp;

  int i;

  if((fp=fopen("student.txt","r"))==NULL)

  {

  printf("Failure to open student.txt!\n");

  exit(0);

  }

  for(i=0;!feof(fp);i++)

  {

  fread(&stu[i],sizeof(STU),1,fp);

  }

  fclose(fp);

  printf("Total student is %d.\n",i-1);

  n=i-1;

  List(stu,n,m); //輸出從文件中讀出的信息到屏幕上

  return i-1;

  }


C語言學(xué)生成績管理系統(tǒng)如何開發(fā)相關(guān)文章

1.學(xué)生成績管理系統(tǒng)設(shè)計(jì)論文

2.學(xué)生成績管理系統(tǒng)畢業(yè)論文

3.學(xué)生成績管理系統(tǒng)論文

4.淺談學(xué)生信息管理系統(tǒng)論文

5.管理系統(tǒng)的心得體會3篇

6.學(xué)生管理系統(tǒng)論文

C語言學(xué)生成績管理系統(tǒng)如何開發(fā)

有很多人C語言學(xué)生成績管理系統(tǒng)不會開發(fā),該怎么辦呢,下面是學(xué)習(xí)啦小編收集整理的C語言學(xué)生成績管理系統(tǒng)如何開發(fā),希望對大家有幫助~~ C語言學(xué)生成績管理系統(tǒng)開發(fā)的方法 1. 用戶對系統(tǒng)數(shù)據(jù)的輸入。 2. 系統(tǒng)計(jì)算所對應(yīng)的每門課程的總分
推薦度:
點(diǎn)擊下載文檔文檔為doc格式

精選文章

  • Linux下如何編寫第一個(gè)C語言hello world程序
    Linux下如何編寫第一個(gè)C語言hello world程序

    我想很多人不知道Linux下編寫第一個(gè)C語言hello world程序是怎么做的,下面是學(xué)習(xí)啦小編收集整理的Linux下如何編寫第一個(gè)C語言hello world程序,希望對大家有幫

  • gcc如何編譯C語言程序
    gcc如何編譯C語言程序

    gcc編譯C語言程序的方法是什么,那么gcc如何編譯C語言程序的呢/下面是學(xué)習(xí)啦小編收集整理的gcc如何編譯C語言程序,希望對大家有幫助~~ gcc編譯C語言程序

  • C語言如何實(shí)現(xiàn)windows的Ping命令
    C語言如何實(shí)現(xiàn)windows的Ping命令

    Ping命令是我們經(jīng)常接觸的,那么C語言如何實(shí)現(xiàn)windows的Ping命令的呢?下面是學(xué)習(xí)啦小編收集整理的C語言如何實(shí)現(xiàn)windows的Ping命令,希望對大家有幫助~~ C語言

  • c語言/c++如何調(diào)用dos命令
    c語言/c++如何調(diào)用dos命令

    c語言/c++如何調(diào)用dos命令的呢?想試試如何運(yùn)用c編程語言來操作電腦呢?其實(shí)c語言/c++對dos命令的一般調(diào)用是很簡單的。下面是學(xué)習(xí)啦小編收集整理的c語言/

3450260