版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、( 此文档为 word 格式,下载后您可任意编辑修改!)注意:本文档可供大家参考,学习。请大家借鉴优点,批评不足。请各位湖工学弟,学妹不要署名后直接打印,应付老师。一定要弄懂代码,这对大家的代码编写技术很有好处。虽然现在完全自主编写有些困难,但是也要有一个迎难而上的心态。祝大家学业有成!课程设计报告课程名称C 语言程序设计课题名称学生综合测评系统专业班级学号姓名指导教师任务书下达日期年月日任务完成日期年月日1目 录一、设计内容与设计要求3学生综合测评系统3一、问题描述:3二、功能描述:3三、算法提示:3四、测试数据:4二设计要求:4三进度安排4四总体设计方案51.总体流程图52. 程序主要函数
2、51.void inti()初始化函数52.welcome()函数53.void InputInfo()录入学生信息64.void DeleteInfo()删除信息75.void paiming1()void paiming2()成绩排名76.void ViewAll()浏览全部学生信息77.void clean()清除所有信息88. void PaimingView()查询排名83.程序其他函数8A. 信息存盘 (结构体 )8B.读取信息 (结构体 )8C. 信息存盘 (整型 )8D. 读取信息 (整型 )8E. 学号检索9五程序源代码10六 .收获及体会22七 .参考文献22计算机与通信学
3、院课程设计评分表23课程名称: C 语言程序设计23一、设计内容与设计要求学生综合测评系统一、问题描述:每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的 60% , 10% , 10% , 20% 。二、功能描述:A、学生信息处理(1) 输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。提示:学生信息可先输入到数组中,排序后可写到文件中。(2) 插入(修改)同学信息:提
4、示:先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,(3) 删除同学信息:提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删除后的信息写到文件中。(4) 浏览学生信息:提示:打开文件,显示该文件的学生信息。B、学生数据处理:(1) 按考试科目录入学生成绩并且按公式:考试成绩(语文 +数学 +外语) 3 计算考试成绩,并计算考试名次,提示:先把学生信息读入数组,然后按提示输入每科成绩,计算考试成绩,求出名次,最后把学生记录写入一个文件中。(2) 学生测评数据输入并计算综合测评
5、总分及名次。提示:综合测评总分(考试成绩)*0.6+ (同学互评分)*0.1+ 品德成绩 *0.1+ 任课老师评分 *0.2 。(3) 学生数据管理提示:输入学号,读出并显示该同学信息,输入新数据,将改后信息写入文件(4) 学生数据查询:提示:输入学号或其他信息,即读出所有数据信息,并显示出来。C、学生综合信息输出提示:输出学生信息到屏幕。三、算法提示:1、数据结构:结构体类型数组2、数据库结构:下表构成该系统的基本数据库。CharCharstructint四、测试数据:N=10二设计要求:掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些
6、典型的案例处理经验。(1)按学号顺序选课题号,并在规定的时间内独自完成相关课题的C 源程序编写、 调试和运行。 源程序及编译生成各文件均保存;(2)按本任务书的要求,编写课程设计报告( Word 文档格式)。并用 A4 的复印纸打印并装订;(3)在 2013 年 1 月 5 日之前,请各班学习委员收齐课程设计报告交老师。附:课程设计报告内容要求如下:封面课程设计任务书课程设计主文档内容如下:1、 课程设计题目2、 课程设计目的3、 课程设计主要任务4、 设计环境5、 总体设计方案的选定(主控模块和各子模块的设计方法及框图)6、 源程序清单7、 收获及体会参考资料四、报告内容要求用宋体五号字,主
7、标题用黑三号、一级标题用黑四号字,二级标题用宋体小四号字加粗,要求用 A4 纸张打印出来 。课程设计说明书装订顺序:封面、任务书、正文、附件(A4 大小的图纸及程序清单)。三进度安排第 18 周,具体安排如下:星期时间班级内容地点第 17周任务布置第 18周星期三第一次上机机房第 18周星期四第二次上机机房第 18周星期五第三次上机与答辩机房湖南工程学院计算机与通信学院年月日四总体设计方案1.总体流程图2. 程序主要函数1.void inti()初始化函数初始化函数用于从硬盘中加载学生数据和学生数目。首先,从硬盘读取counter.dat 的数据。若不存在counter.dat 则说明程序第一
8、次运行。创建counter.dat 和 student_data.dat,把 counter 的初始值赋为 1。若存在 counter.dat.则读取其中数据, 把数据赋给变量counter,这个值为已储存的学生信息数量。这个 counter变量就是计数器变量。用来计量学生信息数量的变化。2.welcome()函数Welcome函数用来显示选项菜单,并将用户所选的序号返回。主函数中的变量select接收到 welcome 的返回值。通过开关语句,选择需要使用的功能。3.void InputInfo()录入学生信息输入学生的信息。学生信息由以下结构体定义。struct student_infoi
9、nt num;学号char name6;姓名char sex5;性别char adress20;家庭住址char tel10;电话int chinese,math,english,);getchar();printf(回车键返回 .);getchar();system(cls);7.void clean()清除所有信息counter计数变量清零,counter.dat清空, student_info.dat清空。8.void PaimingView()查询排名根据输入的学号查询排名3.程序其他函数A.信息存盘 (结构体 )void SaveStruct(struct student_info
10、*sp,int size,int n,char filename20)FILE *fp;fp=fopen(filename,wb);fwrite(sp,size,n,fp);fclose(fp);B.读取信息 (结构体 )void LoadStruct(struct student_info *sp,int size,int n,char filename20)略C.信息存盘 (整型 )void SaveInt(int *p,int size,int n,char filename20)FILE *fp;fp=fopen(filename,wb);fwrite(p,size,n,fp);fcl
11、ose(fp);D.读取信息 (整型 )void LoadInt(int *p,int size,int n,char filename20)略E.学号检索int NumExist(struct student_info student,int num)int i;for(i=0;icounter;i+)if(studenti.num=num)return i;return -1;检索学号所在的元素下表,若学号存在,则返回该学号所在下标。若学号不存在,则返回-1 。程序截图:五程序源代码学生综合测评系统2013年1月3日#includestdio.();void PaimingView();v
12、oid exit();struct student_info input();void SortInfo(struct student_info student);void ViewInfo(struct student_info *sp);void SaveStruct(struct student_info *sp,int size,int n,char filename20); void LoadStruct(struct student_info *sp,int size,int n,char filename20); void SaveInt(int *p,int size,int
13、n,char filename20);void LoadInt(int *p,int size,int n,char filename20);int NumExist(struct student_info student,int num);定义学生信息结构体-struct student_infoint num;学号char name6;姓名char sex5;性别char adress20;家庭住址char tel10;电话int chinese,math,english,()char select;init();while(1)调用初始化函数select=welcome();switch
14、(select)case 1: system(cls);InputInfo(); break;case 2: system(cls);view(); break;case 3: system(cls);xiugai(); break;case 4: system(cls);DeleteInfo(); break;case 5: system(cls);paiming1(student);paiming2(student);PM=1;getchar();getchar();system(cls); break;case 6:system(cls); ViewAll();break;选项选项选项选
15、项选项选项1: 输入学生信息2: 浏览学生信息3: 修改学生信息4: 删除学生信息5: 学生信息排名6: 浏览全部学生信息case 7:system(cls); clean();break;case 8:system(cls); PaimingView();break;选项 7: 清除所有信息选项 8: 查询排名case 0: system(cls);exit(); break;选项 9: 退出-初始化函数 -void init()FILE *fp;fp=fopen(counter.dat,rb);打开计数变量counter文件if(fp!=NULL)载入counterfclose(fp);L
16、oadInt(&counter,sizeof(counter),1,counter.dat);elsefp=fopen(counter.dat,wb);若没有 counter文件,则创建一个,counter初始为 0 。fclose(fp);counter=0;if(counter!=0)载入学生数据LoadStruct(student,sizeof(structstudent_info),counter,student_info.dat);- 欢迎函数 -char welcome()char select;while(1)system(cls);printf(tt欢迎使用学生信息管理系统n)
17、;printf(n);printf(1.录入学生信息nn);printf(2.浏览学生信息nn);printf(3.修改学生信息nn);printf(4.删除学生信息nn);printf(5.排名学生成绩nn);printf(6.浏览所有学生信息nn);printf(7.清除所有数据nn);printf(8.查询排名nn);printf(0.退出nn);printf(输入相应的功能序号 :);select=getchar();if(select=1|select=2|select=3|select=4|select=5|select=6|select=7|select=8|select=0)r
18、eturn select;system(cls);continue;-1.录入学生信息-void InputInfo()int i,n;printf(需要录入多少位学生的信息:);scanf(%d,&n);system(cls);for(i=1;i=n;i+)studentcounter=input();counter+;PM=0;SortInfo(student);SaveStruct(student,sizeof(struct student_info),counter,student_info.dat); SaveInt(&counter,sizeof(counter),1,counte
19、r.dat);-2.游览学生信息-void view()int i,num;printf(请输入需要游览的学生信息的学号:);scanf(%d,&num);getchar();if(i=NumExist(student,num)=-1)printf(不存在该学号, 按回车键返回.);getchar();system(cls);return;ViewInfo(&studenti);printf(n按回车键返回 .);getchar();system(cls);return;-3.修改学生信息-void xiugai()int i,num;char YN,select;printf(请输入需要修改
20、的学生信息的学号:);scanf(%d,&num);getchar();if(i=NumExist(student,num)=-1)printf(不存在该学号, 按回车键返回.);getchar();system(cls);return;ViewInfo(&studenti);printf(是否要修改?(YN):);scanf(%c,&YN);getchar();if(YN !=Y& YN !=y)printf(修改取消 .);getchar();system(cls);return;system(cls);printf(1.学号n);printf(2.性别n);printf(3.家庭住址n)
21、;printf(4.联系电话n);printf(5.语文成绩n);printf(6.数学成绩n);printf(7.外语成绩n);printf(8.同学互评分n);printf(9.品德成绩n);printf(0.任课教师教师评分n);scanf(%c,&select);switch(select)case 1:printf(修改学号 :);scanf(%d,&studenti.num);break;case 2:printf(修改性别 :);scanf(%s,&studenti.sex);break;case 3:printf(修改家庭住址 :);scanf(%s,&studenti.adr
22、ess);break;case 4:printf(修改联系电话 :);scanf(%s,&studenti.tel);break;case 5:printf(修改语文成绩 :);scanf(%d,&studenti.chinese);break;case 6:printf(修改数学成绩 :);scanf(%d,&studenti.math);break;case 7:printf(修改外语成绩 :);scanf(%d,&studenti.english);break;case 8:printf(修改同学互评分 :);scanf(%d,&studenti.;ViewInfo(&studenti)
23、;printf(n确认删除 (YN):);scanf(%c,&YN);getchar();if(YN!=Y & YN!=y)printf(删除取消 .);elsefor(j=i;jcounter-1;j+)studentj=studentj+1;counter-;PM=0;SaveStruct(student,sizeof(structstudent_info),counter,student_info.dat); SaveInt(&counter,sizeof(counter),counter,counter.dat);printf(删除完成 .);getchar();system(cls)
24、;- 平均分、综合分排名void paiming1(struct student_info student)struct student_info *pN,*temp;int i,j;for(i=0;icounter;i+)pi=&studenti;for(i=0;icounter-1;i+)for(j=i+1;jave ave)temp=pi;pi=pj;pj=temp;for(i=0;ipaiming1=i+1;printf(平均分排名完成.n);综合测评分排名void paiming2(struct student_info student)struct student_info *pN
25、,*temp;int i,j;for(i=0;icounter;i+)pi=&studenti;for(i=0;icounter-1;i+)for(j=i+1;jzhongping zhongping)temp=pi;pi=pj;pj=temp;for(i=0;ipaiming2=i+1;printf(综合测评分排名完成.n);. 浏览所有学生信息-void ViewAll()int i;for(i=0;inum);getchar();if(NumExist(student,sp-num)!=-1)printf(该学号已存在, 请重新输入 .);getchar();system(cls);co
26、ntinue;break;printf(录入姓名 :);gets(sp-name);printf(录入性别 :);gets(sp-sex);printf(录入家庭住址:);gets(sp-adress);printf(录入联系电话:);gets(sp-tel);printf(n接下来录入成绩n);printf(语文 :);scanf(%d,&sp-chinese);printf(数学 :);scanf(%d,&sp-math);printf(英语 :);scanf(%d,&sp-english);sp-ave=(sp-chinese+sp-math+sp-english)3.0;printf(
27、同学互评 :);scanf(%d,&sp- stu;-排序函数 -void SortInfo(struct student_info student)int i,j;struct student_info temp;for(i=0;icounter-1;i+)for(j=i+1;j=counter-1;j+)if(studenti.numnum,sp-name,sp-sex,sp-adress,sp-tel);printf( 语文 t 数学 t 英语 t 互评 t 品德 t 教评 n); printf(%dt%dt%dt%dt%dt%dtn,sp-chinese,sp-math,sp-engl
28、ish,sp-);printf(%.2ft%.2fn,sp-ave,sp-zhongping);if(PM=1)printf(平均分排名 t综合测评分排名n);printf(%dtt%dn,sp-paiming1,sp-paiming2);信息存盘 ( 结构体 ) -void SaveStruct(struct student_info *sp,int size,int n,char filename20)FILE *fp;fp=fopen(filename,wb);fwrite(sp,size,n,fp);fclose(fp);读取信息 ( 结构体 ) -void LoadStruct(st
29、ruct student_info *sp,int size,int n,char filename20)FILE *fp;fp=fopen(filename,rb);fread(sp,size,n,fp);fclose(fp);- 信息存盘 ( 整型 ) -void SaveInt(int *p,int size,int n,char filename20)FILE *fp;fp=fopen(filename,wb);fwrite(p,size,n,fp);fclose(fp);- 读取信息 ( 整型 ) -void LoadInt(int *p,int size,int n,char filename20)FILE *fp;fp=fopen(filename,rb);fread(p,size,n,fp);fclose(fp);-检索学号 -int NumExist(struct student_info student,int num)int i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年度养老院护理服务与设施租赁合同3篇
- 2025年度土地流转与农业废弃物综合利用合同3篇
- 2025年度绿色能源补贴合同范本2篇
- 2025年度汽车4S店店面租赁及品牌运营合同3篇
- 二零二四医院护士劳动合同样本:医院护理团队人员劳动合同3篇
- 2025年度债务重组与财产分配税务筹划合同3篇
- 二零二五版高端别墅租赁管理服务合同2篇
- 2024知名品牌授权使用及销售代理合同
- 2024食堂人员安全生产责任与聘用合同3篇
- 2024贴砖劳务分包合同施工质量监督协议3篇
- 2025年湖北武汉工程大学招聘6人历年高频重点提升(共500题)附带答案详解
- 【数 学】2024-2025学年北师大版数学七年级上册期末能力提升卷
- GB/T 26846-2024电动自行车用电动机和控制器的引出线及接插件
- 辽宁省沈阳市皇姑区2024-2025学年九年级上学期期末考试语文试题(含答案)
- 2024年国家工作人员学法用法考试题库及参考答案
- 妊娠咳嗽的临床特征
- 国家公务员考试(面试)试题及解答参考(2024年)
- 《阻燃材料与技术》课件 第6讲 阻燃纤维及织物
- 2024年金融理财-担保公司考试近5年真题附答案
- 泰山产业领军人才申报书
- 高中语文古代文学课件:先秦文学
评论
0/150
提交评论