版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、实用文档1 观孝隠KUNMING UNIVERSITY文案大全课程设计(大作业)报告设计r题目学生成绩记录簿设计院系:信息技术学院班级:XX设计者:XX学号:XX指导教师:XX设计r时间:XX程序设计基础课程名称:技术学院昆明学院课程设计(大作业)任务书院(系):信息技术学院学 号:xx姓 名:xx专 业:计算机科学与技术任务起止日期:xx 课程设计题目:学生成绩记录簿课程设计要求:编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。具体功能:1. 系统以菜单方式工作;2. 创建学生成绩信息并以磁盘文件保存;3. 读取磁盘文件并显示输出所有学生的成绩;4. 查询学生成绩;(1)
2、按学号查询成绩;(2)学号姓名查询成绩;5. 修改指定姓名或学号的学生的成绩并可存盘;6. 显示输出60分以下、6079 8089、90分以上各分数段的学生信息。工作计划及安排:星期一:老师的大概讲解及主函数、目录函数的编写和调试;星期二:创建学生信息、输出学生信息和修改学生信息的函数编写及调试; 星期三:学生信息查询、学生成绩分段和学生成绩排序的函数编写及调试;星期四:整个函数的最终调试,课程设计(大作业)报告的书写;星期五:答辩。指导教师签字课程设计(大作业)成绩学号:XX姓名:XX指导教师:XX课程设计题目:学生成绩记录簿设计总结:通过这次的课程设计,增加了我对学习C语言学习的兴趣,虽然
3、还不是真正 的明白所有的C语言的子函数和里面的一些逻辑顺序,但我从C语言这门课程开 始,已经发现程序设计的乐趣,在学习C语言的过程中也学到了许多计算机应用 基础知识,对计算机的运行也有一个大体的了解。这次课程设计经过老师的讲解, 自己的查找,在网上的搜索,实现题目上的要求,先做出一些简单的函数和程序, 一步步的在做出其它的内容,不过在实际操作过程中犯得一些错误也还是会得到 一些意外的收获。在具体的操作中,对这学期的C语言的理论知识得到巩固,在 设计的过程中也发现自己的不足之处,在以后的学习和上机的操作中会更加注 意,同时体会到C语言的简洁和灵活。在上机操作中我们的任何不懂的问题都会 暴露出来,
4、对于我们来说是是件好事,在课程设计的过程中特别是对数组和循环 有了深刻的理解。通过实际的操作,学会C语言程序编程的基本步骤、基本方法, 开发了自己的逻辑思维能力,培养了分析问题,解决问题的能力。指导教师评语:成绩:填表时间:指导教师签名:目录问题的定义、需求分析、总体设计3131四、详细设计五、调试与测试六、结语问题的定义编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。 要求:1. 数据存储采用文件形式。2. 标准的 C 语言输入输出3. 功能完善,适当注释4. 模块化设计、结构化编程二、需求分析系统能实现以下主要功能:1系统以菜单方式工作2. 创建学生成绩信息并以磁盘文件
5、保存;3. 读取磁盘文件并显示输出所有学生的成绩;4. 查询学生成绩(1)按学号查询成绩(2)学号姓名查询成绩4添加成绩记录;5修改指定姓名或学号的学生的成绩并可存盘;6显示输出 60 分以下、 6079、8089、90 分以上各分数段的学生信息。、总体设计根据系统的要求,系统总体设计如图 1 所示。图1系统总体结构四、详细设计(包括函数原型、算法思想、流程描述)该部分主要包括:数据结构设计、函数设计 代码设计及程序运行结果显示。(一)学生成绩数据结构设计#in cludevstdio.h#in cludevstdlib.h#in cludevstri ng.hint i,j,k,y;FILE
6、 *fp;Struct stuint no;char n ame30;float cscore;long a;struct stu s100;(二)函数设计1. 主函数ma in ()允许用户通过菜单进行功能选择,使用相应的功能代码来调用对应的函数功能。2. 其他各功能函数(1) 学生成绩信息录入函数void inp ut()算法思想: 依次录入结构体数组中所包含的各个成员; 直到输入的结构体成员中信息全部为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);print
8、f(ttt* 2、输出所有学生的信息!t*n);printf(ttt* 3、修改成绩!t*n);printf(ttt* 4、查询!t*n);printf(ttt* 5、显示成绩分段的学生信息! t*nprintf(ttt* 6、学生成绩排名!t*n);printf(ttt* 7、退出成绩记录薄!t*n);printf(ttt);Hfor(i=0;i33;i+)printf(*);printf(nn);printf(nttt请输入选项: );scanf(%d,&n);return n;(2) 学生成绩信息录入函数void input()system(cls);i=0;fp=fopen(out.d
9、at,w);printf(do请以 0 作为输入学生学号信息的结束! n);printf( 输入学生的学号: ); scanf(%d,&si.no);printf( 输入学生的姓名: ); scanf(%s,);printf( 输入学生的 C 语言成绩: ); scanf(%f,&si.cscore);printf( 输入添加成绩的时间: ); scanf(%ld,&si.a);if(si.no!=0)fprintf(fp,%d %-4s %.1f %ldn,si.no,,si.cscore,si.a); while(si.no!=0);fclose(fp); vo
10、id output() if(fp=fopen(out.dat,r)=NULL) printf(Cannot open the file!n);/学生全部信息输出printf(tttk=0;while(fscanf(fp,%d%s%f%ld,&sk.no,,&sk.cscore,&sk.a)!=EOF) printf(ttt%dt%st%.1ft%ldn,sk.no,,sk.cscore,sk.a);k+;fclose(fp);全部的学生信息: n);(3)学生信息输出函数void output()if(fp=fopen(out.dat,r)=NULL)printf
11、(Cannot open the file!n);全部的学生信息: n);printf(tttk=0;while(fscanf(fp,%d%s%f%ld,&sk.no,,&sk.cscore,&sk.a)!=EOF) printf(ttt%dt%st%.1ft%ldn,sk.no,,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(Ca
12、nnot open the file!n); return; while(fscanf(fp,%d%s%f%ld,&sk.no,,&sk.cscore,&sk.a)!=EOF) k+; fclose(fp);printf( 输入 1 表示用学号修改,输入 scanf(%d,&x);if(x=1)printf( 请输入修改成绩人的学号: for(i=0;ik;i+)if(num=si.no)printf( 请输入修改的成绩: scanf(%f,&nu);2 表示用姓名修改!请选择: n););scanf(%d,&num);n);si.cscore=nu;printf( 请输入修改的
13、时间: 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.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(,st)=0)printf( 请输入修改的成绩: n);scanf(%f,&nu);
14、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.cscore,si.a); fclose(fp);printf( 修改成功 n);return;printf( 没有找到该生的信息! n); return;(5) 代码设计和执行结果1. 头文件Struct stuint no;/* 学号 */char name30; /* 姓名 */ float cscore; /*成绩 */
15、long a; /* 时间 */;struct stu s100;/* 以下是函数原型 */void input() /*输入记录 */void output()/*输出记录 */void modify()/*修改记录 */2. 源程序代码与运行结果#include #include #include int 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成绩记录薄
16、 );printf(nnttt);for(i=0;i33;i+)printf(*);printf(n);printf(ttt*菜单*n);printf(ttt*1、创建学生的信息!t*n);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);pri
17、ntf(nttt请输入选项: );scanf(%d,&n);return n;void input()/ 输入学生的学号、姓名、成绩信息system(cls);i=0;fp=fopen(out.dat,w);printf( 请以 0 作为输入学生学号信息的结束! n);doprintf( 输入学生的学号: );scanf(%d,&si.no);printf( 输入学生的姓名: );scanf(%s,);printf( 输入学生的 C 语言成绩: );scanf(%f,&si.cscore);printf( 输入添加成绩的时间: );scanf(%ld,&si.a);if(si.n
18、o!=0)fprintf(fp,%d%-4s%.1f%ldn,si.no,,si.cscore,si.a);while(si.no!=0);fclose(fp);void output()/ / 学生全部信息输出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.c score,&sk.a)!=EOF)printf(ttt%dt%st%.1ft%ldn,sk.no,sk.na
19、me,s k.cscore,sk.a);k+;fclose(fp);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,%d%s%f%ld,&sk.no,,&sk.c score,&sk.a)!=EOF)k+;fclose(fp);printf( 输入 1 表示用学号修改,输入 2 表示用姓名修改!请选择: n);scanf(
20、%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+)fprintf(fp,%d%s%.1f%ldn,si.no,,si.cscore,si.a);fclose(fp);printf( 修改成功 n);return;printf(
21、没有找到该生的信息! n);return;if(x=2)printf( 请输入修改成绩人的姓名: );scanf(%s,st);for(i=0;ik;i+) if(strcmp(,st)=0)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+)fprintf(fp,%d %s %.1f %ldn,si.no,,si.cscore,si.a);fclose(fp)
22、;printf( 修改成功 n);return;printf( 没有找到该生的信息! n);return;void lookat()/ 学生信息查询char st30;int x,num;k=0;system(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.c score,&sk.a)!=EOF) k+;printf( 输入 1 表示用学号查询,输入 2 表示用姓名查询!请选择: n);scanf(%d,&x);
23、if(x=1)printf( 请输入查询的学号: );scanf(%d,&num);for(i=0;ik;i+) if(num=si.no)printf(%d%s%.1f%ldn,si.no,,si.cscore,si.a);return;printf( 对不起,找不到该生! n);return;if(x=2) printf( 请输入查询的姓名: );scanf(%s,st);for(i=0;ik;i+) if(strcmp(,st)=0)printf(%d%s%.1f%ldn,si.no,,si.cscore,si.a);return;printf(
24、 对不起,找不到该生! 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.c score,&sk.a)!=EOF)k+;printf(ttt 90分以上学生的信息 !n);for(i=0;i=90)printf(ttt%d%s%.1f%ldn,si.no,,si.cscore,si.a);printf(nn);printf(ttt
25、80到 89 分学生的信息 !n);for(i=0;ik;i+)if(si.cscore=80)printf(ttt%d%s%.1f%ldn,si.no,,si.cscore,si.a);printf(nn);printf(ttt 60到 79 分学生的信息 !n);for(i=0;i=60&si.cscore80)printf(ttt%d%s%.1f%ldn,si.no,,si.cscore,si.a);printf(nn);printf(ttt 60分以下学生的信息 !n);for(i=0;ik;i+)if(si.cscore60)printf(ttt%d%s%
26、.1f%ldn,si.no,,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(fscanf(fp,%d%s%f%ld,&sk.no,,&sk.c score,&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;%d
27、for(i=0;ik;i+)名 %d %-4sprintf(ttt%.1f %ldn,i+1,si.no,,si.cscore,si.a);void choose(int n)/目录的选项system(cls);switch(n)case 1:input();printf(nnnnttt是否返回?输入表返回,文案大全输入 2表退出! n);scanf(%d,&y);if(y=1)choose(fun();break;case 2:output();printf(nnnnttt是否返回?输入表返回,输入 2表退出! n);scanf(%d,&y);if(y=1)choose(fun
28、();break;case 3:modify();printf(nnnnttt是否返回?输入表返回,输入 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)choose(fun();break;case 5:subsection();printf(nnnnttt是否返回?输入1 表返回,输入 2表退出! n);scanf(%d,&y);if(y=1)choose(fun();break;case 6:
29、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(cls);n=fun();choose(n);执行结果如图所示:1) 菜单盂C:LOCOIEHTS AND SETTIflGSIiniJ面lucimbii叭ub meBSD成绩记录薄Z,3、JtKKM KKM KKKMK 菜単_M
30、KMM MKM KKW1.创建芋生的信息 嬲巔誉的信息I 查閒I显T成绩分S的学生信息I 学生咸绩专諾!退出成绩总录薄!请输入选项:.cT *C:DOCOIEITS ARD SETTIflCSIIDl面让(A恥Im貞uc.埔的的的成的的的成的的的成的的的成yyl/ITlqq办甘甘勺力些勺力目些勺力 以入入入入入入入入入入入入入入入入学i绩生;成卄2管鑫的更名託的号鲁的号名託的 船于姓确睾姓帘範于姓襦華姓帘绩0QU(2) 创建学生信息(3) 退出创建学生信息实用文档ILJ(4) 输出全部的学生信息CA *C:DOCDIESTS ABD SETTIIGSEini面IccVJebti叭ub Me制:
31、r学生i言昌1234I戸卮、;11wn耐 chen song77.06卫59.081.02013201320132013是否饭回?输入1表饭回,输入2表退岀I文案大全(5) 用学号修改学生信息实用文档(6) 用姓名修改学生信息頁C:DOCTIIEHTS AID SETTIHGSKini桌面ccDebiiecc. eie输入i表示用学号傢改,苛扎2表灵用姓W 佟茂!请选F&2輙镰翳姓名-请输入修改成绩的吋间;2Q13修改成功是否返回?输入丄表返回,输入2表退出!(7 )没有找到该学生的信息空 C:DOCniEITS AID SEITIICSKini面讥 输入i表示用学号修改,肩A2表示用姓宕修改!请选择乂
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 营养素补充剂的市场前景与监管-洞察分析
- 网络时代的文化传播路径-洞察分析
- 图像处理与排版协同优化-洞察分析
- 异常流量监测与识别-洞察分析
- 《临江仙》(梦后楼台高锁)课件
- 人际关系与沟通风格-组织行为学课件
- 办公环境中的创新教育实践与思考
- 办公环境下的学生运动团队建设与组织
- 企业中层管理岗位的工作规划与管理执行
- 企业员工子女教育的政策支持
- 阿托品化课件
- 《休闲学概论》课后习题参考答案
- (新版教材)苏教版三年级上册科学全册单元测试卷
- 刚晓观所缘缘论略讲
- 双桥静力触探分层统计及承载力表0421
- 八卦五行-PPT课件
- ISO8573-2测定悬浮状油含量的试验方法学习资料
- 薪酬管理试卷及答案
- 大学无机及分析化学----气体练习题及答案
- 保险行业新会计准则实施指南征求意见稿
- 形式发票模板 PI模板 英文版
评论
0/150
提交评论