学生成绩管理系统 C++
更新时间:2023-03-10 18:21:01 阅读量: 教育文库 文档下载
设计题目:成绩管理系统
设计要求实现如下功能:
输入一个班级的学生基本信息(包括学号,姓名,性别,科目),对N门考试的成绩进行管理(例N=5) 要求 :
1。用户录入每个学生每门课程的分数;
2。能够计算每个学生的各门功课总分和平均分,并按总分将成绩排序,显示每个学生的总分和排名;
3。计算全班各门功课的平均分,显示没门课程中低于平均分的每一个学生的学号,姓名,性别,科目,成绩等信息;
4。显示每门科目中,成绩在90分以上的学生信息。另外还输出每门科目中不及格的学生信息;
5。能按姓名或者学号查找,增加,删除和保存各个学生的信息。 6 文件操作
源码:
class.cpp文件:
#include
int no;
string name,sex;
public:
string getName(){return name;} string getSex(){return sex;} int getNo(){return no;} void setSex(string s){sex=s;}
void show(){
cout<<\学号 :\ cout<<\姓名 :\ cout<<\性别 :\
void setNo(int sno){no=sno;}
void setName(string nam){name=nam;}
cout< void Init(){ string n; int num,s; cout<<\请输入学号:\ cin>>num; cout<<\请输入姓名:\ cin>>n; cout<<\请选择性别:男 0,女 1\ cin>>s; no=num; name=n; string s1,s2; if(s=0){s1=\ else{ s2=\ } } }; class Classes{ private: string name; public: int number; Student c[100]; int getNumber(){return number;} Student getStu(){return c[100];} void setStudent(Student a[100]){c[100]=a[100];} void setNumber(int num){number=num;} void Init(){ number=0; string nam; cout<<\请输入班级姓名:\ cin>>nam; cout<<\请输入班级人数:\ cin>>number; for(int i=0;i } ofstream out; out.open(\ } if(!out){ cerr<<\文件打不开\ abort(); } for(int i=0;i } out.close(); out< void searchByName(){ string nam; cout<<\请输入要查找的学生姓名:\ cin>>nam; int i; for(i=0;i void serchByNo(){ int n; cout<<\请输入要查找的学号;\ cin>>n; int i; for(i=0;i<100;i++){ if(c[i].getNo()==n){c[i].show();break;} } } }; class Course{ private: string name; int score; public: string getName(){return name;} void Init(){ string nam; cout<<\请输入课程名:\ cin>>nam; setName(nam); } c[i].show(); } } void setName(string nam){name=nam;} }; class OpreatorCou{ public: Classes c1; Course co[20]; int Mark[100][100],StuAll[100],n; void setN(int nn){n=nn;} int getN(){return n;} int getMark(){return Mark[100][100];} Course getCo(){return co[20];} void IN(){ cout<<\请输入课程数量:\ cin>>n; for(int i=0;i outS.open(\ if(!outS){ cerr<<\文件打不开\ abort(); } for(int i=0;i outS.close(); } void input(Course co[20],int n,Student c[], int number ){ int s; for(int i=0;i for(int j=0;j cin>>s; if(s<0||s>100){ cout<<\你输入的成绩有误请重新输入!(成绩范围为0-100!)\ j=j-1; } else{ Mark[i][j]=s; } } } ofstream out; out.open(\ if(!out){ cerr<<\文件打不开\ abort(); } for(int i=0;i for(int j=0;j out< out.close(); } void CountStu(int Mark[100][100],int number,int n){ for(int i=0;i } int s=0; for(int j=0;j StuAll[i]=s; } void CountCouAvg(int Mark[100][100],Student c[],int number,Course co[],int n){ float CouAll[10]; for(int i=0;i for(int j=0;j CouAll[i]=s/n; } for(int i=0;i for(int i=0;i for(int j=0;j if(Mark[i][j] \ } } void showUnpass(int Mark[100][100],Student c[],int number,Course co[],int n){ for(int i=0;i for(int j=0;j if(Mark[i][j]<60){ cout< \ } } } void showGood(int Mark[100][100],Student c[],int number,Course co[],int n){ for(int i=0;i } void order(Student c[],int number,int StuAll[],int n){ for(int i=0;i if(StuAll[i] StuAll[i]=StuAll[i+1]; StuAll[i+1]=sum; stu=c[i]; c[i]=c[i+1]; c[i+1]=stu; } } } } } for(int i=0;i } ofstream out; out.open(\ if(!out){ cerr<<\文件打不开\ abort(); } for(int i=0;i out.close(); } void Delete(int Mark[100][100],Student c[],int number,int n){ string na; cout<<\请输入要删除的学生姓名:\ cin>>na; for(int i=0;i if(c[i].getName()==na){ for(i;i c[i]=c[i+1]; } for(int j=0;j Mark[j][k]=Mark[j][k+1]; } } } else{cout<<\您要删除的学生不存在!\ } cout<<\删除成功!\ } void ReadText(Student c[],int number,Course co[],int n){ char sname[30],sex[30]; int sno; ifstream in(\ if(!in){ cerr<<\文件打不开\ abort(); } int i=-1; in>>sno>>sname>>sex; while(!in.eof()){ i=i+1; c[i].setNo(sno); c[i].setName(sname); c[i].setSex(sex); in>>sno>>sname>>sex; 主函数: #include\ } }; } c1.setStudent(c); c1.setNumber(i+1); in.close(); char nam[20]; ifstream ins(\ if(!ins){ cerr<<\文件打不开\ abort(); } int j=-1; ins>>nam; while(!ins.eof()){ j++; co[j].setName(nam); ins>>nam; } setN(j+1); ins.close(); cout<<\读取文件完毕,请继续操作!\ #include } cout<<\请选择功能:\cout<<\cout<<\cout<<\cout<<\ 输入学生成绩\ 根据成绩排序输出。\ 显示成绩大于90分的学生\显示不及格学生\ cout<<\按姓名查找\cout<<\按学号查找\ cout<<\显示成绩小于课程平均分的学生\cout<<\删除学生信息\cout<<\退出\cout< void main(){ int choice,input ; cout<<\请选择初始化方式:1.手动输入 2.从文件读取\cin>>input; OpreatorCou op; if(input==1){ op.c1.Init();op.IN();} if(input==2){op.ReadText(op.c1.c,op.c1.getNumber(),op.co,op.getN()); } do{ showMenue(); cin>>choice; switch(choice){ case 1: op.input(op.co,op.getN(),op.c1.c,op.c1.getNumber());break; case 2: { op.CountStu(op.Mark,op.c1.getNumber(),op.getN()); op.order(op.c1.c,op.c1.getNumber(),(op.StuAll),op.getN()); break; } case 3: op.showGood(op.Mark,op.c1.c,op.c1.getNumber(),op.co,op.getN()); break; case 4: op.showUnpass(op.Mark,op.c1.c,op.c1.getNumber(),op.co,op.getN());break; case 5: op.c1.searchByName();break; case 6: op.c1.serchByNo(); break; case 7: op.CountCouAvg(op.Mark,op.c1.c,op.c1.getNumber(),op.co,op.getN());break; case 8: op.Delete(op.Mark,op.c1.c,op.c1.getNumber(),op.getN());break; case 0: break; default: cout<<\您输入的有误,请重新输入!\ } }while(choice!=0); } 运行界面:
正在阅读:
学生成绩管理系统 C++03-10
湖南省长沙市长郡中学高三暑假作业检测模拟(五)文综地理试题04-07
第3章 资金时间价值与财务估价原理12-05
岩土工程勘察报告05-09
系统宝石学 - 仪器11-15
影响中国工程机械发展的十大政策06-29
会计继续教育 财务报表相关题目01-06
ANSYS错误集锦 李11-17
浙大《应用写作》模拟试题2012版09-18
- exercise2
- 铅锌矿详查地质设计 - 图文
- 厨余垃圾、餐厨垃圾堆肥系统设计方案
- 陈明珠开题报告
- 化工原理精选例题
- 政府形象宣传册营销案例
- 小学一至三年级语文阅读专项练习题
- 2014.民诉 期末考试 复习题
- 巅峰智业 - 做好顶层设计对建设城市的重要意义
- (三起)冀教版三年级英语上册Unit4 Lesson24练习题及答案
- 2017年实心轮胎现状及发展趋势分析(目录)
- 基于GIS的农用地定级技术研究定稿
- 2017-2022年中国医疗保健市场调查与市场前景预测报告(目录) - 图文
- 作业
- OFDM技术仿真(MATLAB代码) - 图文
- Android工程师笔试题及答案
- 生命密码联合密码
- 空间地上权若干法律问题探究
- 江苏学业水平测试《机械基础》模拟试题
- 选课走班实施方案
- C++
- 管理系统
- 成绩
- 学生
- Java程序设计课程作业
- 第三章 金融市场和其他投资市场试题及答案 - 图文
- 2012年12月英语四级考试预测试卷第五套01
- 动漫城项目可行性研究报告 - 图文
- 办理串通投标犯罪案件有关问题座谈会纪要
- 汽轮机启动调试导则
- 2017-2022年中国阀球阀座市场深度评估与投资战略研究报告(目录)
- 海尔战略目标的实现与其人力资源管理间的关系
- CC++面试题目汇总
- 中国商业银行的发展变革历程及展望
- 区科协2012年“六五”普法依法治理工作总结
- 2009上半年--2011年银行从业个人理财真题+答案
- 2017-2018大数据公需考试多选题及答案
- 第11课第二框题第二框题 - 图文
- 国资法规发68号关于印发《国有资产产权界定和产权纠纷处理暂行办法》的通知
- 哈工大 - 控制系统实践 - 磁悬浮实验报告
- 上外附中面试题汇总
- 九年级综合实践课第二课 发明并不神秘
- 非例行工作单项目的处理和控制
- 期末复习组织行为学客观题