学生综合测评系统.docx
《学生综合测评系统.docx》由会员分享,可在线阅读,更多相关《学生综合测评系统.docx(34页珍藏版)》请在冰豆网上搜索。
学生综合测评系统
郑州科技学院
C语言课程设计
设计(论文)题目:
学生成绩管理系统
所在院:
信息工程学院
专业班级:
15计算机科学与技术3班
学生姓名:
宋建军
学号:
5
指导教师:
周丽
2016年9月11日
郑州科技学院
课程设计(论文)任务书
设计题目:
学生综合信息测评系统
专业班级:
15计算机科学与技术3班
学号85姓名宋建军
主要内容
设计学生成绩管理系统,主要包含:
输入记录模块、查询记录模块、更新记录模块、统计记录模块和输出记录模块。
采用字符用户界面,通过菜单选择相应的操作,直观且操作简单。
数据的存储选用数据文件方式;编辑平台选用MicrosoftVisualC++。
所用到的知识点有:
三种基本程序结构,数组,函数,指针,结构体,文件操作和链表。
基本要求:
按照内容要求,设计完整的学生成绩管理系统。
要求调试通过,不存在漏洞,方便用户操作。
功能的实现上力求容错能力要强且提示信息完备。
完成期限:
2016年9月11日
指导教师签名:
程序要求……………………………………………………………………….1
具体分工情况………………………………………………………………….1
开发环…………………………………………………………………………1
程序主界面设计……………………………………………………………..
学生信息处理子界面设计........................................................................
学生数据处理子界面设计………………………………………………
1概述
1)程序要求
每个学生的信息为:
学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。
考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。
A、学生信息处理
(1)输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。
(2)插入(修改)同学信息:
(3)删除同学信息:
(4)浏览学生信息:
B、学生数据处理:
(1)按考试科目录入学生成绩并且按公式:
考试成绩=(语文+数学+外语)/3计算考试成绩,并计算考试名次,提示:
先把学生信息读入数组,然后按提示输入每科成绩,计算考试成绩,求出名次,最后把学生记录写入一个文件中。
(2)学生测评数据输入并计算综合测评总分及名次。
综合测评总分=(考试成绩)*+(同学互评分)*+品德成绩*+任课老师评分*。
(3)学生数据管理
输入学号,读出并显示该同学信息,输入新数据,将改后信息写入文件
(4)学生数据查询:
输入学号或其他信息,即读出所有数据信息,并显示出来。
C、学生综合信息输出
。
3)开发环境
MicrosoftVisualC++
2需求分析
为什么要做个学生综合测评系统。
以下有几点理由
1,我们都知道学校考核一个学生的主要依据就是学生的综合成绩,综合素质。
这就让一个学生的综合测评系统的建立显得尤为重要。
2一个学生综合测评系统包括学生的方方面面信息,这有利于学校的管理。
3大家都知道学生是流动的,而且综合测评是每年评比一次,所以这学生综合测评系统的更改录入功能重要性不明而喻。
4现在是个时间就是金钱的社会。
老师本身就工作繁忙。
这系统可以大大减轻老师的包袱。
5这是个开放的平台,每个学生都可以轻易地查询自己的成绩。
灵活性强。
3总体设计
1)程序主界面设计
2)学生信息处理子界面设计
3)学生数据处理子界面设计
4)主菜单程序流程图
是
是
否
是
否
是
否
是
4程序设计
1)主界面程序设计
(1)函数描述
输入参数:
无
输出参数:
无
功能:
本系统可以存储学生的基本信息和各科成绩,并能计算考试成绩,综合测评成绩和排名。
(2)函数程序
intmain()
{
system("color2e");
printf("\n\n\n\t\t............欢迎使用学生综合管理系统............\n\n");
printf("\n\n\t\t");
system("pause");
menu();入学生信息\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:
system("cls");info_input();info_xieru();break;
case2:
system("cls");info_xiugai();break;
case3:
system("cls");info_del();break;
case4:
system("cls");info_output();break;
default:
system("cls");printf("\n\t输入有误!
请重新输入!
\n\n");break;
}
}
}
3)学生数据处理子菜单
(1)函数描述
函数名:
data_menu()
输入参数:
无
输出参数:
无
功能:
显示学生数据处理系统菜单
(2)函数程序
Voiddata_menu()入成绩数据\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:
system("cls");data_input();break;
case2:
system("cls");data_xiugai();break;
case3:
system("cls");data_chaxun();break;
default:
system("cls");printf("\n\t输入有误!
请重新输入!
\n\n");break;
}
}
}
4)学生综合信息输出
(1)函数描述
函数名:
shuchu()
输入参数:
无
输出参数:
无
功能:
学生信息的综合输出
(2)函数程序
voidshuchu()umber,info[i].name,info[i].phone,data[i].avg,data[i].ksmc,data[i].ceping);
printf("|____________|____________|________________|___________|___________|__________|\n");
}
printf("\n\n\t\t");
system("pause");
printf("\n");
}
5)帮助函数
/**************************************************
函数名:
help()
输入参数:
无
输出参数:
无
功能:
显示本系统的信息
****************************************************/
voidhelp().\n\n");
if((f_info=fopen("","r"))==NULL){
printf("\n\t打开文件失败!
\n\n");
return;
}
count=0;
while(!
feof(f_info)){
fscanf(f_info,"%d%s%s%s%s",&,&,&,&,&;
info[count]=p;
count++;
}
printf("\n\t导入已完成!
共导入%d条记录!
\n\n\n",count);
fclose(f_info);
system("cls");
}
7)学生信息输入函数
/**************************************************
函数名:
info_input()
输入参数:
无
输出参数:
无
功能:
录入学生个人信息
****************************************************/
voidinfo_input()umber){
printf("\n\n\t该学号已存在!
请重新输入!
\n\n");
return;
}
}
printf("\t请输入姓名:
");umber>info[count].number){
for(j=count;j>i;j--){
info[j]=info[j-1];
}
info[i]=p;
break;
}
}
count++;
}
}
8)输出函数
/**************************************************
函数名:
info_output()
输入参数:
无
输出参数:
无
功能:
显示学生个人信息
****************************************************/
voidinfo_output()umber);
printf("%8s",info[i].name);
printf("%8s",info[i].sex);
printf("%10s",info[i].addr);
printf("%10s\n\n",info[i].phone);
}
}
printf("\t请按任意键返回上级:
");
printf("\n\n\t\t");
system("pause");
printf("\n\n\n\n");
}
9)学生信息写入文件
/**************************************************
函数名:
info_xieru()
输入参数:
无
输出参数:
无
功能:
把学生个人信息数据写入到文件
****************************************************/
voidinfo_xieru()umber==continue;
elsefprintf(f,"%d%s%s%s%s",info[i].number,info[i].name,info[i].sex,info[i].addr,info[i].phone);
}
fclose(f);
printf("\n\t保存成功!
\n\n");
printf("\n\n\t\t");
system("pause");
system("cls");
return;
}
10)删除学生信息函数
/**************************************************
函数名:
info_del()
输入参数:
无
输出参数:
无
功能:
删除学生个人信息
****************************************************/
voidinfo_del()umber==pp)break;
if(i>=count){
printf("\n\t没有找到该学生!
\n");return;
}
}
printf("学号姓名性别地址联系电话\n");umber);
printf("%5s",info[i].name);
printf("%5s",info[i].sex);
printf("%10s",info[i].addr);
printf("%10s\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");
}
11)学生信息修改函数
/**************************************************
函数名:
info_xiugai()
输入参数:
无
输出参数:
无
功能:
修改学生信息
****************************************************/
voidinfo_xiugai()umber==pp)break;
}
if(i>=count){printf("\n\t没有找到该学生!
\n");return;}
printf("学号姓名性别家庭地址联系电话\n");umber);
printf("%10s",info[i].name);
printf("%10s",info[i].sex);
printf("%16s",info[i].addr);
printf("%13s\n",info[i].phone);
printf("\n\t是否修改?
\t1.是\t2.否\t");
while
(1){d\n",info[i].number);
printf("\t请输入姓名:
");
scanf("%s",info[i].name);
printf("\t请输入性别:
");
scanf("%s",info[i].sex);
if((strcmp,"男")!
=0)||(strcmp,"女")!
=0))
{printf("\t你输入的内容不符合要求,请从新输入!
按任意键继续……\n");
getch();
continue;
}
printf("\t请输入家庭地址");
scanf("%s",&info[i].addr);
printf("\t请输入电话号码:
");
scanf("%s",info[i].phone);
printf("\n\t修改成功!
\n\n");info_xieru();return;.\n\n");
if((f_data=fopen("","r"))==NULL){
printf("\n\t打开文件失败!
\n\n");
return;
}
i=0;
while(!
feof(f_data)){
fscanf(f_data,"%d%d%d%d%f%d%d%d%d%f",&,&,&,&,&,&,&,&,&,&;
data[i]=d;
i++;
}
printf("\n\t导入已完成!
共导入%d条记录!
\n\n\n",count);
fclose(f_data);umber,data[i].chinese,data[i].math,data[i].english,data[i].avg,data[i].ksmc,data[i].huping,data[i].pinde,data[i].teacher,data[i].ceping);
}
fclose(f);
printf("\n\n\t\t");
system("pause");
system("cls");
return;
}
14)数据输入函数
/**************************************************
函数名:
data_input()
输入参数:
无
输出参数:
无
功能:
录入学生数据
****************************************************/
voiddata_input()回;其余数字继续)\n\n");
scanf("%d",&choice);
if(choice==0)return;
printf("\n\n\t正在导入...\n\n");umber=;
info[count]=p;
count++;
}
printf("\n\t导入已完成!
共导入%d条记录!
\n\n\n",count);
fclose(f_info);
for(i=0;iprintf("\n");
printf("\t姓名:
%s\n",info[i].name);
printf("\n");
printf("\t请输入语文成绩:
");
scanf("%d",&data[i].chinese);
while(data[i].chinese<0||data[i].chinese>100)
{printf("\t对不起你输入的数据不是1-100之间,请从新输入真确的数值!
\n");
printf("\t请输入语文成绩:
");
scanf("%d",&data[i].chinese);
}
printf("\n");
printf("\t请输入数学成绩:
");
scanf("%d",&data[i].math);
while(data[i].math<0||data[i].math>100)
{printf("\t对不起你输入的数据不是1-100之间,请从新输入真确的数值!
\n");
printf("\t请输入数学成绩:
");
scanf("%d",&data[i].math);
}
printf("\n");
printf("\t请输入英语成绩:
");
scanf("%d",&data[i].english);
while(data[i].english<0||data[i].english>100)
{printf("\t对不起你输入的数据不是1-100之间,请从新输入真确的数值!
\n");
printf("\t请输入英语成绩:
");
scanf("%d",&data[i].english);
}
printf("\n");
printf("\t请输入同学互评成绩:
");
scanf("%d",&data[i].huping);
while(data[i].huping<0||data[i].huping>100)
{printf("\t对不起你输入的数据不是1-100之间,请从新输入真确的数值!
\n");
printf("\t请输入同学互评成绩:
");
scanf("%d",&data[i].huping);
}
printf("\n");
printf("\t请输入品德成绩:
");
scanf("%d",&data[i].pinde);
while(data[i].pinde<0||data[i].pinde>100)
{printf("\t对不起你输入的数据不是1-100之间,请从新输入真确的数值!
\n");
printf("\t请输入品德成绩:
");
scanf("%d",&data[i].pinde);
}
printf("\n");
printf("\t请输入老师评分:
");
scanf("%d",&data[i].teacher);
while(data[i].teacher<0||data[i].teacher>100)
{printf("\t对不起你输入的数据不是1-100之间,请从新输入真确的数值!
\n");
printf("\t请输入老师评分:
");
scanf("%d",&data[i].teacher);
}
data[i].avg=(data[i].chinese+data[i].math+data[i].english)/;
data[i].ceping=(data[i].avg*+data[i].huping*+data[i].pinde*+data[i].teacher*;
data[i].ksmc=i+1;
for(k=0;kdata[k].avg){
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");
data_xieru();
system("cls");
}
15)数据修改
/**************************************************
函数名:
data_xiugai()
输入参数:
无
输出参数:
无
功能:
学生成绩数据的修改
****************************************************/
voiddata_xiugai()umber==pp)break;
}
if(i>=cou