学生成绩记录簿簿设计

上传人:痛*** 文档编号:99368848 上传时间:2022-05-31 格式:DOC 页数:30 大小:214KB
收藏 版权申诉 举报 下载
学生成绩记录簿簿设计_第1页
第1页 / 共30页
学生成绩记录簿簿设计_第2页
第2页 / 共30页
学生成绩记录簿簿设计_第3页
第3页 / 共30页
资源描述:

《学生成绩记录簿簿设计》由会员分享,可在线阅读,更多相关《学生成绩记录簿簿设计(30页珍藏版)》请在装配图网上搜索。

1、word课程设计大作业报告课程名称: 程序设计根底 设计题目:学生成绩记录簿设计院 系: 信息技术学院 班 级:xx设 计 者:xx学 号:xx指导教师:xx设计时间:xx信息技术学院某某学院课程设计大作业任务书姓 名:xx院系:信息技术学院专 业:计算机科学与技术学 号:xx任务起止日期:xx课程设计题目:学生成绩记录簿课程设计要求:编制一个C语言成绩记录簿,每个学生信息包括:学号、某某、C语言成绩。具体功能:1 系统以菜单方式工作;2. 创建学生成绩信息并以磁盘文件保存;3. 读取磁盘文件并显示输出所有学生的成绩;4. 查询学生成绩;1按学号查询成绩;2学号某某查询成绩;5修改指定某某或学

2、号的学生的成绩并可存盘;6显示输出60分以下、6079、8089、90分以上各分数段的学生信息。工作计划与安排:星期一:教师的大概讲解与主函数、目录函数的编写和调试;星期二:创建学生信息、输出学生信息和修改学生信息的函数编写与调试;星期三:学生信息查询、学生成绩分段和学生成绩排序的函数编写与调试;星期四:整个函数的最终调试,课程设计大作业报告的书写;星期五:辩论。指导教师签字年 月 日 课程设计大作业成绩学号:xx某某:xx 指导教师:xx课程设计题目: 学生成绩记录簿设计总结: 通过这次的课程设计,增加了我对学习C语言学习的兴趣,虽然还不是真正的明白所有的C语言的子函数和里面的一些逻辑顺序,

3、但我从C语言这门课程开始,已经发现程序设计的乐趣,在学习C语言的过程中也学到了许多计算机应用根底知识,对计算机的运行也有一个大体的了解。这次课程设计经过教师的讲解,自己的查找,在网上的搜索,实现题目上的要求,先做出一些简单的函数和程序,一步步的在做出其它的内容,不过在实际操作过程中犯得一些错误也还是会得到一些意外的收获。在具体的操作中,对这学期的C语言的理论知识得到巩固,在设计的过程中也发现自己的不足之处,在以后的学习和上机的操作中会更加注意,同时体会到C语言的简洁和灵活。在上机操作中我们的任何不懂的问题都会暴露出来,对于我们来说是是件好事,在课程设计的过程中特别是对数组和循环有了深刻的理解。

4、通过实际的操作,学会C语言程序编程的根本步骤、根本方法,开发了自己的逻辑思维能力,培养了分析问题,解决问题的能力。指导教师评语:成绩:填表时间:指导教师签名:目录一问题的定义5二、需求分析5三、总体设计5四、详细设计6五、调试与测试30六、结语30一问题的定义编制一个C语言成绩记录簿,每个学生信息包括:学号、某某、C语言成绩。要求:1.数据存储采用文件形式。3.功能完善,适当注释4.模块化设计、结构化编程二、需求分析系统能实现以下主要功能:1系统以菜单方式工作2. 创建学生成绩信息并以磁盘文件保存;3. 读取磁盘文件并显示输出所有学生的成绩;4. 查询学生成绩1按学号查询成绩2学号某某查询成绩

5、4添加成绩记录;5修改指定某某或学号的学生的成绩并可存盘;6显示输出60分以下、6079、8089、90分以上各分数段的学生信息。三、总体设计根据系统的要求,系统总体设计如图1所示。学生成绩记录簿创建学生信息学生成绩排名退出成绩记录簿学生成绩分段查询学生信息修改学生成绩输出学生信息按学号修改按某某修改按学号查询按某某查询60分以下8089分90分以上6079分图1 系统总体结构四、详细设计该局部主要包括:数据结构设计、函数设计包括函数原型、算法思想、流程描述、代码设计与程序运行结果显示。(一) 学生成绩数据结构设计#include#include#includeint i,j,k,y;FILE

6、 *fp;Structstuint no;char name30;float cscore;long a;struct stu s100;(二) 函数设计1. 主函数main()允许用户通过菜单进展功能选择,使用相应的功能代码来调用对应的函数功能。2. 其他各功能函数(1) 学生成绩信息录入函数void input()算法思想:依次录入结构体数组中所包含的各个成员;直到输入的结构体成员某某息全部为0,数据输入完毕;返回实际录入的学生成绩信息数。(2) 将学生成绩信息输出为void output()算法思想:定义结构体变量的指针变量;输出所输入的全部信息,假如不能输出信息给出提示信息;将文件中的

7、信息依次读出,最后结构体的指针为NULL。(3)从文件中修改学生成绩信息void modify()算法思想:定义指向结构体变量的指针和指向文件的指针;修改方式分为两种学号和某某,选择是给出相应的信息;将修改后的信息保存,并提示。3. 流程描述1菜单函数int fun()int n;system(cls);printf(nntttt 成绩记录薄);printf(nnttt);for(i=0;i33;i+)printf(*);printf(n); printf(ttt *菜单*n);printf(ttt* 1、创建学生的信息! t*n);printf(ttt* 2、输出所有学生的信息! t*n);

8、printf(ttt* 3、修改成绩! t*n);printf(ttt* 4、查询! t*n);printf(ttt* 5、显示成绩分段的学生信息!t*n);printf(ttt* 6、学生成绩排名! t*n);printf(ttt* 7、退出成绩记录薄! t*n);printf(ttt);for(i=0;i33;i+)printf(*);printf(nn);printf(nttt 请输入选项:);scanf(%d,&n);return n;(2) 学生成绩信息录入函数void input()system(cls);i=0;fp=fopen(out.dat,w);printf(请以0作为输入

9、学生学号信息的完毕!n);do printf(输入学生的学号:);scanf(%d,&si.no);printf(输入学生的某某:);scanf(%s,si.name);printf(输入学生的C语言成绩:);scanf(%f,&si.cscore);printf(输入添加成绩的时间:);scanf(%ld,&si.a);if(si.no!=0)fprintf(fp,%d %-4s %.1f %ldn,si.no,si.name,si.cscore,si.a);while(si.no!=0);fclose(fp);void output() /学生全部信息输出if(fp=fopen(out.d

10、at,r)=NULL)printf(Cannot open the file!n);printf(ttt全部的学生信息:n); k=0;while(fscanf(fp,%d%s%f%ld,&sk.no,sk.name,&sk.cscore,&sk.a)!=EOF)printf(ttt%dt%st%.1ft%ldn,sk.no,sk.name,sk.cscore,sk.a);k+;fclose(fp);3学生信息输出函数void output()if(fp=fopen(out.dat,r)=NULL)printf(Cannot open the file!n);printf(ttt全部的学生信息

11、:n); k=0;while(fscanf(fp,%d%s%f%ld,&sk.no,sk.name,&sk.cscore,&sk.a)!=EOF)printf(ttt%dt%st%.1ft%ldn,sk.no,sk.name,sk.cscore,sk.a);k+;fclose(fp);4修改学生信息函数void modify()char st30;int x,num;float nu;long h;k=0;system(cls);if(fp=fopen(out.dat,r)=NULL)printf(Cannot open the file!n);return;while(fscanf(fp,%

12、d%s%f%ld,&sk.no,sk.name,&sk.cscore,&sk.a)!=EOF)k+;fclose(fp);printf(输入1表示用学号修改,输入2表示用某某修改!请选择:n);scanf(%d,&x);if(x=1)printf(请输入修改成绩人的学号:);scanf(%d,&num);for(i=0;ik;i+)if(num=si.no)printf(请输入修改的成绩:n);scanf(%f,&nu);si.cscore=nu;printf(请输入修改的时间:n);scanf(%ld,&h);si.a=h;fp=fopen(out.dat,w);for(i=0;ik;i+)

13、fprintf(fp,%d %s %.1f %ldn,si.no,si.name,si.cscore,si.a);fclose(fp);printf(修改成功n);return;printf(没有找到该生的信息!n);return;if(x=2)printf(请输入修改成绩人的某某:);scanf(%s,st);for(i=0;ik;i+)if(strcmp(si.name,st)=0)printf(请输入修改的成绩:n);scanf(%f,&nu);si.cscore=nu;printf(请输入修改成绩的时间:n);scanf(%ld,&h);si.a=h;fp=fopen(out.dat,

14、w);for(i=0;ik;i+)fprintf(fp,%d %s %.1f %ldn,si.no,si.name,si.cscore,si.a);fclose(fp);printf(修改成功n);return;printf(没有找到该生的信息!n);return;(5) 代码设计和执行结果1. 头文件Structstuint no;/*学号*/char name30; /*某某*/ float cscore; /*成绩*/long a; /*时间*/;struct stu s100;/*以下是函数原型*/ void input() /*输入记录*/void output()/*输出记录*/v

15、oid modify()/*修改记录*/2.源程序代码与运行结果#include#include#includeint i,j,k,y;FILE *fp;struct stu /结构体函数的定义int no;char name30;float cscore;long a;struct stu s100;int fun() /目录函数int n;system(cls);printf(nntttt 成绩记录薄);printf(nnttt);for(i=0;i33;i+)printf(*);printf(n); printf(ttt *菜单*n);printf(ttt* 1、创建学生的信息! t*n

16、);printf(ttt* 2、输出所有学生的信息! t*n);printf(ttt* 3、修改成绩! t*n);printf(ttt* 4、查询! t*n);printf(ttt* 5、显示成绩分段的学生信息!t*n);printf(ttt* 6、学生成绩排名! t*n);printf(ttt* 7、退出成绩记录薄! t*n);printf(ttt);for(i=0;i33;i+)printf(*);printf(nn);printf(nttt 请输入选项:);scanf(%d,&n);return n;void input() /输入学生的学号、某某、成绩信息system(cls);i=0

17、;fp=fopen(out.dat,w);printf(请以0作为输入学生学号信息的完毕!n);do printf(输入学生的学号:);scanf(%d,&si.no);printf(输入学生的某某:);scanf(%s,si.name);printf(输入学生的C语言成绩:);scanf(%f,&si.cscore);printf(输入添加成绩的时间:);scanf(%ld,&si.a);if(si.no!=0)fprintf(fp,%d%-4s%.1f%ldn,si.no,si.name,si.cscore,si.a);while(si.no!=0);fclose(fp);void out

18、put()/学生全部信息输出if(fp=fopen(out.dat,r)=NULL)printf(Cannot open the file!n);printf(ttt全部的学生信息:n); k=0;while(fscanf(fp,%d%s%f%ld,&sk.no,sk.name,&sk.cscore,&sk.a)!=EOF)printf(ttt%dt%st%.1ft%ldn,sk.no,sk.name,sk.cscore,sk.a);k+;fclose(fp);void modify() /修改学生信息char st30;int x,num;float nu;long h;k=0;system

19、(cls);if(fp=fopen(out.dat,r)=NULL)printf(Cannot open the file!n);return;while(fscanf(fp,%d%s%f%ld,&sk.no,sk.name,&sk.cscore,&sk.a)!=EOF)k+;fclose(fp);printf(输入1表示用学号修改,输入2表示用某某修改!请选择:n);scanf(%d,&x);if(x=1)printf(请输入修改成绩人的学号:);scanf(%d,&num);for(i=0;ik;i+)if(num=si.no)printf(请输入修改的成绩:n);scanf(%f,&nu

20、);si.cscore=nu;printf(请输入修改的时间:n);scanf(%ld,&h);si.a=h;fp=fopen(out.dat,w);for(i=0;ik;i+)fprintf(fp,%d%s%.1f%ldn,si.no,si.name,si.cscore,si.a);fclose(fp);printf(修改成功n);return;printf(没有找到该生的信息!n);return;if(x=2)printf(请输入修改成绩人的某某:);scanf(%s,st);for(i=0;ik;i+)if(strcmp(si.name,st)=0)printf(请输入修改的成绩:n);

21、scanf(%f,&nu);si.cscore=nu;printf(请输入修改成绩的时间:n);scanf(%ld,&h);si.a=h;fp=fopen(out.dat,w);for(i=0;ik;i+)fprintf(fp,%d %s %.1f %ldn,si.no,si.name,si.cscore,si.a);fclose(fp);printf(修改成功n);return;printf(没有找到该生的信息!n);return;void lookat() /学生信息查询char st30;int x,num;k=0;system(cls);if(fp=fopen(out.dat,r)=N

22、ULL)printf(Cannot open the file!n);return;while(fscanf(fp,%d%s%f%ld,&sk.no,sk.name,&sk.cscore,&sk.a)!=EOF)k+;printf(输入1表示用学号查询,输入2表示用某某查询!请选择:n);scanf(%d,&x);if(x=1)printf(请输入查询的学号:);scanf(%d,&num);for(i=0;ik;i+)if(num=si.no)printf(%d%s%.1f%ldn,si.no,si.name,si.cscore,si.a);return;printf(对不起,找不到该生!n

23、);return;if(x=2)printf(请输入查询的某某:);scanf(%s,st);for(i=0;ik;i+)if(strcmp(si.name,st)=0)printf(%d%s%.1f%ldn,si.no,si.name,si.cscore,si.a);return;printf(对不起,找不到该生!n);void subsection() /学生成绩分段system(cls);k=0;if(fp=fopen(out.dat,r)=NULL)printf(Cannot open the file!n);while(fscanf(fp,%d%s%f%ld,&sk.no,sk.na

24、me,&sk.cscore,&sk.a)!=EOF)k+;printf(ttt 90分以上学生的信息!n);for(i=0;i=90)printf(ttt%d%s%.1f%ldn,si.no,si.name,si.cscore,si.a);printf(nn);printf(ttt 80到89分学生的信息!n);for(i=0;ik;i+)if(si.cscore=80)printf(ttt%d%s%.1f%ldn,si.no,si.name,si.cscore,si.a);printf(nn);printf(ttt 60到79分学生的信息!n);for(i=0;i=60&si.cscore8

25、0)printf(ttt%d%s%.1f%ldn,si.no,si.name,si.cscore,si.a);printf(nn);printf(ttt 60分以下学生的信息!n);for(i=0;ik;i+)if(si.cscore60)printf(ttt%d%s%.1f%ldn,si.no,si.name,si.cscore,si.a);printf(nn);void rank() /成绩的排序struct stu t;k=0;system(cls);if(fp=fopen(out.dat,r)=NULL)printf(Cannot open the file!n);while(fsca

26、nf(fp,%d%s%f%ld,&sk.no,sk.name,&sk.cscore,&sk.a)!=EOF)k+;for(i=0;ik;i+)for(j=i+1;jk+1;j+)if(si.cscoresj.cscore)t=si;si=sj;sj=t;for(i=0;ik;i+)printf(ttt第%d名%d %-4s %.1f %ldn,i+1,si.no,si.name,si.cscore,si.a);void choose(int n) /目录的选项system(cls);switch(n)case 1:input();printf(nnnnttt是否返回?输入1表返回,输入2表退出

27、!n);scanf(%d,&y);if(y=1)choose(fun();break;case 2:output();printf(nnnnttt是否返回?输入1表返回,输入2表退出!n);scanf(%d,&y);if(y=1)choose(fun();break;case 3:modify();printf(nnnnttt是否返回?输入1表返回,输入2表退出!n);scanf(%d,&y);if(y=1)choose(fun();break;case 4:lookat();printf(nnnnttt是否返回?输入1表返回,输入2表退出!n);scanf(%d,&y);if(y=1)cho

28、ose(fun();break;case 5:subsection();printf(nnnnttt是否返回?输入1表返回,输入2表退出!n);scanf(%d,&y);if(y=1)choose(fun();break;case 6:rank();printf(nnnnttt是否返回?输入1表返回,输入2表退出!n);scanf(%d,&y);if(y=1)choose(fun();break;case 7:exit(0);break;default:printf(nnttt 输入没有的选项,请重新输入!n);choose(fun();void main() /主函数int n;system

29、(cls);n=fun();choose(n);执行结果如下列图:1菜单2创建学生信息3退出创建学生信息4输出全部的学生信息5用学号修改学生信息6用某某修改学生信息7没有找到该学生的信息8以开始输入的学生信息作比照五、调试与测试起初,我们在运行程序的时候,程序根本上都能运行,并且也都可以达到一些根本的要求,但是在我们做完一项需求的时候,该程序并不能返回到菜单就直接完毕了,当再次打开该程序的时候,以前输入的信息都保存了。开始时,我们以为只是每个程序后面的exit(0);影响了程序不能循环执行,但是当我们把它全部都改为return;的时候,该程序依然不能循环使用。而在我们与其他程序比照的时候发现,

30、有些程序使用了choose(fun();并且这些程序能够循环使用,于是我们就在我们设计的程序中仿照其他的程序使用了choose(fun();,最终我们的整个程序能够按照题目要求完美运行了。六、结语通过这次的课程设计,增加了我对学习C语言学习的兴趣,虽然还不是真正的明白所有的C语言的子函数和里面的一些逻辑顺序,但我从C语言这门课程开始,已经发现程序设计的乐趣,在学习C语言的过程中也学到了许多计算机应用根底知识,对计算机的运行也有一个大体的了解。这次课程设计经过教师的讲解,自己的查找,在网上的搜索,实现题目上的要求,先做出一些简单的函数和程序,一步步的在做出其它的内容,不过在实际操作过程中犯得一些错误也还是会得到一些意外的收获。在具体的操作中,对这学期的C语言的理论知识得到巩固,在设计的过程中也发现自己的不足之处,在以后的学习和上机的操作中会更加注意,同时体会到C语言的简洁和灵活。在上机操作中我们的任何不懂的问题都会暴露出来,对于我们来说是是件好事,在课程设计的过程中特别是对数组和循环有了深刻的理解。通过实际的操作,学会C语言程序编程的根本步骤、根本方法,开发了自己的逻辑思维能力,培养了分析问题,解决问题的能力。30 / 30

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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