C++学生成绩管理系统源代码_第1页
C++学生成绩管理系统源代码_第2页
C++学生成绩管理系统源代码_第3页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、class Person public:char name8; ;class student:public Person/构建学生类public:friend void Manage(student stud) ;friend void Input(student stud) ;friend void Statistic(student stud);friend void Lookup(student stud) ;friend void Modify(student stud) ;friend void Output(student stud) ;friend void Insert(stu

2、dent stud) ;friend void Write(student stud,int n);friend int Read(student stud);private:int num;char name8;char class_020;float c_program;float english;float math;float average;int order;stud100;class Manage:public student;void Write(student stud,int n) / 向文件中写入数据fstream myFile;myFile.open("sco

3、re.txt",ios:out|ios:binary);if(!myFile)cout<<"score.txt can't open!"<<endl;abort();int count=n;myFile<<count<<endl<<endl;for(int i=0;i<=count;i+)myFile<<studi.class_0<<""<<studi.num<<""<<&

4、lt;<""<<studi.c_program<<""<<studi.english<<""<<studi.math<<""<<studi.average<<endl;myFile.close();int Read(student stud) /从文件中读数据fstream myFile;myFile.open("score.txt",ios:in|ios:binary);if(!myFile)

5、cout<<"score.txt can't open!"<<endl;abort();int count;myFile.seekg(0);myFile>>count;for(int i=0;i<=count;i+)myFile>>studi.class_0>>studi.num>>>>studi.c_program>>studi.english>>studi.math >>studi.average;myFile.clo

6、se();return count ;void Input(student stud) /-输入学生成绩system("cls"); /*运行前清屏 */int i=0;int flag;char sign;cout<<endl<<">>>>>>>>请输入学生成绩<<<<<<<<n"<<endl;while(sign!='n'&&sign!='N') /*判断 */cout&l

7、t;<" 班级 :" /*交互输入 */cin>>studi.class_0;loop:cout<<" 学号 :"cin>>studi.num;int c=0;while(c<i)c+;if(studi.num=studi-c.num)cout<<" 你输入的学号已经存在! 请重新输入 !"<<endl;goto loop;cout<<" 姓名 :"cin>>;doflag=0;cout<<

8、;"C+成绩 :"cin>>studi.c_program;if(studi.c_program>100 |studi.c_program<1)cout<<"请输入 1-100 之间的数字 !n"elseflag=1;while(flag=0);doflag=0;cout<<" 英语成绩 :"cin>>studi.english;if(studi.english>100 |studi.english<1)cout<<"请输入 1-100 之间

9、的数字 !n"elseflag=1;while(flag=0);doflag=0;cout<<" 数学成绩 :"cin>>studi.math;if(studi.math>100 |studi.math<1)cout<<"请输入 1-100 之间的数字 !n"elseflag=1;while(flag=0);studi.average=(studi.c_program+studi.english+studi.math)/3;cout<<" 平均分: "<<

10、;studi.average<<endl;cout<<" 继续录入学生成绩?(y/n)"cin>>sign; /*输入判断*/i+;Write(stud,i);void Statistic(student stud)/-统计学生数据system("cls"); /*运行前清屏*/int n=Read(stud);cout<<endl<<">>>>>>>>显示学生成绩<<<<<<<<n&quo

11、t;<<endl;cout<<"班级 "<<"t"<<"学号 "<<"t"<<"姓名 "<<"t "<<"平均分 "<<endl;for(int i=0;i<n;i+)cout<<studi.class_0<<"t"<<studi.num<<"t"<&

12、lt;<<"t"<<studi.average<<endl;system("pause");void Lookup(student stud) /-查找学生成绩int p;cout<<"请选择 1. 按学号查找2.按姓名查找 "<<endl;cin>>p;if(p=1)system("cls"); /*运行前清屏 */int n=Read(stud);int s;int i=0;cout<<endl<<

13、;">>>>>>>>查找学生成绩<<<<<<<<n"<<endl;cout<<" 请输入查找学生的学号:"<<endl;cin>>s;while(studi.num-s)!=0&&i<n) i+; /*查找判断 */if(i=n)cout<<" 没有该学生的信息!"<<endl; /*输入失败信息 */elsecout<<"-

14、"<<endl;cout<<" 班级 :"<<studi.class_0<<endl; /*输出该学生信息 */cout<<" 学号 :"<<studi.num<<endl;cout<<" 姓名 :"<<<<endl;cout<<"C+:"<<studi.c_program<<endl;cout<<" 英语 :

15、"<<studi.english<<endl;cout<<" 数学 :"<<studi.math<<endl;cout<<" 平均分 :"<<studi.average<<endl;if(p=2)system("cls"); /*运行前清屏 */int m=Read(stud);char t;int i=0;cout<<endl<<">>>>>>>>

16、查找学生成绩<<<<<<<<n"<<endl;cout<<" 请输入查找学生的姓名:"<<endl;cin>>t;while(strcmp(-t,)=0&&i<m) i+; /*查找判断*/cout<<"-"<<endl;cout<<"班级 :"<<studi.class_0<<endl; /*输出该学生信息*

17、/cout<<" 学号 :"<<studi.num<<endl;cout<<" 姓名 :"<<<<endl;cout<<"C+:"<<studi.c_program<<endl;cout<<" 英语 :"<<studi.english<<endl;cout<<" 数学 :"<<studi.math<<

18、;endl;cout<<" 平均分 :"<<studi.average<<endl;void Modify(student stud)/-修改学生成绩system("cls"); /*运行前清屏*/int n=Read(stud);int s,a; float q;int i=0;cout<<endl<<">>>>>>>>修改学生成绩<<<<<<<<n"<<endl;c

19、out<<" 输入修改成绩学生的学号:"<<endl;cin>>s;while(studi.num-s)!=0&&i<n) i+; /*查找判断*/if(i=n)cout<<"没有该学生的成绩!"<<endl; /*输入失败信息*/elsecout<<"-该学生的信息-n"<<endl; /*格式头*/cout<<"班级"<<"t"<<"学号&q

20、uot;<<"t"<<"姓名"<<"t"<<"c+"<<"t"<<"英语 "<<"t"<<"数学 "<<"t"<<"平均分"<<endl;cout<<"-"<<endl;cout<<studi.class_0&l

21、t;<"t"<<studi.num<<"t"<<<<"t"<<studi.c_program<<"t"<<studi.english<<"t"<<studi.math<<"t"<<studi.average<<endl;cout<<"-"<<endl;cout<

22、;<" 请输入要修改的课程号"<<endl;cout<<"1.c语言 2. 英语 3. 数学 "<<endl;cin>>a;cout<<" 重新输入分数 "<<endl;cin>>q;if(a=1) studi.c_program=q;if(a=2)studi.english=q;if(a=3)studi.math=q;studi.average=(studi.c_program+studi.english+studi.math)/3;cout&

23、lt;<"-该学生的信息 -n"<<endl; /*格式头 */cout<<"班级"<<"t"<<"学号"<<"t"<<"姓名"<<"t"<<"c+"<<"t"<<"英语 "<<"t"<<"数学 "<&l

24、t;"t"<<"平均分 "<<endl;cout<<"-"<<endl;cout<<studi.class_0<<"t"<<studi.num<<"t"<<<<"t"<<studi.c_program<<"t"<<studi.english<<"t"&

25、lt;<studi.math<<"t"<<studi.average<<endl;char c;cout<<"是否保存数据 ?(y/n)"<<endl;cin>>c;if(c!='n'&&c!='N')Write(stud,n);void Insert(student stud) /-增加学生成绩system("cls"); /*运行前清屏 */int n=Read(stud);char s;cout<&

26、lt;endl<<"*插入学生成绩 *n"<<endl;while(s!='n'&&s!='N')cout<<" 班级 :"<<endl; /*交互输入 */cin>>studn.class_0;cout<<"学号 :"cin>>studn.num;cout<<"姓名 :"cin>>;cout<<"C+成绩 :"

27、;cin>>studn.c_program;cout<<"英语成绩 :"cin>>studn.english;cout<<"数学成绩 :"cin>>studn.math;studn.average=(studn.c_program+studn.english+studn.math)/3;cout<<" 平均分 "<<studn.average;n+;cout<<" 插入成功! "<<endl; /*返回成功信

28、息 */cout<<" 是否继续输入 (y/n)"<<endl;cin>>s;Write(stud,n);void Manage(student stud) /-按平均分对学生成绩记录项进行降序排序system("cls"); /*运行前清屏 */int i,j,k;float s;char t20;cout<<endl<<"*排列管理成绩*n"<<endl;int n=Read(stud);for(i=0;i<n-1;i+) /*冒泡法排序 */for(j

29、=0;j<n-1-i;j+)if(studj.average<studj+1.average)strcpy(t,studj+1.class_0);strcpy(studj+1.class_0,studj.class_0);strcpy(studj.class_0,t);k=studj+1.num;studj+1.num=studj.num;studj.num=k;strcpy(t,studj+1.name);strcpy(studj+1.name,);strcpy(,t);s=studj+1.c_program;studj+1.c_progr

30、am=studj.c_program;studj.c_program=s;s=studj+1.english;studj+1.english=studj.english;studj.english=s;s=studj+1.math;studj+1.math=studj.math;s=studj+1.average;studj+1.average=studj.average;studj.average=s;cout<<"-"<<endl; /*格式头 */cout<<"班 级"<<"t"&

31、lt;<"学 号"<<"t"<<"姓 名"<<"t"<<"C+"<<"t"<<"英语"<<"t"<<"数学"<<"t"<<"平均分"<<"t"<<"名次 "<<endl;for(

32、i=0;i<n;i+) /*循环输入*/studi.order=i+1;cout<<studi.class_0<<"t"<<studi.num<<"t"<<<<"t"<<studi.c_program<<"t"<<studi.english<<"t"<<studi.math<<"t"<<studi

33、.average<<"t "<<studi.order<<endl;Write(stud,n);void Output(student stud) /- 显示全部学生成绩system("cls"); /*运行前清屏*/int n=Read(stud);cout<<"*显示班级学生成绩*n"<<endl;if(!stud)cout<<" 没有记录 "elsecout<<"-"<<endl; /*格式头

34、*/cout<<"班 级 "<<"t"<<"学 号 "<<"t"<<"姓 名"<<"t"<<"c+"<<"t"<<"英语 "<<"t"<<"数学 "<<"t"<<"平均分 "<&

35、lt;endl;for(int i=0;i<n;i+) /*循环输入 */cout<<studi.class_0<<"t"<<studi.num<<"t"<<<<"t"<<studi.c_program<<"t"<<studi.english<<"t"<<studi.math<<"t"<<stud

36、i.average<<endl;cout<<"-"<<endl;int menu() /*菜单函数 */char c;dosystem("cls"); /*运行前清屏 */cout<<"*n"<<endl;cout<<"-欢 迎 使 用 学 生 成 绩 管 理 系 统-n"<<endl;cout<<"$"<<endl;cout<<"*【1】输入学生成绩* "<<endl;cout<<"*【 2 】显示学生成绩*"<<endl;cout<

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论