




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
课程设计报告课程名称C语言程序设计课题名称学生综合测评系统专业班级学号姓名指导教师2012年湖南工程学院课程设计任务书课程名称C语言程序设计课题学生综合测评系统专业班级学生姓名学号指导老师审批任务书下达日期2012年12月25日任务完成日期2013年1月2日一、设计内容与设计要求1.设计内容:课题十:学生综合测评系统一、问题描述:每个学生得信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分得60%,10%,10%,20%。二、功能描述:A、学生信息处理(1)输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大得顺序存入文件中。提示:学生信息可先输入到数组中,排序后可写到文件中。(2)插入(修改)同学信息:提示:先输入将插入得同学信息,然后再打开源文件并建立新文件,把源文件与输入得信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,(3)删除同学信息:提示:输入将删除同学号,读出该同学信息,要求对此进行确认,以决定就是否删除将删除后得信息写到文件中。(4)浏览学生信息:提示:打开文件,显示该文件得学生信息。B、学生数据处理:(1)按考试科目录入学生成绩并且按公式:考试成绩=(语文+数学+外语)/3计算考试成绩,并计算考试名次,提示:先把学生信息读入数组,然后按提示输入每科成绩,计算考试成绩,求出名次,最后把学生记录写入一个文件中。(2)学生测评数据输入并计算综合测评总分及名次。提示:综合测评总分=(考试成绩)*0、6+(同学互评分)*0、1+品德成绩*0、1+任课老师评分*0、2。(3)学生数据管理提示:输入学号,读出并显示该同学信息,输入新数据,将改后信息写入文件(4)学生数据查询:提示:输入学号或其她信息,即读出所有数据信息,并显示出来。C、学生综合信息输出提示:输出学生信息到屏幕。三、算法提示:1、数据结构:结构体类型数组2、数据库结构:下表构成该系统得基本数据库。学号姓名考试成绩…评分…CharCharstruct…int…四、测试数据:学生人数:N=10学生综合测评系统1.课程设计目得掌握结构化程序设计得主体思想,以自顶向下逐步求精得方法编制程序解决一些实际得问题,为将来编写软件积累一些典型得案例处理经验。2.课程设计主要任务一、问题描述:得信息为:学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分得60%,10%,10%,20%。二、功能描述:A学生信息处理(1)输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大得顺序存入文件中。(2)插入(修改)同学信息:(3)删除同学信息:(4)浏览学生信息:B、学生数据处理:(1)按考试科目录入学生成绩并且按公式:考试成绩=(语文+数学+外语)/3计算考试成绩,并计算考试名次。(2)学生测评数据输入并计算综合测评总分及名次。(3)学生数据管理(4)学生数据查询:C、学生综合信息输出3.设计环境1)硬件:PC机,档次不低于CPU为PIII667,内存为128M,4G硬盘,其它硬件与此相配套。2)软件:WindowsXP,VC++6、04.总体设计方案得选定本设计采用模块化结构设计,主要包括:主菜单(menu)下得学生信息处理系统(info_menu)、学生数据处理系统(data_menu)、学生综合信息输出(shuchu)、帮助信息(help)、退出系统;学生信息处理系统(info_menu)下得输入学生信息(info_input)、修改学生信息(xiugai)、删除学生信息(info_del)、浏览学生信息(info_output)、返回主菜单;学生数据处理系统下得(data_menu)录入成绩数据(data_input)、修改学生数据(data_xiugai)、学生数据查询(data_chaxun)、返回主菜单。主菜单学生信息处理学生数据处理主菜单学生信息处理学生数据处理综合信息输出帮助信息退出系统学生数据处理系统修改学生数据学生数据查询录入成绩数据返回主菜单学生信息处理系统删除学生信息修改学生信息输入学生信息浏览学生信息返回主菜单学生综合测评系统结构框图5.源程序清单#include<stdio、h> //包含文件#include"stdlib、h"#include"string、h"intcount;voidinfo_daoru();voidinfo_xieru();voidinfo_del();voidinfo_xiugai();voiddata_xieru();voiddata_daoru();voiddata_xiugai();voiddata_chaxun();voiddata_input();voidshuchu();structstudent{ //定义学生信息结构数组 doublenumber; charname[11]; charsex[4]; charadds[15]; charphone[14];}p,info[100],w={0,"","","","",};structdata{ //定义学生数据结构数组doublenumber; charname[11]; charsex[4]; charadds[15]; charphone[14]; intchinese,math,english,stu,ksmc,pinde,teacher; floataver,ceping;}data[100];intmain() //主函数{ system("color9e"); voiddata_menu(); voidinfo_menu(); voidhelp(); voidmenu(); printf("\n\n\n\t\t、、、、、、、、、、、、欢迎使用学生综合管理系统、、、、、、、、、、、、\n\n"); printf("\t\t\t\t本程序由宗幸幸借鉴陈伟得程序编写\n\n"); printf("\n\n\t\t"); system("pause");menu(); return0;}voidhelp()//帮助信息{ system("cls"); //清屏 printf("*欢迎使用本系统!*\n\n"); printf("本系统可以存储学生得基本信息与各科成绩,并能计算考试平均成绩,综合测评成绩与排名。\n"); printf("基本信息包括:学号、姓名、性别、家庭住址、联系电话;\n各科成绩包括:语文、数学、外语成绩;\n"); printf("其它包括:考试名次、同学互评分、品德成绩、任课教师评分等。\n"); printf("说明:考试成绩排名就是按照考试成绩计算得(考试成绩=(语+数+外)/3);\n"); printf("综合测评总分=((考试成绩)*0、6+(同学互评分)*0、1+(品德成绩)*0、1+(任课教师评分)*0、2)\n"); printf("其它请按照提示操作即可。\n\n"); printf("如有疑问,请联系:QQ:905524188\n\n"); printf("\n\n\t\t"); system("pause");}voidinfo_daoru()//学生信息导出文件函数{ FILE*f_info; structstudentp={NULL}; printf("\n\n\t正在导入、、、\n\n"); if((f_info=fopen("info、txt","r"))==NULL){ printf("\n\t打开文件失败!\n\n"); 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); info[count]=p; count++; } printf("\n\t导入已完成!共导入%d条记录!\n\n\n",count); fclose(f_info);}voidinfo_input()//学生信息输入函数{ inti,j; info_daoru(); for(;;){ printf("\t请输入学号(输入0退出):"); scanf("%lf",&p、number); if(p、number==0)return; for(i=0;i<=count;i++){//判断就是否存在该学生 if(p、number==info[i]、number){ printf("\n\n\t该学号已存在!请重新输入!\n\n"); return; } } printf("\t请输入姓名:"); //输入学生信息 getchar(); gets(p、name); printf("\t请输入性别:"); getchar(); gets(p、sex); printf("\t请输入家庭住址:"); getchar(); gets(p、adds); printf("\t请输入电话号码:"); getchar(); gets(p、phone); info[count]=p; for(i=0;i<count;i++){//按学号排序 if(info[i]、number>info[count]、number){for(j=count;j>i;j--){ info[j]=info[j-1]; } info[i]=p; break; } } count++; }}voidinfo_output() //学生信息浏览{ FILE*f_info; inti; if((f_info=fopen("info、txt","r"))==NULL){ //判断 printf("\n\t没有学生信息!"); printf("\n\n\t\t"); system("pause"); return; } info_daoru(); if(count==0){ //判断printf("\n\t没有学生信息!"); printf("\n\n\t\t"); system("pause"); return; }else{ printf("\t学号\t姓名\t性别\t家庭住址\t联系电话\n");//输出学生信息 for(i=0;i<count;i++){ printf("%10、0lf",info[i]、number); printf("%10s",info[i]、name); printf("%10s",info[i]、sex); printf("%15s",info[i]、adds); printf("%13s\n\n",info[i]、phone); } } printf("\t请按任意键返回上级:"); printf("\n\n\t\t"); system("pause"); printf("\n\n\n\n");}voidinfo_menu()//学生信息菜单{ intchoice; while(1){ system("cls"); //清屏 printf("\n\n\n\n\t\t☆☆☆☆☆学生信息处理系统☆☆☆☆☆\n\n"); printf("\t\t\t●1、输入学生信息\n"); printf("\t\t\t●2、修改学生信息\n"); printf("\t\t\t●3、删除学生信息\n"); printf("\t\t\t●4、浏览学生信息\n"); printf("\t\t\t●0、返回主菜单\n\n"); printf("\t\t请输入序号选择操作:"); scanf("%d",&choice); if(choice==0)break; switch(choice){ case1:info_input();info_xieru();break;case2:info_xiugai();break;case3:info_del();break; case4:info_output();break; default:printf("\n\t输入有误!请重新输入!\n\n");break; } }}voiddata_menu()//数据处理菜单{ intchoice; printf("\n\t在进入学生数据管理前,请确认学生信息已全部完成!\n"); printf("\n\t就是否继续?输入数字选择(0:返回;其它数字继续。)\n"); scanf("%d",&choice); if(choice==0)return; while(1){ system("cls"); //清屏 printf("\n\n\n\n\t\t☆☆☆☆☆学生数据处理系统☆☆☆☆☆\n\n"); printf("\t\t\t●1、录入成绩数据\n"); printf("\t\t\t●2、修改学生数据\n"); printf("\t\t\t●3、学生数据查询\n"); printf("\t\t\t●0、返回主菜单\n\n"); printf("\t\t请输入序号选择操作:"); scanf("%d",&choice); if(choice==0)break; switch(choice){ case1:data_input();break;case2:data_xiugai();break;case3:data_chaxun();break; default:printf("\n\t输入有误!请重新输入!\n\n");break; } }}voidmenu()//主菜单函数{ intchoice; while(1){ system("cls"); printf("\n\n\n\n\t\t--------※主----菜----单※--------\n\n"); printf("\t\t\t●1、学生信息处理系统\n"); printf("\t\t\t●2、学生数据处理系统\n"); printf("\t\t\t●3、学生综合信息输出\n"); printf("\t\t\t●4、帮助信息\n"); printf("\t\t\t●0、退出系统\n\n"); printf("\t\t请输入序号选择操作:"); scanf("%d",&choice); printf("\n"); if(choice==0){ printf("\t\t☆☆☆☆☆您已经退出,谢谢使用!☆☆☆☆☆\n\n\t\t"); break; } switch(choice){ case1:info_menu();break; case2:data_menu();break; case4:help();break; case3:shuchu();break; default:printf("\n\t输入有误!请重新输入!\n\n");break; } }}voidinfo_xieru()//学生信息写入文件函数{ FILE*f; inti; if((f=fopen("info、txt","a"))==NULL){ printf("\n\t打开文件失败!\n\n"); exit(0); }for(i=0;i<count;i++){ //保存文件 if(info[i]、number==w、number)continue;elsefprintf(f,"%、0lf%s%s%s%s",info[i]、number,info[i]、name,info[i]、sex,info[i]、adds,info[i]、phone); } fclose(f); printf("\n\t保存成功!\n\n"); printf("\n\n\t\t"); system("pause"); return;}voidinfo_del() //学生信息删除{ doublepp; inti,j; info_daoru(); printf("\n\t请输入要删除学生得学号:"); scanf("%lf",&pp); printf("\n"); for(i=0;i<=count;i++){ //判断if(info[i]、number==pp)break; if(i>=count){ printf("\n\t没有找到该学生!\n");return; } } printf("\t学号\t姓名\t性别家庭住址\t联系电话\n");//显示删除信息 printf("%10、0lf",info[i]、number); printf("%10s",info[i]、name); printf("%10s",info[i]、sex); printf("%13s\n\n",info[i]、phone); printf("\n\t就是否删除?\t1、就是\t2、否\t"); while(1){ scanf("%d",&j); switch(j){ case1:info[i]=w;printf("\n\t删除成功!\n\n");info_xieru();return; case2:return; default:printf("输入错误!请重新输入!");break; } break; } printf("\n\n\t\t");system("pause");}voidinfo_xiugai() //修改学生信息{ doublepp; inti,j; info_daoru(); printf("\n\t请输入要修改学生得学号:");//查找 scanf("%lf",&pp); printf("\n"); for(i=0;i<=count;i++){if(info[i]、number==pp)break; printf("\n\t没有找到该学生!\n");return; } printf("\t学号\t姓名\t性别\t家庭住址\t联系电话\n");//显示 printf("%10、0lf",info[i]、number); printf("%10s",info[i]、name); printf("%10s",info[i]、sex); printf("%15s",info[i]、adds); printf("%13s\n\n",info[i]、phone); printf("\n\t就是否修改?\t1、就是\t2、否\t"); while(1){ //修改 scanf("%d",&j); switch(j){ case1:{ printf("\t学号为:%、0lf\n",info[i]、number); printf("\t请输入姓名::"); scanf("%s",info[i]、name); printf("\t请输入性别:"); scanf("%s",info[i]、sex); printf("\t请输入家庭住址::"); scanf("%s",info[i]、adds); printf("\t请输入电话号码:"); scanf("%s",info[i]、phone); printf("\n\t修改成功!\n\n");info_xieru();return;//保存 } case2:return; default:printf("输入错误!请重新输入!");break; } break; } printf("\n\n\t\t");system("pause");}voiddata_daoru() //学生数据导出{FILE*f_data; structdatap={NULL}; printf("\n\n\t正在导入、、、\n\n"); if((f_data=fopen("data、txt","r"))==NULL){ printf("\n\t打开文件失败!\n\n"); 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); data[count]=p;//nnaseadpchmaensuavkspitece count++; } printf("\n\t导入已完成!共导入%d条记录!\n\n\n",count); fclose(f_data); //关闭文件}voiddata_xieru()//写入文件函数{ FILE*f; inti; if((f=fopen("data、txt","w"))==NULL){ printf("\n\t打开文件失败!\n\n"); exit(0); }for(i=0;i<count;i++){fprintf(f,"%、0lf%s%s%s%s%d%d%d%、1f%d%d%d%、1f",data[i]、number,data[i]、name,data[i]、sex,data[i]、adds,data[i]、phone,data[i]、chinese,data[i]、math,data[i]、english,data[i]、aver,data[i]、ksmc,data[i]、stu,data[i]、pinde,data[i]、teacher,data[i]、ceping); }//numnamsadtelcmeaveksstutcep fclose(f); printf("\n\n\t\t"); system("pause"); return;}voiddata_input() //数据输入{ FILE*f_info; intchoice,i,k; structdatap={NULL};printf("\n\t警告!原有成绩将被覆盖!\n"); printf("\n\t就是否继续?输入数字选择(0、返回;其余数字继续)\n\n"); scanf("%d",&choice); if(choice==0)return; printf("\n\n\t正在导入、、、\n\n"); //判断 if((f_info=fopen("info、txt","r"))==NULL){ printf("\n\t打开文件失败!\n\n"); 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); data[count]=p; count++; } printf("\n\t导入已完成!共导入%d条记录!\n\n\n",count); fclose(f_info); for(i=0;i<count;i++){ //输入学生数据 printf("\n\t学号:%、0lf姓名:%s\n",data[i]、number,data[i]、name); printf("\n\t请输入语文成绩:"); scanf("%d",&data[i]、chinese); printf("\t请输入数学成绩:"); scanf("%d",&data[i]、math); printf("\t请输入英语成绩:"); scanf("%d",&data[i]、english); printf("\t请输入同学互评分:"); scanf("%d",&data[i]、stu); printf("\t请输入品德成绩:"); scanf("%d",&data[i]、pinde); printf("\t请输入老师评分:"); scanf("%d",&data[i]、teacher); data[i]、aver=(data[i]、chinese+data[i]、math+data[i]、english)/3、0; data[i]、ceping=(data[i]、aver*0、6+data[i]、stu*0、1+data[i]、pinde*0、1+data[i]、teacher*0、2); data[i]、ksmc=i+1; for(k=0;k<i;k++){ //名次排序 if(data[i]、aver>data[k]、aver){data[k]、ksmc=data[k]、ksmc+1; if(data[i]、ksmc>data[k]、ksmc-1) data[i]、ksmc=data[k]、ksmc-1; } } } printf("\n\n\t输入已完成!正在保存、、、\n"); data_xieru();}voiddata_xiugai() //数据修改{ doublepp; inti,j,k; data_daoru(); printf("\n\t请输入要修改学生得学号:"); scanf("%lf",&pp); printf("\n"); for(i=0;i<=count;i++){if(data[i]、number==pp)break; printf("\n\t没有找到该学生!\n");return; } printf("\n\t学号:%、0lf姓名:%s\n\n\t语文:%d数学:%d英语:%d同学互评分:%d品德成绩:%d老师评分:%d\n\n",data[i]、number,data[i]、name,data[i]、chinese,data[i]、math,data[i]、english,data[i]、stu,data[i]、pinde,data[i]、teacher); printf("\n\t就是否修改?\t1、就是\t2、否\t"); while(1){ //询问 scanf("%d",&j); switch(j){ case1:{ for(k=0;k<=count;k++){ //重新排名次 if(data[i]、aver>data[k]、aver)data[k]、ksmc=data[k]、ksmc-1; } printf("\n\t请输入语文成绩:"); scanf("%d",&data[i]、chinese); printf("\t请输入数学成绩:"); scanf("%d",&data[i]、math); printf("\t请输入英语成绩:"); scanf("%d",&data[i]、english);printf("\t请输入同学互评分:"); scanf("%d",&data[i]、stu); printf("\t请输入品德成绩:"); scanf("%d",&data[i]、pinde); printf("\t请输入老师评分:"); scanf("%d",&data[i]、teacher); data[i]、aver=(data[i]、chinese+data[i]、math+data[i]、english)/3、0; data[i]、ceping=(data[i]、aver*0、6+data[i]、stu*0、1+data[i]、pinde*0、1+data[i]、teacher*0、2); data[i]、ksmc=count; for(k=0;k<count;k++){ //重新排名次 if(data[i]、aver>data[k]、aver){ data[k]、ksmc=data[k]、ksmc+1; if(data[i]、ksmc>data[k]、ksmc-1) data[i]、ksmc=data[k]、ksmc-1; } }printf("\n\t修改成功!\n\n");data_xieru();return;//写入文件 }case2:return;default:printf("输入错误!请重新输入!");break; } break; } printf("\n\n\t\t");system("pause");}voiddata_chaxun() //数据查询{doublepp; inti; data_daoru(); //导出文件数据 printf("\n\t请输入要查询学生得学号:"); scanf("%lf",&pp); printf("\n"); for(i=0;i<=count;i++){if(data[i]、number==pp)break; if(i>=c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 借名买房协议律师版3篇
- 农作物购销协议3篇
- 国外学历认证合同3篇
- 废油处理资源化服务协议3篇
- 国际检验中心砌墙协议3篇
- 厂家质量保修卡模板3篇
- 廊架施工合同方案的制定流程2篇
- 建议书打造绿色奥运3篇
- 刻章委托协议3篇
- 畜牧良种繁殖的生态环境保护考核试卷
- 2025商业综合体委托经营管理合同书
- 2024-2025学年北师大版生物七年级下册期中模拟生物试卷(含答案)
- 林业理论考试试题及答案
- 超市店长价格管理制度
- 2025-2030中国脑芯片模型行业市场发展趋势与前景展望战略研究报告
- 2025年河南省洛阳市洛宁县中考一模道德与法治试题(含答案)
- 掘进爆破、爆破安全知识
- 绿色工厂员工培训
- GB/T 17622-2008带电作业用绝缘手套
- 煤矿班组安全文化建设(课堂PPT)
- ISO15189体系性能验证报告模版-EP15
评论
0/150
提交评论