收藏 分享(赏)

学生成绩记录簿设计源程序.doc

上传人:精品资料 文档编号:8584461 上传时间:2019-07-04 格式:DOC 页数:14 大小:60KB
下载 相关 举报
学生成绩记录簿设计源程序.doc_第1页
第1页 / 共14页
学生成绩记录簿设计源程序.doc_第2页
第2页 / 共14页
学生成绩记录簿设计源程序.doc_第3页
第3页 / 共14页
学生成绩记录簿设计源程序.doc_第4页
第4页 / 共14页
学生成绩记录簿设计源程序.doc_第5页
第5页 / 共14页
点击查看更多>>
资源描述

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 任意数字键) :

4、 n “);scanf(“%d“,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.

6、15+(p-score3)*0.60; /总分p-sum=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;

7、printf(“按任意键返回.n“);getch();s();/(7)显示输入的成绩void show()int i,j;FILE*fp;system(“cls“); fp=fopen(“stu_list“,“rb“);i=0;while(1)if(fread(printf(“学号t 姓名 “);printf(“ 平时成绩 实验成绩 设计成绩 期末成绩 总分n“);printf(“%-10d %-11s“,stui.num,stui.name);for(j=0;jnum=num_a) break; /判断该学生是否存在if(j=0)printf(“nntt-_-| 不存在该学生,请按任意键返回

8、.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).

9、 查找(用姓名查找)void fintb() /查找(用姓名查找) 。 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%-10

10、s%-10s%-10s%-10s%-10s%-10snn“,“学号“,“姓名“,“ 数学“,“语文“,“英语“,“ 平均分“,“总分“);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%-1

11、0s%-12s%-10snn“,“学号“,“姓名“,“平时成绩“,“试验成绩“,“设计成绩“,“期末成绩“,“总分“);fp=fopen(“stu_list“,“rb“);for(i=0;inum); 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; /

12、总分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“, /输入是用姓名查

13、找还是用学号修改switch(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“)

14、;scanf(“%ld“, /输入要修改学生的学号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,

15、p-name);for(i=0;iscorei);printf(“%-12d“,p-sum);printf(“n“);printf(“输入要修改的信息n“);printf(“学号:n“); scanf(“%ld“, 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)

16、*0.60; /总分printf(“修改完毕,是否保存,如果是请按 y;不是请按 n.n“);m=getchar();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 请输入要修改的学生姓名:nntt

17、t“);gets(name_b); /输入姓名for(p=stu;pname,name_b)=0) break; /判断是否存在该学生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); p

18、rintf(“%-10d“,p-sum);printf(“n“);printf(“输入要修改的信息n“);printf(“学号:n“); scanf(“%ld“, 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(“修改完毕,是否保

19、存,如果是请按 y;不是请按 n.n“);m=getchar();n=getchar();if(n=y | n=Y) sav();printf(“nnnnt 修改完成,请按任意键返回“);if(n=n | n=N) i=0;getch();s();/15.分段显示总成绩在不同区间段的学生信息void preside() int j; struct student *p; system(“cls“); printf(“ttt 分段显示总成绩在不同区间段的学生信息nn“);printf(“%-8s%-8s%-8s%-8s%-8s%-8s%-8snn“,“学号“,“姓名“,“ 平时成绩“,“试验成绩

20、“,“设计成绩“,“期末成绩“,“总分“);printf(“nn“);printf(“总分在 60 分以下nn“);for(p=stu;psumnum,p-name); for(j=0;jscorej); printf(“%-8d“,p-sum);printf(“nn“);printf(“总分在 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“)

21、;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-num,p-name); for(j=0;jscorej); printf(“%-8d“,p-sum);printf(“nn“);printf(“n“);printf(“tt 统计完成 ,请按任意键返回.n“);getch();s();/(16). 删除

22、函数( 创新点)void delet() /删除函数。 int i,m;char e;system(“cls“); printf(“nnnttt 请选择用哪种方式进行查找删除 .n“);printf(“nnnnntt 1.学号 .nnnntt 2.姓名.nnntt“);scanf(“%d“, /输入是用姓名查找还是用学号查找switch(i) case 1: deleta(); break;case 2: e=getchar();deletb(); break;default: m=1;if(m=1)printf(“输入有误,请按任意键返回.n“);getch();s();/(17). 删除函

23、数(按学号查找删除) 。void deleta() /删除函数(按学号查找删除) 。 long num_a;int z,j;char c,x,m,b,o; struct student *p; /定义变量,接收字符system(“cls“);do printf(“请输入要删除的学号.n“); scanf(“%ld“, /输入学号for(p=stu;pnum=num_a)break;if(p=stu+t)printf(“不存在该学生,请按任意键返回.n“);getch();s();printf(“你要删除的学生为:n“); /显示要删除的信息printf(“%-8s%-8s%-8s%-8s%-8

24、s%-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) /判断是否要删除该学生的信息 for(;pname,name_b)=0) /判断是否存在该学生break;if(p=stu+t)printf(“不存在该学

25、生,请按任意键返回.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“);c=getchar();if(c=y|c=Y) /判断是否确定要删除for

26、(;pnum(p+1)-num) temp=*p;*p=*(p+1);*(p+1)=temp;printf(“%-12s%-12s%-12s%-12s%-12s%-12s%-12snn“,“学号“,“姓名“,“ 平时成绩“,“ 试验成绩“,“设计成绩“,“期末成绩“,“ 总分“);for(p=stu;pnum,p-name);for(i=0;iscorei); printf(“%-12d“,p-sum);printf(“nnn“);printf(“请按任意键返回.n“);getch();s();/(20). 退出函数void output() /退出函数 system(“cls“); exit(0);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报