学生综合测评系统(C语言设计)
郑州科技学院
C语言课程设计
设计(论文)题目:所 在 院:专 业 班 级:学 生 姓 名:学 号:指 导 教 师:
学生成绩管理系统 信息工程学院 15计算机科学与技术3班 宋建军 201515085 周丽
2016年9月11日
郑州科技学院
课程设计(论文)任务书
设计题目: 学生综合信息测评系统 专业班级: 15计算机科学与技术3班 学号 2015150085 姓名 宋建军 主要内容
设计学生成绩管理系统,主要包含:输入记录模块、查询记录模块、更新记录模块、统计记录模块和输出记录模块。
采用字符用户界面,通过菜单选择相应的操作,直观且操作简单。数据的存储选用数据文件方式;编辑平台选用Microsoft Visual C++ 6.0 。所用到的知识点有:三种基本程序结构,数组,函数,指针,结构体,文件操作和链表。
基本要求:
按照内容要求,设计完整的学生成绩管理系统。要求调试通过,不存在漏洞,方便用户操作。
功能的实现上力求容错能力要强且提示信息完备。
完成期限: 2016年9月11日 指导教师签名:
1 概述 ........................................................ 错误!未定义书签。
1.1程序要求……………………………………………………………………….1 1.2具体分工情况………………………………………………………………….1
1.3开发环…………………………………………………………………………1
2 需求分析 ............................................................... 2 3 总体设计 ................................................................................ 1
3.1程序主界面设计……………………………………………………………..
3.2学生信息处理子界面设计........................................................................ 3.3学生数据处理子界面设计………………………………………………
4 程序设计 ................................. 错误!未定义书签。 5 程序调试................................................................................ 42 6 程序评估................................................................................ 43 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 ) 开发环境
Microsoft Visual C++ 6.0
2 需求分析
0
为什么要做个学生综合测评系统。 以下有几点理由 1,我们都知道学校考核一个学生的主要依据就是学生的综合成绩,综合素质。 这就让一个学生的综合测评系统的建立显得尤为重要。
2一个学生综合测评系统包括学生的方方面面信息,这有利于学校的管理。 3大家都知道学生是流动的,而且综合测评是每年评比一次,所以这学生综合测评系统的更改录入功能重要性不明而喻。
4现在是个时间就是金钱的社会。老师本身就工作繁忙。这系统可以大大减轻老师的包袱。
5这是个开放的平台,每个学生都可以轻易地查询自己的成绩。灵活性强。
3 总体设计
1) 程序主界面设计
理主界面
学生信息处数据处理系统综合信息输出1
退出
2 ) 学生信息处理子界面设计
输 入
学生信息处理 学生信息修改学生信息删除学生信息2
浏览学生信息返回
3)学生数据处理子界面设计
录入 成绩 学生数据处理 修改学生数据学生数据查询返回
3
4 ) 主菜单程序流程图
开始
Data 是
info-menu 是 退出
4 主菜单 输入数字 i=0? I=9I=1?
否
I=2 ? 是
否
是
否
Help 是
I=3shuchu 4 程序设计
1)主界面程序设计
(1)函数描述
输入参数:无 输出参数:无
功 能:本系统可以存储学生的基本信息和各科成绩,并能计算
5
考试成绩,综合测评成绩和排名。
(2)函数程序
int main() {
system(\"color 2e\");
printf(\"\\n\\n\\n\\............欢迎使用学生综合管理系统............\\n\\n\"); printf(\"\\n\\n\\\"); system(\"pause\");
menu(); //主菜单入口函数 return 0 ; }
2)学生信息处理子菜单
(1) 函数描述
函 数 名 : info_menu() 输入参数 :无 输出参数 :无
功 能 :显示学生信息处理系统菜单
(2) 函数程序
void
//学生信息菜单 {
int choice; while(1){
system(\"cls\"); //清屏
printf(\"\\n\\n\\n\\n\\☆☆☆☆☆学生信息处理系统☆☆☆☆☆\\n\\n\");
6
info_menu()
printf(\"\\\● 1.输入学生信息\\n\"); printf(\"\\\● 2.修改学生信息\\n\"); printf(\"\\\● 3.删除学生信息\\n\"); printf(\"\\\● 4.浏览学生信息\\n\"); printf(\"\\\● 0.返回主菜单\\n\\n\"); printf(\"\\请输入序号选择操作:\"); scanf(\"%d\
if(choice==0) break;
switch(choice){ case 1: info_xieru(); break; case break;
2:
system(\"cls\");info_input(); system(\"cls\");info_xiugai();
case 3: system(\"cls\");info_del(); break;
case 4: system(\"cls\");info_output(); break;
default:system(\"cls\"); printf(\"\\n\输入有误!请重新输入!\\n\\n\"); break; } }
3)学生数据处理子菜单 (1) 函数描述
函 数 名: data_menu() 输入参数 :无 输出参数:无
功 能 :显示学生数据处理系统菜单
7
}
(2) 函数程序
Void
//数据处理菜单 {
int choice;
//printf(\"\\n\在进入学生数据管理前,请确认学生信息已全部完成!\\n\");
printf(\"\\n\输入数字选择(0:返回;其它数字继续。)\\n\"); scanf(\"%d\ if(choice==0) return; while(1){
system(\"cls\"); //清屏
printf(\"\\n\\n\\n\\n\\☆☆☆☆☆学生数据处理系统☆☆☆☆☆\\n\\n\");
printf(\"\\\● 1.录入成绩数据\\n\"); printf(\"\\\● 2.修改学生数据\\n\"); printf(\"\\\● 3.学生数据查询\\n\"); printf(\"\\\● 0.返回主菜单\\n\\n\"); printf(\"\\请输入序号选择操作:\"); scanf(\"%d\
if(choice==0) break;
data_menu()
switch(choice){
case 1: system(\"cls\");data_input(); break; case break;
case break;
2: 3:
system(\"cls\");data_xiugai(); system(\"cls\");data_chaxun();
default: system(\"cls\");printf(\"\\n\输入有误!请重新输入!\\n\\n\"); break; }
8
}
}
4)学生综合信息输出 (1) 函数描述
函 数 名 : shuchu() 输入参数 :无 输出参数 :无
功 能 :学生信息的综合输出
(2)函数程序
void shuchu() //学生综合信息输出 { int i; data_daoru(); printf(\"\\n\");
printf(\" ____________ ________________ ___________ __________ \\n\");
____________ ___________
printf(\" 学号 姓名 电话 平均分 名次 测评总分\\n\"); printf(\" ____________ ________________ ___________ __________ \\n\"); for(i=0;i printf(\"|%10d %10s %14s %10.1f %10d %10.1f \\n\data[i].avg,data[i].ksmc,data[i].ceping); printf(\"|____________|____________|________________|___________|___________|__________|\\n\") 9 ; } printf(\"\\n\\n\\\"); system(\"pause\"); printf(\"\\n\"); } 5)帮助函数 /************************************************** 函数名 : help() 输入参数:无 输出参数:无 功能 :显示本系统的信息 ****************************************************/ void help() //帮助信息 { system(\"cls\"); //清屏 printf(\"\\n\"); printf(\"\\\学生综合测评系统!\\n\\n\"); printf(\" 本系统可以存储学生的基本信息和各科成绩,并能计算考试成绩,综合测评成绩和排名。\\n\\n\"); printf(\" 基本信息包括:学号、姓名、性别、家庭住址、联系电话;\\n\\n 各科成绩包括:语文、数学、英语成绩;\\n\\n\"); printf(\" 其它包括:考试名次、同学互评分、品德成绩、任课教师评分等。\\n\\n\"); printf(\" 说明:考试成绩排名是按照考试成绩计算的(考试成绩=(语+ 10 数+外)/3);\\n\\n\"); printf(\" 综合测评总分=((考试成绩)*0.6+(同学互评分)*0.1+(品德成绩)*0.1\\n +(任课教师评分)*0.2)\\n\\n\"); printf(\" 其它请按照提示操作即可。\\n\\n\"); printf(\"\\n\\n\\\"); system(\"pause\"); } 6)学生信息导入函数 /************************************************** 函数名 : info_daoru() 输入参数:无 输出参数:无 功能 :打开存放的学生信息 ****************************************************/ void info_daoru() //生信息导出文件函数 { FILE *f_info; printf(\"\\n\\n\正在导入...\\n\\n\"); if((f_info=fopen(\"info.txt\ printf(\"\\n\打开文件失败!\\n\\n\"); return; } count=0; 11 学 while(!feof(f_info)){ fscanf(f_info,\"%d %s %s %s \ info[count]=p; count++; } printf(\"\\n\导入已完成!共导入 %d 条记录!\\n\\n\\n\ fclose(f_info); system(\"cls\"); } 7)学生信息输入函数 /************************************************** 函数名 : info_input() 输入参数:无 输出参数:无 功能 :录入学生个人信息 ****************************************************/ void info_input() //学生信息输入函数 { int i,j; info_daoru(); for( ; ; ){ printf(\"\请输入学号(输入0退出):\"); scanf(\"%d\ if(p.number==0) return; for(i=0;i<=count;i++){ //判断是否存在该学生 if(p.number==info[i].number){ 12 %s } } printf(\"\\n\\n\该学号已存在!请重新输入!\\n\\n\"); return; printf(\"\请输入姓名:\"); //输入学生信息 if( ( strcmp(p.sex ,\"男\")!=0 ) || (strcmp(p.sex ,\"女\")!=0) ) { printf(\"\你输入的内容不符合要求,请从新输入!按任意键继续……\\n\"); printf(\"\请输入家庭地址\"); scanf(\"%s\ printf(\"\请输入电话号码:\"); scanf(\"%s\info[count]=p; getchar(); } continue; scanf(\"%s\printf(\"\请输入性别:\"); scanf(\"%s\ for(i=0;i for(j=count;j>i;j--){ info[j]=info[j-1]; } 13 info[i]=p; break; } } count++; } } 8)输出函数 /************************************************** 函数名 : info_output() 输入参数:无 输出参数:无 功能 :显示学生个人信息 ****************************************************/ void info_output() //浏览 { FILE *f_info; int i; if((f_info=fopen(\"info.txt\//判断 printf(\"\\n\没有学生信息!\"); printf(\"\\n\\n\\\"); system(\"pause\"); 14 学生信息 } return; info_daoru(); printf(\"\\n\"); if(count==0){ //判断 printf(\"\\n\没有学生信息!\"); printf(\"\\n\\n\\\"); system(\"pause\"); return; } else{ printf(\" 学号 姓名 性别 家庭地址 联系电话\\n\"); //输出学生信息 } printf(\"\请按任意键返回上级:\"); printf(\"\\n\\n\\\"); system(\"pause\"); printf(\"\\n\\n\\n\\n\"); for(i=0;i } 9)学生信息写入文件 /************************************************** 15 函数名 : info_xieru() 输入参数:无 输出参数:无 功能 :把学生个人信息数据写入到文件 ****************************************************/ void info_xieru() //学生信息写入文件函数 { for(i=0;i printf(\"\\n\打开文件失败!\\n\\n\"); exit(0); int i; FILE *f; else fprintf(f,\"%d %s %s %s %s \,info[i].phone); 16 } fclose(f); printf(\"\\n\保存成功!\\n\\n\"); printf(\"\\n\\n\\\"); system(\"pause\"); system(\"cls\"); return; } 10)删除学生信息函数 /************************************************** 函数名 : info_del() 输入参数:无 输出参数:无 功能 :删除学生个人信息 ****************************************************/ void info_del() //信息删除 { int pp; int i,j; info_daoru(); printf(\"\\n\请输入要删除学生的学号:\"); scanf(\"%d\ printf(\"\\n\"); for(i=0;i<=count;i++){ //判断 if(info[i].number==pp) break; if(i>=count){ printf(\"\\n\没有找到该学生!\\n\"); return; } 17 学生 } printf(\"学号 姓名 性别 地址 联系电话\\n\"); //显示删除信息 printf(\" %d \ printf(\" %5s \ printf(\" %5s \ printf(\" %10s \ printf(\" %10s\\n\\n\ printf(\"\\n\是否删除?\ 1.是 \ 2.否 \ \"); while(1){ scanf(\"%d\ switch(j){ case 1: info[i]=w; printf(\"\\n\删除成功info_xieru(); return; case 2: return; default : printf(\"输入错误!请重新输入!\");break; } break; } printf(\"\\n\\n\\\"); system(\"pause\"); } 11)学生信息修改函数 /************************************************** 函数名 : info_xiugai() 输入参数:无 输出参数:无 功能 :修改学生信息 18 !\\n\\n\"); ****************************************************/ void info_xiugai() //修改学生信息 { int pp; int i,j; info_daoru(); printf(\"\\n\请输入要修改学生的学号:\"); //查找 scanf(\"%d\printf(\"\\n\"); for(i=0;i<=count;i++){ if(info[i].number==pp) break; } if(i>=count) {printf(\"\\n\没有找到该学生!\\n\"); return;} printf(\"学号 姓名 性别 家庭地址 联系电话\\n\"); //显示 printf(\" %d\printf(\" %10s\printf(\" %10s\printf(\" %16s\printf(\" %13s\\n\ printf(\"\\n\是否修改?\ 1.是 \ 2.否 \ \"); while(1){ //修改 scanf(\"%d\ switch(j){ case 1:{ printf(\"\学号为:%.0d\\n\printf(\"\请输入姓名:\"); 19 scanf(\"%s\ printf(\"\请输入性别:\"); scanf(\"%s\ if( ( strcmp(p.sex ,\"男\")!=0 ) || (strcmp(p.sex ,\"女\")!=0) ) { printf(\"\你输入的内容不符合要求,请从新输入!按任意键继续……\\n\"); getch(); continue; } printf(\"\请输入家庭地址\"); scanf(\"%s\printf(\"\请输入电话号码:\"); scanf(\"%s\ printf(\"\\n\修改成功!\\n\\n\"); info_xieru(); return; } //保存 case 2: return; default : printf(\"输入错误!请重新输入!\");break; } printf(\"\\n\\n\\\"); } break; system(\"pause\"); } 12)学生成绩数据导入 /************************************************** 函数名 : data_daoru() 输入参数:无 输出参数:无 功能 :学生成绩从文件导入 20 ****************************************************/ void data_daoru() 导出 { FILE *f_data; int i; //学生数据 info_daoru(); i=0; printf(\"\\n\\n\正在导入...\\n\\n\"); if((f_data=fopen(\"data.txt\ } printf(\"\\n\打开文件失败!\\n\\n\"); return; while(!feof(f_data)){ fscanf(f_data,\"%d %d %d %d %f %d %d %d %d %f \ ,&d.pinde,&d.teacher,&d.ceping); } printf(\"\\n\导入已完成!共导入 %d 条记录!\\n\\n\\n\ data[i]=d; i++; fclose(f_data); //关闭文件 system(\"cls\"); 21 } 13)数据写入 /************************************************** 函数名 : data_xieru() 输入参数:无 输出参数:无 功能 :学生数据写入到文件 ****************************************************/ void data_xieru() //写入文件函数 { if((f=fopen(\"data.txt\ } printf(\"\\n\打开文件失败!\\n\\n\"); exit(0); int i; FILE *f; for(i=0;i 22 } fclose(f); printf(\"\\n\\n\\\"); system(\"pause\"); system(\"cls\"); } 14)数据输入函数 /************************************************** 函数名 : data_input() 输入参数:无 输出参数:无 功能 :录入学生数据 ****************************************************/ void data_input() { //printf(\"\\n\警告!原有成绩将被覆盖!\\n\"); return; //数据输入 FILE *f_info; int choice,i,k; printf(\"\\n\输入数字选择(0.返回;其余数字继续)\\n\\n\"); scanf(\"%d\if(choice==0) return; printf(\"\\n\\n\正在导入...\\n\\n\"); //判 23 断 count=0; if((f_info=fopen(\"info.txt\ } printf(\"\\n\打开文件失败!\\n\\n\"); return; while(!feof(f_info)){ //导出学生信息 fscanf(f_info,\"%d %s %s \ for(i=0;i printf(\"\姓名:%s\\n\ printf(\"\\n\"); printf(\"\请输入语文成绩:\"); scanf(\"%d\ while( data[i].chinese < 0 || data[i].chinese > 100 ) } printf(\"\\n\导入已完成!共导入 %d 条记录!\\n\\n\\n\fclose(f_info); data[count].number =p.number ; info[count]=p; count++; %s %s { printf(\"\对不起你输入的数据不是 1-100 之间,请从新输入真确的数值!\\n\"); printf(\"\请输入语文成绩:\"); scanf(\"%d\ 24 } printf(\"\\n\"); printf(\"\请输入数学成绩:\"); scanf(\"%d\ while( data[i].math < 0 || data[i].math > 100 ) { printf(\"\对不起你输入的数据不是 1-100 之间,请从新输入真确的数值!\\n\"); printf(\"\请输入数学成绩:\"); scanf(\"%d\} printf(\"\\n\"); printf(\"\请输入英语成绩:\"); scanf(\"%d\ while( data[i].english < 0 || data[i].english > 100 ) { printf(\"\对不起你输入的数据不是 1-100 之间,请从新输入真确的数值!\\n\"); printf(\"\请输入英语成绩:\"); scanf(\"%d\ } printf(\"\\n\"); printf(\"\请输入同学互评成绩:\"); scanf(\"%d\ while( data[i].huping < 0 || data[i].huping > 100 ) { printf(\"\对不起你输入的数据不是 1-100 之间,请从新输入真确的数值!\\n\"); printf(\"\请输入同学互评成绩:\"); scanf(\"%d\ } printf(\"\\n\"); printf(\"\请输入品德成绩:\"); scanf(\"%d\ 25 while( data[i].pinde < 0 || data[i].pinde > 100 ) { printf(\"\对不起你输入的数据不是 1-100 之间,请从新输入真确的数值!\\n\"); printf(\"\请输入品德成绩:\"); } printf(\"\\n\"); printf(\"\请输入老师评分:\"); scanf(\"%d\ while( data[i].teacher < 0 || data[i].teacher > 100 ) scanf(\"%d\ { printf(\"\对不起你输入的数据不是 1-100 之间,请从新输入真确的数值!\\n\"); printf(\"\请输入老师评分:\"); } scanf(\"%d\ data[i].avg=(data[i].chinese+data[i].math+data[i].english)/3.0; data[i].ceping=(data[i].avg*0.6+data[i].huping*0.1 +data[i].pinde*0.1+data[i].teacher*0.2); for(k=0;kif(data[i].avg>data[k].avg){ // data[i].ksmc=i+1; data[k].ksmc=data[k].ksmc+1; } } } if(data[i].ksmc>data[k].ksmc-1) data[i].ksmc=data[k].ksmc-1; 26 } printf(\"\\n\输入已完成!正在保存... \\n\"); data_xieru(); system(\"cls\"); 15)数据修改 /************************************************** 函数名 : data_xiugai() 输入参数:无 输出参数:无 功能 :学生成绩数据的修改 ****************************************************/ void data_xiugai() //数据修改 { int pp; int i,j,k; data_daoru(); printf(\"\\n\请输入要修改学生的学号:\"); scanf(\"%d\printf(\"\\n\"); for(i=0;i<=count;i++){ if(data[i].number==pp) break; printf(\"\\n\学号:%.0d 姓名:%s \\n\\n\语文:%d 数学:%d 英语:%d 品德成绩:%d 老师评 27 } if(i>=count) { printf(\"\\n\没有找到该学生!\\n\"); return;} 分:%d\\n\\n\h,data[i].english,data[i].pinde,data[i].teacher); printf(\"\\n\是否修改?\ 1.是 \ 2.否 \ \"); while(1){ //询问 scanf(\"%d\ switch(j){ case 1:{ for(k=0;k<=count;k++){ //重新排名次 if(data[i].avg>data[k].avg) data[k].ksmc=data[k].ksmc-1; } printf(\"\\n\请输入语文成绩:\"); scanf(\"%d\ while( data[i].chinese < 0 || data[i].chinese > 100 ) { printf(\"\对不起你输入的数据不是 1-100 之间,请从新输入真确的数值!\\n\"); printf(\"\请输入数学成绩:\"); scanf(\"%d\ while( data[i].math < 0 || data[i].math > 100 ) printf(\"\请输入老师评分:\"); scanf(\"%d\} { printf(\"\对不起你输入的数据不是 1-100 之间,请从新输入真确的数值!\\n\"); } printf(\"\请输入数学成绩:\"); scanf(\"%d\ printf(\"\请输入英语成绩:\"); 28 scanf(\"%d\ while( data[i].english < 0 || data[i].english > 100 ) { printf(\"\对不起你输入的数据不是 1-100 之间,请 从新输入真确的数值!\\n\"); } printf(\"\\n\请输入同学互评成绩:\"); printf(\"\请输入英语成绩:\"); scanf(\"%d\ scanf(\"%d\ while( data[i].huping < 0 || data[i].huping > 100 ) { printf(\"\对不起你输入的数据不是 1-100 之间,请从新输入真确的数值!\\n\"); } printf(\"\\n\请输入品德成绩:\"); scanf(\"%d\ while( data[i].pinde < 0 || data[i].pinde > 100 ) printf(\"\请输入同学互评成绩:\"); scanf(\"%d\ { printf(\"\对不起你输入的数据不是 1-100 之间,请从新输入真确的数值!\\n\"); printf(\"\请输入品德成绩:\"); scanf(\"%d\} printf(\"\请输入老师评分:\"); scanf(\"%d\ while( data[i].teacher < 0 || data[i].teacher > 100 ) { printf(\"\对不起你输入的数据不是 1-100 之间,请从 新输入真确的数值!\\n\"); printf(\"\请输入老师评分:\"); scanf(\"%d\} 29 data[i].avg=(data[i].chinese+data[i].math+data[i].english)/3.0; data[i].ceping=(data[i].avg*0.6+data[i].huping *0.1+ data[i].pinde*0.1+data[i].teacher*0.2); for(k=0;k data[i].ksmc=data[k].ksmc-1; data[i].ksmc=count; //写入文件 } } printf(\"\\n\修改成功!\\n\\n\"); data_xieru(); return; case 2: return; default : printf(\"输入错误!请重新输入!\");break; } break; } printf(\"\\n\\n\\\"); system(\"pause\"); } 16)数据查询 /************************************************** 函数名 : data_chaxun() 30 输入参数:无 输出参数:无 功能 :学生数据的查询 ****************************************************/ void data_chaxun() //{ int pp; char cname[20]; int i,xz; data_daoru(); //据 printf(\"\请输入查询方式:\\n\\n\"); printf(\"\1.学号查询方式\\n\\n\"); printf(\"\2.姓名查询方式\\n\\n\"); printf(\"\请选择:\"); scanf(\"%d\ if(xz==1) { printf(\"\\n\请输入要查询学生的学号:\"); scanf(\"%d\ printf(\"\\n\"); for(i=0;i<=count;i++) { if(data[i].number==pp) break; if(i>=count){ printf(\"\\n\没有找到该学生!\\n\"); return; } 31 数据查询 导出文件数 } printf(\"\\n\学号:%d 姓名:%s 性别:%s \\n\\n\语文:%d 数学:%d 英语:%d 平均成绩:%.1f名次:%d\\n\\n\同学互评:%d 品德成绩:%d 老师评分:%d \\n\\n\综合成绩:%.1f\\n\\n\se,data[i].math,data[i].english,data[i].avg,data[i].ksmc,data[i].huping ,data[i].pinde,data[i].teacher,data[i].ceping); } printf(\"\\n\\n\\\"); system(\"pause\"); return; else { printf(\"\\n\请输入要查询学生的姓名:\"); scanf(\"%s\printf(\"\\n\"); for(i=0;i<=count;i++) { if(strcmp(info[i].name,cname) ==0 ) { printf(\"\\n\学号:%d 姓名:%s 性别:%s \\n\\n\语文:%d 数学:%d 英语:%d 平均成绩:%.1f名次:%d\\n\\n\同学互评:%d 品德成绩:%d 老师评分:%d \\n\\n\综合成绩:%.1f\\n\\n\se,data[i].math,data[i].english,data[i].avg,data[i].ksmc,data[i].huping ,data[i].pinde,data[i].teacher,data[i].ceping); } printf(\"\\n\\n\\\"); system(\"pause\"); return; if(i>=count){ printf(\"\\n\没有找到该学生!\\n\"); system(\"pause\"); 32 } } } return; } system(\"pause\"); 17)使用到的结构体 (1) 学生信息结构体 struct student{ //定义学生信息结构数组 } int number; char name[11]; char sex[4]; char addr[16]; char phone[14]; (2) 学生数据结构体 struct data{ //定义学生数据结构数组 int number; } int chinese,math,english,ksmc,huping,pinde,teacher; float avg,ceping; 33 5 程序调试 34 35 36 37 38 39 40 41 6程序评估 很高兴,老师给了我们这个锻炼自己的机会。团队每个人一致认为这次的实训意义非凡。通过这一次实训,我们小组有以下几点收获: 一,我们真真切切体会到团队的力量。一个团队经过分工合作,可以把一个看似很庞大的工程简单化,然后很轻松,有效率地完成。 二,然而,人多就意味着思想会不统一,会产 42 生分歧。而这时一个精明的领导者就显得那么的重要,他会协调,而后统一我们的思想,把我们领到正确的道路上。 三,我们明白做任何事之前都要对事情有个大体的规划,列好框架,处理好主次关系,然后按计划,有序地进行。 四,编程是个细心活。都说细节决定成败,这次我们算是有很深刻的体会。一个拼写错误的符号,有时会白白浪费我们一个下午的时间。而这其中也慢慢地磨练了我们的耐心。 7 参考文献 《C课程设计》 (第三版.谭浩强) 《Visual C++程序设计培训教程》 43 因篇幅问题不能全部显示,请点此查看更多更全内容