




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、学生成绩管理系统课程设计报告 编写人: 吕迷 同组成员: 刘帅 (课程设计负责人) 安安 安穿 杨六 完成日期: 2013年12月10日 辅导教师: 刘欢 批阅日期: 2013 分数: 100 一、组员分工刘帅负责系统的整体设计,提出了程序的模块划分。杨六负责系统所需的程序整理,帮助大家重新温习了c语言中的相应知识点.安安负责用适当的c语言把程序的功能表达出来安穿负责程序代码的注析吕迷负责程序代码的检测、最后的数据实验和设计报告的书写二、功能描述用C语言实现系统对学生成绩信息包括:学号,姓名,三门课程成绩(数学、英语和计算机)等进行设计管理。(1) 对学生信息(学号,姓名,三门课程成绩)的输入
2、、输出.(2)计算各个学生的总分及平均分,并按平均分排出名次.(3)统计全班学生平均分成绩,输出60分以下、6079、8089、90分以上各分数人数.(4)能按学号、姓名查询学生成绩,并能输出学生的成绩单。(5)将上述信息保存成文件。三、总体设计用C语言系统实现对下面功能的实现:1、成绩录入功能 2、成绩输出功能 3、成绩查询功能 4、删除模块 5、排序功能 6、统计功能 7、退出系统结束开始输出菜单根据菜单输入n的值选择程序输入退出输出保存查找排序统计插入删除四、详细设计各函数的功能和实现1、输入初始的学生信息:输入信息包括学生的姓名、学号以及学生的成绩等相关信息;可用函数void inpu
3、t(STUDENT *data, int *len)来实现此操作。 2、成绩输出模块:输出学生的信息以及成绩void output(STUDENT data, int len):通过学生的姓名来查看学生的相关成绩,同时也可以分别通过caverage()、maverage()、eaverage()和comaverage()来输出成绩的平均分数、最高和最低分数。3、成绩查询模块:可用void find(STUDENT *data, int len)来实现.找到就输出此学生全部信息。4、删除模块:用函数void delete_item(STUDENT *data, int *len)来实现5、排序模
4、块:用函数void sort(STUDENT data, int len)来实现6、统计功能能:用函数void stat(STUDENT *data, int len) 来实现7、退出系统:可用一个函数exit()来实现,首先将信息保存到文件中,释放动态创建的内存空间,再退出此程序。五、测试结果运行开始选择1输入成绩选择2 输出成绩选择3按平均分排序 再按2输出成绩选择4查找(输入学号1)选择5插入新数据选择6按学号删除(输入学号1)选择7按平均分输出统计信息选择8保存选择0退出六、源程序代码include define MAXN 35#define MAX_NAME 256typedef s
5、truct student /学生信息int no;char nameMAX_NAME;double english;double math;double Programming;double mark_ave;double mark_tot; STUDENT;/-输入信息子程序-*/void input(STUDENT *data, int len)int no;putchar(n);printf(sn”, 请输入新的记录,如果需要退出当前菜单请输入1.);printf(”%sn, 格式:n学号n”);printf(sn, ”姓名 英语 数学 C语言”);putchar(n);printf(
6、如:n);printf(5n”);printf(李华 100 100 100n”);scanf(d, no);while(no != -1) data*len。no = no;scanf(”%s %lf %lf %lf, , &datalen。english, &data*len.math,data*len.Programming);data*len.mark_ave=(data*len.english+data*len.math+datalen。Programming)/3.0;data*len.mark_tot=data*len.english+data*len.m
7、ath+datalen。Programming;(*len)+;scanf(%d”, &no);/-输出信息子程序-/void output(STUDENT data, int len) int i;system(”cls); printf(%8s, 学号”); printf(”%8s”, 姓名); printf(”8s”, ”英语”); printf(%8s, ”数学); printf(10s”, ”C语言”); printf(”%12s, ”平均分”); printf(”%10s, ”总分”); putchar(n); for (i =0; i 80; i+) putchar(=); pu
8、tchar(n); for (i = 0; i len; i+) printf(”%8d”, datai.no); printf(”%8s, ); printf(%8。1lf, datai.english); printf(8.1lf, datai.math); printf(10。1lf”, datai。Programming); printf(”12.1lf, datai。mark_ave); printf(”%10.1lf, datai。mark_tot); putchar(n); for (i =0; i 80; i+) putchar(=); putchar(n)
9、; printf(”按回车键继续.); getchar(); getchar();/*-排序子程序-/void sort(STUDENT data, int len) int i,j,k; STUDENT temp; for (i=0; ilen1; i+) for (k=i, j=i+1; jlen; j+) if (datak.mark_ave dataj.mark_ave) k=j;if (k != i) temp = datai;datai = datak;datak = temp; /-搜索子程序-*/void find(STUDENT data, int len) int find
10、_no, result ; int i;lab: result=0; printf(”%sn”, ”请输入需要查找的学生的学号,退出当前菜单请输入 1。”); scanf(%d”, find_no); if (find_no = -1) return; /*exit the fine sub program/ while( dataresult。no != find_no & result len) result +; if (result = len ) printf(”sn”, ”未查询到相关信息); goto lab; else system(”cls”); printf(”%sn, 查
11、询信息如下:); for (i =0; i 80; i+) putchar(=); putchar(n); printf(8s”, 学号”); printf(”%8s, 姓名”); printf(”%8s, ”英语”); printf(%8s, ”数学”); printf(%10s, ”C语言”); printf(”%12s, 平均分); printf(”10s”, ”总分”); putchar(n); printf(”8d”, dataresult。no); printf(”8s, ); printf(”%8。1lf”, dataresult。english);
12、 printf(%8.1lf, dataresult。math); printf(10。1lf, dataresult。Programming); printf(%12。1lf, dataresult。mark_ave); printf(10.1lf”, dataresult.mark_tot); putchar(n); for (i =0; i 80; i+) putchar(=); putchar(n); goto lab; /*-插入子程序-*/void insert(STUDENT data, int *len) int no, pos;double english, math, Pr
13、ogramming, mark_ave, mark_tot;int i; char nameMAX_NAME;lab: printf(”sn”, 输入新的记录,退出当前菜单请输入1。”); printf(sn”, 格式:学号”); printf(sn, 姓名 英语 数学 C语言); scanf(d”, &no); if (no = 1) return; data*len。no = no; scanf(s lf %lf %lf”, name, &english, &math, Programming); mark_ave=(english+math+Programming)/3。0; mark_
14、tot=english+math+Programming; pos = 0; while (datapos.mark_ave mark_ave) (pos = pos; i) datai+1 = datai; datapos。no = no; strcpy(, name); datapos。english = english; datapos。math = math; datapos。Programming = Programming; datapos。mark_ave = mark_ave; datapos。mark_tot = mark_tot; (len)+; g
15、oto lab;/-删除子程序-*/void delete_item(STUDENT *data, int len) int no, i, pos;lab: pos=0; printf(sn, ”输入需要删除的学生的学号,退出当前菜单请输入-1。); scanf(”d, &no); if (no = 1) return; while( (datapos.no != no) & (pos = *len) printf(”sn”, 未找到需要删除的学生); goto lab; else for (i = pos+1;i len; i+) datai1 = datai; *len = len -1;
16、 if (len = 0) printf(%sn”, 没有任何记录,请按回车键返回。); getchar(); getchar(); return; goto lab; /*-统计子程序-*/void stat(STUDENT data, int len) int no_59=0, no_69=0, no_79=0, no_89=0, no_100=0; int i; for (i = 0;i len; i+) if (datai。mark_ave =59) no_59+; else if (datai.mark_ave =69) no_69+;else if (datai。mark_ave
17、=79) no_79+;else if (datai.mark_ave = 89) no_89+;else no_100+; system(cls”); for (i =0; i 80; i+) putchar(=);putchar(n); printf(10s”, ”分数”); printf(10s, 0-59”); printf(”%10s”, 60-69”); printf(”%10s”, 7079); printf(10s”, ”8089); printf(”%10s”, 90100); putchar(n); putchar(n); printf(10s”, 学生); printf(
18、”%10d”, no_59); printf(”10d, no_69); printf(%10d”, no_79); printf(10d”, no_89); printf(”10d”, no_100); putchar(n); for (i =0; i 80; i+) putchar(=); putchar(n); printf(”按回车键返回”); getchar(); getchar();/*-显示信息子程序-/void paint() int i;system(”cls”); printf(”%55sn, ”学生管理系统n”); for (i = 0; i 80; i+) putcha
19、r(=); putchar(n); printf( 1 输入信息 2 输出信息n); printf(” 3 按平均分排序 4 按学号查找n); printf( 5 插入 6 按学号删除n”); printf( 7 按平均分输出统计信息 8 保存到文件n); printf( 0 退出n);for (i = 0; i= 79; i+) putchar(=); putchar(n); printf(sn, ”请输入各操作对应的序号:);void save(STUDENT data, int len)/将数据保存到文件int i;FILE fp;fp=fopen(”成绩统计表.txt”,w”);fpr
20、intf(fp,”8s”, ”学号”); fprintf(fp,”8s”, 姓名); fprintf(fp,”8s”, 英语); fprintf(fp,”8s, 数学”); fprintf(fp,10s, C语言”); fprintf(fp,12s”, 平均分); fprintf(fp,”%10sn”, ”总分”); fprintf(fp,”=n”); putchar(n); for (i = 0; i len; i+) fprintf(fp,”%8d”, datai.no); fprintf(fp,%8s”, ); fprintf(fp,”%8。1lf”, datai.e
21、nglish); fprintf(fp,”8.1lf”, datai。math); fprintf(fp,”%10。1lf, datai。Programming); fprintf(fp,”%12.1lf”, datai.mark_ave); fprintf(fp,%10.1lfn”, datai。mark_tot); fprintf(fp,=n”);fclose(fp);printf(文件已保存到成绩统计表。txt);getchar();getchar();/*-主程序-*/void main() STUDENT dataMAXN; int len = 0; char ctrl_ch; pa
22、int(); scanf(”c, ctrl_ch); while (ctrl_ch != 0) switch(ctrl_ch) case 1:input(data, &len);break;case 2:output(data, len);break;case 3:sort(data, len);break;case 4:find(data, len);break;case 5:insert(data, len);break;case 6:delete_item(data, &len);break;case 7:stat(data, len);break;case 8:save(data, len);break;default:if (ctrl_ch != n) printf(”%sn, 输入错误!);break; if (ctrl_ch != n) paint(); scanf(”%c, &ctrl_ch); 七、课程设计心得刘帅杰:我们小组的课题是学生成绩管理系统,而我负责整个系统的整体步骤的划分.,在这次的实验中,在收获知识的同时,还收获了阅历,收获了成熟,在此过程中,我们通过查找大量资料,请教老师,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 生态系统与环境保护意识培养:初中生物课程拓展教学教案
- 商业演出策划与服务合同书
- 《氢键与水的稳定性关系:高中化学教案》
- 山东省济宁地区2024年九年级物理第一学期期末达标检测模拟试题含解析
- 山东省齐河、夏津、临邑、禹城、武城五县2024-2025学年八年级物理第一学期期末预测试题含解析
- 山东滨州阳信县2024年物理九上期末预测试题含解析
- 六年级书信父爱之车800字(10篇)
- 北京印刷学院《数据结构与算法(基于Python)》2023-2024学年第一学期期末试卷
- 绿色新能源汽车技术研发投资协议
- 陕西省延安市延长县2024-2025学年数学九上期末统考模拟试题含解析
- 化工生产夏季高温应对措施
- 初中英语仁爱版单词表(按单元顺序)(七至九年级全6册)
- 危大工程安全技术交底
- 2025年唐山市“三支一扶”招募高校毕业生招聘自考难、易点模拟试卷(共500题附带答案详解)
- 生物安全管理体系文件
- 卡环与观测线课件
- 戥称的介绍讲解
- 云原生测试实践-洞察分析
- 艺术展览舆情处置方案
- 灯笼课件教学课件
- 2023-2024学年湖北省武汉市东湖高新区八年级上学期期中考试物理试题
评论
0/150
提交评论