学生综合测评系统C语言设计.docx
《学生综合测评系统C语言设计.docx》由会员分享,可在线阅读,更多相关《学生综合测评系统C语言设计.docx(53页珍藏版)》请在冰豆网上搜索。
![学生综合测评系统C语言设计.docx](https://file1.bdocx.com/fileroot1/2023-2/4/5cdcf0ad-692b-4850-9bec-5734d221f1ca/5cdcf0ad-692b-4850-9bec-5734d221f1ca1.gif)
学生综合测评系统C语言设计
郑州科技学院
C语言课程设计
学生成绩管理系统设计(论文)题目:
院:
所在信息工程学院
级:
3班15计算机科学与技术业专班
宋建军姓名:
学生
201515085学号:
师:
教导指周丽
年20169日11月
郑州科技学院
课程设计(论文)任务书
学生综合信息测评系统设计题目:
15计算机科学与技术专业班级:
3班
学号2015150085姓名宋建军
主要内容
设计学生成绩管理系统,主要包含:
输入记录模块、查询记录模块、更新记录模块、统计记录模块和输出记录模块。
采用字符用户界面,通过菜单选择相应的操作,直观且操作简单。
数据的存储选用数据文件方式;编辑平台选用MicrosoftVisualC++6.0。
所用到的知识点有:
三种基本程序结构,数组,函数,指针,结构体,文件操作和链表。
基本要求:
按照内容要求,设计完整的学生成绩管理系统。
要求调试通过,不存在漏洞,方便用户操作。
功能的实现上力求容错能力要强且提示信息完备。
日11年9月完成期限:
2016
指导教师签名:
1概述........................................................错误!
未定义书签。
1.1程序要求……………………………………………………………………….1
1.2具体分工情况………………………………………………………………….1
1.3开发环…………………………………………………………………………1
2需求分析2.........................................................................................................................
3总体设计................................................................................2
3.1程序主界面设计……………………………………………………………..
3.2学生信息处理子界面设计........................................................................
3.3学生数据处理子界面设计………………………………………………
4程序设计未定义书签。
!
错误.............................................................................................5程序调试................................................................................40
6程序评估................................................................................40
7参考文献..................................................错误!
未定义书签。
1概述
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、学生综合信息输出
。
3)开发环境
MicrosoftVisualC++6.0
2需求分析
为什么要做个学生综合测评系统。
以下有几点理由
1,我们都知道学校考核一个学生的主要依据就是学生的综合成绩,综合素质。
这就让一个学生的综合测评系统的建立显得尤为重要。
2一个学生综合测评系统包括学生的方方面面信息,这有利于学校的管理。
3大家都知道学生是流动的,而且综合测评是每年评比一次,所以这学生综合测评系统的更改录入功能重要性不明而喻。
4现在是个时间就是金钱的社会。
老师本身就工作繁忙。
这系统可以大大减轻老师的包袱。
5这是个开放的平台,每个学生都可以轻易地查询自己的成绩。
灵活性强。
3总体设计
1)程序主界面设计
主界面
理学数综
合据生信处退信息理出息输系
处出统
2)学生信息处理子界面设计
学生信息处理
入
学生回信信信信息息息息
3)学生数据处理子界面设计
学生数据处理
学修生改录数学返入据生回成查数绩询据
4)主菜单程序流程图
开始
主菜
输入数
i=0?
info-menuI=1?
Data-menuI=
shuchuI=3
I=Help
退
4程序设计
1)主界面程序设计
(1)函数描述
输入参数:
无
输出参数:
无
功能:
本系统可以存储学生的基本信息和各科成绩,并能计算考试成绩,综合测评成绩和排名。
(2)函数程序
intmain()
{
system(color2e);
printf(\
\n\n\t\t............欢迎使用学生综合管理系统............\n\n);
printf(\
\n\t\t);
system(pause);
menu();//主菜单入口函数
return0;
}
2)学生信息处理子菜单
(1)函数描述
函数名:
info_menu()
输入参数:
无
输出参数:
无
功能:
显示学生信息处理系统菜单
(2)函数程序
void
info_menu()
//学生信息菜单{
intchoice;
while
(1){
system(cls);
//清屏
printf(\
\n\n\n\t\t☆☆☆☆☆学生信息处理系统☆☆☆☆☆\n\n);
printf(\\t\t●1.输入学生信息\n);
printf(\\t\t●2.修改学生信息\n);
printf(\\t\t●3.删除学生信息\n);
printf(\\t\t●4.浏览学生信息\n);
printf(\\t\t●0.返回主菜单\n\n);
printf(\\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(\
\t输入有误!
请重新输入!
\n\n);break;
}
}
}
3)学生数据处理子菜单函数描述
(1)
data_menu()名:
函数输入参数:
无
输出参数:
无
功能:
显示学生数据处理系统菜单
(2)函数程序
Void
data_menu()
数据处理菜单//{
intchoice;
//printf(\
\t在进入学生数据管理前,请确认学生信息已全部完成!
\n);
printf(\
\t输入数字选择(0:
返回;其它数字继续。
)\n);
scanf(%d,&choice);
if(choice==0)return;
while
(1){
system(cls);
//清屏
printf(\
\n\n\n\t\t☆☆☆☆☆学生数据处理系统☆☆☆☆☆\n\n);
printf(\\t\t●1.录入成绩数据\n);
printf(\\t\t●2.修改学生数据\n);
printf(\\t\t●3.学生数据查询\n);
printf(\\t\t●0.返回主菜单\n\n);
printf(\\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(\
\t输入有误!
请重新输入!
\n\n);break;
}
}
}
4)学生综合信息输出
(1)函数描述
函数名:
shuchu()
输入参数:
无
输出参数:
无
功能:
学生信息的综合输出
(2)函数程序
voidshuchu()//学生综合信息输出
{
inti;
data_daoru();
printf(\
);
printf(________________________________________
________________________________\n);
printf(学号姓名电话
平均分名次测评总分\n);
printf(________________________________________
________________________________\n);
for(i=0;iprintf(|_x0010_d_x0010_ss_x0010_.1f_x0010_d_x0010_.1f
\n,info[i].number,info[i].name,info[i].phone,data[i].avg,data[i].ksmc,data[i].ceping);
printf(|____________|____________|________________|___________|___________|__________|\n);
}
printf(\
\n\t\t);
system(pause);
printf(\
);
}
)帮助函数5/**************************************************
函数名:
help()
输入参数:
无
输出参数:
无
功能:
显示本系统的信息
****************************************************/
voidhelp()//帮助信息
{
system(cls);//清屏
printf(\
);
printf(\\t\t学生综合测评系统!
\n\n);
printf(本系统可以存储学生的基本信息和各科成绩,并能计算考试成绩,综合测评成绩和排名。
\n\n);
printf(基本信息包括:
学号、姓名、性别、家庭住址、联系电话;\n\n
各科成绩包括:
语文、数学、英语成绩;\n\n);
printf(其它包括:
考试名次、同学互评分、品德成绩、任课教师评分等。
\n\n);
printf(说明:
考试成绩排名是按照考试成绩计算的(考试成绩=(语+数+外)/3);\n\n);
printf(综合测评总分=((考试成绩)*0.6+(同学互评分)*0.1+(品德成绩)*0.1\n+(任课教师评分)*0.2)\n\n);
printf(其它请按照提示操作即可。
\n\n);
printf(\
\n\t\t);
system(pause);
}
6)学生信息导入函数
/**************************************************
函数名:
info_daoru()
输入参数:
无
输出参数:
无
功能:
打开存放的学生信息
****************************************************/
voidinfo_daoru()//学生信息导出文件函数{
FILE*f_info;
...\n\n);
printf(\
\n\t正在导入
if((f_info=fopen(info.txt,
))==NULL){
!
\n\n);打开文件失败printf(\
\treturn;
}
count=0;
while(!
feof(f_info)){
%s
%s
%sfscanf(f_info,%d%s
&p.number,&p.name,&p.sex,&p.addr,&p.phone);
info[count]=p;
count++;
}
printf(\
\t导入已完成!
共导入%d条记录!
\n\n\n,count);
fclose(f_info);
system(cls);
}
7)学生信息输入函数
/**************************************************
函数名:
info_input()
输入参数:
无
输出参数:
无
功能:
录入学生个人信息
****************************************************/
voidinfo_input()//学生信息输入函数{
inti,j;
info_daoru();
for(;;){
);:
退出)printf(\请输入学号(输入0
scanf(%d,&p.number);
if(p.number==0)return;
判for(i=0;i<=count;i++){//
断是否存在该学生if(p.number==info[i].number){
!
\n\n);该学号已存在!
请重新输入printf(\
\n\t
return;
}
}
printf(\请输入姓名:
);//输入学生信息
scanf(%s,&p.name);
printf(\请输入性别:
);
scanf(%s,&p.sex);
)尬女)!
=0)if((strcmp(p.sex尬男)!
=0)||(strcmp(p.sex
{printf(\你输入的内容不符合要求,请从新输入!
按任意键继续……\n);
getchar();
continue;
}
);请输入家庭地址printf(\scanf(%s,&p.addr);
);printf(\请输入电话号码:
scanf(%s,&p.phone);
info[count]=p;
for(i=0;i//按学号排序
if(info[i].number>info[count].number){
for(j=count;j>i;j--){
info[j]=info[j-1];
}
info[i]=p;
break;
}
}
count++;
}
}
8)输出函数
/**************************************************
函数名:
info_output()
输入参数:
无
输出参数:
无
功能:
显示学生个人信息
****************************************************/
voidinfo_output()//学生信息浏览{
FILE*f_info;
inti;
if((f_info=fopen(info.txt,
))==NULL){
//判断!
);没有学生信息printf(\
\tprintf(\
\n\t\t);
system(pause);
return;
}
info_daoru();
printf(\
);
if(count==0){
//判断
printf(\
\t没有学生信息!
);
printf(\
\n\t\t);
system(pause);
return;
}
else{
printf(学号姓名性别家庭地址\n);联系电话//输出学生信息for(i=0;iprintf(%d,info[i].number);
printf(%8s,info[i].name);
printf(%8s,info[i].sex);
printf(_x0010_s,info[i].addr);
printf(_x0010_s\n\n,info[i].phone);
}
}
);printf(\请按任意键返回上级:
printf(\
\n\t\t);
system(pause);
printf(\
\n\n\n);
}
9)学生信息写入文件/**************************************************
info_xieru():
函数名输入参数:
无输出参数:
无
功能:
把学生个人信息数据写入到文件
****************************************************/
voidinfo_xieru()//学生信息写入文件函数
{
FILE*f;
inti;
if((f=fopen(info.txt,w))==NULL){
!
\n\n);打开文件失败printf(\
\t
exit(0);
}
保for(i=0;ielsefprintf(f,%d%s%s%s%s
info[i].number,info[i].name,info[i].sex,info[i].addr,info[i].phone);
}
fclose(f);
printf(\
\t保存成功!
\n\n);
printf(\
\n\t\t);
system(pause);
system(cls);
return;
}
10)删除学生信息函数
/**************************************************
函数名:
info_del()
输入参数:
无
输出参数:
无
功能:
删除学生个人信息
****************************************************/
voidinfo_del()//学生信息删除
{
intpp;
inti,j;
info_daoru();
);printf(\
\t请输入要删除学生的学号:
scanf(%d,&pp);
printf(\
);
for(i=0;i<=count;i++){//判断
if(info[i].number==pp)break;
if(i>=count){
printf(\
\t没有找到该学生!
\n);return;
}
}
牰湩晴尨学号姓名性别地址联系电话\n);
//显示删除信息
printf(%d,info[i].number);
printf(%5s,info[i].name);
printf(%5s,info[i].sex);
printf(_x0010_s,info[i].addr);
printf(_x0010_s\n\n