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

下载本文档

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

文档简介

1、郑州科技学院C语言课程设计设计(论文)题目:学生成绩管理系统所在院:信息工程学院专业班级:15计算机科学与技术3班学生姓名:宋建军学号:201515085指导教师:周丽2016年9月11日郑州科技学院课程设计(论文)任务书设计题目:学生综合信息测评系统专业班级:15计算机科学与技术 3班学号 2015150085 姓名 宋建军主要内容设计学生成绩管理系统,主要包含:输入记录模块、查询记录模块、更新记录模块、统 计记录模块和输出记录模块。采用字符用户界面,通过菜单选择相应的操作, 直观且操作简单。数据的存储选用数据 文件方式;编辑平台选用 Microsoft Visual C+ 6.0 。所用到

2、的知识点有:三种基本程序结构, 数组,函数,指针,结构体,文件操作和链表。基本要求:按照内容要求,设计完整的学生成绩管理系统。要求调试通过,不存在漏洞,方便用户 操作。功能的实现上力求容错能力要强且提示信息完备。完成期限:2016年9月11日指导教师签名:概述.1.1 1,错误!未定义书签1.1程序要求1.2具体分工情况1.3开发环2需求分析23 总体设计23.1程序主界面设计 .3.2学生信息处理子界面设计3.3学生数据处理子界面设计4程序设计 错误!未定义书签。5程序调试406 程序评估 407 参考文献错误!未定义书签。1概述1)程序要求每个学生的信息为:学号、姓名、性别、家庭住址、联系

3、电话、语文、数学、 外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教 师评分、综合测评总分、综合测评名次。考试平均成绩、同学互评分、品德成绩、 任课教师评分分别占综合测评总分的 60% 10% 10% 20%A、学生信息处理(1) 输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小 至伏的顺序存入文件中。(2) 插入(修改)同学信息:(3) 删除同学信息:(4) 浏览学生信息:8学生数据处理:(1) 按考试科目录入学生成绩并且按公式:考试成绩=(语文+数学+外语)/3计算考试成绩,并计算考试名次, 提示:先把学生信息读入数组,然后按提示输入每科成绩,计算考试成

4、绩, 求出名次,最后把学生记录写入一个文件中。(2) 学生测评数据输入并计算综合测评总分及名次。综合测评总分=(考试成绩)*0.6+ (同学互评分)*0.1+品德成绩*0.1 + 任课老师评分*0.2。(3) 学生数据管理输入学号,读出并显示该同学信息,输入新数据,将改后信息写入文件(4) 学生数据查询:输入学号或其他信息,即读出所有数据信息,并显示出来。C、学生综合信息输出03 )开发环境Microsoft Visual C+ 6.02需求分析1为什么要做个学生综合测评系统。以下有几点理由1,我们都知道学校考核一个学生的主要依据就是学生的综合成绩,综合素质。 这就让一个学生的综合测评系统的建

5、立显得尤为重要。2 一个学生综合测评系统包括学生的方方面面信息,这有利丁学校的管理。3大家都知道学生是流动的,而且综合测评是每年评比一次,所以这学生综合 测评系统的更改录入功能重要性不明而喻。4现在是个时间就是金钱的社会。老师本身就工作繁忙。这系统可以大大减轻 老师的包袱。5这是个开放的平台,每个学生都可以轻易地查询自己的成绩。灵活性强。3总体设计1)程序主界面设计主界面J2)学生信息处理子界面设计学生信2息处理删73 )学生数据处理子界面设计学生数据处理录入成绩修改学生数据学生数据查询主菜单程序流程图开始4程序设计1 )主界面程序设计(1)函数描述输入参数:无输出参数:无功 能:本系统可以存

6、储学生的基本信息和各科成绩,并能计算考试 成绩,综合测评成绩和排名。(2)函数程序int main()(system("color 2e");printf("nnntt欢迎使用 学生综合管理系统nn");printf("nntt");system("pause");menu(); /主菜单入口函数return 0 ;2)学生信息处理子菜单(1) 函数描述函数名:info_menu()输入参数:无输出参数:无功 能:显示学生信息处理系统菜单(2) 函数程序voidinfo_menu()/学生信息菜单(int choi

7、ce;while(1)system("cls");/活屏printf("nnnntt学生信息处理系统 nn");printf(-ttt1.输入学生信息n");printf("ttt2.修改学生信息n");printf(-ttt3.删除学生信息n");printf("ttt4.浏览学生信息n");printf("ttt0.返回主菜单 nn");printf("tt请输入序号选择操作:");scanf("%d",&choice);i

8、f(choice=0) break;switch(choice)case 1: system("cls");info_input(); info_xieru(); break;case 2: system("cls");info_xiugai(); break;case 3: system("cls");info_del(); break;case 4: system("cls");info_output(); break;default:system("cls"); printf("

9、nt输入有误!请重新输入!nn"); break;3 )学生数据处理子菜单(1)函数描述函数名:data_menu()输入参数:无输出参数:无功 能:显示学生数据处理系统菜单(2)函数程序Voiddata_menu()/数据处理菜单(int choice;/printf("nt在进入学生数据管理前,请确认学生信息已全部完成! n");printf("nt输入数字选择(0 :返回;其它数字继续。)n");scanf("%d",&choice);if(choice=0) return;while(1)system(&qu

10、ot;cls");/活屏printf("nnnntt 学生数据处理系统 nn");printf("ttt1.录入成绩数据n");printf("ttt2.修改学生数据n");printf("ttt3.学生数据查询n");printf("ttt0.返回主菜单 nn");printf("tt请输入序号选择操作:");scanf("%d",&choice);if(choice=0) break;switch(choice)case 1: sys

11、tem("cls");data_input(); break;case 2: system("cls");data_xiugai(); break;case 3: system("cls");data_chaxun(); break;default: system("cls");printf("nt输入有误!请重新输入!nn"); break;4) 学生综合信息输出(1) 函数描述函数名:shuchu()输入参数:无输出参数:无功 能:学生信息的综合输出(2) 函数程序void shuchu()

12、/学生综合信息输出(int i;data_daoru();printf("n");printf("n");printf(" 学号姓名电话平均分名次测评总分n");printf("n");for(i=0;i<count;i+)printf("|%10d %10s %14s %10.1f %10d %10.1fn",infoi.number,,infoi.phone,datai.avg ,datai.ksmc,datai.ceping);printf("|_|n&

13、quot;);9printf("nntt");system("pause");printf("n");5) 帮助函数/*函数名:help()输入参数:无输出参数:无功能:显示本系统的信息/帮助信息* void help()system("cls");/活屏printf("n"); printf("ttt学生综合测评系统!nn");printf("本系统可以存储学生的基本信息和各科成绩,并能计算考试成绩,综合测评成绩和排名。nn");printf("

14、;基本信息包括:学号、姓名、性别、家庭住址、联系电话;nn各科成绩包括:语文、数学、英语成绩;nn");printf("其它包括:考试名次、同学互评分、品德成绩、任课教师评分等。nn");printf(" 说明:考试成绩排名是按照考试成绩计算的(考试成绩=(语+数+ 外)/3);nn");printf(" 综合测评总分=(考试成绩)*0.6+ (同学互评分)*0.1+(品德成 绩)*0.1n +(任课教师评分)*0.2)nn");printf(" 其它请按照提示操作即可。nn");printf("

15、;nntt");system("pause");6) 学生信息导入函数/*函数名:info_daoru()输入参数:无输出参数:无功能:打开存放的学生信息*/void info_daoru()/学生信息导出文件函数FILE *f_info;printf("nnt正在导入.nn");if(f_info=fopen("info.txt","r")=NULL)printf("nt打开文件失败!nn");return;count=0;while(!feof(f_info)fscanf(f_in

16、fo,"%d%s%s%s%s",&p.number,&,&p.sex,&p.addr ,&p.phone);infocount=p;count+;printf("nt导入已完成!共导入 %d条记录!nnn",count);fclose(f_info);system("cls");7) 学生信息输入函数/*函数名 :info_input()输入参数:无输出参数:无功能:录入学生个人信息*/void info_input()/学生信息车*函数int i,j;info_daoru();fo

17、r( ; ; )printf("t请输入学号(输入0退出):”);scanf("%d",&p.number);if(p.number=0) return;for(i=0;i<=count;i+)/判断是否存在该学生if(p.number=infoi.number)printf("nnt 该学号已存在!请重新输入!nn");return;11printf("t请输入姓名:");/输入学生信息scanf("%s",&);printf("t请输入性别:");

18、scanf("%s",&p.sex);if( ( strcmp(p.sex ,"男")!=0 ) | (strcmp(p.sex ,"女")!=0) printf("t你输入的内容不符合要求,请从新输入!按任意键继续n");getchar();continue;printf("t请输入家庭地址");scanf("%s",&p.addr );printf("t请输入电话号码:");scanf("%s",&p.pho

19、ne);infocount=p;for(i=0;i<count;i+)/按学号排序if(infoi.number>infocount.number)for(j=count;j>i;j-)infoj=infoj-1;infoi=p;break;count+;8) 输出函数/*函数名:info_output()输入参数:无输出参数:无功能:显示学生个人信息学生信息*/void info_output()/浏览(FILE *f_info;int i;if(f_info=fopen("info.txt”,"r")=NULL)/判断printf("

20、;nt没有学生信息!");printf("nntt");system("pause");return; info_daoru();13printf("n");if(count=0)(/判断printf(-nt没有学生信息!");printf("nntt");system("pause");return;else(printf(- 学号 姓名性别 家庭地址联系电话n");输出学生信息for(i=0;i<count;i+)printf(" %d"

21、;,infoi.number);printf(" %8s",);printf(" %8s",infoi.sex);printf(" %10s",infoi.addr);printf(" %10snn",infoi.phone);printf("t请按任意键返回上级:");printf("nntt");system("pause");printf("nnnn");9) 学生信息写入文件/*函数名:info_xieru(

22、)输入参数:无输出参数:无19功能:把学生个人信息数据写入到文件*/void info_xieru()信息写入文件函数(FILE *f;int i;/学生if(f=fopen("info.txt”,"w")=NULL) printf("nt 打开文件失败!nn"); exit(0);for(i=0;i<count;i+)存文件/保if(infoi.number=w.number) continue;elsefprintf(f,"%d%s”,infoi.number,,infoi.sex,infoi.addr

23、e);%s %s %s,infoi.phonfclose(f);printf("nt保存成功!nn");printf("nntt");system("pause");system("cls");return;10) 删除学生信息函数/*函数名:info_del()输入参数:无输出参数:无功能:删除学生个人信息*/学生信*void info_del()息删除-(int pp;int i,j;info_daoru();printf("nt请输入要删除学生的学号:");scanf("%d&q

24、uot;,&pp);printf("n");for(i=0;i<=count;i+)/判断if(infoi.number=pp) break;if(i>=count)printf("nt没有找到该学生!n"); return;printf(" 学号 姓名 性别 地址联系电话n");/显示删除信息printf(" %d ",infoi.number);printf(" %5s ",);printf(" %5s ",infoi.sex);p

25、rintf(" %10s ",infoi.addr);printf(" %10snn",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

26、;break;printf("nntt");system("pause");11) 学生信息修改函数/*函数名:info_xiugai()输入参数:无输出参数:无功能:修改学生信息*/void info_xiugai()/修改学生信息int pp;int i,j;info_daoru();printf("nt请输入要修改学生的学号:");/查找scanf("%d",&pp);printf("n");for(i=0;i<=count;i+) if(infoi.number=pp) b

27、reak;if(i>=count) printf("nt没有找到该学生!n"); return;printf(" 学号 姓名性别 家庭地址联系电话n");/显示printf(" %d",infoi.number);printf(" %10s",);printf(" %10s",infoi.sex);printf(" %16s",infoi.addr);printf(" %13sn",infoi.phone);printf(&quo

28、t;nt是否修改?t 1.是 t 2. 否 t ");while(1)/修改scanf("%d",&j); switch(j) case 1: printf("t学号为:.0dn",infoi.number);printf("t请输入姓名:");scanf("%s",); printf("t请输入性别:");男")!=0 ) | (strcmp(p.sex ,scanf("%s",infoi.sex);if( ( strcmp(

29、p.sex ,"( printf("t你输入的内容不符合要求,请从新输入!按任意键继续n");getch();continue;printf("t请输入家庭地址");scanf("%s",&infoi.addr);printf("t请输入电话号码:");scanf("%s",infoi.phone);printf("nt 修改成功!nn"); info_xieru(); return;/保存case 2: return;default : printf(&q

30、uot;输入错误!请重新输入!");break;break;printf("nntt");system("pause");12) 学生成绩数据导入/*函数名:data_daoru()输入参数:无输出参数:无功能:学生成绩从文件导入*/void data_daoru()导出(/学生数据FILE *f_data;int i;info_daoru();printf("nnt正在导入.nn");if(f_data=fopen("data.txt","r")=NULL)(printf("

31、;nt打开文件失败!nn");return;i=0;while(!feof(f_data)fscanf(f_data,"%d %d %d %d %f %d %d %d %d %f ",&d.number,&d.chinese,&d.math,&d.english,&d.avg,&d.ksmc,&d.huping,&d.pinde,&d.teacher,&d.ceping);datai=d;i+;printf("nt导入已完成!共导入 %d条记录!nnn",count

32、);fclose(f_data);/关闭文件 system("cls");*函数名:data_xieru()输入参数:无输出参数:无功能:学生数据写入到文件*void data_xieru()/写入文件函数(FILE *f;int i;if(f=fopen("data.txt","w")=NULL)printf("nt打开文件失败!nn");exit(0);for(i=0;i<count;i+)fprintf(f,"%d%d %d %d %f %d %d %d %d %f”,datai.number

33、,datai.chinese,datai.math,datai.english,datai.avg,datai.ksmc,datai.huping,datai.pinde,datai.teacher,datai.ceping);fclose(f);23printf("nntt");system("pause");system("cls");return;14)数据输入函数/*函数名:data_input()输入参数:无输出参数:无功能:录入学生数据*/void data_input()/数据输入FILE *f_info;int cho

34、ice,i,k;/printf(-nt警告!原有成绩将被覆盖!n");printf("nt 输入数字选择(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)(/导

35、出学生信息fscanf(f_info,"%d%s%s%s%s",&p.number,,p.sex,p.addr ,p.phone);datacount.number =p.number ;infocount=p;count+;printf("nt 导入已完成!共导入 %d条记录!nnn",count);fclose(f_info);for(i=0;i<count;i+)/输入学生数据printf("t 学号:%dn",infoi.number);printf("n");printf(&qu

36、ot;t姓名:sn",);printf("n");printf("t请输入语文成绩:");scanf("%d",&datai.chinese);while( datai.chinese < 0 | datai.chinese > 100 ) printf("t对不起你输入的数据不是1-100之间,请从新输入真确的数值! n");printf("t请输入语文成绩:");scanf("%d",&datai.chinese)

37、;printf("n");printf("t请输入数学成绩:");scanf("%d",&datai.math);while( datai.math < 0 | datai.math > 100 )( printf("t对不起你输入的数据不是1-100之间,请从新输入真确的数值! n");printf("t请输入数学成绩:");scanf("%d",&datai.math);printf("n");printf("t请

38、输入英语成绩:");scanf("%d",&datai.english);while( datai.english < 0 | datai.english > 100 )( printf("t对不起你输入的数据不是1-100之间,请从新输入真确的数值! n");printf("t请输入英语成绩:");scanf("%d",&datai.english);printf("n");printf("t请输入同学互评成绩:");scanf(&qu

39、ot;%d",&datai.huping );while( datai.huping < 0 | datai.huping > 100 )( printf("t对不起你输入的数据不是1-100之间,请从新输入真确的数值! n");printf("t 请输入同学互评成绩:");scanf("%d",&datai.huping );printf("n");printf("t请输入品德成绩:");scanf("%d",&datai.pi

40、nde);while( datai.pinde < 0 | datai.pinde > 100 )( printf("t对不起你输入的数据不是1-100之间,请从新输入真确的数值! n");printf("t请输入品德成绩:");scanf("%d",&datai.pinde);printf("n");printf("t请输入老师评分:");scanf("%d",&datai.teacher);while( datai.teacher < 0

41、 | datai.teacher > 100 ) printf("t对不起你输入的数据不是1-100之间,请从新输入真确的数值! n");printf("t请输入老师评分:");scanf("%d",&datai.teacher);datai.avg=(datai.chinese+datai.math+datai.english)/3.0;datai.ceping=(datai.avg*0.6+datai.huping*0.1 +datai.pinde*0.1+datai.teacher*0.2);datai.ksmc=

42、i+1;for(k=0;k<i;k+)/名次排序if(datai.avg>datak.avg)datak.ksmc=datak.ksmc+1;if(datai.ksmc>datak.ksmc-1)datai.ksmc=datak.ksmc-1;printf("nt 输入已完成!正在保存. n");data_xieru();system("cls");15)数据修改 /*函数名 :data_xiugai()输入参数:无输出参数:无功能:学生成绩数据的修改*/void data_xiugai()/数据修改(int pp;int i,j,k;

43、data_daoru();printf("nt请输入要修改学生的学号:");scanf("%d",&pp);printf("n");for(i=0;i<=count;i+)if(datai.number=pp) break;if(i>=count) printf("nt没有找到该学生!n"); return;printf("nt 学号:%.0d姓名:%s nnt语文:%d数学:%d英语:%d品德成绩:%d老师评分:dnn”,datai.number,,datai.c

44、hinese,datai.math, datai.english,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.avg>datak.avg)datak.ksmc=datak.ksmc-1;printf("nt请输入语文成绩:");scanf("%d",&d

45、atai.chinese);while( datai.chinese <0 | datai.chinese >100 )( printf("t对不起你输入的数据不是1-100之间,请从新输入真确的数值! n");printf("t 请输入老师评分:");scanf("%d",&datai.chinese );printf("t请输入数学成绩:");scanf("%d",&datai.math);while( datai.math < 0 | datai.math

46、 > 100 )( printf("t 对不起你输入的数据不是1-100之间,请从 新输入真确的数值!n");printf("t 请输入数学成绩:");scanf("%d",&datai.math);printf("t请输入英语成绩:");scanf("%d",&datai.english);while( datai.english < 0 | datai.english > 100 )( printf("t对不起你输入的数据不是1-100之间,请从新

47、输入真确的数值!n");printf("t 请输入英语成绩:");29printf("nt请输入同学互评成绩:");scanf("%d",&datai.huping );while( datai.huping < 0 | datai.huping > 100 ) printf("t对不起你输入的数据不是1-100之间,请从新输入真确的数值! n");printf("t请输入同学互评成绩:");scanf("%d",&datai.hupin

48、g );printf("nt 请输入品德成绩:");scanf("%d",&datai.pinde);while( datai.pinde < 0 | datai.pinde > 100 ) printf("t对不起你输入的数据不是1-100之间,请从新输入真确的数值! n");printf("t请输入品德成绩:");scanf("%d",&datai.pinde);printf("t请输入老师评分:");scanf("%d",

49、&datai.teacher);while( datai.teacher < 0 | datai.teacher > 100 ) printf("t对不起你输入的数据不是1-100之间,请从新输入真确的数值! n");printf("t请输入老师评分:");scanf("%d",&datai.teacher);datai.avg=(datai.chinese+datai.math+datai.english)/3.0;datai.ceping=(datai.avg*0.6+datai.huping*0.1

50、+datai.pinde*0.1+datai.teacher*0.2);datai.ksmc=count;for(k=0;k<count;k+)(/重新排名次if(datai.avg>datak.avg)(datak.ksmc=datak.ksmc+1;if(datai.ksmc>datak.ksmc-1)datai.ksmc=datak.ksmc-1;printf("nt 修改成功!nn"); data_xieru(); return;/写入文件case 2: return;default : printf("输入错误!请重新输入!"

51、);break;break;printf("nntt");system("pause");16)数据查询/*函数名:data_chaxun()输入参数:无输出参数:无功能:学生数据的查询*/*void data_chaxun()(/数据查询int pp;char cname20;int i,xz;data_daoru();/导出文件数据printf("t请输入查询方式:nn");printf("t1. 学号查询方式 nn");printf("t2. 姓名查询方式 nn");printf(&quo

52、t;t 请选择:");scanf("%d",&xz);if(xz=1)(printf("nt请输入要查询学生的学号:");scanf("%d",&pp);printf("n");for(i=0;i<=count;i+)(if(datai.number=pp) break;if(i>=count)printf("nt没有找到该学生!n");return;printf("nt 学号:%d 姓名:s 性另 U :%s nnt语文:%d 数学:%d 英语:

53、%d平均成绩:.1f名次:%dnnt同学互评:%d品德成绩:%d老师评分:%d nnt综合成绩:.1fnn”,infoi.number,,infoi.sex,datai.chinese ,datai.math,datai.english,datai.avg,datai.ksmc,datai.hupin g ,datai.pinde,datai.teacher,datai.ceping);35printf("nntt");system("pause");return;else(printf("nt请输入要查询学生的姓名:");scanf("%s",&cname);printf("n");for(i=0;i<=count;i+)(if(strcmp(,cname) =0 )(printf("nt学号:%d 姓名:s 性另U :%s nnt语文:%d数学:%d英语:%d平均成绩:.1f名次:%dnnt同学互评:

温馨提示

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

评论

0/150

提交评论