版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上#include<iostream.h>#include<fstream.h>#include<stdlib.h>#include<string.h>#include<stdio.h>class Person public:char name8;class student:public Person /构建学生类public:friend void Manage(student stud) ;friend void Input(student stud) ;friend void Statistic(stud
2、ent stud);friend void Lookup(student stud) ;friend void Modify(student stud) ;friend void Output(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 english;float math;fl
3、oat average;int order;stud100;class Manage:public student;void Write(student stud,int n) /向文件中写入数据fstream myFile;myFile.open("score.txt",ios:out|ios:binary);if(!myFile)cout<<"score.txt can't open!"<<endl;abort();int count=n;myFile<<count<<endl<<e
4、ndl;for(int i=0;i<=count;i+)myFile<<studi.class_0<<" "<<studi.num<<" "<<<<" "<<studi.c_program<<" "<<studi.english<<" "<<studi.math<<" "<<studi.avera
5、ge<<endl; myFile.close();int Read(student stud) /从文件中读数据 fstream myFile; myFile.open("score.txt",ios:in|ios:binary); if(!myFile)cout<<"score.txt can't open!"<<endl;abort(); int count; myFile.seekg(0); myFile>>count; for(int i=0;i<=count;i+) myFile&g
6、t;>studi.class_0>>studi.num>>>>studi.c_program>>studi.english>>studi.math >>studi.average; myFile.close(); return count ;void Input(student stud) /-输入学生成绩system("cls"); /*运行前清屏*/int i=0;int flag;char sign;cout<<endl<<">&g
7、t;>>>>>> 请输入学生成绩 <<<<<<<<n"<<endl;while(sign!='n'&&sign!='N') /*判断*/ cout<<"班级:" /*交互输入*/ cin>>studi.class_0; loop:cout<<"学号:" cin>>studi.num;int c=0;while(c<i)c+;if(studi.num=
8、studi-c.num)cout<<"你输入的学号已经存在!请重新输入!"<<endl;goto loop;cout<<"姓名:" cin>>; do flag=0; cout<<"C+成绩:" cin>>studi.c_program; if(studi.c_program>100 |studi.c_program<1) cout<<"请输入1-100之间的数字!n" else flag=1;whi
9、le(flag=0); doflag=0; cout<<"英语成绩:" cin>>studi.english; if(studi.english>100 |studi.english<1) cout<<"请输入1-100之间的数字!n" else flag=1;while(flag=0); doflag=0;cout<<"数学成绩:" cin>>studi.math; if(studi.math>100 |studi.math<1) cout<&
10、lt;"请输入1-100之间的数字!n" else flag=1;while(flag=0); studi.average=(studi.c_program+studi.english+studi.math)/3; cout<<"平均分:"<<studi.average<<endl; cout<<"继续录入学生成绩?(y/n)" cin>>sign; /*输入判断*/ i+; Write(stud,i);void Statistic(student stud) /-统计学生数
11、据 system("cls"); /*运行前清屏*/ int n=Read(stud);cout<<endl<<">>>>>>>> 显示学生成绩 <<<<<<<<n"<<endl; cout<<"班级"<<"t "<<"学号"<<"t "<<" 姓名"<<
12、"t "<<" 平均分"<<endl;for(int i=0;i<n;i+)cout<<studi.class_0<<"t"<<studi.num<<"t"<<<<"t "<<studi.average<<endl; system("pause"); void Lookup(student stud) /-查找学生成绩 int p;
13、 cout<<"请选择1.按学号查找 2.按姓名查找"<<endl;cin>>p;if(p=1) system("cls"); /*运行前清屏*/ int n=Read(stud);int s; int i=0;cout<<endl<<">>>>>>>> 查找学生成绩 <<<<<<<<n"<<endl;cout<<"请输入查找学生的学号:"
14、;<<endl; cin>>s; while(studi.num-s)!=0&&i<n) i+; /*查找判断*/ if(i=n) cout<<"没有该学生的信息!"<<endl; /*输入失败信息*/ elsecout<<"-"<<endl; cout<<"班级:"<<studi.class_0<<endl; /*输出该学生信息*/ cout<<"学号:"<<s
15、tudi.num<<endl; cout<<"姓名:"<<<<endl; cout<<"C+:"<<studi.c_program<<endl; cout<<"英语:"<<studi.english<<endl; cout<<"数学:"<<studi.math<<endl; cout<<"平均分:"<&l
16、t;studi.average<<endl;if(p=2)system("cls"); /*运行前清屏*/ int m=Read(stud);char t; int i=0;cout<<endl<<">>>>>>>> 查找学生成绩 <<<<<<<<n"<<endl;cout<<"请输入查找学生的姓名:"<<endl; cin>>t; while(strcmp
17、(-t,)=0&&i<m) i+; /*查找判断*/ cout<<"-"<<endl; cout<<"班级:"<<studi.class_0<<endl; /*输出该学生信息*/ cout<<"学号:"<<studi.num<<endl; cout<<"姓名:"<<<<endl; cout<<
18、"C+:"<<studi.c_program<<endl; cout<<"英语:"<<studi.english<<endl; cout<<"数学:"<<studi.math<<endl; cout<<"平均分:"<<studi.average<<endl;void Modify(student stud) /-修改学生成绩 system("cls"); /*运行前
19、清屏*/ int n=Read(stud);int s,a; float q;int i=0;cout<<endl<<">>>>>>>> 修改学生成绩 <<<<<<<<n"<<endl;cout<<"输入修改成绩学生的学号:"<<endl; cin>>s; while(studi.num-s)!=0&&i<n) i+; /*查找判断*/ if(i=n) cout<
20、;<"没有该学生的成绩!"<<endl; /*输入失败信息*/ elsecout<<"-该学生的信息-n"<<endl; /*格式头*/ cout<<"班级"<<"t"<<"学号 "<<"t"<<"姓名"<<"t"<<"c+"<<"t"<<"
21、;英语"<<"t"<<"数学"<<"t"<<"平均分"<<endl;cout<<"-"<<endl; cout<<studi.class_0<<"t"<<studi.num<<"t"<<<<"t"<<studi.c_program<&l
22、t;"t"<<studi.english<<"t"<<studi.math<<"t"<<studi.average<<endl;cout<<"-"<<endl;cout<<"请输入要修改的课程号"<<endl;cout<<"1.c语言 2.英语 3.数学"<<endl;cin>>a;cout<<"重新
23、输入分数"<<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<<"-该学生的信息-n"<<endl; /*格式头*/ cout<<"班级"<<"t"<<"学号 "<<&
24、quot;t"<<"姓名"<<"t"<<"c+"<<"t"<<"英语"<<"t"<<"数学"<<"t"<<"平均分"<<endl;cout<<"-"<<endl; cout<<studi.class_0<<"t&
25、quot;<<studi.num<<"t"<<<<"t"<<studi.c_program<<"t"<<studi.english<<"t"<<studi.math<<"t"<<studi.average<<endl; char c; cout<<"是否保存数据?(y/n)"<<endl;
26、cin>>c; if(c!='n'&&c!='N') Write(stud,n);void Insert(student stud) /-增加学生成绩 system("cls"); /*运行前清屏*/int n=Read(stud);char s;cout<<endl<<"* 插入学生成绩*n"<<endl;while(s!='n'&&s!='N')cout<<"班级:"<&
27、lt;endl; /*交互输入*/ cin>>studn.class_0; cout<<"学号:" cin>>studn.num; cout<<"姓名:" cin>>; cout<<"C+成绩:" cin>>studn.c_program; cout<<"英语成绩:" cin>>studn.english; cout<<"数学成绩:" cin>>
28、studn.math; studn.average=(studn.c_program+studn.english+ studn.math)/3; cout<<"平均分"<<studn.average;n+; cout<<"插入成功!"<<endl; /*返回成功信息*/cout<<"是否继续输入(y/n)"<<endl;cin>>s;Write(stud,n); void Manage(student stud) /-按平均分对学生成绩记录项进行降序排
29、序 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=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);
30、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=studj+1.english; studj+1.english=studj.english; studj.english=s; s=s
31、tudj+1.math; studj+1.math=studj.math; s=studj+1.average; studj+1.average=studj.average; studj.average=s; cout<<"-"<<endl; /*格式头*/ cout<<"班级"<<"t "<<"学号"<<"t "<<"姓名"<<"t"<<"
32、;C+"<<"t"<<"英语"<<"t"<<"数学"<<"t"<<"平均分"<<"t"<<"名次"<<endl; for(i=0;i<n;i+) /*循环输入*/ studi.order=i+1;cout<<studi.class_0<<"t"<<studi.
33、num<<"t"<<<<"t"<<studi.c_program<<"t"<<studi.english<<"t"<<studi.math<<"t"<<studi.average<<"t "<<studi.order<<endl; Write(stud,n);void Output(student st
34、ud) /-显示全部学生成绩 system("cls"); /*运行前清屏*/int n=Read(stud);cout<<"* 显示班级学生成绩 *n"<<endl;if(!stud)cout<<"没有记录" elsecout<<"-"<<endl; /*格式头*/ cout<<"班级"<<"t "<<"学号"<<"t "<
35、;<"姓名"<<"t"<<"c+"<<"t"<<"英语"<<"t"<<"数学"<<"t"<<"平均分"<<endl;for(int i=0;i<n;i+) /*循环输入*/ cout<<studi.class_0<<"t"<<studi.num
36、<<"t"<<<<"t"<<studi.c_program<<"t "<<studi.english<<"t " <<studi.math<<"t"<<studi.average<<endl; cout<<"-"<<endl; int menu() /*菜单函数*/ char c; do system(
37、"cls"); /*运行前清屏*/ cout<<"*n"<<endl; cout<<" -欢迎使用学生成绩管理系统-n"<<endl; cout<<" $"<<endl; cout<<" * 【1】输入学生成绩 * "<<endl; cout<<" * 【2】显示学生成绩 * "<<endl; cout<<" * 【3】查找学生成绩 * "<<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年LTE知识押题宝典题库(考试直接用)附答案详解
- 2026年生命体征监技术复习试题含答案详解【预热题】
- 2026年铁道车辆技术《铁道概论》通关考试题库【易错题】附答案详解
- 2026年智慧树答案【病理学】智慧树网课章节通关练习试题参考答案详解
- 《节假日旅游景点安全宣传教育手册》
- 年产3600吨精密铸件生产线项目可行性研究报告模板-备案审批
- 小吃摆摊价格策略研究报告
- 新能源元素研究报告
- 新加坡新冠研究报告
- 腌制食品危害研究报告
- 2026年宁波慈溪市煤气有限公司下属公司公开招聘工作人员4人建设笔试备考试题及答案解析
- 【地理】 欧洲西部第1课时课件-2025-2026学年人教版(2024)七年级地理下学期
- 芜湖市2026公安机关辅警招聘考试笔试题库(含答案)
- 2026苏科版(新教材)初中数学七年级下册期中知识点复习要点梳理(7-9章)
- 2026中国地铁广告行业营销态势及投资盈利预测报告
- 期中考试模拟试卷(含答案) 2025~2026学年度人教版七年级下册地理
- 广东江西稳派智慧上进教育联考2026届高三年级3月二轮复习阶段检测政治+答案
- 采购防欺诈制度
- 高中人教物理选择性必修二第二章 电磁感应章末复习 练习-人教版(原卷版)
- 公路工程项目部各岗位安全责任书
- 泰康之家-燕园PPT演示课件(PPT 38页)
评论
0/150
提交评论