C++高校学籍管理系统.docx
《C++高校学籍管理系统.docx》由会员分享,可在线阅读,更多相关《C++高校学籍管理系统.docx(16页珍藏版)》请在冰豆网上搜索。
C++高校学籍管理系统
课题2:
高校学籍管理系统
(1)、课程设计题目:
高校学籍管理系统
(2)、目的与要求:
1、目的:
(1)要求学生达到熟练掌握C++语言的基本知识和技能;
(2)基本掌握面向对象程序设计的基本思路和方法;
(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题
2、基本要求:
(1)要求利用面向对象的方法以及C++勺编程思想来完成系统的设计;
(2)要求在设计的过程中,建立清晰的类层次;
(3)在系统的设计中,至少要用到面向对象的一种机制。
3、创新要求:
在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。
4、写出设计说明书
(3)、设计方法和基本原理:
1、问题描述(功能要求):
(1)能够从屏幕上读取一个学生的信息并将信息存入到数据文件中。
(2)能够将指定的信息从文件中删除。
(3)能够按编号、姓名对学生的信息进行检索并将检索结果显示在屏幕上。
(4)可以统计全部学生的总成绩,及其在班上的排名。
(5)能够统计各科的平均成绩及及格率。
(6)要求有错误提示功能,例如性别只能输入男女,输入错误提示重新输入。
(7)如果检索不到相应的信息应提示用户。
(8)扩展要求:
能先行设置本学期的科目
每个学生信息应该包括:
姓名、学号、成绩
成绩信息应该包括:
科目数量、各科目名称、各科目成绩
2、问题的解决方案:
根据系统功能要求,可以将问题解决分为以下步骤:
(1)写出需求分析(做什么);
(2)分析系统中的各个实体之间的关系及其属性和行为;
(3)根据问题描述,设计系统的类层次;
(4)完成类层次中各个类的描述(包括属性和方法);
(5)完成类中各个成员函数的定义;
(6)用户界面的设计;
(7)分析系统功能模块(系统流程图);
(8)代码编写,功能调试;
(9)完成系统总结报告以及系统使用说明书。
#include
#include
usingnamespacestd;
intdi=0;
intnum=O;
classxinxi
{
public:
intnumber;
charname[20];
charsex[6];
charp[100][10];
floatfenshu[10];
floatshuliang;
floataverage;
floatsum;
floataver;
floatjigelv;
inti;
virtualvoidShow()//显示
{
cout<<"学生学号:
"<"<"<"<for(inti=O;i{
cout<
"<}
cout<<"总成绩为:
"<cout<<"平均成绩为:
"<}
voidBook(intn)
{
cout<<"学生学号:
";cin>>number;
cout<<"学生姓名:
";cin>>name;
cout<<"学生性别:
";cin>>sex;
while
(1)
{
if(strcmp(sex,"男")==O||strcmp(sex,"女")==0)
{
break;
}
else
{
cout<<"输入有误,请重新输入:
"<cin>>sex;
}
}
/*cout<<"请输入本学期科目数量:
";〃通过数量确定课程
cin>>shuliang;
for(i=0;i{
cout<<"请输入科目"<
cin>>p[i];
cout<<"请输入科目"<
cin»fenshu[i];
}*/
while
(1)//通过课程确定数量
{
chara;
intb;
for(i=0,b=0;;i++)
{
cout<<"请输入科目"<
cin>>p[i];
cout<<"请输入科目"<
cin»fenshu[i];
b++;
cout<<"是否继续输入?
(Y/N)"<cin>>a;
if(a=='Y'||a=='y')
continue;
else
{
shuliang=b;
break;
}
}
break;
}
/*virtualvoidSave(fstream&f)〃保存到文件f中
{
f<}
virtualvoidLoad(fstream&f)〃从文件f中导出数据
{
f»number>>name»sex»fenshu»shuliang»average»sum;
}*/
};
xinxid[100];
xinxiv[100];
//输入学生信息
voidBookIn()
{
while
(1)
cout<<"
*************************
"<cout<<"
*************************
"<
cout<<"请输入学生信息:
"<d[di].Book(num++);
//计算总成绩和平均成绩
di++;
for(intj=O;j{
floats=0;
for(inti=0;i{
s=s+d[j].fenshu[i];
}
d[j].sum=s;d[j].average=d[j].sum/d[j].shuliang;
}cout<<"是否继续输入:
丫继续、其他退出"<cin>>x;
if(x!
='y'&&x!
='Y')break;
}
}
〃删除学生信息
voidBookOut(){
inti;while
(1){
intc;
cout<<"请输入您要删除的学生学号:
"<cin>>c;
for(i=0;iif(c==d[i].number)
{
d[i]=d[--di];
cout<<"删除成功!
"<}
else{
cout<<"输入错误!
"<}
cout<<"是否继续删除:
丫继续、其他退出"<cin>>x;
if(x!
='y'&&x!
='Y')break;
}
}//学生信息查询voidInquiry()
{
while
(1)
cout<<"1、按学号查询"<?
"<intc;
inttest;cin»c;
if(c==1)
{
cout<<"请选择要查询学号:
";
inta;
cin>>a;
for(inti=O;i{
if(a==d[i].number)
{
test=1;
break;
}
else
test=0;
}
if(test==0)
{
cout<<"没有这个学生!
"<}
elseif(test==1)
{
d[i].Show();
}
}
elseif(c==2)
{
charc[10];
cout<<"请选择要查询的姓名:
";
cin>>c;
for(inti=0;i{
if(strcmp(c,d[i].name)==O)
{
test=1;
break;
}
else
test=0;
}
if(test==O)
{
cout<<"没有这个学生!
"<}
elseif(test==1)
{
d[i].Show();
}
}
else
{
cout<<"输入错误!
"<}
"<cout<<"是否继续查询:
丫继续、其他退出
charx;
cin>>x;
if(x!
='y'&&x!
='Y')
break;
}
}
〃显示学籍信息
voidDisplay()
{
for(inti=0;i{
d[i].Show();cout<<"\n"<}
}voidPaixu()
{
inti,k;
inttempsum;
chartempname[10];
for(i=0;i{
strcpy(v[i].name,d[i].name);
v[i].sum=d[i].sum;
}
for(i=0;i{
for(k=i+1;k{
if(v[i].sum{
strcpy(tempname,v[i].name);
strcpy(v[i].name,v[k].name);
strcpy(v[k].name,tempname);
tempsum=v[i].sum;
v[i].sum=v[k].sum;
v[k].sum=tempsum;
}
}
}
for(i=0;i{
cout<<"第"<
"<"<}
system("PAUSE");
}
voidDanke()
{
for(intj=O;j{
floatsum=0;
for(inti=0;i{
sum=sum+d[i].fenshu[j];
}
v[j].aver=sum/di;
cout<"<
system("PAUSE");
for(intm=O;m{
floatk=0;
for(inti=0;i{
if(d[i].fenshu[m]>=60)
k++;
}
v[m].jigelv=k/di;
cout<}system("PAUSE");
}
/*voidFileLoad()
{
inti;
fstreamfile;
file.open("mydata.dat",ios:
:
in);
if(!
file)
return;
file>>di;
for(i=0;id[i].Load(file);
:
"<//信息读取函数
//打开保存数据的文件
〃文件不存在则直接返回
//读入
file.close();
〃文件关闭
}
voidFileSave()
{
inti;
fstreamfile;
file.open("mydata.dat",ios:
:
out);
//信息保存函数
//打开保存数据的文件
file<〃记录
for(i=0;i//保存
d[i].Save(file);
file.close();cout<<"保存成功!
"<}
*/
〃文件关闭
//主函数
voidmain()
while
(1)
*********************
"<cout<<"\t\t
1、输入学生信息
"<cout<<"\t\t
2、删除学生信息
"<cout<<"\t\t
3、学生信息查询
"<cout<<"\t\t
4、学生信息保存
"<cout<<"\t\t
5、查看学籍系统
"<cout<<"\t\t
6、学生成绩排名
"<cout<<"\t\t
7、单科平均成绩及及格率"<cout<<"\t\t
8、退出管理系统
"<cout<<"
*******************
高校学籍管理系统
cout<<"请选择功能:
?
"<intc;
cin»c;
if(c==1)
{
BookIn();
}
elseif(c==2)
{
BookOut();
}
elseif(c==3)
{
Inquiry();
}
elseif(c==4)
{
//FileSave();
}
elseif(c==5)
{
Display。
;
}
elseif(c==6)
{
Paixu();
}
elseif(c==7)
{
Danke();
}
elseif(c==8)
{break;}
else
{
cout<<"输入错误!
"<}
}
}