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