C语言课程设计报告-学生综合测评系统_第1页
C语言课程设计报告-学生综合测评系统_第2页
C语言课程设计报告-学生综合测评系统_第3页
C语言课程设计报告-学生综合测评系统_第4页
C语言课程设计报告-学生综合测评系统_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、注意:本文档可供大家参考,学习。请大家借鉴优点,批评不足。请各位湖工学弟,学妹不要署名后直接打印,应付老师。一定要弄懂代码,这对大家的代码编写技术很有好处。虽然现在完全自主编写有些困难,但是也要有一个迎难而上的心态。祝大家学业有成!额南2程手陇5”课程设计报告课程名称C语言程序设计课题名称学生综合测评系专业班级学号姓名指导教师.资料.任务书下达日期任务完成日期年月目录一、设计容与设计要求3学生综合测评系统3一、问题描述:3二、功能描述:3三、算法提示:3四、测试数据:42 .设计要求:43 .进度安排44 .总体设计方案51 .总体流程图52 .程序主要函数51 .voidinti()初始化函

2、数52 .wele()函数63 .voidInputInfo()录入学生信息64 .voidDeleteInfo()删除信息75 .voidpaiming1()/voidpaiming2()成绩排名76 .voidViewAll()浏览全部学生信息77 .voidclean()清除所有信息88 .voidPaimingView()查询排名83 .程序其他函数8A.信息存盘(结构体)88 .读取信息(结构体)8C.信息存盘(整型)9D.读取信息(整型)9E.学号检索95 .程序源代码106 .收获及体会227 .参考文献22计算机与通信学院课程设计评分表23课程名称:C语言程序设计23A,设计容

3、与设计要求学生综合测评系统一、问题描述:每个学生的信息为:学号、性别、家庭住址、联系、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。二、功能描述:A、学生信息处理(1)输入学生信息、学号、性别、家庭住址、联系,按学号以小到大的顺序存入文件中。提示:学生信息可先输入到数组中,排序后可写到文件中。(2)插入(修改)同学信息:提示:先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号

4、有序)若存在该同学则将新记录容替换源容,(3)删除同学信息:提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删除后的信息写到文件中。(4)浏览学生信息:提示:打开文件,显示该文件的学生信息。B、学生数据处理:(1)按考试科目录入学生成绩并且按公式:考试成绩=(语文+数学+外语)/3计算考试成绩,并计算考试名次,提示:先把学生信息读入数组,然后按提示输入每科成绩,计算考试成绩,求出名次,最后把学生记录写入一个文件中。(2)学生测评数据输入并计算综合测评总分及名次。提示:综合测评总分=(考试成绩)*0.6+(同学互评分)*0.1+品德成绩*0.1+任课老师评分*0.2。(

5、3)学生数据管理提示:输入学号,读出并显示该同学信息,输入新数据,将改后信息写入文件(4)学生数据查询:提示:输入学号或其他信息,即读出所有数据信息,并显示出来。C、学生综合信息输出提示:输出学生信息到屏幕。三、算法提示:1、数据结构:结构体类型数组2、数据库结构:下表构成该系统的基本数据库。学号考试成绩评分CharCharstructint四、测试数据:学生人数:N=10设计要求:掌握结构化程序设计的主体思想,以自顶向下逐步求精的方法编制程序解决一些实际的问题,为将来编写软件积累一些典型的案例处理经验。(1)按学号顺序选课题号,并在规定的时间独自完成相关课题的C源程序编写、调试和运行。源程序

6、及编译生成各文件均保存;(2)按本任务书的要求,编写课程设计报告(Word文档格式)。并用A4的复印纸打印并装订;(3)在2013年1月5日之前,请各班学习委员收齐课程设计报告交老师。附:课程设计报告容要求如下:封面课程设计任务书课程设计主文档容如下:1、课程设计题目2、课程设计目的3、课程设计主要任务9 、设计环境5、总体设计方案的选定(主控模块和各子模块的设计方法及框图)6、源程序清单7、收获及体会参考资料四、报告容要求用宋体五号字,主标题用黑三号、一级标题用黑四号字,二级标题用宋体小四号字加粗,要求用A4纸打印出来。课程设计说明书装订顺序:封面、任务书、正文、附件(A4大小的图纸及程序清

7、单)。:.进度安科第18周,具体安排如下星期时间班级容地点第17周任务你直第18周星期三A次上机机房第18周星期四第二次上机机房第18周星期五第三次上机与答辩机房一工程学院计算机与通信学院四.总体设计方案1 .总体流程图2 .程序主要函数l.voidinti()初始化函数初始化函数用于从硬盘中加载学生数据和学生数目。首先,从硬盘读取counter.dat的数据。若不存在counter.dat则说明程序第一次运行。创建counter.dat和student_data.dat,把counter的初始值赋为1。若存在counter.dat.则读取其中数据,把数据赋给变量counter,这个值为已储存

8、的学生信息数量。这个counter变量就是计数器变量。用来计量学生信息数量的变化。2.wele()函数Wele函数用来显示选项菜单,并将用户所选的序号返回。"欢迎使用学有言息管理系统1 .录入学生信息2 .浏览学生信息3 .修改学生信息4 .删除学生信息5 .排名学生成绩E.浏览所有学生信息7 .清除所有数据,.查询咯机退出输入相应的功能序号;I主函数中的变量select接收到wele的返回值。通过开关语句,选择需要使用的功能。3 .voidInputInfo()录入学生信息输入学生的信息。学生信息由以下结构体定义。structstudent_infointnum;学号charnam

9、e6;/charsex5;性别charadress20;家庭住址chartel10;/intchinese,math,english,huping,pingde,jiaoping,paiming1,paiming2;/语文数学英语互评品德教评doubleave,zhongping;/平均综合);Inputinfo调用input函数。在input函数中的局部变量stu中录入数据,然后input函数返回stu给Inputinfo中的结构体数组的counter号元素。然后,Inputinfo通过Sortinfo();SaveStruct();Saveint();将数组按学号排序,并存储结构体stud

10、ent和counter。4 .voidDeleteinfo()删除信息删除信息函数,从要删除位信息开始,前位用后一位覆盖,直到数组结束。并同时将counter减1。之后调用SaveStruct();Saveint();储存student结构体数组和counter计数变量。5 .voidpaiming1()/voidpaiming2()成绩排名排名函数将student的给个元素的首地址储存在pN指针数组中。通过冒泡法将指针数组排序。接下来,按顺序把指针数组顺序,把排名赋给student的成员paiming1,paiming2。冒泡排序for(i=0;i<counter-1;i+)for(j

11、=i+1;j<counter;j+)(if(pi->ave<pj->ave)(temp=pi;pi=pj;pj=temp;)排名名词给每一个student的成员paiming1或paiming2。for(i=0;i<counter;i+)pi->paiming1=i+1;6 .voidViewAll()浏览全部学生信息voidViewAll()(inti;for(i=0;i<counter;i+)ViewInfo(&studenti);printf("n");)getchar();printf("回车键返回.&qu

12、ot;);getchar();system("cls");)7 .voidclean()清除所有信息counter计数变量清零,counter.dat清空,student_info.dat清空。8 .voidPaimingView()查询排名根据输入的学号查询排名9 .程序其他函数A.信息存盘(结构体)voidSaveStruct(structstudent_info*sp,intsize,intn,charfilename20)(FILE*fp;fp=fopen(filename,"wb");fwrite(sp,size,n,fp);fclose(fp

13、);)B.读取信息(结构体)voidLoadStruct(structstudent_info*sp,intsize,intn,charfilename20)(略)C.信息存盘(整型)voidSaveInt(int*p,intsize,intn,charfilename20)(FILE*fp;fp=fopen(filename,"wb");fwrite(p,size,n,fp);fclose(fp);D.读取信息(整型)voidLoadInt(int*p,intsize,intn,charfilename20)(略E.学号检索intNumExist(structstuden

14、t_infostudent,intnum)(inti;for(i=0;i<counter;i+)(if(studenti.num=num)returni;return-1;-1O检索学号所在的元素下表,若学号存在,则返回该学号所在下标。若学号不存在,则返回程序截图:联系电话15545545教评漫21名B0分?分号12文均.6均看语翠睾2系的评联1b教73住庭南评蠡互80性晏央75综合制评分排名30名段于4口喜姓李数86综82名1施分?分号12文均.&均学窜翠翠联系电话18U00教评90曾南评霜互80性晏央980解分3号12文均.3学如常平也lX:UsenZSJ-PADDeskto

15、pC3Debug000.exe'五.程序源代码学生综合测评系统2013年1月3日#include<stdio.h>#include<stdlib.h>#defineN100/函数声明voidinit();charwele();voidInputInfo();voidview();voidxiugai();voidDeleteInfo();voidpaiming1(structstudent_infostudent。);voidpaiming2(structstudent_infostudent。);voidViewAll();voidclean();voidPa

16、imingView();voidexit();structstudentinfoinput();voidSortInfo(structstudent_infostudent);voidViewInfo(structstudent_info*sp);voidSaveStruct(structstudent_info*sp,intsize,intn,charfilename20);voidLoadStruct(structstudent_info*sp,intsize,intn,charfilename20);voidSaveInt(int*p,intsize,intn,charfilename2

17、0);voidLoadInt(int*p,intsize,intn,charfilename20);intNumExist(structstudent_infostudent,intnum);/定义学生信息结构体structstudent_infointnum;学号charname6;/charsex5;性别charadress20;家庭住址chartel10;/intchinese,math,english,huping,pingde,jiaoping,paiming1,paiming2;语文数学英语互评品德教评doubleave,zhongping;/平均综合每个学生的信息为:学号、性别、

18、家庭住址、联系、语文、数学、外语三门单科成绩、/考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。/考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。定义全局结构体数据;/structstudent_infostudentN;intcounter,PM;/主函数voidmain()charselect;init();调用初始化函数while(1)select=wele();switch(select)case'1':case'2':case'3':case&#

19、39;4':case'5':system("cls")system("cls")system("cls")system("cls")system("cls")InputInfo();break;view();break;xiugai();break;DeleteInfo();break;/选项1:输入学生信息选项2:浏览学生信息/选项3:修改学生信息/选项4:删除学生信息paiming1(student);paiming2(student);PM=1;getchar();

20、getchar();system("cls");break;/选项5:学生信息排名case'6':system("cls");ViewAll();break;/选项6涧览全部学生信息case'7':system("cls");clean();break;/选项7:清除所有信息case'8':system("cls");PaimingView();break;/选项8:查询排名case'0':system("cls");exit();

21、break;/选项9:退出/初始化函数voidinit()(FILE*fp;fp=fopen("counter.dat","rb");打开计数变量counter文件if(fp!=NULL)载入counter(fclose(fp);LoadInt(&counter,sizeof(counter),1,"counter.dat");)else(fp=fopen("counter.dat","wb");若没有counter文件,则创建一个,counter初始为0。fclose(fp);coun

22、ter=0;)if(counter!=0)载入学生数据LoadStruct(student,sizeof(structstudent_info),counter,"student_info.dat");)/欢迎函数charwele()(charselect;while(1)(system("cls");printf("皿欢迎使用学生信息管理系统n");printf("n");printf("1.录入学生信息nn");printf("2.浏览学生信息nn");printf(&q

23、uot;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=

24、'3'|select='4'|select='5'|select='6'|select='7'|select='8'|select='0')returnselect;system("cls");continue;/1.录入学生信息voidInputInfo()inti,n;printf("需要录入多少位学生的信息:");scanf("%d",&n);system("cls");for(i=1;i&

25、lt;=n;i+)studentcounter=input();counter+;PM=0;SortInfo(student);SaveStruct(student,sizeof(structstudent_info),counter,"student_info.dat");SaveInt(&counter,sizeof(counter),1,"counter.dat");/2.游览学生信息voidview()inti,num;printf("请输入需要游览的学生信息的学号:");scanf("%d",&a

26、mp;num);getchar();if(i=NumExist(student,num)=-1)printf("不存在t学号,按回车键返回.");getchar();system("cls");return;ViewInfo(&studenti);printf("n按回车键返回.");getchar();system("cls");return;)/3.修改学生信息voidxiugai()inti,num;charYN,select;printf("请输入需要修改的学生信息的学号:");

27、scanf("%d",&num);getchar();if(i=NumExist(student,num)=-1)printf("不存在t次学号,按回车键返回.");getchar();system("cls");return;)ViewInfo(&studenti);printf("是否要修改?(Y/N):");scanf("%c",&YN);getchar();if(YN!='Y'&&YN!='y')printf(&qu

28、ot;修改取消.");getchar();system("cls");return;)system("cls");printf("1.学号n");printf("2.性别n");printf("3.家庭住址n");printf("4.联系n");printf("5.语文成绩n");printf("6.数学成绩n");printf("7.外语成绩n");printf("8.同学互评分n")

29、;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'

30、:printf("修改家庭住址:");scanf("%s",&studenti.adress);break;case'4':printf("修改联系:");scanf("%s",&studenti.tel);break;case'5':printf("修改语文成绩:");scanf("%d",&studenti.chinese);break;case'6':printf("修改数学成绩:&quo

31、t;);scanf("%d",&studenti.math);break;case'7':printf("修改外语成绩:");scanf("%d",&studenti.english);break;case'8':printf("修改同学互评分:");scanf("%d",&studenti.huping);break;case'9':printf("修改品德成绩:");scanf("%d&qu

32、ot;,&studenti.pingde);break;case'0':printf("修改任课教师评分:");scanf("%d",&studenti.jiaoping);break;SortInfo(student);SaveStruct(student,sizeof(structstudent_info),counter,"student_info.dat");PM=0;getchar();printf("修改完成.");getchar();system("cls&q

33、uot;);/4.删除学生信息voidDeleteInfo()inti,j,num;charYN;printf("请输入要删除的学生信息学号:");scanf("%d",&num);getchar();if(i=NumExist(student,num)=-1)printf("没有该学号,按回车键返回.");getchar();system("cls");return;ViewInfo(&studenti);printf("n确认删除(Y/N):");scanf("%c

34、",&YN);getchar();if(YN!='Y'&&YN!='y')printf("删除取消.");else(for(j=i;j<counter-1;j+)studentj=studentj+1;counter-;PM=0;SaveStruct(student,sizeof(structstudent_info),counter,"student_info.dat");SaveInt(&counter,sizeof(counter),counter,"coun

35、ter.dat");printf("删除完成.");getchar();system("cls");/平均分、综合分排名voidpaiming1(structstudent_infostudent)(structstudent_info*pN,*temp;inti,j;for(i=0;i<counter;i+)pi=&studenti;for(i=0;i<counter-1;i+)for(j=i+1;j<counter;j+)(if(pi->ave<pj->ave)(temp=pi;pi=pj;pj=

36、temp;for(i=0;i<counter;i+)pi->paiming1=i+1;printf("平均分排名完成n");综合测评分排名voidpaiming2(structstudent_infostudent)(structstudent_info*pN,*temp;inti,j;for(i=0;i<counter;i+)pi=&studenti;for(i=0;i<counter-1;i+)for(j=i+1;j<counter;j+)if(pi->zhongping<pj->zhongping)(temp=p

37、i;pi=pj;pj=temp;for(i=0;i<counter;i+)pi->paiming2=i+1;printf("综合测评分排名完成n");/6.浏览所有学生信息voidViewAll()(inti;for(i=0;i<counter;i+)(ViewInfo(&studenti);printf("n");getchar();printf("回车键返回.");getchar();system("cls");/7.清除所有信息voidclean()(counter=0;SaveIn

38、t(&counter,sizeof(counter),1,"counter.dat");printf("清除完毕.");getchar();getchar();system("cls");查询排名/8.voidPaimingView()(inti,num;printf("输入要查询的学号:");scanf("%d",&num);getchar();i=NumExist(student,num);if(i=-1)printf("该学号不存在.");getchar

39、();return;)if(PM=0)printf("请先进行成绩排名.");getchar();return;)printf("%s的平均分排名dn",,studenti.paiming1);printf("%s的综合测评分排名dn",,studenti.paiming2);printf("按回车键返回.");getchar();return;)/9.退出voidexit()printf("使用!n");exit(0);/structstud

40、ent_infoinput()structstudent_infostu,*sp;charYN;sp=&stu;while(1)while(1)printf("录入学号:");scanf("%d",&sp->num);getchar();if(NumExist(student,sp->num)!=-1)输入信息函数printf("该学号已存在,请重新输入.”);getchar();system("cls");continue;)break;)printf("录入:");gets

41、(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->

42、;math);printf("英语:");scanf("%d",&sp->english);sp->ave=(sp->chinese+sp->math+sp->english)/3.0;printf("同学互评:");scanf("%d",&sp->huping);printf("品德分数:");scanf("%d",&sp->pingde);printf("教师评价:");scanf(&q

43、uot;%d",&sp->jiaoping);getchar();sp->zhongping=(sp->ave*0.6+sp->huping*0.1+sp->pingde*0.1+sp->jiaoping*0.2);printf("录入完毕,确认信息是否正确(Y/N)");YN=getchar();getchar();if(YN='Y'|YN='y')break;elseprintf("按回车键重新录入信息。");getchar();system("cls&q

44、uot;);continue;)system("cls");returnstu;/排序函数voidSortInfo(structstudent_infostudent)(inti,j;structstudent_infotemp;for(i=0;i<counter-1;i+)for(j=i+1;j<=counter-1;j+)(if(studenti.num<studentj.num)(temp=studenti;studenti=studentj;studentj=temp;)/显示学生信息voidViewInfo(structstudent_info*

45、sp)(printf("学号tt性别t家庭住址t联系n");printf("%dt%st%st%stt%sn",sp->num,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->english,sp->huping,sp->pingde,sp->jiaoping);printf("平均分t综合分n");printf("%.2ft%.2fn",sp->ave,sp->zhongping);if(PM=1)(printf("平均分排名t综合测评分排名n");printf("%dtt%dn",sp->paiming1,sp->paiming2);)/信息存盘(结构体)voidSaveStruct(structstu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论