C++课程设计学生管理系统.docx
《C++课程设计学生管理系统.docx》由会员分享,可在线阅读,更多相关《C++课程设计学生管理系统.docx(19页珍藏版)》请在冰豆网上搜索。
C++课程设计学生管理系统
课程设计目的
熟悉程序设计的基本流程,掌握程序设计基本方法,基本技巧、并能综合运用,提高程序设计能力。
通过实践,熟悉掌握C++语言中面向过程部分的内容,能够运用C++语言解决一个实际问题。
设计环境及语言
VC+集成开发环境(IDE)MicrosoftvisualC++6。
0语言。
课题设计步骤
1.需求分析从软件使用者处获得用户需求,确定课题开发应具备的功能;
2.系统结构设计将整个系统功能分块,考虑各个功能模块应具备的功能,模块间的联系,划分不同的子系统进行设计;
3.数据设计设计系统中新的数据类型、存储类型;
4.代码设计在以上阶段的基础上编写代码;
5.软件测试使用实现设计好的测试用例、测试次数对编制的程序进行测试,发现存在错误(包括潜在的问题),加以修改,完善。
课程设计内容:
1.学生个人信息管理系统。
本课程设计通过建立、修改、查询、显示、排序等显示学生个人信息等功能,具体的技术有:
(1)结构、枚举类型的定义与使用;
(2)数组的定义使用;
(3)程序的三种基本控制流程的综合、灵活运用;
(4)普通指针和数组指针的定义和使用;
(5)各类函数的定义和调用;
(6)文件的输入/输出
(7)程序的调试。
2.具备的功能有:
(1)新增学生数据的添加:
姓名,成绩.
(2)修改学生信息:
输入姓名,根据姓名,修改该学生的三项学生信息数据并显示;
(3)删除一个学生信息:
输入姓名,根据学生姓名删除该生信息;
(4)根据学生姓名查询:
输入姓名,查找该学生并显示学生个人信息;
(5)显示全部学生信息;
(6)根据学生姓名首字母先后排序学生个人信息;
3.设计要求
(1)在VisualC++控制台应用程序方式下设计课题。
(2)设计的程序完成该课程规定的功能。
(3)程序具有一定的健壮性.
4.设计部分
#includeh〉
#include〈string.h>
#include〈fstream。
h〉
classstu//定义一个stu类
{
charname[20];
doublemath,chinese,english,average,sum;
public:
stu()
{
}
stu(charn[20],doublema,doublechin,doubleeng)
{
strcpy(name,n);
math=ma;
chinese=chin;
english=eng;
}
doublegetsum()
{
sum=chinese+english+math;
returnsum;
}
doublegetaver()
{
average=getsum()/3;
returnaverage;
}
friendvoidmain();
};
voidmain()
{
cout<〈"请选择您需要的操作!
"〈cout〈〈”操作:
"<〈endl;
cout〈〈”(0)数据录入"<cout〈〈"
(1)增加人员"〈〈endl;
cout<〈”
(2)删除人员”〈〈endl;
cout<<”(3)修改数据"<cout〈〈"查询:
"<cout〈<”(4)按总成绩查询”〈〈endl;
cout<<"(5)按姓名查询”〈〈endl;
cout<〈"(6)输出所有学生的数据"〈〈endl;
cout<<"成绩名词"<cout<〈"(7)按总分查询排名”〈cout<〈"(8)按语文查询排名"<〈endl;
cout<<"(9)按数学查询排名"〈〈endl;
cout〈<”(y)按英语查询排名”〈cout〈<”选择相关操作请输入相对的括号里的阿拉伯数字!
"<〈endl;
charp;charw;
stu*s[50];
ofstream*file[50];
inti=0;
intj=0;
boolflag2=0;
do
{
cin>>p;
if((p>='0'&&p〈='10'))
flag2=1;
else
cout<<"指令错误!
请重新输入:
"<}while(flag2==0);
do{
switch(p)
{
case'0':
{
charc;
charname[20];doublemath,chinese,english;
do{
cout<<"请输入姓名"<cin〉>name;
cout〈〈”请输入数学成绩:
”〈〈endl;
cin>>math;
cout<〈"请输入语文成绩:
"<cin〉>chinese;
cout<<"请输入外语成绩:
"〈cin>〉english;
file[j]=newofstream(”d:
\\document",ios:
:
ate);
*file[j]<<”姓名"〈j++;
s[i]=newstu(name,math,chinese,english);
i++;
cout〈〈”数据录入成功,想继续录入吗(y/n)"<〈endl;
cin>>c;
flag2=0;
do
{
if(c!
=’y’&&c!
='n')
{
cout<<”指令错误!
请重新输入!
"<cin〉>c;
}
else
flag2=1;
}while(flag2==0);
}while(c==’y’);
break;
}
case'4’:
{
doublet;charc;
do
{
intflag1=0;
cout〈<”请输入你要查询学生的总成绩"<cin〉>t;
for(intq=0;q〈i;q++)
{
if(s[q]—〉getsum()==t)
{
flag1=1;
cout<〈”您要查询的学生是:
”〈<(*s[q])。
name〈〈endl;
}
}
if(flag1==0)
cout〈<"对不起!
您要查询的学生不存在!
”<〈endl;
cout<<”您想继续查询吗?
(y/n)"<cin〉>c;
if(c!
='y’&&c!
=’n')
{
cout<〈"指令错误!
请重新输入!
"<cin>>c;
}
}
while(c=='y’);
break;
}
case'5’:
{
charn[20];intj=0;charc;
do{
intflag=0;
cout<〈"请输入你要查询的学生姓名”〈〈endl;
cin〉〉n;
for(intj=0;j〈i;j++)
{
if(strcmp(n,(*s[j])。
name)==0)
{
flag=1;
cout〈<"您要查询的学生是:
"<〈(*s[j]).name<cout<〈(*s[j])。
name〈〈”的总成绩成绩是"<〈(*s[j]).getsum()<"<<(*s[j]).getaver()〈〈endl;
}
}
if(flag==0)
cout〈<”对不起!
您要查询的学生不存在!
"<〈endl;
cout〈<"您想继续查询吗?
(y/n)”〈cin>>c;
if(c!
=’y’&&c!
=’n')
{
cout<〈"指令错误!
请重新输入!
"〈cin〉〉c;
}
}
while(c=='y’);
break;
}
case’1':
{
charname[20];doublemath,chinese,english;
charc;
do
{
cout<〈”请输入您要增加的学生的姓名:
”<〈endl;
cin〉>name;
cout<〈”请输入数学成绩:
”〈cin〉〉math;
cout〈〈"请输入语文成绩:
”<〈endl;
cin>>chinese;
cout〈〈"请输入外语成绩:
"<〈endl;
cin>〉english;
file[j]=newofstream(”d:
\\document”,ios:
:
ate);
*file[j]〈<"姓名”<j++;
s[i]=newstu(name,math,chinese,english);
i++;
cout<〈”数据录入成功,想继续录入吗(y/n)”<cin〉〉c;
if(c!
=’y'&&c!
=’n’)
{
cout〈<”指令错误!
请重新输入!
"〈〈endl;
cin〉>c;
}
}while(c=='y’);
break;
}
case'2’:
{
charname[20];boolflag3=0;charc;
do{
cout<<"请输入您要删除的学生姓名:
"〈cin〉〉name;
for(inth=0;h
{
if(strcmp(name,s[h]—>name)==0)
{
flag3=1;
i—-;
do{
s[h]=s[h+1];
h++;
}while(h〈=i);
}
}
if(flag3==0)
cout<<"您要求删除的对象本来就不存在!
请检查输入的正确性!
";
cout<<"要继续删除吗?
(y/n)”〈cin〉>c;
if(c!
=’y’&&c!
='n')
{
cout<<”指令错误!
请重新输入!
"〈〈endl;
cin>〉c;
}
}while(c=='y');
break;
}
case’3':
{
charname[20];doublemat,chin,eng;flag2=0;
charc;
do
{
cout<<”请输入您要修改的学生的姓名:
"〈〈endl;
cin>>name;
for(inth=0;h〈i;h++)
{
if(strcmp(name,s[h]->name)==0)
{
flag2=1;
cout<<"请输入新的数学成绩:
"〈cin〉〉mat;
cout<<"请输入新的语文成绩:
"<cin>>chin;
cout<〈"请输入新的外语成绩:
”〈cin>>eng;
s[h]-〉chinese=chin;
s[h]—>math=mat;
s[h]-〉english=eng;
cout<<”数据修改成功!
";
}
}
if(flag2==0)
{
cout〈<”您要修改的学生本来就不存在!
请检查重新输入!
”<〈endl;
}
cout<〈”想继续修改吗(y/n)”〈〈end