学生成绩查询系统34974(13页).doc

上传人:1595****071 文档编号:36136870 上传时间:2022-08-25 格式:DOC 页数:13 大小:166KB
返回 下载 相关 举报
学生成绩查询系统34974(13页).doc_第1页
第1页 / 共13页
学生成绩查询系统34974(13页).doc_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《学生成绩查询系统34974(13页).doc》由会员分享,可在线阅读,更多相关《学生成绩查询系统34974(13页).doc(13页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、-学生成绩查询系统34974-第 13 页程序设计基础课程设计设计题目:学生成绩查询系统专业: 班级: 姓名: 学号: 指导老师: 目 录一、课程设计目的与要求3二、详细设计4三、程序清单和执行结果9四、调试与测试23五、结语24一、课程设计目的与要求(1)综合运用之前所学知识(选择控制,循环控制,数组,函数,指针,结构体和文件等)来完成一个简单的信息管理程序的设计。(2)充分体现和体会函数在程序设计中的必要性和实用性,并反映主函数main()在程序设计中的实现思路和方法。2. 课程设计要求 设计一个简易学生成绩记录簿设计,其中包括:姓名,学号,C语言成绩; 具体功能: 1系统以菜单方式工作

2、2. 创建学生成绩信息并以磁盘文件保存; 3. 读取磁盘文件并显示输出所有学生的成绩; 4. 查询学生成绩 (1)按学号查询成绩 (2)学号姓名查询成绩 5添加成绩记录; 6修改指定姓名或学号的学生的成绩并可存盘; 7显示输出60分以下、6079、8089、90分以上各分数段的学生信息。二、详细设计1、数据结构设计#include#include#include#includeint n=4;struct studentint num; /*学号*/char name10; /*姓名*/float score3; /*成绩*/2函数说明1.主函数main()允许用户通过菜单进行功能选择,使用相

3、应的功能代码来调用对应的函数功能。2.其他部分功能函数包括(1) 将学生成绩信息保存为文件void save(); 算法思想:定义指向文件的指针变量;输入保存路径及文件名,打开文件,若不能打开文件给出提示信息;将存有学生成绩信息的结构体数组信息依次保存到文件中。 (2) 学生成绩信息录入函数void input()算法思想:依次录入结构体数组中所包含的各个成员;直到输入的结构体成员中信息为4,数据输入结束;返回实际录入的学生成绩信息数。(3)从文件中读出学生成绩信息void output(); 算法思想:定义指向结构体变量的指针和指向文件的指针;输入文件的路径,打开文件,若不能打开文件给出提示

4、信息;将文件中的信息依次读出,最后结构体的指针为NULL。3函数设计(1)主菜单函数main()功能:函数返回值为整数,代表所选的菜单项 int main ()printf( * n);printf( n); printf( n);printf( 欢迎进入学生成绩记录系统 n);printf( n);printf(【1】- 创建学生成绩信息 n); printf( n);printf(【2】- 显示所有学生成绩信息 n); printf( n);printf(【3】- 添加学生成绩信息 n);printf( n);printf(【4】- 查询学生成绩信息 n); printf( n); pri

5、ntf(【5】- 修改学生的信息 n); printf( n);printf(【6】- 按分数段显示学生的信息 n); printf( n); printf(【0】- 退出 n);printf( n);printf( * n);printf( 请输入相应菜单编号: );(2) 我负责编写的程序A.添加学生信息 void Addstudent() FILE *fp;struct student s;fp=fopen(stu.dat,ab); if(fp=fopen(stu.dat,ab)=NULL) printf(File open error!n); else printf(请输入所增加学生的

6、 学号 姓名 c语言成绩:n);scanf(%d,&s.num ); scanf(%s,s.name);scanf(%f,&s.score0);fwrite (&s,sizeof(struct student),1,fp);fclose(fp);/*关闭文件*/printf(写入成功!n); /end function Addstudent;void modify() int number,i;printf(请输入要修改信息的学生学号:); scanf(%d,&number); for(i=0;in;i+)if(number=studi.num) break;/*查找判断*/ if(in)/*

7、查找判断*/ printf(请输入修改后的学生的信息:);printf(n请输入学生的c语言成绩:); scanf(%f,&studi.score0); save();else printf(没找到该学生的信息n); system(paues);system(cls);void namecheck(void);void scorecheck(void);void searchmenu()printf( * 欢迎进入学生成绩查询系统 * n);printf(* 1-按姓名查询成绩 * n);printf(* 2-按学号查询成绩 * n);printf(* 3-返回上一层 * n);printf(

8、* 4-退出 * n);printf( * n);printf( 请输入相应菜单编号: );int m;scanf(%d,&m);switch(m)case 1: namecheck(); printf(n); system(PAUSE); system(CLS); break;case 2: scorecheck(); printf(n); system(PAUSE); system(CLS); break;case 3: main();break;case 4: exit(0); break;void namecheck() char name10;printf(按照姓名查询请按n);pr

9、intf(n请输入姓名:);scanf(%s,&name);printf(查询结果n);printf(学号 姓名 c语言成绩n);if(strcpy(studi.name,name)printf(%d %s %.2fn,studi.num,studi.name,studi.score0);void scorecheck()int b;printf(按照学号查询请按n);printf(n请输入学号:);scanf(%d,&b);printf(查询结果n);printf(学号 姓名 c语言成绩n);for(i=0;in;i+)if(studi.num =b)printf(%d %s %.2fn,s

10、tudi.num,studi.name,studi.score0); 三、程序清单和执行结果 #include#include#include#includeint n=4;struct studentint num; /*学号*/char name10; /*姓名*/float score3; /*成绩*/*以下是函数原型*/ void save(void); void input(void); void output(void); void modify(); /*修改信息*/void searchmenu(void); /*查询信息*/ void namecheck(void); /*按

11、姓名查询*/ void scorecheck(void); /*按学号查询*/ void Addstudent(); /*添加信息*/void sclsearch(); /*成绩按分数段显示*/2. 函数源程序代码与运行结果1函数源程序代码#include#include#include#includeint n=4;struct studentint num;char name10;float score3;stud100;int i,choose,a,t=0;long int num;int main ()void save(void);void input(void);void outp

12、ut(void); void modify();void searchmenu(void);void Addstudent();void sclsearch();while(1)printf( * n);printf( n);printf( n);printf( 欢迎进入学生成绩记录系统 n);printf( n);printf( 【1】- 创建学生成绩信息 n); printf( n);printf( 【2】- 显示所有学生成绩信息 n); printf( n);printf( 【3】- 添加学生成绩信息 n);printf( n);printf( 【4】- 查询学生成绩信息 n); pri

13、ntf( n); printf( 【5】- 修改学生的信息 n); printf( n);printf( 【6】- 按分数段显示学生的信息 n); printf( n); printf( 【0】- 退出 n);printf( n);printf( * n);printf( 请输入相应菜单编号: );scanf(%d,&a);switch(a)case 1:input(); save();break;case 2:output();printf(n);system(PAUSE);system(CLS);break; case 3:Addstudent();printf(n); system(PA

14、USE);system(CLS); break;case 4:searchmenu();printf(n);system(PAUSE);system(CLS);break;case 5:modify();printf(n);system(PAUSE);system(CLS);break;case 6:sclsearch();printf(n); system(PAUSE);system(CLS); break;case 0:exit(0);default: ;return 0;void save()FILE *fp;if (fp=fopen(stu.dat,wb)=NULL)/*以只写的方式打

15、开文件*/printf(无法打开文件!n);return ;for(i=0;in;i+)if (fwrite (&studi,sizeof(struct student),1,fp)!=1)/*写入字节为1的信息在文件中*/printf(文件写入错误!n);fclose(fp);/*关闭文件*/void input()/录入学生成绩int i;char a;for(i=0;in;i+) printf(n 请输入学生成绩信息:n); printf(n请依次输入 学号、姓名、c语言成绩:n); scanf(%d%s%f,&studi.num,studi.name,&studi.score0); p

16、rintf(输入:y(继续),n(终止)!n);fflush(stdin);scanf(%c,&a);if(a=n | a=N)break;n=i+1;void Addstudent() FILE *fp;struct student s;fp=fopen(stu.dat,ab); if(fp=fopen(stu.dat,ab)=NULL) printf(File open error!n); else printf(请输入所增加学生的 学号 姓名 c语言成绩:n);scanf(%d,&s.num ); scanf(%s,s.name);scanf(%f,&s.score0);fwrite (

17、&s,sizeof(struct student),1,fp);fclose(fp);/*关闭文件*/printf(写入成功!n); /end function Addstudent;void output()int i;/float s;FILE *fp; if(fp=fopen(stu.dat,rb)=NULL)printf(cannot open filen);exit(0);printf(n学号 姓名 c语言成绩n);for(i=0;fread(&studi,sizeof(struct student),1,fp)=1;i+)printf(%d %10s % 10.2fn,studi.

18、num,studi.name,studi.score0);fclose(fp);n=i;void modify() int number,i;printf(请输入要修改信息的学生学号:); scanf(%d,&number); for(i=0;in;i+)if(number=studi.num) break;/*查找判断*/ if(in)/*查找判断*/ printf(请输入修改后的学生的信息:);printf(n请输入学生的c语言成绩:); scanf(%f,&studi.score0); save();else printf(没找到该学生的信息n); system(paues);syste

19、m(cls);void namecheck(void);void scorecheck(void);void searchmenu()printf( * 欢迎进入学生成绩查询系统 * n);printf(* 1-按姓名查询成绩 * n);printf(* 2-按学号查询成绩 * n);printf(* 3-返回上一层 * n);printf(* 4-退出 * n);printf( * n);printf( 请输入相应菜单编号: );int m;scanf(%d,&m);switch(m)case 1: namecheck(); printf(n); system(PAUSE); system(

20、CLS); break;case 2: scorecheck(); printf(n); system(PAUSE); system(CLS); break;case 3: main();break;case 4: exit(0); break;void namecheck() char name10;printf(按照姓名查询请按n);printf(n请输入姓名:);scanf(%s,&name);printf(查询结果n);printf(学号 姓名 c语言成绩n);if(strcpy(studi.name,name)printf(%d %s %.2fn,studi.num,studi.na

21、me,studi.score0);void scorecheck()int b;printf(按照学号查询请按n);printf(n请输入学号:);scanf(%d,&b);printf(查询结果n);printf(学号 姓名 c语言成绩n);for(i=0;in;i+)if(studi.num =b)printf(%d %s %.2fn,studi.num,studi.name,studi.score0);void sclsearch()int i;printf(90分以上:n); printf(学号 姓名 c语言成绩n);for(i=0;i=90) printf(%d %s %.2fn,s

22、tudi.num,studi.name,studi.score0);printf(8089:n); printf(学号 姓名 c语言成绩n);for(i=0;i=80&studi.score090) printf(%d %s %.2fn,studi.num,studi.name,studi.score0);printf(7079:n); printf(学号 姓名 c语言成绩n);for(i=0;i=70&studi.score080) printf(%d %s %.2fn,studi.num,studi.name,studi.score0);printf(6069:n); printf(学号

23、姓名 c语言成绩n);for(i=0;i=60&studi.score070) printf(%d %s %.2fn,studi.num,studi.name,studi.score0);printf(60分以下:n); printf(学号 姓名 c语言成绩n);for(i=0;in;i+)if(studi.score060) printf(%d %s %.2fn,studi.num,studi.name,studi.score0);(1)系统以菜单方式工作(2)学生成绩录入(3)显示所有学生成绩(4)查询学生成绩按姓名查询按学号查询(5)修改学生成绩(6)按分数段显示学生成绩四、调试与测试我

24、在调试我编写的程序当中出现了很多问题,比如,按姓名查询学生成绩中if(strcpy(studi.name,name),开始我写成了studi.name=name,怎么改都有错误,无奈之下请教了同学,最后在同学的帮助下改对了,原来这需要使用strcpy函数才能实现。可以说出的问题还是蛮多的。好不容易改对了一个,有出现了新的错误,就是输入姓名后,所有学生的成绩都显示了,还把其他学生的姓名改成了我输入的那个,最后人真的检查了一遍才发现多谢了一条语句for(i=0;in;i+)。这些问题还是给我留下了很深的映象,也提醒了我基础知识不踏实的警钟。五、结语通过一周C语言课程设计,不仅使我们更加牢固地掌握了

25、程序设计的知识,也让自己深刻的认识到自己的不足与缺点,有许多知识都存在不是完全了解及掌握,这一系列的问题通过自己上机操作已经减少了很多。这我明白光靠书本上学习的和老师讲的是不够,有许多知识是需要我们去实践才能学到的(比如:在调试的过程中我发现自己在编程这方面的缺点与不足)这不断完善了自己,也不断丰富了自己对于C语言的了解和掌握。而且这让自己明白和体会到了C语言其实具有语句简洁,使用灵活,执行效率高等特点。与此同时,还让我明白了不懂就问的重要性。现在的我们总是太过于要面子,羞于问别人,总觉得这个问题会不会太白痴了,别人会不会嘲笑我。其实这些只是我们自己想太多了而已,老师和同学都很热情的,他们都很乐意教我们的。有团队合作的精神也非常的重要,有些问题光靠自己力量做太过于单薄,团队合作显得尤为重要。在这次合作中,我从同伴身上学到了很多自己身上缺少的优点,比如细心,我做事有些太过于粗心,总是在一些小的地方不够认真,使程序出现了许多的小错误,幸好在同伴的帮助顺利的解决了这些问题。总之,上机的实训可以让我们通过实际操作,更加深刻的学会 C语言程序编程的基本步骤、基本方法。也增强了自己的动手与实践能力。希望以后多一些这样的实训,让我不断地提高。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 单元课程

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com