c语言学生成绩管理系统实训报告含源代码.doc
《c语言学生成绩管理系统实训报告含源代码.doc》由会员分享,可在线阅读,更多相关《c语言学生成绩管理系统实训报告含源代码.doc(13页珍藏版)》请在冰豆网上搜索。
网页设计02徐博62141310250
郑州轻工业学院
实训报告
实训名称:
[130254]C语言程序设计实训
姓名:
徐博
院(系):
软件学院
专业班级:
网页设计02
学号:
621413510250
指导教师:
成绩:
时间:
2015年1月5日至2015年1月9日
一设计项目:
学生成绩管理系统
二总体设计:
1程序设计组成框图:
学生成绩管理系统
输入学生成绩
查看学生成绩及成绩排序
通过学号查询学生成绩
统计成绩信息
通过学号修改学生成绩
添加学生成绩
通过学号删除学生成绩
保存学生成绩
退出程序
2:
模块功能说明:
1输入功能:
输入学生姓名学号及成绩。
2查看功能:
输出姓名学号及各科成绩。
3查询功能:
通过学号查询学生姓名及各科成绩。
4统计功能:
统计班级学生及格率,优秀率,各个学生成绩方差等。
5修改功能:
通过输入学号修改指定学生的错误信息。
6添加功能:
添加学生信息。
7删除功能:
通过输入学号输入指定学生信息。
8保存功能:
将学生信息保存。
9退出系统。
3:
主要函数之间的调用关系及各自功能:
主要函数的函数原型
voidinputscore(void);
voidsavescore(void);
voidavergescore(void);
voidmodifyscore(void);
voidlookscore(void);
voidsearchscore(void);
voidstatistic(void);
voidadd(void);
voidmodify(void);
voiddelscore(void);
voidmenu(void);
i.在菜单界面输入1,调用函数inputscore()实现输入学生成绩信息功能。
ii.在菜单界面2,调用函数lookscore()实现学生成绩按平均分高低排序输。
出,同时lookscore()函数调用avergescore()函数实现各个学生平均分的计算。
iii.在菜单界面输入3,调用searchscore()函数实现通过学号查找学生成绩信息功能。
iv.在菜单界面输入4,调用statistic()函数输出班级及格率,优秀率,学生成绩方差,不及格学生名单。
v.在菜单界面输入5,调用modify()函数实现通过学号修改学生成绩的功能
vi.在菜单界面输入6,调用add()函数实现添加学生成绩。
vii.在菜单界面输入7,调用delscore()函数实现删除指定学生成绩。
viii.在菜单界面输入8,调用savescore()函数将学生成绩信息保存。
ix.在菜单界面输入9,退出成绩管理系统。
开始
输入指令1~9
输入成绩
查询成绩
成绩统计
修改成绩
添加成绩
删除成绩
保存成绩
显示成绩
1
2
3
4
5
6
7
8
9
退出
三程序运行效果截图
1主菜单
2输入成绩
3查看成绩
4查询成绩
5统计成绩
6修改成绩
7添加成绩
8删除成绩
9保存成绩
四个人总结
整个程序主要运用了课本上的基础知识,并未有太大创新,通过for循环,循环输入学生成绩。
在学生成绩排序中运用选择法,同时实现学生名次的确定。
在删除指定学生成绩时,先确定信息存储位置即其在结构体数组中的序号,通过结构体变量的整体赋值将从指定位置以后的学生信息赋给前一个结构体变量,并将学生总数n减1,实现删除学生成绩信息。
源代码
#include
#include
#include
#include
#defineN30
#defineM3
typedefstructstudent
{ charnumber[10];
charname[20];
floatscore[M];
floataver;
}STU;
STUstu[N];
intn;
voidinputscore(void);
voidsavescore(void);
voidavergescore(void);
voidmodifyscore(void);
voidlookscore(void);
voidsearchscore(void);
voidstatistic(void);
voidadd(void);
voidmodify(void);
voiddelscore(void);
voidmenu(void);
voidmain()
{ shortintflag=0;
menu();
do
{ flag=1;
switch(getch())
{ case'1':
inputscore();break;/*输入成绩*/
case'2':
lookscore();break; /*查看成绩*/
case'3':
searchscore();break; /*查找成绩*/
case'4':
statistic();break; /*成绩统计*/
case'5':
modify();break; /*修改成绩*/
case'6':
add();break; /*添加成绩*/
case'7':
delscore();break; /*删除成绩*/
case'8':
savescore();break; /*保存成绩*/
case'9':
exit(0); /*退出程序*/
default:
printf("输入有误\n");
}
printf("按任意键继续\n");
getch();
menu();
}while(flag==1);
}
voidmenu(void)
{
system("cls");
printf("\n");
printf("*********欢迎进入学生成绩管理系统**************\n");
printf("菜单\n");
printf("输入成绩-------------------------------------1\n");
printf("查看成绩及成绩排序---------------------------2\n");
printf("查询学生成绩---------------------------------3\n");
printf("成绩统计-------------------------------------4\n");
printf("修改成绩-------------------------------------5\n");
printf("添加成绩-------------------------------------6\n");
printf("删除成绩-------------------------------------7\n");
printf("保存成绩-------------------------------------8\n");
printf("退出系统-------------------------------------9\n");
printf("**********************************************\n");
printf("请输入您的选择\n");
}
/***************输入各个同学的学生信息******************************/
voidinputscore(void)
{ inti,j;
system("cls");
printf("请输入学生总数:
\n");
scanf("%d",&n);
printf("提示:
*输入学号时请输入位数为8位的数字*\n"); /*因二维表上下需对正故有此要求*/
for(i=0;i { printf("请输入学生%d的学号姓名:
\n",i+1);
scanf("%s%s",stu[i].number,stu[i].name);
printf("请输入学生成绩:
\n");
printf("数学\t英语\t计算机\n");
for(j=0;j scanf("%f",&stu[i].score[j]);
}
printf("成功输入\n");
}
/*****************计算各个同学的平均分*****************************/
voidavergescore(void)
{ inti,j;
for(i=0;i { stu[i].aver=0;
for(j=0;j {
stu[i].aver+=stu[i].score[j];
}
stu[i].aver=stu[i].aver/M;
}
}
/************查看学生成绩及根据平均分对学生进行排序*********************/
voidlookscore(void)
{ inti,j,k;
STUt;
avergescore();
system("cls");
for(i=0;i { for(k=i,j=i+1;j if(stu[j].aver>stu[k].aver)
k=j;
if(k!
=j)
{ t=stu[k];
stu[k]=stu[i];
stu[i]=t;
}
}
printf("名次\t学号\t\t姓名\t数学\t英语\t计算机\t平均分\n");
for(i=0;i { printf("%d\t%s\t%s\t",i+1,stu[i].number,stu[i].name);
for(j=0;j printf("%4.2f\t",stu[i].score[j]);
printf("%4.2f",stu[i].aver);
printf("\n");
}
}
/*****************通过输入学号查找学生成绩***************************/
voidsearchscore(void)
{ chara[10];
inti,j;
system("cls");
printf("请