学生管理系统2.docx
《学生管理系统2.docx》由会员分享,可在线阅读,更多相关《学生管理系统2.docx(14页珍藏版)》请在冰豆网上搜索。
学生管理系统2
学生管理系统
ZYZ
2014060103026
题目简述:
用类来实现学生管理。
要注意设计合理的数据成员和成员函数来构成类结构。
在使用字符串作姓名时需要考虑动态存储,从而需要合适的构造函数和析构函数;在考虑各班人数不等时需要考虑使用链式存储。
题目:
设计和实现一个学生管理系统,包括如下功能:
1、学生信息录入;
2、学生信息查询;
3、学生信息修改;
4、学生按照成绩排序;
5、学生成绩分析报告:
每门课程平均分,最高分,最低分,分数段统计;
6、结果存储到文件;
7、一个主菜单选择各项功能
学生信息包括:
姓名,学号,C语言,微积分两门课成绩。
提交实验报告。
格式同作业。
包括问题描述,系统设计,系统实现,系统测试,总结和讨论,程序代码等几个部分。
在设计部分给出模块划分,每个模块一个函数实现,给出函数表,以及每个函数内部变量表,以及程序流程图。
系统设计
Student类
函数功能
voidBring()
学生类的输入
char*OutputName()
输出姓名
intOutputNumber()
输出学号
intOutputMath()
输出微积分的成绩
intOutputC()
输出C语言的成绩
SortScore类
voidBring1(inti);
学生类
voidSort(intn);
进行排序
voidFind(intn);
根据学号查找学生
voidReInput(intn);
更新学生信息
voidAnalysis(intn);
分析学生成绩
voidInput(intn);
输出
程序流程图
系统测试
总结和讨论
类还是不太会用,有些概念仍是不理解,很多方法未掌握,需要努力了,多练习,循序渐进。
完整代码
classstudent
{
private:
charname[18];
intnumber;
doublewegrade;
doublecgrade;
public:
voidBring()
{
cout<<"请输入姓名:
";
cin>>name;
cout<<"请输入学号:
";
cin>>number;
cout<<"请输入微积分成绩:
";
cin>>wegrade;
cout<<"请输入C语言成绩:
";
cin>>cgrade;
cout<<"成功录入";
}
char*OutputName()
{
returnname;
}
intOutputNumber()
{
returnnumber;
}
intOutputMath()
{
returnwegrade;
}
intOutputC()
{
returncgrade;
}
};
管理类:
classarragement
{
private:
studentstu[250];
public:
voidBring1(inti);
voidSort(intn);
voidFind(intn);
voidReInput(intn);
voidAnalysis(intn);
voidoutput(intn);
};
voidarragement:
:
Bring1(inti)
{
stu[i].Bring();
}
voidarragement:
:
Sort(intn)
{
cout<<"微积分的排序\n";
for(inti=1;i<=n;i++)
{
for(intj=1;j
{
if(stu[i].OutputMath()>stu[j].OutputMath())
{
stu[0]=stu[i];
stu[i]=stu[j];
stu[j]=stu[0];
}
}
}
cout<<"微积分成绩排名:
\n";
for(intk=1;k<=n;k++)
{
cout<}
cout<<"C语言的排序\n";
for(inti=1;i<=n;i++)
{
for(intj=1;j
{
if(stu[i].OutputC()>stu[j].OutputC())
{
stu[0]=stu[i];
stu[i]=stu[j];
stu[j]=stu[0];
}
}
}
cout<<"C语言成绩排名:
\n";
for(intk=1;k<=n;k++)
{
cout<}
}
voidarragement:
:
Find(intn)
{
intj;
cout<<"请输入你所要查询学生的学号\n";
cin>>j;
for(inti=1;i<=n;i++)
{
if(j==stu[i].OutputNumber())
{
cout<<"该同学姓名:
\n"<cout<<"该同学学号:
\n"<cout<<"该同学的微积分成绩:
\n"<cout<<"该同学的C语言成绩:
\n"<}
}
}
voidarragement:
:
ReInput(intn)
{
intf;
cout<<"输入修改学生的的学号:
";
cin>>f;
for(inti=1;i<=n;i++)
{
if(stu[i].OutputNumber()==f)
{
stu[i].Bring();
}
}
}
voidarragement:
:
Analysis(intn)
{
doublemaxgrade_we=0.0;
doublemingrade_we=9999;
doublemingrade_c=9999;
doublemaxgrade_c=0.0;
doublesum_we=0.0;
doublesum_c=0.0;
for(inti=1;i<=n;i++)
{
sum_we+=stu[i].OutputMath();
sum_c+=stu[i].OutputC();
if(maxgrade_we{
maxgrade_we=stu[i].OutputMath();
}
if(mingrade_we>stu[i].OutputMath())
{
mingrade_we=stu[i].OutputMath();
}
if(maxgrade_c{
maxgrade_c=stu[i].OutputC();
}
if(mingrade_c>stu[i].OutputC())
{
mingrade_c=stu[i].OutputC();
}
}
cout<<"微积分最高分\t"<<"微积分最低分\t"<<"微积分平均分\t"<cout<cout<<"c最高分\t"<<"c最低分\t"<<"c平均分\t"<cout<}
voidarragement:
:
output(intn)
{
ofstreamx;
x.open("成绩文本输出.txt");
for(inti=1;i<=n;i++)
{
x<<"姓名\t"<<"学号\t"<<"微积分成绩\t"<<"C语言成绩\t"<x<}
}
主函数:
intmain()
{
cout<<"---------------欢迎来到学生成绩管理系统-----------------\n";
inti=1;
arragementst;
while
(1)
{
cout<cout<<"请您选择操作类型\n";
cout<<"1、学生信息录入\n";
cout<<"2、学生信息查询\n";
cout<<"3、学生信息修改\n";
cout<<"4、学生按照成绩排序\n";
cout<<"5、学生成绩分析报告:
每门课程平均分,最高分,最低分\n";
cout<<"6、文本形式的输出\n";
charch;
cin>>ch;
switch(ch)
{
case'1':
st.Bring1(i);
i++;
break;
case'2':
st.Find(i);
break;
case'3':
st.ReInput(i);
break;
case'4':
st.Sort(i-1);
break;
case'5':
st.Analysis(i-1);
break;
case'6':
st.output(i-1);
break;
}
}
return0;
}