学生成绩管理系统——C语言版_第1页
学生成绩管理系统——C语言版_第2页
学生成绩管理系统——C语言版_第3页
学生成绩管理系统——C语言版_第4页
学生成绩管理系统——C语言版_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、#include /*常用的标准输入输出函数*/#include /*access函数原型包含*/#include /*exit函数原型包含*/#include /*strcmp函数原型包含*/#include #include#include #define N 100 /*最多的学生人数*/struct student /*学生结构体定义*/ char clas15; /*班级*/char no13; /*学号,最多为12位*/char name20; /*姓名*/char sex8; /*性别*/char addr30; /*地址*/char phone15; /*电话*/float s

2、core5; /*存储五门课成绩*/float ave; /*平均分*/stuN;int num;void init();void weihu();void tongji();void tongji1();void tongji2();void sort1();void find1();void save();void newfile();void read1();void newfile();void new1();void delete1();void modify();void sortscore();int findname(char cname);void main() int ch

3、oice=1;system(COLOR 2f);printf( 学生信息管理系统 n);printf( * *n);printf( * 欢迎进入! *n);printf( * *n);printf( n);init();while(choice!=5)system(COLOR 1F);printf( *n);printf( * *n);printf( * 主菜单 *n); printf( * 1:学生成绩维护 *n);printf( * 2:学生成绩统计 *n);printf( * 3:学生成绩排序 *n);printf( * 4:学生成绩查询 *n);printf( * 5:退出 *n);p

4、rintf( * *n); printf( *n);printf( 请选择:);scanf(%d,&choice);switch(choice) case 1:weihu(); break;case 2:tongji(); break; case 3:sort1();break; case 4:find1(); break; case 5:save();printf(谢谢使用本系统!n);break; default:printf(选择错误,请重新选择!);/1)输出学生成绩(公共函数)void output() /*输出学生数据*/int i,j;for(i=0;inum;i+)printf

5、(班级 姓名 学号 性别 地址 电话n );printf(%s %s %s %s %s %sn,stui.clas,,stui.no,stui.sex,stui.addr,stui.phone);printf(n);printf(C语言 大学物理 网页设计 高数 英语 n);for(j=0;j5;j+)printf(%-12.f,stui.scorej);printf(n);printf(n);/2)系统初始化代码void init()if(access(stui.dat,0) /*判断文件是否存在*/ newfile(); /*不存在创建新的数据文件*/elseread1(

6、); /*若存在,从文件中读取数据*/3)创立新的数据文件void newfile() /*从键盘输入学生成绩并保存到文件中*/int i; FILE *fp;if(fp=fopen(F:stu.dat,wb)=NULL) /*创建二进制文件*/printf(文件创建失败!请重新运行程序。n);exit(0); /*终止程序运行*/printf(请输入学生人数:); scanf(%d,&num);for(i=0;inum;i+)printf(班级:);getchar(); gets(stui.clas);printf(姓名:);gets();printf(请输入第%d位学生的

7、学号:,i+1);gets(stui.no); printf(性别:);gets(stui.sex);printf(地址:);gets(stui.addr);printf(电话:);gets(stui.phone);printf(C语言:);scanf(%f,&stui.score0);printf(大学物理:);scanf(%f,&stui.score1);printf(网页设计:);scanf(%f,&stui.score2);printf(高数:);scanf(%f,&stui.score3);printf(英语:);scanf(%f,&stui.score4); fwrite(&stu

8、,sizeof(stu),1,fp);printf(请输入下一条学生信息n); /*把第i+1名学生成绩写入文件*/fclose(fp);printf(你刚刚输入的数据共有%d个学生成绩。详细数据为:n,num);output();/4)从数据文件中读取成绩void read1()FILE *fp;num=0; /*num为数据文件实际存储成绩人数*/fp=fopen(stu.dat,r);if(fp=NULL) /*文件不存在*/printf(文件打开失败!请重新运行程序。n);exit(0); /*终止程序运行*/while(!feof(fp)fread(&stunum,1,sizeof(

9、struct student),fp);num+;num-;fclose(fp);printf(现在共有%d个学生成绩,初始数据为:n,num);output(); /*输出读取结果*/5)学生成绩维护void weihu()int choice1;system(COLOR 2F);printf( *n);printf( * *n); printf( * 学生成绩维护子菜单 *n);printf( * 1.新增 *n);printf( * 2.删除(按学号) *n);printf( * 3.修改 *n);printf( * *n);printf( *n);printf( 请选择);scanf(

10、%d,&choice1);switch(choice1) case 1: new1(); break; case 2: delete1(); break; case 3: modify(); break; default: printf(选择错误,请重新选择!n);/6)新增一个学生成绩void new1()printf(请输入班级:);getchar();gets(stunum.clas);printf(请输入学号:);gets(stunum.no); printf(姓名:);gets(); printf(性别:);gets(stunum.sex);printf(地址:

11、);gets(stunum.addr);printf(电话:);gets(stunum.phone);printf(C语言:);scanf(%f,&stunum.score0);printf(大学物理:);scanf(%f,&stunum.score1);printf(网页设计:);scanf(%f,&stunum.score2);printf(高数:);scanf(%f,&stunum.score3);printf(英语:);scanf(%f,&stunum.score4); num+;printf(现在共有%d个学生成绩,数据为:n,num);output();/7)按学号查找int fi

12、nd(char sno)int i; for(i=0;inum;i+) if(strcmp(stui.no,sno)=0) /*判断两个字符串相等*/ return i; /*查找成功*/ return -1; /*查找失败*/ /删除学生信息void delete1()char cno13;int i,j;printf(请输入要删除的学号:n);getchar();gets(cno);i=find(cno);if(i=-1) printf(不存在该学号!n); else for(j=i;jnum;j+)stuj=stuj+1;num-;printf(删除后还有%d个学生成绩,数据为:n,nu

13、m);output(); /修改学生信息void modify()char cno13;int i,j;printf(请输入要修改学生的学号:n);getchar();gets(cno);i=find(cno); printf(班级:); gets(stui.clas); printf(姓名:);gets(); printf(性别:);gets(stui.sex);printf(地址:);gets(stui.addr);printf(电话:);gets(stui.phone);printf(C语言:);scanf(%f,&stui.score0);printf(大学物理:);

14、scanf(%f,&stui.score1);printf(网页设计:);scanf(%f,&stui.score2);printf(高数:);scanf(%f,&stui.score3);printf(英语:);scanf(%f,&stui.score4); printf(修改后为:n);printf(%st%st%st%st%st%stn,stui.clas,,stui.no,stui.sex,stui.addr,stui.phone);printf(C语言 大学物理 网页设计 高数 英语 n);for(j=0;j5;j+)printf(%-12.f,stui.score

15、j);printf(n);/10)统计void tongji()int choice2;system(COLOR 3F);printf( *n);printf( * *n);printf( * 统计子菜单 *n);printf( * 1.计算每门课程平均分 *n);printf( * 2.计算每个学生平均分 *n);printf( * *n);printf( *n);printf( 请选择:);scanf(%d,&choice2);if(choice2=1)tongji1();else if(choice2=2)tongji2();elseprintf(选择错误,请重新选择!n);/11)计算

16、每个学生平均分void tongji1()int i,j;float sum;float avec5; /*存储每门课程的平均分*/for(j=0;j5;j+) sum=0;for(i=0;inum;i+)sum+=stui.scorej;avecj=sum/num; printf(各门课平均分:n);printf(C语言 大学物理 网页设计 高数 英语n); for(i=0;i5;i+)printf(%-10.2f,aveci);printf(n); /12)计算每个人的平均分void tongji2()int i,j;float sum; for(j=0;jnum;j+)sum=0;for

17、(i=0;i5;i+)sum+=stuj.scorei;stuj.ave=sum/5;printf(第%d个人的平均分:%.2fn,j+1,stuj.ave);/13)排序void sort1()int choice3;system(COLOR 6F);printf( *n);printf( n);printf( * 排序子菜单 *n); printf( * *n);printf( * 1.按成绩 *n);printf( n);printf( *n);printf( 请选择:n);scanf(%d,&choice3);if(choice3=1)sortscore();elseprintf(选择

18、错误,请重新选择!n);/14)按学生平均分排序void sortscore() /*按平均成绩从高到低冒泡法排序*/int i,j;struct student temp;tongji2(); /* 先计算每个学生的平均分*/for(i=0;i=num-2;i+) for(j=0;jnum-i-1;j+)if(stuj.avestuj+1.ave)temp=stuj;stuj=stuj+1;stuj+1=temp;for(i=0;inum;i+)printf(%.2f ,stui.score1); printf(排序后的学生成绩为:n);output();/15)查找void find1()

19、int choice4;char cno13,cname20;int i,j;system(COLOR 5F);printf(*n);printf(* *n);printf(* 查找子菜单 *n);printf(* 1.按学号 *n);printf(* 2.按姓名 *n);printf(* *n);printf(*n);printf( 请选择:);scanf(%d,&choice4);if(choice4=1)printf(输入要查找学生的学号:);getchar();gets(cno);puts(cno);i=find(cno);else if(choice4=2)printf(请输入要查找学生的姓名:);getchar();gets(cname);i=findname(cname);elsep

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论