学生综合测评系统.docx
《学生综合测评系统.docx》由会员分享,可在线阅读,更多相关《学生综合测评系统.docx(15页珍藏版)》请在冰豆网上搜索。
学生综合测评系统
课程设计报告
课程名称C语言程序设计
课题名称学生综合测评系统
专业
班级
学号
姓名
指导教师
2012年1月2日
湖南工程学院
课程设计任务书
课程名称C语言程序设计
课题学生综合测评系统
专业班级
学生姓名
学号
指导老师
审批
任务书下达日期2012年12月25日
任务完成日期2013年1月2日
一、设计内容与设计要求
1.设计内容:
课题十:
学生综合测评系统
一、问题描述:
每个学生的信息为:
学号、姓名、性别、家庭住址、联系电话、语文、数学、外语三门单科成绩、考试平均成绩、考试名次、同学互评分、品德成绩、任课教师评分、综合测评总分、综合测评名次。
考试平均成绩、同学互评分、品德成绩、任课教师评分分别占综合测评总分的60%,10%,10%,20%。
二、功能描述:
A、学生信息处理
(1)输入学生信息、学号、姓名、性别、家庭住址、联系电话,按学号以小到大的顺序存入文件中。
提示:
学生信息可先输入到数组中,排序后可写到文件中。
(2)插入(修改)同学信息:
提示:
先输入将插入的同学信息,然后再打开源文件并建立新文件,把源文件和输入的信息合并到新文件中(保持按学号有序)若存在该同学则将新记录内容替换源内容,
(3)删除同学信息:
提示:
输入将删除同学号,读出该同学信息,要求对此进行确认,以决定是否删除将删除后的信息写到文件中。
(4)浏览学生信息:
提示:
打开文件,显示该文件的学生信息。
B、学生数据处理:
(1)按考试科目录入学生成绩并且按公式:
考试成绩=(语文+数学+外语)/3计算考试成绩,并计算考试名次,提示:
先把学生信息读入数组,然后按提示输入每科成绩,计算考试成绩,求出名次,最后把学生记录写入一个文件中。
(2)学生测评数据输入并计算综合测评总分及名次。
提示:
综合测评总分=(考试成绩)*+(同学互评分)*+品德成绩*+任课老师评分*。
(3)学生数据管理
提示:
输入学号,读出并显示该同学信息,输入新数据,将改后信息写入文件
(4)学生数据查询:
提示:
输入学号或其他信息,即读出所有数据信息,并显示出来。
C、学生综合信息输出
提示:
输出学生信息到屏幕。
三、算法提示:
1、数据结构:
结构体类型数组
2、数据库结构:
下表构成该系统的基本数据库。
学号
姓名
考试成绩
…
评分
…
Char
Char
struct
…
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++
4.总体设计方案的选定
本设计采用模块化结构设计,主要包括:
主菜单(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<>..........欢迎使用学生综合管理系统............\n\n");
printf("\t\t\t\t本程序由宗幸幸借鉴陈伟的程序编写\n\n");
printf("\n\n\t\t");
system("pause");
menu();
return0;
}
voidhelp().\n\n");
if((f_info=fopen("","r"))==NULL){
printf("\n\t打开文件失败!
\n\n");
return;
}
count=0;
while(!
feof(f_info)){
fscanf(f_info,"%lf%s%s%s%s",&,,,,;
info[count]=p;
count++;
}
printf("\n\t导入已完成!
共导入%d条记录!
\n\n\n",count);
fclose(f_info);
}
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++;
}
}
voidinfo_output()umber);
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()入学生信息\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()入成绩数据\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()生信息处理系统\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()umber==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()umber==pp)break;
if(i>=count){
printf("\n\t没有找到该学生!
\n");return;
}
}
printf("\t学号\t姓名\t性别家庭住址\t联系电话\n");umber);
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()umber==pp)break;
printf("\n\t没有找到该学生!
\n");return;
}
printf("\t学号\t姓名\t性别\t家庭住址\t联系电话\n");umber);
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){lf\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;.\n\n");
if((f_data=fopen("","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",&,,,,,&,&,&,&,&,&,&,&,&;
data[count]=p;lf%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);
}回;其余数字继续)\n\n");
scanf("%d",&choice);
if(choice==0)return;
printf("\n\n\t正在导入...\n\n");lf姓名:
%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)/;
data[i].ceping=(data[i].aver*+data[i].stu*+data[i].pinde*+data[i].teacher*;
data[i].ksmc=i+1;
for(k=0;kdata[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()umber==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){ver>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)/;
data[i].ceping=(data[i].aver*+data[i].stu*+data[i].pinde*+data[i].teacher*;
data[i].ksmc=count;
for(k=0;kdata[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;umber==pp)break;
if(i>=count){
printf("\n\t没有找到该学生!
\n");
return;
}
}
printf("\n\t学号:
%.0lf姓名:
%s性别:
%s\n\n\t语文:
%d数学:
%d英语:
%d平均成绩:
%.1f\n\n\t名次:
%d品德成绩:
%d老师评分:
%d综合成绩:
%.1f\n\n",data[i].number,data[i].name,data[i].sex,data[i].chinese,data[i].math,data[i].english,data[i].aver,data[i].ksmc,data[i].pinde,data[i].teacher,data[i].ceping);
printf("\n\n\t\t");
system("pause");
system("cls");9.1f9.1fumber,data[i].name,data[i].sex,data[i].adds,data[i].phone,data[i].aver,data[i].ksmc,data[i].ceping);
}printf("\n\n\t\t");
system("pause");
printf("\n");C语言程序设计[B].浙江大学出版社,2012年月
7.程序运行部分界面:
计算机与通信学院课程设计评分表
课程名称:
《C语言程序设计》
项目
分数
设计方案的合理性与创造性
设计与调试结果
设计说明书的质量
答辩陈述与回答问题情况
课程设计周表现情况
综合成绩