学生成绩记录簿设计源程序_第1页
学生成绩记录簿设计源程序_第2页
学生成绩记录簿设计源程序_第3页
学生成绩记录簿设计源程序_第4页
学生成绩记录簿设计源程序_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

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

文档简介

1、学生成绩记录簿设计程序/(1).头文件,对要调用的系统函数的声明#include #include #include #include #define N 8 /N 为学生结构体的总数struct student /学生结构体 long num; char name20;int score4;int sum; ;struct student stuN;int pl=0; /定义两个全变量,学生总数变量和增加的学生变量int t=1;/(2). 定义无参函数void s(); /主菜单/*以下为定义无参函数*/void save(); /输入并保存void sav(); /保存void show

2、(); /显示void delet(); /删除void preside(); /分段void fint(); /查找void change(); /修改void add(); /添加void output(); /退出void deleta(); /学号查找后 删除(新增功能)void deletb(); /姓名查找后 删除(新增功能)void finta(); /学号查找void fintb(); /姓名查找void changea(); /按学号改void changeb(); /按姓名改void arrange(); /排序/(3).主函数.void main() /主函数 syste

3、m(cls); s();/(4).显示菜单函数.void s() int select,w;char k; /定义变量system(cls); printf(ntt O(_)O 学生成绩记录簿 O(_)Onttt 程序创作者nttt电子信息工程学院电气六班nttt 张三VS李四n); /以下显示主菜单printf(t nn);printf(ttt1. 文件保存.t2. 显示输出.tnnttt3. 查询成绩.t4. 添加成绩.nnttt5. 修改成绩.t6. 分段显示.nnttt7.删除成绩.t8.退出程序nn);printf(tt请选择(按1-8任意数字键): n );scanf(%d,&se

4、lect); switch(select) case 1: save(); break; /以下是选怿执行菜单上的哪个函数case 2: show(); break;case 3: fint(); break;case 4: add(); break;case 5: change(); break;case 6: preside(); break;case 7: delet(); break;case 8: output(); break;default: w=1; if(w=1) printf(输入有误,按任意键重新选怿.n);k=getchar();getch();s(); /(5)保存函

5、数,被调用void sav()FILE*fp;int i;if(fp=fopen(stu_list,wb)=NULL)printf(cannot open filen);return;for(i=0;inum); printf(n);printf(姓名:n); scanf(%s,p-name); printf(n);printf(四门成绩:1.平时成绩.2.试验成绩.3.设计成绩4.期末成绩.n);for(i=0;iscorei);sum = (p-score0)*0.10+ (p-score1)*0.15 + (p-score2)*0.15+(p-score3)*0.60; /总分p-sum

6、=sum;printf(sum为%d,sum );printf(nn是否要继续输入学生信息,如果是请按y;不是请按n.n);o=getchar(); /接收回车键w=getchar(); if(w=y | w=Y) /选怿是否输入更多的学生t+;x=1;p+;elsex=0;while(x=1);if(w=n | w=N)printf(nn是否保存输入的信息,如果是请按y;不是请按n.n);m=getchar();n=getchar();if(n=y | n=Y) sav();if(n=n | n=N) l=1;printf(按任意键返回.n);getch();s();/(7)显示输入的成绩v

7、oid show()int i,j;FILE*fp;system(cls); fp=fopen(stu_list,rb);i=0;while(1)if(fread(&stui,sizeof(struct student),1,fp)=0) break;printf(学号t 姓名 );printf( 平时成绩 实验成绩 设计成绩 期末成绩 总分n);printf(%-10d %-11s,stui.num,);for(j=0;j4;j+)printf(%-12d,stui.scorej);printf(%-12d,stui.sum);printf(nnn);fclose(fp);

8、printf(n按任意键返回);fflush(stdin);getch(); s();/(8). 对学生信息的查找。void fint() /对学生信息的查找。int i,m;char e;system(cls); printf(nnnttt请选择用哪种方式进行查找.n);printf(nnntt 1.学号.nnntt 2.姓名.nnntt);fflush(stdin);scanf(%d,&i); /输入是用姓名查找还是用学号查找switch(i) case 1: finta(); break;case 2: e=getchar();fintb(); break;default: m=1;if

9、(m=1)printf(输入有误,请按任意键返回.n);fflush(stdin);getch();s();/(9). 查找函数(用学号进行查找)void finta() /查找函数(用学号进行查找)。 int i,j=t; long num_a;struct student *p; char a,b;system(cls); printf(nnttt 请输入要查找的学生学号:ntt);scanf(%ld,&num_a); /输入要查找学生的学号for(p=stu;pnum=num_a) break; /判断该学生是否存在if(j=0)printf(nntt-_-| 不存在该学生,请按任意键返

10、回.nn);a=getchar();getch();s(); printf(ntt你要查找的学生为:nn); /以下对已查找出的学生的显示printf(%-10s%-10s%-10s%-10s%-10s%-10s%-10snn,学号,姓名,平时成绩,试验成绩,设计成绩,期末成绩,总分);printf(%-10ld%-10s,p-num,p-name);for(i=0;iscorei);printf(%-10d,p-sum);printf(nnnttt查找完成,请按任意键返回.);b=getchar();getch();s();/(10). 查找(用姓名查找)void fintb() /查找(用

11、姓名查找)。 char name_b20; int j=t,i; struct student *p; system(cls); printf(nttt 请输入要查找的学生姓名:nttt);gets(name_b); /输入姓名for(p=stu;pname,name_b)=0) break; /判断是否存在该学生if(j=0)printf(nnttt-_-| 不存在该学生,请按任意键返回.n);getch();s();printf(nttt你要查找的学生为:nn); /显示已找出的学生printf(%-10s%-10s%-10s%-10s%-10s%-10s%-10snn,学号,姓名,数学,

12、语文,英语,平均分,总分);printf(%-8ld%-8s,p-num,p-name);for(i=0;iscorei); printf(%-8d,p-sum);printf(nnnnt查找完成,请按任意键返回.);getch();s();/11,添加函数void add()int i,j,m=0;int l;char r,n;FILE*fp;struct student *p;system(cls); printf( %-10s%-10s%-11s%-11s%-10s%-12s%-10snn,学号,姓名,平时成绩,试验成绩,设计成绩,期末成绩,总分);fp=fopen(stu_list,r

13、b);for(i=0;it;i+)fread(&stui,sizeof(struct student),1,fp);printf(%-10d %-10s,stui.num,);for(j=0;jnum); printf(n);printf(姓名:n);scanf(%s,p-name); printf(n);printf(四门成绩:1.平时成绩.2.试验成绩.3.设计成绩4.期末成绩.n);for(i=0;iscorei);p-sum = (p-score0)*0.10+ (p-score1)*0.15 + (p-score2)*0.15+(p-score3)*0.60; /总

14、分printf(nn是否保存添加的信息,如果是请按y;不是请按n.n);r=getchar();n=getchar();t=t+1;if(n=y | n=Y) sav();if(n=n | n=N) l=1;printf(n按任意键返回);arrange();/(12). 对学生信息的修改。void change() /对学生信息的修改。 int i,m;char e;system(cls); printf(ttt请选择用哪种方式进行修改.n);printf(nntt 1.查找学号.nnntt 2.查找姓名.nnntt);scanf(%d,&i); /输入是用姓名查找还是用学号修改switch

15、(i) case 1: changea(); break;case 2: e=getchar();changeb(); break;default: m=1;if(m=1)printf(输入有误,请按任意键返回.n);getch();s();/(13). 修改函数(用学号进行查找修改)void changea() /查找函数(用学号进行查找修改)。int i,j=t; char m,n;long num_a;struct student *p; char a,b;system(cls); printf(nnnttt 请输入要修改的学生学号:nntt);scanf(%ld,&num_a); /输

16、入要修改学生的学号for(p=stu;pnum=num_a) break;/判断该学生是否存在if(j=0)printf(nntt-_-| 不存在该学生,请按任意键返回.nn);a=getchar();getch();s(); printf(nntt你要修改的学生为:nn); /以下对已查找出的学生的显示printf(%-10s%-10s%-10s%-10s%-10s%-10s%-10snn, 学号, 姓名, 平时成绩, 试验成绩, 设计成绩, 期末成绩, 总分);printf(%-10ld%-10s,p-num,p-name);for(i=0;iscorei);printf(%-12d,p-

17、sum);printf(n);printf(输入要修改的信息n);printf(学号:n); scanf(%ld,&p-num); printf(n);printf(姓名:n); scanf(%s,p-name); printf(n);printf(四门成绩:1.平时成绩.2.试验成绩.3.设计成绩4.期末成绩.n);for(i=0;iscorei);p-sum = (p-score0)*0.10+ (p-score1)*0.15 + (p-score2)*0.15+(p-score3)*0.60; /总分printf(修改完毕,是否保存,如果是请按y;不是请按n.n);m=getchar()

18、;n=getchar();if(n=y | n=Y) sav();if(n=n | n=N)printf(nnnttt修改完成,请按任意键返回.);b=getchar();getch();s();/(14). 修改函数(用姓名查找修改)void changeb() char name_b20; int j=t,i;int sum;char m,n; struct student *p; system(cls); printf(nttt 请输入要修改的学生姓名:nnttt);gets(name_b); /输入姓名for(p=stu;pname,name_b)=0) break; /判断是否存在该

19、学生if(j=0)printf(nnnttt-_-| 不存在该学生,请按任意键返回.n);getch();s();printf(nnttt你要修改的学生为:nn); /显示已找出的学生printf(%-10s%-10s%-10s%-10s%-10s%-10s%-10snn,学号,姓名,数学,语文,英语,平均分,总分);printf(%-8ld%-8s,p-num,p-name);for(i=0;iscorei); printf(%-10d,p-sum);printf(n);printf(输入要修改的信息n);printf(学号:n); scanf(%ld,&p-num); printf(n);

20、printf(姓名:n); scanf(%s,p-name); printf(n);printf(四门成绩:1.平时成绩.2.试验成绩.3.设计成绩4.期末成绩.n);for(i=0;iscorei);p-sum = (p-score0)*0.10+ (p-score1)*0.15 + (p-score2)*0.15+(p-score3)*0.60; /总分printf(修改完毕,是否保存,如果是请按y;不是请按n.n);m=getchar();n=getchar();if(n=y | n=Y) sav();printf(nnnnt修改完成,请按任意键返回.);if(n=n | n=N) i=

21、0;getch();s();/15.分段显示总成绩在不同区间段的学生信息void preside() int j; struct student *p; system(cls); printf(ttt分段显示总成绩在不同区间段的学生信息nn);printf(%-8s%-8s%-8s%-8s%-8s%-8s%-8snn,学号,姓名,平时成绩,试验成绩,设计成绩,期末成绩,总分);printf(nn);printf(总分在60分以下nn);for(p=stu;psumnum,p-name); for(j=0;jscorej); printf(%-8d,p-sum);printf(nn);print

22、f(总分在60分到79分nn);for(p=stu;psum)sum)=60) printf(%-8ld%-8s,p-num,p-name); for(j=0;jscorej); printf(%-8d,p-sum);printf(nn);printf(总分在80分到89分nn);for(p=stu;psum)sum)=80) printf(%-8ld%-8s,p-num,p-name); for(j=0;jscorej); printf(%-8d,p-sum);printf(nn);printf(总分90分以上nn);for(p=stu;psum)=90)printf(%-8ld%-8s,p

23、-num,p-name); for(j=0;jscorej); printf(%-8d,p-sum);printf(nn);printf(n);printf(tt统计完成,请按任意键返回.n);getch();s();/(16). 删除函数(创新点)void delet() /删除函数。 int i,m;char e;system(cls); printf(nnnttt请选择用哪种方式进行查找删除.n);printf(nnnnntt 1.学号.nnnntt 2.姓名.nnntt);scanf(%d,&i); /输入是用姓名查找还是用学号查找switch(i) case 1: deleta();

24、 break;case 2: e=getchar();deletb(); break;default: m=1;if(m=1)printf(输入有误,请按任意键返回.n);getch();s();/(17). 删除函数(按学号查找删除)。void deleta() /删除函数(按学号查找删除)。 long num_a;int z,j;char c,x,m,b,o; struct student *p; /定义变量,接收字符system(cls);do printf(请输入要删除的学号.n); scanf(%ld,&num_a); /输入学号for(p=stu;pnum=num_a)break;

25、if(p=stu+t)printf(不存在该学生,请按任意键返回.n);getch();s();printf(你要删除的学生为:n); /显示要删除的信息printf(%-8s%-8s%-8s%-8s%-8s%-8s%-8snn,学号,姓名,平时成绩,试验成绩,设计成绩,期末成绩,总分);printf(%-8ld%-8s,p-num,p-name);for(j=0;jscorej);printf(%-8d,p-sum);printf(n);printf(你确定要删除吗?如是请输入y;不是请输入n.n);x=getchar(); /接收回车键c=getchar(); if(c=y|c=Y) /判

26、断是否要删除该学生的信息 for(;pstu+t;p+)*p=*(p+1); t-;if(c=n|N) z=0;printf(是否要继续删除:是请按 y.不是请按 n.n); m=getchar();b=getchar();o=getchar();while(o=y|o=Y); /是否继续删除学生信息printf(系统已为你删除信息,请按任意键返回.n);getch();sav();s();/(18). 删除函数(按姓名查找到后删除)。void deletb() /删除函数(按姓名查找到后删除)char name_b20,c,m,b,r,d; int j,z,f=t; struct student *p; system(cls); do printf(请输入要删除的姓名.n);gets(name_b);/输入姓名r=getchar(); for(p=stu;pname,name_b)=0)

温馨提示

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

评论

0/150

提交评论