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

下载本文档

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

文档简介

1、#include#include#include#include#includeclass 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 Outp

2、ut(student stud) ;friend void Insert(student 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 math;float average;int order;stud100;class Manage:public student;void Write(student stud,int n) / 向文件中写入数据fstream my

3、File;myFile.open(score.txt,ios:out|ios:binary);if(!myFile)coutscore.txt cant open!endl;abort();int count=n;myFilecountendlendl;for(int i=0;i=count;i+)myFilestudi.class_0studi.c_studi.mathmyFile.close();int Read(student stud) / 从文件中读数据fstream myFile;myFile.open(

4、score.txt,ios:in|ios:binary);if(!myFile)coutscore.txt cant open!count;for(int i=0;istudi.class_0studi.c_programstudi.englishstudi.math studi.average;myFile.close();return count ;void Input(student stud) /-输入学生成绩system(cls); /*运行前清屏 */int i=0;int flag;char sign;coutendl请输入学生成绩nendl

5、;while(sign!=n&sign!=N) /*判断 */coutstudi.class_0;loop:coutstudi.num;int c=0;while(ci)c+;if(studi.num=studi-c.num)cout 你输入的学号已经存在! 请重新输入 !endl;goto loop;;doflag=0;coutstudi.c_program;if(studi.c_program100 |studi.c_program1)cout请输入 1-100 之间的数字 !n;elseflag=1;while(flag=0);doflag=0;coutstu

6、di.english;if(studi.english100 |studi.english1)cout请输入 1-100 之间的数字 !n;elseflag=1;while(flag=0);doflag=0;coutstudi.math;if(studi.math100 |studi.math1)cout请输入 1-100 之间的数字 !n;elseflag=1;while(flag=0);studi.average=(studi.c_program+studi.english+studi.math)/3;cout 平均分: studi.averageendl;coutsign; /*输入判断

7、 */i+;Write(stud,i);void Statistic(student stud)/-统计学生数据system(cls); /*运行前清屏 */int n=Read(stud);coutendl显示学生成绩nendl;cout班级 t学号 t姓名 t 平均分 endl;for(int i=0;in;i+)coutstudi.class_0tstudi.averageendl;system(pause);void Lookup(student stud) /- int p;查找学生成绩cout请选择1. 按学号查找2.按姓名查找p;if(p

8、=1)system(cls); /*运行前清屏*/int n=Read(stud);int s;int i=0;coutendl查找学生成绩nendl;cout 请输入查找学生的学号:s;while(studi.num-s)!=0&in) i+; /*查找判断 */if(i=n)cout 没有该学生的信息!endl; /*输入失败信息 */elsecout-endl;cout 班级 :studi.class_0endl; /*输出该学生信息 */cout 学号 :studi.numendl;cout 姓名 :endl;coutC+:studi.c_programendl;c

9、out 英语 :studi.englishendl;cout 数学 :studi.mathendl;cout 平均分 :studi.averageendl;if(p=2)system(cls); /*运行前清屏 */int m=Read(stud);char t;int i=0;coutendl查找学生成绩nendl;cout 请输入查找学生的姓名:t;while(strcmp(-t,)=0&im) i+; /*查找判断 */cout-endl;cout班级 :studi.class_0endl; /*输出该学生信息*/cout学号 :studi.num

10、endl;cout 姓名 :endl;coutC+:studi.c_programendl;cout英语 :studi.englishendl;cout数学 :studi.mathendl;cout平均分:studi.averageendl;void Modify(student stud)/-修改学生成绩system(cls); /*运行前清屏 */int n=Read(stud);int s,a; float q;int i=0;coutendl修改学生成绩nendl;cout输入修改成绩学生的学号:s;while(studi.num-s)!=0&in) i+; /*查

11、找判断*/if(i=n)cout没有该学生的成绩!endl; /*输入失败信息*/elsecout-该学生的信息-nendl; /*格式头*/cout班级t学号t姓名tc+t英语 t数学 tcout-endl;平均分 endl;coutstudi.class_0tstudi.c_programtstudi.englishtstudi.mathtstudi.averageendl;cout-endl;cout 请输入要修改的课程号endl;cout1.c语言 2. 英语 3. 数学 a;cout 重新输入分数 q;if(a=1) studi.c_prog

12、ram=q;if(a=2)studi.english=q;if(a=3)studi.math=q;studi.average=(studi.c_program+studi.english+studi.math)/3;cout-该学生的信息-nendl; /*格式头*/cout班级t学号t姓名tc+t英语 t数学 tcout-endl;平均分 endl;coutstudi.class_0tstudi.c_programtstudi.englishtstudi.mathtstudi.averageendl;char c;cout是否保存数据 ?(y/n)c

13、;if(c!=n&c!=N)Write(stud,n);void Insert(student stud) /-增加学生成绩system(cls); /*运行前清屏 */int n=Read(stud);char s;coutendl*插入学生成绩 *nendl;while(s!=n&s!=N)cout 班级 :studn.class_0;coutstudn.num;;coutstudn.c_program;coutstudn.english;coutstudn.math;studn.average=(studn.c_program+studn.english+st

14、udn.math)/3;cout 平均分 studn.average;n+;cout 插入成功! endl; /*返回成功信息 */cout 是否继续输入 (y/n)s;Write(stud,n);void Manage(student stud) /-按平均分对学生成绩记录项进行降序排序system(cls); /*运行前清屏 */int i,j,k;float s;char t20;coutendl*排列管理成绩*nendl;int n=Read(stud);for(i=0;in-1;i+) /*冒泡法排序 */for(j=0;jn-1-i;j+)if(studj.averagestudj

15、+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_program=studj.c_program;studj.c_program=s;s=stu

16、dj+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学 号t姓 名英语数学平均分名次endl;for(i=0;in;i+) /*循环输入*/studi.order=i+1;coutstudi.class_0tstudi.c_prog

17、ramtstudi.englishtstudi.mathtstudi.averaget studi.orderendl;Write(stud,n);void Output(student stud) /- 显示全部学生成绩system(cls); /*运行前清屏*/int n=Read(stud);cout*nendl;if(!stud)显示班级学生成绩cout 没有记录 ;elsecout-endl; /*格式头 */cout班 级 t学 号 t姓 名tc+t英语 t数学 t平均分 endl;for(int i=0;in;i+) /*循环输入 */coutstudi.class_0tstud

18、tstudi.c_programtstudi.englishtstudi.mathtstudi.averageendl;cout-endl;int menu() /*菜单函数 */char c;dosystem(cls); /*运行前清屏 */cout*nendl;cout-欢 迎 使 用 学 生 成 绩管 理 系 统-nendl;cout$endl;cout*【 1】输入学生成绩*endl;cout*【 2 】显示学生成绩*endl;cout*【 3】查找学生成绩*endl;cout*【 4】修改学生成绩*endl;cout*【 5】插入学生成绩*endl;cout*【 6】排列管 理成绩*endl;cout*【 7 】显示班级学生成绩*endl;cou

温馨提示

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

评论

0/150

提交评论