学生成绩管理系统推荐.docx
《学生成绩管理系统推荐.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统推荐.docx(19页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统推荐
成绩
评阅人
评阅日期
广东石油化工学院
C++程序设计训练
专业
班级
学号
姓名
指导教师
完成时间
一、上机内容
用C++语言设计一个简单的学生成绩管理系统,主要功能包括:
1.输入学生的各科成绩;
2.计算总分;
3.计算平均分;
4.计算名次(按平均分);
5.可查询任一学生的成绩情况;
6.计算各科目的优秀率和合格率。
二、程序源代码
#include//预处理命令
#include
#include
#include
usingnamespacestd;
constintn=10;
inti;
charchoose;
structstudent//声明结构体类型student
{
stringname;//姓名
doublenum;//学号
doublephysics;//大学物理
doublec_program;//C++语言设计
doublemath;//高等数学
doubleenglish;//大学英语
doublesum;//总分
doubleave;//平均分
}stu[n];
intmain()//主函数
{
voidmenu();//对函数作声明
voidinput(studentstu[]);
voidtotal_score(studentstu[]);
voidaverage(studentstu[]);
voidsort(studentstu[]);
voidfind(studentstu[]);
voidrate(studentstu[]);
intchoice;
menu();
cin>>choice;
switch(choice)
{
case1:
input(stu);//调用函数
break;
case2:
total_score(stu);
break;
case3:
average(stu);
break;
case4:
sort(stu);
break;
case5:
find(stu);
break;
case6:
rate(stu);
break;
case7:
return(0);//退出系统
default:
system("cls");//清屏
cout<cout<<"选择有误,请重新选择:
"<main();
}
}
voidmenu()//系统选择菜单
{
cout<<""<cout<<欢迎使用学生成绩管理系统!
"<cout<<""<cout<<"系统设计:
****************"<cout<<""<cout<<"1:
录入学生成绩"<cout<<"2:
计算总分"<cout<<"3:
计算平均分"<cout<<"4:
按平均分计算名次"<cout<<"5:
查询学生成绩"<cout<<"6:
计算优秀率和合格率"<cout<<"7:
退出系统"<cout<<""<cout<<"请输入各操作对应的序号:
"<}
voidinput(studentstu[])//录入学生成绩
{
system("cls");
for(i=0;i{
cout<cout<<"请输入第"<
"<cin>>stu[i].name>>stu[i].num;
cout<cout<<"请按顺序输入"<"<cin>>stu[i].physics>>stu[i].c_program>>stu[i].math>>stu[i].english;
}
cout<cout<<"返回菜单(Y)/退出系统(N)?
"<cin>>choose;
if(choose=='y'||choose=='Y')
{
system("cls");
main();
}
elseif(choose!
='y'||choose!
='Y')
{
system("cls");
cout<cout<<"欢迎再次使用本系统!
"<}
}
voidtotal_score(studentstu[])//计算每个学生的总分
{
for(i=0;i{
stu[i].sum=stu[i].physics+stu[i].c_program+stu[i].math+stu[i].english;
}
system("cls");
cout<cout<<"学生的总分如下:
"<cout<<"学号姓名总分"<for(i=0;i{cout<}
cout<cout<<"返回菜单(Y)/退出系统(N)?
"<cin>>choose;
if(choose=='y'||choose=='Y')
{
system("cls");
main();
}
elseif(choose!
='y'||choose!
='Y')
{
system("cls");
cout<cout<<"欢迎再次使用本系统!
"<}
}
voidaverage(studentstu[])//计算每个学生的平均分
{
for(i=0;i{
stu[i].sum=stu[i].physics+stu[i].c_program+stu[i].math+stu[i].english;
stu[i].ave=stu[i].sum/4;
}
system("cls");
cout<cout<<"学生的平均分如下:
"<cout<<"学号姓名平均分"<for(i=0;i{
cout<}
cout<cout<<"返回菜单(Y)/退出系统(N)?
"<cin>>choose;
if(choose=='y'||choose=='Y')
{
system("cls");
main();
}
elseif(choose!
='y'||choose!
='Y')
{
system("cls");
cout<cout<<"欢迎再次使用本系统!
"<}
}
voidsort(studentstu[])//按平均分由小到大排序
{
intj,k;
studenttemp;
for(i=0;i{
stu[i].sum=stu[i].physics+stu[i].c_program+stu[i].math+stu[i].english;
stu[i].ave=stu[i].sum/4;
}
for(i=0;i{
for(j=i+1;j<(n-1);j++)
{
k=i;
if(stu[i].ave{
k=j;
temp=stu[i];
stu[i]=stu[k];
stu[k]=temp;
}
}
}
system("cls");
cout<cout<<"按平均分计算名次如下:
"<cout<<"名次学号姓名平均分"<for(i=0,k=0;i{
cout<}
cout<cout<<"返回菜单(Y)/退出系统(N)?
"<cin>>choose;
if(choose=='y'||choose=='Y')
{
system("cls");
main();
}
elseif(choose!
='y'||choose!
='Y')
system("cls");
cout<cout<<"欢迎再次使用本系统!
"<}
}
voidfind(studentstu[])//查找某个学生的信息
{
intselect;
intm;
stringfn;
system("cls");
cout<cout<<"按姓名查询(0),按学号查询请
(1):
"<cin>>select;
if(select==0)
{cout<cout<<"请输入学生姓名"<cin>>fn;
for(i=0;iif(fn==stu[i].name)
{
cout<cout<<"您要查询的学生"<<(stu[i]).name<<"的成绩如下"<cout<<"大学物理C++程序设计高等数学大学英语成绩"<cout<cout<}
cout<<"继续查询(Y)/返回菜单(N)?
"<cin>>choose;
if(choose=='y'||choose=='Y')find(stu);
else
system("cls");
main();
}
else
{
cout<<"请输入学生学号:
"<cin>>m;
m-=1;
cout<cout<<"您要查询的学生"<<(stu[m]).name<<"的成绩如下"<cout<<"大学物理C++程序设计高等数学大学英语成绩"<cout<cout<cout<<"继续查询(Y)返回菜单(N)?
"<cin>>choose;
if(choose=='y'||choose=='Y')find(stu);
elsesystem("cls");
main();
}
}
voidrate(studentstu[])//计算合格率与优秀率
{
doublek=0;
doublel=0;
doublep=0;
doubleq=0;
doubler=0;
doublet=0;
doublex=0;
doubley=0;
for(i=0;i{
if(stu[i].physics>=60)k++;
if(stu[i].c_program>=60)l++;
if(stu[i].math>=60)p++;
if(stu[i].english>=60)q++;
if(stu[i].physics>=90)r++;
if(stu[i].c_program>=90)t++;
if(stu[i].math>=90)x++;
if(stu[i].english>=90)y++;
}
system("cls");
cout<cout<<"各科目的合格率和优秀率如下:
"<cout<<"大学物理C++程序设计高等数学大学英语"<cout<<"合格率"<cout<<"优秀率"<cout<<"返回菜单(Y)/退出系统(N)?
"<cout<cin>>choose;
if(choose=='y'||choose=='Y')
{
system("cls");
main();
}
elseif(choose!
='y'||choose!
='Y')
{
system("cls");
cout<cout<<"欢迎再次使用本系统!
"<}
}
三、程序运行
系统界面和选择菜单:
菜单选择1,进入成绩录入功能:
(图片太长,只截了一半图)
菜单选择2,进入计算总分功能:
菜单选择3,进入计算平均分功能:
按姓名查询成绩,例如:
查询学生cc的成绩:
菜单选择4,按学号查询成绩,例如:
查询学号为6的学生的成绩:
按平均分计算名次:
输入6,计算各科目的合格率与优秀率:
选择退出系统时显示:
选择或输入错误时重新弹出菜单:
四、分析与总结
第十七周我们进行了C++程序设计训练,训练地点是在计算机实验室,内容是用C++语言设计一个简单的学生成绩管理系统,并完成调试运行。
在这个系统之前,我参考了上机指导书上的一些例子,这些例子对我编程有很大的帮助,另外,我也参考了网络上查找上的一些相关资料,比如我使用的清屏功能:
system("cls")是在网络上学习到的。
在设计这个系统过程中,我遇到了很多问题,可以说是困难重重,毕竟这是我第一次独立设计和编写程序,难免会遇到各种各样的困难,比如:
因为编写for循环时有错误,导致了显示出来的内容和我设想的不同,甚至不停地输出,又如:
定义变量时出错导致了程序无法编译等等;同时也在设计过程中发现了自己的不足之处,比如:
对以前学过的知识和概念理解得不够深刻,掌握得不够牢固,缺乏编程的实践经验等等。
但是,经过这次程序设计训练之后,我对一些概念有了更深刻的理解,加深了对学过的知识的掌握程度,更重要的是,我从中感受到了编程的乐趣!
尤其是在编译通过,得到第一个菜单窗口的时候,如心头大石落地般开心。
很感谢老师为我解决了一些很关键的问题!
如果没有老师对我的指导,我可能很难完成这个程序的设计。
编写完这个程序后我也总结出了一些经验,比如,在编写程序前要对系统的功能和要求作出详细分析,合理分解任务,把不同的任务做成一个相对独立的模块,并在大脑里构想一下程序的运行情况,然后在编写程序;另外,我也学会了一些编译系统提示错误时修改错误的方法等。
回顾这次C++程序设计训练,至今我仍然感慨颇多,的确,从拿到这次训练的题目到完成整个编程,从理论到实践,在这几天的时间里,我学到很多很多有关程序设计的知识,同时又可以巩固以前所学过的知识。
通过这次程序设计训练,我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的。
只有把所学知识与实践相结合起来,从理论中得出结论,从而提高自己的独立思考能力和实践动手能力,才能真正为社会服务。