C++简单学生成绩管理系统C++课程设计精编版.docx
《C++简单学生成绩管理系统C++课程设计精编版.docx》由会员分享,可在线阅读,更多相关《C++简单学生成绩管理系统C++课程设计精编版.docx(18页珍藏版)》请在冰豆网上搜索。
C++简单学生成绩管理系统C++课程设计精编版
C++学生成绩管理系统
要求用C++语言编写学生成绩管理系统,要求能进行添加删除修改输入输出等的操作,并能使用面相对像原理对此系统进行实现。
学生成绩管理系统分析:
学生成绩管理系统分为8个模块,分别是:
添加学生信息,输出学生成绩,查找学生成绩,修改学生成绩,删除学生成绩,学生成绩排序,保存数据到文件和读取文件中学生成绩的模块。
学生成绩管理系统结构:
各个子函数功能及其流程:
1.首先定义一个学生类ClassStudent;并定义其各个私有变量和公有函数
2.Student();构造函数,用于初始化学生类中的各个变量并记录
3.Add();函数:
用于添加学生信息的函数包括学号姓名成绩等的内容
4.Output();函数:
用于输出学生信息,包括学号姓名各科及总分平均成绩
5.Find();函数:
用于查找学生各项信息。
6.modify();函数:
用于修改学生各项信息。
7.delete();函数:
用于删除学生信息。
8.sort();函数:
对学生各项信息进行排序操作。
8.save()和load();函数:
将学生信息保存到文件中,并在需要的时候调用该文件将其中的学生信息显示出来
9.“=”“<<”“>>”符号的重载:
在各个函数处理数据过程中对这些的调用处理
函数源代码:
此函数源代码在VisualC++6.0环境下编译通过。
具体如下:
#include"iostream.h"
#include"conio.h"
#include"iomanip.h"
#include"stdio.h"
#include"string.h"
#include"stdlib.h"
#include"fstream.h"
classstudent//定义学生类
{
private:
//定义学生类的私有成员
charname[20];//名字
charsex[5];//性别
intnumber;//学号
intscore[3];//分数
inttotal;//总分
intaverage;//平均分
public:
//公有成员
student();//学生构造函数,用于学生数据的初始化及保存学生数据
voidadd();//添加学生信息函数
voidoutput();//输出学生信息函数
voidfind();//查找学生数据函数
voidmodify();//修改学生信息函数
voiddeleted();//删除学生信息函数
voidsort();//排序函数
voidsave();//保存学生信息并写入文件函数
voidload();//打开写有学生信息的文件的函数
student&operator=(student&T);//重载“=”符号
friendistream&operator>>(istream&scin,student&s1);//重载“>>”符号
friendostream&operator<<(ostream&scout,student&s2);//重载“>>”符号
};
studentstu[100];
intn=0;
voidstudent:
:
add()//添加函数
{
charflag='Y';
while(toupper(flag)=='Y')
{
cin>>stu[n];
n++;
cout<<"要继续添加吗(y/n)";
cin>>flag;
if(toupper(flag)!
='Y')
{
if(toupper(flag)=='N')
{
break;
}
else
{
cout<<"错误,请重输:
";
cin>>flag;
}
}
}
}
voidstudent:
:
output()//输出函数
{
if(n!
=0)
{
cout<<"---------------------------------------------------------------------------\n";
cout<<"numbernamesexmathC++Englishtotalaverage\n";
cout<<"---------------------------------------------------------------------------\n";
for(intt=0;t{
cout<}
}
getch();
}
voidstudent:
:
find()//查找函数
{
intf3=0;
charn1[20];
studenttemp;
cout<<"输入你要查找的人的姓名:
";
cin>>n1;
for(intj=0;j{
if(strcmp(stu[j].name,n1)==0)
{
temp=stu[j];
f3=1;
}
}
if(f3==0)
cout<<"对不起,没有你要查找的学生成绩"<else
{
cout<<"---------------------------------------------------------------------------\n";
cout<<"numbernamesexmathC++Englishtotalaverage\n";
cout<<"---------------------------------------------------------------------------\n";
cout<<""<<<""<}
getch();
}
voidstudent:
:
modify()//修改函数
{
intf4=0;
intt;
charn2[50];
cout<<"输入你要修改的人的姓名:
";
cin>>n2;
for(intj=0;j{
if(strcmp(stu[j].name,n2)==0)
{
t=j;
f4=1;
}
}
if(f4==0)
cout<<"对不起,没有你要修改的学生成绩"<else
{
cout<<"请输入学号:
";
cin>>stu[t].number;
cout<<"姓名:
";
cin>>stu[t].name;
cout<<"性别:
";
cin>>stu[t].sex;
cout<<"数学成绩:
";
cin>>stu[t].score[0];
cout<<"C++成绩:
";
cin>>stu[t].score[1];
cout<<"英语成绩:
";
cin>>stu[t].score[2];
stu[t].total=stu[t].score[0]+stu[t].score[1]+stu[t].score[2];
stu[t].average=stu[t].total/3;
cout<<"修改成功!
"<}
getch();
}
voidstudent:
:
deleted()//删除函数
{
charn3[20];
boolf5=0;
charc;
do{
cout<<"请输入您要删除的学生姓名:
";
cin>>n3;
for(inti=0;i{
if(strcmp(n3,stu[i].name)==0)
{
f5=1;
n--;
do{
stu[i]=stu[i+1];
i++;
}while(i<=n);
}
}
if(f5==0)
cout<<"您要求删除的对象本来就不存在!
";
cout<<"要继续删除吗?
(y/n)"<cin>>c;
if(toupper(c)!
='Y'&&toupper(c)!
='N')
{
cout<<"输入指令错误!
请重新输入Y或N!
"<cin>>c;
}
}while(toupper(c)=='Y');
getch();
}
voidstudent:
:
sort()//排序函数
{
inti,j,k;
students3;
for(i=0;i<(n-1);i++)
{
k=i;
for(j=i+1;jif(stu[j].average>stu[i].average)
k=j;
if(k!
=i)
{
s3=stu[i];
stu[i]=stu[k];
stu[k]=s3;
}
}
cout<<"\n\n排序成功!
\n\n";
}
voidstudent:
:
save()//保存函数
{
charfilename1[20];
cout<<"请输入文件名:
";
cin>>filename1;
ofstreamfout(filename1,ios:
:
app);
if(!
fout)cout<<"文件不能打开!
"<else
{
for(inti=0;ifout<<''<<cout<<"保存成功!
"<}
fout.close();
getch();
}
voidstudent:
:
load()//读取函数
{
charfilename2[20];
cout<<"请输入你要读取的文件名:
";
cin>>filename2;
ifstreamfin(filenam