C++高校学籍管理系统.docx
《C++高校学籍管理系统.docx》由会员分享,可在线阅读,更多相关《C++高校学籍管理系统.docx(15页珍藏版)》请在冰豆网上搜索。
C++高校学籍管理系统
课题2:
高校学籍管理系统
(一)、课程设计题目:
高校学籍管理系统
(二)、目的与要求:
1、目的:
(1)要求学生达到熟练掌握C++语言的基本知识和技能;
(2)基本掌握面向对象程序设计的基本思路和方法;
(3)能够利用所学的基本知识和技能,解决简单的面向对象程序设计问题。
2、基本要求:
(1)要求利用面向对象的方法以及C++的编程思想来完成系统的设计;
(2)要求在设计的过程中,建立清晰的类层次;
(3)在系统的设计中,至少要用到面向对象的一种机制。
3、创新要求:
在基本要求达到后,可进行创新设计,如根据查找结果进行修改的功能。
4、写出设计说明书
(三)、设计方法和基本原理:
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=0;
classxinxi
{
public:
intnumber;
charname[20];
charsex[6];
charp[100][10];
floatfenshu[10];
floatshuliang;
floataverage;
floatsum;
floataver;
floatjigelv;
inti;
virtualvoidShow()//显示
{
cout<<"学生学号:
"<"<"<"<for(inti=0;i{
cout<
"<}
cout<<"总成绩为:
"<cout<<"平均成绩为:
"<}
voidBook(intn)
{
cout<<"学生学号:
";cin>>number;
cout<<"学生姓名:
";cin>>name;
cout<<"学生性别:
";cin>>sex;
while
(1)
{
if(strcmp(sex,"男")==0||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=0;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<<"是否继续输入:
Y继续、其他退出"<charx;
cin>>x;
if(x!
='y'&&x!
='Y')
break;
}
}
//删除学生信息
voidBookOut()
{
inti;
while
(1)
{
intc;
cout<<"*************************"<cout<<"*************************"<cout<<"请输入您要删除的学生学号:
"<cin>>c;
for(i=0;iif(c==d[i].number)
{
d[i]=d[--di];
cout<<"删除成功!
"<}
else
{
cout<<"输入错误!
"<system("PAUSE");
}
cout<<"是否继续删除:
Y继续、其他退出"<charx;
cin>>x;
if(x!
='y'&&x!
='Y')
break;
}
}
//学生信息查询
voidInquiry()
{
while
(1)
{
cout<<"*************************"<cout<<"*************************"<cout<<"1、按学号查询"<cout<<"2、按姓名查询"<cout<<"请输入您的选择:
?
"<intc;
inttest;
cin>>c;
if(c==1)
{
cout<<"请选择要查询学号:
";
inta;
cin>>a;
for(inti=0;i{
if(a==d[i].number)
{
test=1;
break;
}
else
test=0;
}
if(test==0)
{
cout<<"没有这个学生!
"<system("PAUSE");
}
elseif(test==1)
{
d[i].Show();
}
}
elseif(c==2)
{
charc[10];
cout<<"请选择要查询的姓名:
";
cin>>c;
for(inti=0;i{
if(strcmp(c,d[i].name)==0)
{
test=1;
break;
}
else
test=0;
}
if(test==0)
{
cout<<"没有这个学生!
"<system("PAUSE");
}
elseif(test==1)
{
d[i].Show();
}
}
else
{
cout<<"输入错误!
"<system("PAUSE");
}
cout<<"是否继续查询:
Y继续、其他退出"<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);