学生综合测评系统85423

上传人:y**** 文档编号:46100180 上传时间:2021-12-10 格式:DOC 页数:24 大小:599.50KB
收藏 版权申诉 举报 下载
学生综合测评系统85423_第1页
第1页 / 共24页
学生综合测评系统85423_第2页
第2页 / 共24页
学生综合测评系统85423_第3页
第3页 / 共24页
资源描述:

《学生综合测评系统85423》由会员分享,可在线阅读,更多相关《学生综合测评系统85423(24页珍藏版)》请在装配图网上搜索。

1、课 程 设 计 报 告课程名称 C语言程序设计 课题名称 学生综合测评系统专 业班 级学 号姓 名指导教师2012年 1 月2 日湖南工程学院课 程 设 计 任 务 书课程名称 C语言程序设计课 题 学生综合测评系统专业班级 学生姓名学 号 指导老师 审 批 任务书下达日期 2012年 12 月 25日任务完成日期 2013年 1 月 2日一、设计内容与设计要求1设计内容:课题十: 学生综合测评系统一、问题描述:每个学生的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。考试平均成

2、绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。二、功能描述:A、学生信息处理(1)输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。提示:学生信息可先输入到数组中,排序后可写到文件中。(2) 插入(修改)同学信息:提示:先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,(3) 删除同学信息:提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删除后的信息写到文件中。(4) 浏览学生信息:提示:打开文件,

3、显示该文件的学生信息。B、学生数据处理:(1)按考试科目录入学生成绩并且按公式:考试成绩(语文+数学+外语)/3 计算考试成绩,并计算考试名次,提示:先把学生信息读入数组,然后按提示输入每科成绩,计算考试成绩,求出名次,最后把学生记录写入一个文件中。(2) 学生测评数据输入并计算综合测评总分及名次。提示:综合测评总分(考试成绩)0.6+(同学互评分)*0。1+品德成绩0。1+任课老师评分0。2.(3) 学生数据管理提示:输入学号,读出并显示该同学信息,输入新数据,将改后信息写入文件(4) 学生数据查询:提示:输入学号或其他信息,即读出所有数据信息,并显示出来.C、学生综合信息输出提示:输出学生

4、信息到屏幕.三、算法提示:1、数据结构:结构体类型数组2、数据库结构:下表构成该系统的基本数据库. 学号姓名考试成绩评分CharCharstructint四、测试数据:学生人数:N=10 学生综合测评系统1课程设计目的掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。2课程设计主要任务一、问题描述:的信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测

5、评总分的60%,10,10%,20%.二、功能描述: A学生信息处理(1)输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。(2) 插入(修改)同学信息:(3) 删除同学信息:(4) 浏览学生信息:B、学生数据处理:(1)按考试科目录入学生成绩并且按公式:考试成绩(语文+数学+外语)/3 计算考试成绩,并计算考试名次.(2) 学生测评数据输入并计算综合测评总分及名次。(3) 学生数据管理(4) 学生数据查询:C、学生综合信息输出3设计环境1)硬件:PC机,档次不低于CPU为PIII667,内存为128M,4G硬盘,其它硬件与此相配套.2)软件:Windows

6、XP,VC+6。0 4总体设计方案的选定本设计采用模块化结构设计,主要包括:主菜单(menu)下的学生信息处理系统(info_menu)、学生数据处理系统(data_menu)、学生综合信息输出(shuchu)、帮助信息(help)、退出系统;学生信息处理系统(info_menu)下的输入学生信息(info_input)、修改学生信息(xiugai)、删除学生信息(info_del)、浏览学生信息(info_output)、返回主菜单;学生数据处理系统下的(data_menu)录入成绩数据(data_input)、修改学生数据(data_xiugai)、学生数据查询(data_chaxun)、

7、返回主菜单。主菜单学生信息处理学生数据处理综合信息输出帮助信息退出系统学生数据处理系统修改学生数据学生数据查询录入成绩数据返回主菜单学生信息处理系统删除学生信息修改学生信息输入学生信息浏览学生信息返回主菜单学生综合测评系统结构框图5源程序清单 include /包含文件# include ”stdlib。h include string.h int count;void info_daoru();void info_xieru();void info_del();void info_xiugai();void data_xieru();void data_daoru();void data_x

8、iugai();void data_chaxun();void data_input();void shuchu();struct student /定义学生信息结构数组double number;char name11;char sex4;char adds15;char phone14;p,info100,w=0,” ”, ”,” ”,” ”,;struct data /定义学生数据结构数组 double number;char name11;char sex4;char adds15;char phone14;int chinese,math,english,stu,ksmc,pinde

9、,teacher;float aver,ceping;data100;int main() /主函数system(color 9e”);void data_menu();void info_menu();void help();void menu();printf(nnntt.。.。欢迎使用学生综合管理系统。.。.。.。nn”);printf(tt tt本程序由宗幸幸借鉴陈伟的程序编写nn”);printf(”nntt”);system(”pause”); menu();return 0;void help() /帮助信息system(cls”); /清屏printf( * 欢迎使用本系统!

10、*nn);printf( 本系统可以存储学生的基本信息和各科成绩,并能计算考试平均成绩,综合测评成绩和排名。n);printf( 基本信息包括:学号、姓名、性别、家庭住址、联系电话;n 各科成绩包括:语文、数学、外语成绩;n”);printf( 其它包括:考试名次、同学互评分、品德成绩、任课教师评分等。n);printf( 说明:考试成绩排名是按照考试成绩计算的(考试成绩=(语+数+外)/3);n”);printf(” 综合测评总分=((考试成绩)*0。6+(同学互评分)0。1+(品德成绩)0。1+(任课教师评分)0.2)n);printf(” 其它请按照提示操作即可。nn);printf(”

11、 如有疑问,请联系:QQ:905524188nn);printf(”nntt”);system(pause);void info_daoru() /学生信息导出文件函数FILE f_info;struct student p=NULL;printf(nnt正在导入.。nn);if((f_info=fopen(”info。txt”,”r))=NULL)printf(”nt打开文件失败!nn”);return;count=0; while(!feof(f_info))fscanf(f_info,lf %s %s %s %s ,&p。number,p.name,p.sex,p.adds,p.phon

12、e);infocount=p;count+;printf(”nt导入已完成!共导入 %d 条记录!nnn”,count);fclose(f_info);void info_input() /学生信息输入函数int i,j; info_daoru();for( ; ; )printf(t请输入学号(输入0退出):”);scanf(”lf”,&p.number);if(p.number=0) return;for(i=0;iinfocount.number) for(j=count;ji;j)infoj=infoj-1;infoi=p;break;count+;void info_output()

13、 /学生信息浏览FILE *f_info;int i;if(f_info=fopen(info。txt,”r”))=NULL) /判断 printf(nt没有学生信息!”);printf(nntt); system(”pause”);return;info_daoru();if(count=0) /判断 printf(nt没有学生信息!);printf(”nntt); system(”pause”); return; elseprintf( t学号t 姓名 t 性别t 家庭住址t 联系电话n); /输出学生信息for(i=0;icount;i+)printf(” %10。0lf”,infoi.

14、number);printf(” 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() /学生信息菜单int choice;while(1)system(cls); /清屏 printf(”nnnntt学生信息处理系统nn); printf(”ttt 1。输入学生信息n); printf(ttt 2。

15、修改学生信息n); printf(”ttt 3.删除学生信息n”); printf(ttt 4.浏览学生信息n”); printf(”ttt 0.返回主菜单nn); printf(”tt请输入序号选择操作:”); 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: p

16、rintf(nt输入有误!请重新输入!nn); break;void data_menu() /数据处理菜单int choice;printf(”nt在进入学生数据管理前,请确认学生信息已全部完成!n);printf(”nt是否继续?输入数字选择(0:返回;其它数字继续。)n”);scanf(%d,&choice);if(choice=0) return;while(1)system(cls); /清屏 printf(nnnntt学生数据处理系统nn); printf(ttt 1。录入成绩数据n”); printf(ttt 2。修改学生数据n”); printf(”ttt 3。学生数据查询n”

17、); 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() /主菜单函数int choice;while(1)system(cls”); printf(nnnntt-

18、 主 - - 菜- - - - 单 -nn”); printf(ttt 1.学生信息处理系统n”); printf(”ttt 2。学生数据处理系统n); printf(ttt 3。学生综合信息输出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 : da

19、ta_menu(); break; case 4 : help(); break; case 3 : shuchu(); break; default: printf(”nt输入有误!请重新输入!nn); break;void info_xieru() /学生信息写入文件函数FILE f;int i;if(f=fopen(”info。txt,”a”)=NULL)printf(”nt打开文件失败!nn);exit(0); for(i=0;icount;i+) /保存文件if(infoi.number=w。number) continue; else fprintf(f,.0lf s s %s %

20、s,infoi。number,infoi。name,infoi。sex,infoi。adds,infoi。phone);fclose(f);printf(nt保存成功!nn);printf(”nntt);system(pause);return;void info_del() /学生信息删除double pp;int i,j;info_daoru();printf(nt请输入要删除学生的学号:”);scanf(”lf”,pp);printf(n”);for(i=0;i=count)printf(nt没有找到该学生!n”); return;printf(” t学号t 姓名 t 性别 家庭住址t

21、联系电话n); /显示删除信息printf(” 10.0lf,infoi。number);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

22、;break;printf(nntt); system(”pause”);void info_xiugai() /修改学生信息double pp;int i,j;info_daoru();printf(”nt请输入要修改学生的学号:); /查找scanf(%lf”,&pp);printf(n”);for(i=0;i=count;i+) if(infoi。number=pp) break;printf(nt没有找到该学生!n”); return;printf(” t学号t 姓名t 性别t 家庭住址t 联系电话n”); /显示printf(” 10。0lf,infoi.number);printf

23、( 10s”,infoi。name);printf(” %10s”,infoi.sex);printf( %15s,infoi。adds);printf(” 13snn”,infoi。phone);printf(”nt是否修改?t 1.是 t 2.否 t ”);while(1) /修改 scanf(d,j); switch(j) case 1:printf(t学号为: .0lfn”,infoi.number);printf(”t请输入姓名::”); scanf(”%s”,infoi。name); printf(t请输入性别:”); scanf(s”,infoi.sex); printf(t请输

24、入家庭住址:);scanf(”%s,infoi。adds); printf(t请输入电话号码:”); scanf(”%s”,infoi。phone);printf(nt修改成功!nn”); info_xieru(); return; /保存 case 2: return; default : printf(输入错误!请重新输入!”);break;break;printf(nntt); system(”pause”);void data_daoru() /学生数据导出 FILE *f_data;struct data p=NULL;printf(”nnt正在导入。.nn);if((f_data=

25、fopen(data。txt,r”))=NULL)printf(nt打开文件失败!nn”);return;count=0; while(!feof(f_data))fscanf(f_data,”lf s %s %s s d %d %d %d %f d %d d %f ”,p。number,p.name,p。sex,p。adds,p。phone,p。chinese,&p。math,p.english,&p。stu,p.aver,p。ksmc,&p.pinde,p.teacher,p。ceping);datacount=p;/n na se ad p ch ma en su av ks pi te

26、 cecount+;printf(nt导入已完成!共导入 %d 条记录!nnn”,count);fclose(f_data); /关闭文件void data_xieru() /写入文件函数FILE f;int i;if(f=fopen(”data.txt”,w”)=NULL)printf(”nt打开文件失败!nn);exit(0); for(i=0;icount;i+) fprintf(f,”%。0lf s s s s d %d %d .1f d d d %。1f”,datai。number,datai.name,datai.sex,datai.adds,datai。phone,datai.c

27、hinese,datai.math,datai。english,datai.aver,datai。ksmc,datai。stu,datai。pinde,datai.teacher,datai。ceping);/ num nam s ad tel c m e ave ks stu t cep fclose(f);printf(”nntt);system(”pause);return;void data_input() /数据输入FILE f_info;int choice,i,k;struct data p=NULL; printf(”nt警告!原有成绩将被覆盖!n”);printf(nt是否继

28、续?输入数字选择(0。返回;其余数字继续)nn”);scanf(”%d,&choice);if(choice=0) return;printf(nnt正在导入.nn”); /判断if((f_info=fopen(info.txt”,r”))=NULL)printf(nt打开文件失败!nn);return;count=0; while(!feof(f_info) /导出学生信息fscanf(f_info,”lf %s s s %s ”,&p。number,p。name,p.sex,p.adds,p.phone);datacount=p;count+;printf(”nt导入已完成!共导入 %d

29、条记录!nnn,count);fclose(f_info);for(i=0;icount;i+) /输入学生数据printf(nt学号:%.0lf 姓名: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(

30、%d”,&datai.pinde);printf(t请输入老师评分:”);scanf(”%d,datai.teacher);datai。aver=(datai.chinese+datai.math+datai。english)/3.0;datai.ceping=(datai.aver*0。6+datai.stu0。1+datai。pinde*0.1+datai。teacher*0.2);datai。ksmc=i+1;for(k=0;kdatak.aver) datak.ksmc=datak。ksmc+1;if(datai。ksmcdatak。ksmc1)datai。ksmc=datak.ksm

31、c1;printf(”nnt输入已完成!正在保存.。 n);data_xieru();void data_xiugai() /数据修改double pp;int i,j,k;data_daoru();printf(nt请输入要修改学生的学号:”);scanf(%lf”,&pp);printf(”n);for(i=0;i=count;i+) if(datai.number=pp) break;printf(nt没有找到该学生!n”); return;printf(”nt学号:.0lf 姓名:%s nnt语文:d 数学:%d 英语:%d 同学互评分:%d 品德成绩:%d 老师评分:%dnn”,da

32、tai.number,datai。name,datai.chinese,datai.math,datai。english,datai.stu,datai.pinde,datai。teacher);printf(”nt是否修改?t 1。是 t 2。否 t ”);while(1) /询问 scanf(%d”,&j); switch(j) case 1:for(k=0;k=count;k+) /重新排名次if(datai.averdatak。aver) datak.ksmc=datak.ksmc1;printf(nt请输入语文成绩:”);scanf(”d”,&datai.chinese);print

33、f(”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。teacher);datai。aver=(datai。chinese+datai.math+datai。english)/3.0;datai。ceping=(datai.aver*0。6+dat

34、ai.stu*0.1+datai。pinde0。1+datai.teacher0.2);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; /写入文件 case 2: return; default : printf(”输入错误!请重新输入!);break; break;printf(nntt”); system(pause”);void

35、data_chaxun() /数据查询 double pp;int i;data_daoru(); /导出文件数据printf(”nt请输入要查询学生的学号:”);scanf(”%lf,pp);printf(n);for(i=0;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

36、,datai。english,datai。aver,datai。ksmc,datai。pinde,datai。teacher,datai.ceping);printf(”nntt);system(pause);system(cls); /清屏void shuchu() /学生综合信息输出int i;data_daoru(); printf(”t学号t 姓名t 性别t 家庭住址t电话号码t 平均成绩t 名次t 综合成绩n);for(i=0;icount;i+)printf(”11.lf,11s,4s,%15s,14s,%9.1f,9d,9.1f,datai.number,datai。name,d

37、atai。sex,datai.adds,datai.phone,datai.aver,datai。ksmc,datai.ceping); printf(”nntt);system(pause”);printf(”n”);/t学号t 姓名 t 性别t 家庭住址t 联系电话n6收获及体会 通过几天的查找资料和修改编写,取其精华,弃其糟粕,终于勉强设计出一个可以勉强运行的学生信息处理系统,虽然我知道这个系统还存在许多可以改进和完善的地方,但是努力总算有收获.最重要的是在这一个过程中学到了许多知识,也体会到了一个程序的编出需要多久的努力和调试。就像没有什么事是一帆风顺的,风雨过后终将见彩虹.记得刚拿到

38、这个课题时完全没有头绪,根本不知道从哪儿着手设计,然后我首先选择了去图书馆借一些相关的书籍参考一下,但无奈来到图书馆没有找到这样的书;接下来我选择借助网络查找一些类似的案例,看了他们的设计之后,我突然就恍然大悟啦,也突然明白什么叫做分模块设计制作,并对每一个要用的函数进行定义和说明;最后我根据我选择的比较喜欢的一个将基本信息和学生成绩分开记录管理的程序进行修改和完善。但最后依然存在问题,我就选择了求助于同学,和同学一起讨论研究,毕竟三个臭皮匠赛过诸葛亮,最后的最后,终于达到了我自己比较想要的运行结果.像老师说的应该先新建一个info_txt,但系统会自动生成一个info_txt,data_tx

39、t也是一样的。 耐心也是一个编程人员必须具备的基本素质,要能耐得住寂寞的不断的修改和调试,不被外界干扰,自己一个人进入那个世界。 细心自然是必须的,一个标点符号都有可能出现错误。 我想,现在大多数同学所处的都不是可以凭自己一己之力编出想要的程序的阶段,这一点毋庸质疑,但结果往往没有那么重要,最重要是学习和积累的过程,罗马不是一天建成的,一步也不能登天,慢慢的积累经验不断地补充c知识,相信以后一定可以做到的.参考文献1陈世清. C语言程序设计B。浙江大学出版社,2012年月7。程序运行部分界面:计算机与通信学院课程设计评分表课程名称: C语言程序设计 项 目分 数设计方案的合理性与创造性设计与调试结果设计说明书的质量答辩陈述与回答问题情况课程设计周表现情况综合成绩.

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