C++简单学生成绩管理系统C++课程设计Word文档下载推荐.docx
- 文档编号:3605713
- 上传时间:2023-05-02
- 格式:DOCX
- 页数:19
- 大小:152.93KB
C++简单学生成绩管理系统C++课程设计Word文档下载推荐.docx
《C++简单学生成绩管理系统C++课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《C++简单学生成绩管理系统C++课程设计Word文档下载推荐.docx(19页珍藏版)》请在冰点文库上搜索。
#include”stdio.h"
#include”string.h"
stdlib。
h”
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
”错误,请重输:
”;
〉flag;
voidstudent:
output()//输出函数
if(n!
=0)
cout<
〈"
————-——————-—————---——---———-——--——--—-——-—————-—--—--—---—-----———--—--—-—\n”;
〈”numbernamesexmathC++Englishtotalaverage\n”;
〈”-——-——-———-—--———-——-—————----——--—-————-———-----——————--—-—————-—-————————\n"
for(intt=0;
t〈n;
t++)
stu[t];
}
getch();
:
find()//查找函数
intf3=0;
charn1[20];
studenttemp;
cout〈〈"
输入你要查找的人的姓名:
”;
cin〉>
n1;
for(intj=0;
j<
n;
j++)
if(strcmp(stu[j].name,n1)==0)
temp=stu[j];
f3=1;
if(f3==0)
”对不起,没有你要查找的学生成绩”<
〈endl;
—-————---————---——————-——————--—--——————————-—————-———--—-—-——-—---————--——\n”;
numbernamesexmathC++Englishtotalaverage\n”;
〈”—--—-----—--—-——-—---—————--—————------—-————---——————--————-———--—-———--——\n”;
<
””〈<
temp.number〈〈"
"
〈〈temp.name〈<
"
〈〈temp。
sex<
〈””<
temp。
score[0]
〈””〈<
temp.score[1]〈〈"
”<
temp.score[2]〈〈”"
〈temp。
total〈〈"
”〈〈temp。
average〈〈endl;
getch();
modify()//修改函数
intf4=0;
intt;
charn2[50];
〈”输入你要修改的人的姓名:
;
cin〉〉n2;
if(strcmp(stu[j]。
name,n2)==0)
t=j;
f4=1;
if(f4==0)
cout〈〈”对不起,没有你要修改的学生成绩”〈〈endl;
cout〈〈”请输入学号:
stu[t]。
number;
姓名:
cin〉〉stu[t]。
name;
〈"
性别:
〉stu[t]。
sex;
”数学成绩:
”;
cin〉〉stu[t].score[0];
C++成绩:
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;
修改成功!
〈<
endl;
deleted()//删除函数
charn3[20];
boolf5=0;
charc;
do{
〈”请输入您要删除的学生姓名:
cin〉〉n3;
for(inti=0;
i<
i++)
if(strcmp(n3,stu[i].name)==0)
f5=1;
n—-;
do{
stu[i]=stu[i+1];
i++;
}while(i<
=n);
if(f5==0)
您要求删除的对象本来就不存在!
要继续删除吗?
(y/n)”<
〈endl;
cin〉〉c;
if(toupper(c)!
='
Y’&&toupper(c)!
=’N'
)
输入指令错误!
请重新输入Y或N!
endl;
〉c;
}while(toupper(c)==’Y'
);
sort()//排序函数
inti,j,k;
students3;
for(i=0;
i〈(n—1);
k=i;
for(j=i+1;
if(stu[j].average〉stu[i]。
average)
k=j;
if(k!
=i)
s3=stu[i];
stu[i]=stu[k];
stu[k]=s3;
〈”\n\n排序成功!
\n\n"
save()//保存函数
charfilename1[20];
cout〈〈”请输入文件名:
〉filename1;
ofstreamfout(filename1,ios:
app);
if(!
fout)cout〈<
文件不能打开!
”<
i〈n;
fout〈<
’'
〈〈stu[i].name<
〈’’〈<
stu[i].sex〈<
'
'
〈〈stu[i]。
number〈〈'
score[0]〈〈'
’<
〈stu[i]。
score[1]<
〈'
〈〈stu[i]。
score[2]〈<
〈〈stu[i].total〈<
’’<
〈stu[i].average〈〈’'
保存成功!
”〈<
fout.close();
load()//读取函数
charfilename2[20];
请输入你要读取的文件名:
〉filename2;
ifstreamfin(filename2,ios:
in);
fin)cout〈〈"
文件打不开!
i++,n=i—1)
if(fin。
eof())break;
fin〉〉stu[i].name>
stu[i].sex〉>
stu[i].number
〉〉stu[i]。
score[0]〉>
stu[i]。
score[1]>
〉stu[i]。
score[2]〉〉stu[i]。
total>
〉stu[i]。
average;
文件已读取成功!
〈〈endl;
fin.close();
student&
student:
operator=(student&T)//重载=
strcpy(name,T。
name);
strcpy(sex,T.sex);
number=T。
for(inti=0;
i〈3;
i++)score[i]=T。
score[i];
total=T。
total;
average=T。
return(*this);
ostream&
operator〈〈(ostream&scout,student&s2)//重载〈〈
cout〈〈setw(6)〈<
s2.number<
〈setw(10)<
〈s2。
name〈〈setw(8)〈<
s2。
〈setw(8)〈〈s2.score[0]
setw(8)〈〈s2。
score[1]〈〈setw(10)〈〈s2。
score[2]<
total〈<
setw(8)<
average<
returnscout;
istream&operator〉〉(istream&scin,student&s1)//重载>
\t学号:
”;
scin〉〉s1.number;
〈”\t姓名:
scin〉〉s1。
name;
cout〈〈"
\t性别:
scin〉〉s1.sex;
\t数学成绩:
score[0];
〈”\tC++成绩:
scin〉〉s1.score[1];
”\t英语成绩:
scin>
s1.score[2];
s1。
total=s1.score[0]+s1.score[1]+s1。
score[2];
average=s1。
returnscin;
student:
student()//构造函数
strcpy(name,"
);
strcpy(sex,"
”);
number=0;
3;
i++)score[i]=0;
total=0;
average=0;
voidmenu()//菜单函数
cout〈〈”\n\n\n学生成绩管理系统主菜单"
”\n\n\n1.添加学生信息”〈<
cout〈〈”2.输出学生信息”<
3。
查找学生信息"
4。
修改学生信息”<
〈”5。
删除学生信息"
”6。
学生信息排序”<
cout〈〈”7。
保存数据”〈〈endl;
”8.读出数据”〈<
9。
退出系统”〈〈endl;
〈”\n\n请选择(1~9)并按回车键确认:
intmain()//主函数
intchoose;
students;
menu();
choose;
switch(choose)
case1:
s.add();
break;
case2:
s.output();
break;
case3:
s.find();
case4:
s.modify();
case5:
s.deleted();
case6:
s。
sort();
case7:
save();
case8:
load();
default:
}while(choose!
=0);
}
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 简单 学生 成绩管理系统 课程设计