当前位置:首页 > 科技 > 正文内容

C语言学生成绩管理系统如何开发(c语言学生成绩管理系统)

2019-05-29 23:06:05科技537

大家好,今天就和小鱼一起来看看这个问题吧 。c语言学生成绩管理系统,C语言学生成绩管理系统如何开发很多人还不知道,现在让我们一起来看看吧!

c语言学生成绩管理系统开发方法1。用户输入系统数据。

C语言学生成绩管理系统如何开发(c语言学生成绩管理系统)

2.系统计算每门对应课程的总分和平均分。

3.为相应的学生进行数据处理。

4.排序功能

A.总分由高到低,总分由低到高。

B.学生人数从大到小

C.名称字典顺序

5.查询功能

A.学生编号查询

B.姓名查询

6.分析数据

7.输出学生对应的所有数据。

8.将数据写入和读取到文件中。

[设计理念]

Switch case语句用于实现用户的菜单操作,通过用户在菜单中的选择,调用相关函数来完成用户的一系列操作和应用。

[模块图]

通用程序流程图

[算法步骤]

菜单:

for(I=0;i66我)

printf(' * ');

printf(' \ n ');

printf('1。输入记录\ n’);

printf('2。计算每门课程的总分和平均分\ n’);

printf('3。计算每个学生的总分和平均分\ n’);

printf('4。按每个学生的总分降序排序\ n’);

printf('5。按每个学生的总分升序排序\ n’);

printf('6。按数字升序排序\ n’);

printf('7。按姓名升序排序\ n’);

printf('8。按号码搜索\ n’);

printf('9。按姓名搜索\ n’);

printf('10。每门课程的统计分析\ n’);

printf('11。列表记录\ n’);

printf('12。写入文件\ n’);

printf('13。从文件中读取\ n’);

printf('0。exit \ n ');

for(I=0;i66我)

printf(' * ');

printf(' \ n ');

printf('请输入您的选择: ');

printf(' \ n ');

输入功能:

Void read score (stustu [],int n,int m)//1。输入数据

{

int i,j;

for(I=0;我;我)

{

printf('输入学生的ID、姓名和分数');

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

scanf('%s ',stu[i].student name);

for(j=0;j;j)

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

}

}

数据处理功能:

Voitota (stustu [],int n,int m)//2。计算每门课程的总分和平均分。

{

int i,j,sum[M];

双平均[M];

for(j=0;j;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.计算每个学生的总分和平均分

  {

  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]);

  }

  排序函数:

  void Datasort_2 (STU stu[],int n,int m) //4.按每个学生的总分由高到低排出名次表

  {

  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.按每个学生的总分由低到高排出名次表

  {

  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.按学号由小到大排出名次表

  {

  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]);

  }

  }

  数据分析函数:

  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("优秀:%d\t优秀率:%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);

  }

  }

  数据界面打印函数:

  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]);

  }

  }

  文件处理函数:

  void WritetoFile(STU stu[],int n,int m) //将每个学生的记录信息写入文件

  {

  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)//从文件中读出每个学生的记录信息并显示

  {

  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;

  }

这篇文章到此就结束,希望能帮助到大家。

扫描二维码推送至手机访问。

版权声明:文章内容摘自网络,如果无意之中侵犯了您的版权,请联系本站,本站将在3个工作日内删除。谢谢!

本文链接:https://www.xixia168.com/n/kj/4276.html

分享给朋友:

“C语言学生成绩管理系统如何开发(c语言学生成绩管理系统)” 的相关文章

56个民族哪个人口最多(人口最多的少数民族)

56个民族哪个人口最多(人口最多的少数民族)

大家好,今天就和吖吖一起来看看这个问题吧 。人口最多的少数民族,56个民族哪个人口最多很多人还不知道,现在让我们一起来看看吧!  一、  人口最多的少数民族  壮族是少数民族中人口最多的。  由于最近几年全国都没有进行人口大普查,所以我们只能看2010年全国第六次人口大普查的数据。根据全国第六次人口...

中国朝代顺序时间完整表(中国朝代时间表)

中国朝代顺序时间完整表(中国朝代时间表)

大家好,今天就和大牛一起来看看这个问题吧 。中国朝代时间表,中国朝代顺序时间完整表很多人还不知道,现在让我们一起来看看吧!  一、中国朝代时间表  中国历史朝代顺序:夏、商、西周、东周、秦、西汉、东汉、三国(曹魏、蜀汉、东吴)、西晋、东晋、五胡十六国、南朝(宋、齐、梁、陈)、北朝(北魏、东魏、北齐、...

女王节是每年什么时候(女王节是几月几日)

女王节是每年什么时候(女王节是几月几日)

大家好,今天就和小鸥一起来看看这个问题吧 。女王节是几月几日,女王节是每年什么时候很多人还不知道,现在让我们一起来看看吧!  一、  女王节是几月几日  女王节是每年的3月8日。  当下年轻人过的“女神节”,其实是对三八妇女节的新称号,是由各大商家开始追捧起来的,甚至还有商家比“女神节”更甚,把3月...

端午节最简短的来历(端午节的传说简短)

端午节最简短的来历(端午节的传说简短)

大家好,今天就和毛毛一起来看看这个问题吧 。端午节的传说简短,端午节最简短的来历很多人还不知道,现在让我们一起来看看吧!  一、端午节的传说简短一:  战国时,楚国大夫屈原因苦劝楚王无果,忧愤投江自尽。楚国百姓怀念这位为人清正的大夫,于是将糯米包成包投入江中,希望鱼群吃了米而不吃屈原尸身。后世延续为...

中元节的真正来历是什么(中元节的来历和传说)

中元节的真正来历是什么(中元节的来历和传说)

大家好,今天就和猫猫一起来看看这个问题吧 。中元节的来历和传说,中元节的真正来历是什么很多人还不知道,现在让我们一起来看看吧!  一、中元节的来历和传说二、  道教传说  “中元节”之名起于北魏,“中元”是道教的说法。道教经典称正月十五为上元,七月十五为中元,十月十五为下元。又将“三元”与“三官”相...

清明节的来历是什么(清明节最简短的来历)

清明节的来历是什么(清明节最简短的来历)

大家好,今天就和可心一起来看看这个问题吧 。清明节最简短的来历,清明节的来历是什么很多人还不知道,现在让我们一起来看看吧!一、清明节最简短的来历  在春秋战国时期,为纪念介子推,晋文公将介子推被烧死的那一天定为寒食节,也就是现在的清明节。  清明节,又称踏青节、行清节、三月节、祭祖节等,节期在仲春与...