c简单学生成绩管理系统.docx
- 文档编号:4129670
- 上传时间:2022-11-28
- 格式:DOCX
- 页数:16
- 大小:160.58KB
c简单学生成绩管理系统.docx
《c简单学生成绩管理系统.docx》由会员分享,可在线阅读,更多相关《c简单学生成绩管理系统.docx(16页珍藏版)》请在冰豆网上搜索。
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;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<<''< < cout<<"保存成功! "< } fout.close(); getch(); } voidstudent: : load()//读取函数 { charfilename2[20]; cout<<"请输入你要读取的文件名: "; cin>>filename2; ifstreamfin(filename2,ios: : in); if(! fin)cout<<"文件打不开! "< 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<<"文件已读取成功! "< } fin.close(); getch(); } student&student: : operator=(student&T)//重载= { strcpy(nam); 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< < 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.查找学生信息"< cout<<"4.修改学生信息"< cout<<"5.删除学生信息"< cout<<"6.学生信息排序"< cout<<"7.保存数据"< cout<<"8.读出数据"< 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文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 学生 成绩管理系统