学生成绩管理系统C++Word文件下载.docx
《学生成绩管理系统C++Word文件下载.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统C++Word文件下载.docx(28页珍藏版)》请在冰豆网上搜索。
另外,要求我们进行简单界面设计,能够实现友好的交互,熟练掌握C语言对文件的各种操作。
功能设计:
学生最多不超过30人(具体人数由键盘输入)参加期末考试,考试科目为数学(MT)、英语(EN)和物理(PH)。
编程实现如下菜单驱动的学生成绩管理系统。
1、录入每个学生的学号和各科考试成绩;
2、计算每门课程的总分和平均分;
3、计算每个学生的总分和平均分;
4、按每个学生的总分由高到低排出名次表;
5、按每个学生的总分由低到高排出名次表;
6、按学号由小到大排出成绩表;
7、按学号查询学生排名及各科考试成绩;
8、按优秀、良好、中等、及格、不及格5个类别,对每门课程分别统计每个类别的人数和百分比;
9、输出每个学生的学号、各科成绩、总分、平均分;
10、输出每门课程的总分和平均分
0、退出系统。
要求程序运行后先显示菜单,并提示用户输入选项,根据输入进行操作。
三、设计内容
学生成绩管理系统
本《学生成绩管理系统》程序是一个具有对学生信息进行录入、添加、删除、根据学号进行学生信息的查询、显示已有学生信息的显示、对学生成绩进行统计(包括最高分,最低分,及格率和需要补考的学生),可以对已有的学生信息进行修改,保存和读取输入的数据等功能。
一切功能都可以在运行的软件中运行。
四、系统功能介绍:
通过主函数显示程序的主界面,通过输入的数字不同,函数会进入不同功能的函数继续运行。
附件:
(程序代码)
#include<
stdio.h>
stdlib.h>
#include<
process.h>
windows.h>
voidmain()
{
intx;
voidg1();
voidg2();
voidg3();
voidg4();
voidg5();
voidg6();
voidg7();
voidg8();
voidg9();
voidg0();
voidmenu();
while
(1)
{system("
cls"
);
menu();
scanf("
%d"
&
x);
Sleep(300);
system("
switch(x)
{
case1:
g1();
break;
case2:
g2();
case3:
g3();
case4:
g4();
case5:
g5();
case6:
g6();
case7:
g7();
case8:
g8();
case9:
g9();
case0:
printf("
\n\n制作者:
赖希\n\n感谢使用!
!
\n\n\n"
exit(0);
制作者:
赖希\n感谢使用!
"
default:
输入错误"
}
printf("
___________________________________________\n"
system("
PAUSE"
}
}
voidmenu()
{
*****************【成绩管理菜单】******************\n"
------------------------------------------------------\n"
1:
成绩录入2:
课程的总分和平均分"
\n------------------------------------------------------\n"
3学生的总分和平均4:
按每个学生的总分由高到低排出名次表"
5:
按每个学生的总分由6:
按学号由小到大排出成绩表\n低到高排出名次表"
7:
按学号查询学生排名及各8:
按优秀、良好、中等、及格、不及格5个类别,\n科考试成绩对每门课程分别统计每个类别的人数和百分比"
9:
输出每个学生的学号、各\n科成绩、总分、平均分和每\n门课程的总分和平均分"
0:
退出系统"
请输入选择:
\n"
voidg1()
intn,i,x,y,z,stu[30],mt[30],en[30],ph[30];
system("
FILE*fp;
printf("
请输入录入同学人数:
scanf("
n);
if(n==0)exit
(1);
for(i=0,x=0,y=0,z=0;
i<
n;
i++,x++,y++,z++)
请输入学生学号:
stu[i]);
请输入学生%d的数学成绩:
stu[i]);
mt[x]);
while(mt[x]>
100||mt[x]<
0)
printf("
输入错误,请重新输入"
scanf("
请输入学生%d的英语成绩:
en[y]);
while(en[y]>
100||en[y]<
请输入学生%d的物理成绩:
ph[z]);
while(ph[z]>
100||ph[z]<
{
//保存TXT
fp=fopen("
out.txt"
"
wb"
if(fp==NULL)
打开文件出错\n"
fprintf(fp,"
n);
fprintf(fp,"
%d%d%d%d"
stu[i],mt[x],en[y],ph[z]);
fclose(fp);
写入完毕!
voidg2()
FILE*fp;
intstu[30][4];
inti,j,n;
/*以读写方式打开要读取的文件*/
fp=fopen("
"
rw"
if(!
fp)
perror("
cannotopenfile"
/*从文件中读取数据到二维数组*/
fscanf(fp,"
for(i=0;
i<
n;
i++)
for(j=0;
j<
4;
j++)
fscanf(fp,"
&
stu[i][j]);
//输出列表
学号数学英语物理\n"
printf("
%6d"
stu[i][j]);
//计算每门课程的总分和平均分
intEN=0,MT=0,PH=0;
floatave_en,ave_mt,ave_ph;
for(i=0;
i++)
MT=stu[i][1]+MT;
EN=EN+stu[i][2];
PH=PH+stu[i][3];
ave_mt=float(MT/n);
ave_en=float(EN/n);
ave_ph=float(PH/n);
数学总分%d英语总分%d物理总分%d\n"
MT,EN,PH);
数学平均分%.2f英语平均分%.2f物理平均分%.2f\n"
ave_mt,ave_en,ave_ph);
getchar();
voidg3()
FILE*fp;
fscanf