1、学生综合测评系统 Company number:【WTUT-WT88Y-W8BBGB-BWYTT-19998】学生综合测评系统课 程 设 计 报 告课程名称 C语言程序设计 课题名称 学生综合测评系统 专 业 班 级 学 号 姓 名 指导教师 2012年 1 月2 日湖南工程学院课 程 设 计 任 务 书课程名称 C语言程序设计 课 题 学生综合测评系统 专业班级 学生姓名 学 号 指导老师 审 批 任务书下达日期 2012年 12 月 25日任务完成日期 2013年 1 月 2 日一、设计内容与设计要求1设计内容:课题十: 学生综合测评系统一、问题描述:每个学生的信息为:学号、姓名、性别、家
2、庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。二、功能描述: A、学生信息处理(1) 输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。提示:学生信息可先输入到数组中,排序后可写到文件中。(2) 插入(修改)同学信息:提示:先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,(3)
3、删除同学信息:提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删除后的信息写到文件中。(4) 浏览学生信息:提示:打开文件,显示该文件的学生信息。B、学生数据处理:(1) 按考试科目录入学生成绩并且按公式:考试成绩(语文+数学+外语)/3 计算考试成绩,并计算考试名次,提示:先把学生信息读入数组,然后按提示输入每科成绩,计算考试成绩,求出名次,最后把学生记录写入一个文件中。(2) 学生测评数据输入并计算综合测评总分及名次。提示:综合测评总分(考试成绩)*+(同学互评分)*+品德成绩*+任课老师评分*。(3) 学生数据管理提示:输入学号,读出并显示该同学信息,输入新数据
4、,将改后信息写入文件(4) 学生数据查询:提示:输入学号或其他信息,即读出所有数据信息,并显示出来。C、学生综合信息输出提示:输出学生信息到屏幕。三、算法提示:1、数据结构:结构体类型数组2、数据库结构:下表构成该系统的基本数据库。 学号姓名考试成绩评分CharCharstructint四、测试数据:学生人数:N=10 学生综合测评系统1课程设计目的掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。2课程设计主要任务一、问题描述: 的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩
5、、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。二、功能描述: A学生信息处理(1) 输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。(2) 插入(修改)同学信息:(3) 删除同学信息:(4) 浏览学生信息:B、学生数据处理:(1) 按考试科目录入学生成绩并且按公式:考试成绩(语文+数学+外语)/3 计算考试成绩,并计算考试名次。(2) 学生测评数据输入并计算综合测评总分及名次。(3) 学生数据管理(4) 学生数据查询:C、学生综合
6、信息输出3设计环境1)硬件:PC机,档次不低于CPU为PIII667,内存为128M,4G硬盘,其它硬件与此相配套。2)软件:Windows XP,VC+ 4总体设计方案的选定本设计采用模块化结构设计,主要包括:主菜单(menu)下的学生信息处理系统(info_menu)、学生数据处理系统(data_menu)、学生综合信息输出(shuchu)、帮助信息(help)、退出系统;学生信息处理系统(info_menu)下的输入学生信息(info_input)、修改学生信息(xiugai)、删除学生信息(info_del)、浏览学生信息(info_output)、返回主菜单;学生数据处理系统下的(d
7、ata_menu)录入成绩数据(data_input)、修改学生数据(data_xiugai)、学生数据查询(data_chaxun)、返回主菜单。 学生综合测评系统结构框图5源程序清单# include .欢迎使用学生综合管理系统.nn); printf(tt tt本程序由宗幸幸借鉴陈伟的程序编写nn); printf(nntt); system(pause); menu(); return 0;void help() .nn); if(f_info=fopen(,r)=NULL) printf(nt打开文件失败!nn); return; count=0; while(!feof(f_inf
8、o) fscanf(f_info,%lf %s %s %s %s ,&,; infocount=p; count+; printf(nt导入已完成!共导入 %d 条记录!nnn,count); fclose(f_info);void info_input() umber) printf(nnt该学号已存在!请重新输入!nn); return; printf(t请输入姓名: ); umberinfocount.number) for(j=count;ji;j-) infoj=infoj-1; infoi=p; break; count+; void info_output() umber); p
9、rintf( %10s,infoi.name); printf( %10s,infoi.sex); printf( %15s,infoi.adds); printf( %13snn,infoi.phone); printf(t请按任意键返回上级:); printf(nntt); system(pause); printf(nnnn);void info_menu() 入学生信息n); printf(ttt 2.修改学生信息n); printf(ttt 3.删除学生信息n); printf(ttt 4.浏览学生信息n); printf(ttt 0.返回主菜单nn); printf(tt请输入序号
10、选择操作:); scanf(%d,&choice); if(choice=0) break; switch(choice) case 1: info_input(); info_xieru(); break; case 2: info_xiugai(); break; case 3: info_del(); break; case 4: info_output(); break; default: printf(nt输入有误!请重新输入!nn); break; void data_menu() 入成绩数据n); printf(ttt 2.修改学生数据n); printf(ttt 3.学生数据查
11、询n); printf(ttt 0.返回主菜单nn); printf(tt请输入序号选择操作:); scanf(%d,&choice); if(choice=0) break; switch(choice) case 1: data_input(); break; case 2: data_xiugai(); break; case 3: data_chaxun(); break; default: printf(nt输入有误!请重新输入!nn); break; void menu() 生信息处理系统n); printf(ttt 2.学生数据处理系统n); printf(ttt 3.学生综合信
12、息输出n); printf(ttt 4.帮助信息n); printf(ttt 0.退出系统nn); printf(tt请输入序号选择操作:); scanf(%d,&choice); printf(n); if(choice=0) printf(tt你已经退出,谢谢使用!nntt); break; switch(choice) case 1 : info_menu(); break; case 2 : data_menu(); break; case 4 : help(); break; case 3 : shuchu(); break; default: printf(nt输入有误!请重新输入
13、!nn); break; void info_xieru() umber= continue; else fprintf(f,%.0lf %s %s %s %s,infoi.number,infoi.name,infoi.sex,infoi.adds,infoi.phone); fclose(f); printf(nt保存成功!nn); printf(nntt); system(pause); return;void info_del() umber=pp) break; if(i=count) printf(nt没有找到该学生!n); return; printf( t学号t 姓名 t 性别
14、 家庭住址t 联系电话n); umber); printf( %10s,infoi.name); printf( %10s,infoi.sex); printf( %13snn,infoi.phone); printf(nt是否删除t 1.是 t 2.否 t ); while(1) scanf(%d,&j); switch(j) case 1: infoi=w; printf(nt删除成功!nn); info_xieru(); return; case 2: return; default : printf(输入错误!请重新输入!);break; break; printf(nntt); sy
15、stem(pause);void info_xiugai() umber=pp) break; printf(nt没有找到该学生!n); return; printf( t学号t 姓名t 性别t 家庭住址t 联系电话n); umber); printf( %10s,infoi.name); printf( %10s,infoi.sex); printf( %15s,infoi.adds); printf( %13snn,infoi.phone); printf(nt是否修改t 1.是 t 2.否 t ); while(1) lfn,infoi.number); printf(t请输入姓名::)
16、; scanf(%s,infoi.name); printf(t请输入性别:); scanf(%s,infoi.sex); printf(t请输入家庭住址::); scanf(%s,infoi.adds); printf(t请输入电话号码:); scanf(%s,infoi.phone); printf(nt修改成功!nn); info_xieru(); return; .nn); if(f_data=fopen(,r)=NULL) printf(nt打开文件失败!nn); return; count=0; while(!feof(f_data) fscanf(f_data,%lf %s %s
17、 %s %s %d %d %d %d %f %d %d %d %f ,&,&,&,&,&,&,&,&,&,&; datacount=p;lf %s %s %s %s %d %d %d %.1f %d %d %d %.1f,datai.number,datai.name,datai.sex,datai.adds,datai.phone,datai.chinese,datai.math,datai.english,datai.aver,datai.ksmc,datai.stu,datai.pinde,datai.teacher,datai.ceping); 回;其余数字继续)nn); scanf(
18、%d,&choice); if(choice=0) return; printf(nnt正在导入.nn); lf 姓名:%sn,datai.number,datai.name); printf(nt请输入语文成绩:); scanf(%d,&datai.chinese); printf(t请输入数学成绩:); scanf(%d,&datai.math); printf(t请输入英语成绩:); scanf(%d,&datai.english); printf(t请输入同学互评分:); scanf(%d,&datai.stu); printf(t请输入品德成绩:); scanf(%d,&datai.
19、pinde); printf(t请输入老师评分:); scanf(%d,&datai.teacher); datai.aver=(datai.chinese+datai.math+datai.english)/; datai.ceping=(datai.aver*+datai.stu*+datai.pinde*+datai.teacher*; datai.ksmc=i+1; for(k=0;kdatak.aver) datak.ksmc=datak.ksmc+1; if(datai.ksmcdatak.ksmc-1) datai.ksmc=datak.ksmc-1; printf(nnt输入已
20、完成!正在保存. n); data_xieru();void data_xiugai() umber=pp) break; printf(nt没有找到该学生!n); return; printf(nt学号:%.0lf 姓名:%s nnt语文:%d 数学:%d 英语:%d 同学互评分:%d 品德成绩:%d 老师评分:%dnn,datai.number,datai.name,datai.chinese,datai.math,datai.english,datai.stu,datai.pinde,datai.teacher); printf(nt是否修改t 1.是 t 2.否 t ); while(
21、1) verdatak.aver) datak.ksmc=datak.ksmc-1; printf(nt请输入语文成绩:); scanf(%d,&datai.chinese); printf(t请输入数学成绩:); scanf(%d,&datai.math); printf(t请输入英语成绩:); scanf(%d,&datai.english); printf(t请输入同学互评分:); scanf(%d,&datai.stu); printf(t请输入品德成绩:); scanf(%d,&datai.pinde); printf(t请输入老师评分:); scanf(%d,&datai.teac
22、her); datai.aver=(datai.chinese+datai.math+datai.english)/; datai.ceping=(datai.aver*+datai.stu*+datai.pinde*+datai.teacher*; datai.ksmc=count; for(k=0;kdatak.aver) datak.ksmc=datak.ksmc+1; if(datai.ksmcdatak.ksmc-1) datai.ksmc=datak.ksmc-1; printf(nt修改成功!nn); data_xieru(); return; umber=pp) break;
23、if(i=count) printf(nt没有找到该学生!n); return; printf(nt学号:%.0lf 姓名:%s 性别:%s nnt语文:%d 数学:%d 英语:%d 平均成绩:%.1fnnt名次:%d 品德成绩:%d 老师评分:%d 综合成绩:%.1fnn,datai.number,datai.name,datai.sex,datai.chinese,datai.math,datai.english,datai.aver,datai.ksmc,datai.pinde,datai.teacher,datai.ceping); printf(nntt); system(pause); system(cls); 9.1f9.1fumber,datai.name,datai.sex,datai.adds,datai.phone,datai.aver,datai.ksmc,datai.ceping); printf(nntt); system(pause); printf(n);C语言程序设计B.浙江大学出版社,2012年月7.程序运行部分界面:计算机与通信学院课程设计评分表课程名称: C语言程序设计 项 目分 数设计方案的合理性与创造性设计与调试结果设计说明书的质量答辩陈述与回答问题情况课程设计周表现情况综合成绩
copyright@ 2008-2023 冰点文库 网站版权所有
经营许可证编号:鄂ICP备19020893号-2