设计题目:成绩管理系统设计要求实现如下功能:输入一个班级的学生基本信息(包括学号,姓名,性别,科目),对N门考试的成绩进行管理(例N=5)要求:1。
用户录入每个学生每门课程的分数;2。
能够计算每个学生的各门功课总分和平均分,并按总分将成绩排序,显示每个学生的总分和排名;3。
计算全班各门功课的平均分,显示没门课程中低于平均分的每一个学生的学号,姓名,性别,科目,成绩等信息;4。
显示每门科目中,成绩在90分以上的学生信息。
另外还输出每门科目中不及格的学生信息;5。
能按姓名或者学号查找,增加,删除和保存各个学生的信息。
6 文件操作源码:class.cpp文件:#include<iostream>#include<fstream>#include<string>using namespace std;class Student{private: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 setNo(int sno){no=sno;}void setName(string nam){name=nam;}void show(){cout<<"学号:"<<no<<endl;cout<<"姓名:"<<name<<endl;cout<<"性别:"<<sex<<endl;cout<<endl;}void Init(){string n;int num,s;cout<<"请输入学号:"<<endl;cin>>num;cout<<"请输入姓名:"<<endl;cin>>n;cout<<"请选择性别:男0,女1"<<endl;cin>>s;no=num;name=n;string s1,s2;if(s=0){s1="boy";Student::setSex(s1);}else{s2="girl";Student::setSex(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<<"请输入班级姓名:"<<endl;cin>>nam;cout<<"请输入班级人数:"<<endl;cin>>number;for(int i=0;i<number;i++){c[i].Init();}ofstream out;out.open("student.txt",ios::out);if(!out){cerr<<"文件打不开"<<endl;abort();}for(int i=0;i<number;i++){out<<c[i].getNo()<<" "<<c[i].getName()<<" "<<c[i].getSex()<<endl;}out.close();}void searchByName(){string nam;cout<<"请输入要查找的学生姓名:"<<endl;cin>>nam;int i;for(i=0;i<number;i++){if(c[i].getName()==nam){c[i].show();}}}void serchByNo(){int n;cout<<"请输入要查找的学号;"<<endl;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<<"请输入课程名:"<<endl;cin>>nam;setName(nam);}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<<"请输入课程数量:"<<endl;cin>>n;for(int i=0;i<n;i++){co[i].Init();}ofstream outS;outS.open("course.txt",ios::out);if(!outS){cerr<<"文件打不开"<<endl;abort();}for(int i=0;i<n;i++){outS<<co[i].getName()<<endl;}outS.close();}void input(Course co[20],int n,Student c[], int number ){int s;for(int i=0;i<n;i++){for(int j=0;j<number;j++){cout<<"请输入"<<c[j].getName()<<"的"<<co[i].getName()<<"成绩"<<endl;cin>>s;if(s<0||s>100){cout<<"你输入的成绩有误请重新输入!(成绩范围为0-100!)"<<endl;j=j-1;}else{Mark[i][j]=s;}}ofstream out;out.open("score.txt",ios::out);if(!out){cerr<<"文件打不开"<<endl;abort();}for(int i=0;i<n;i++){out<<co[i].getName();for(int j=0;j<number;j++){out<<" "<<Mark[i][j]<<" ";}out<<endl;}out.close();}void CountStu(int Mark[100][100],int number,int n){for(int i=0;i<number;i++){int s=0;for(int j=0;j<n;j++){s=s+Mark[j][i];}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<n;i++){float s=0.0;for(int j=0;j<number;j++){s=s+Mark[i][j];}CouAll[i]=s/n;}for(int i=0;i<n;i++){cout<<co[i].getName()<<"的平均分是:"<<(CouAll[i])<<endl;}for(int i=0;i<n;i++){for(int j=0;j<number;j++){if(Mark[i][j]<CouAll[i]){cout<<c[j].getName()<<"的"<<co[i].getName()<<"成绩小于平均分。
"<<endl;}}}void showUnpass(int Mark[100][100],Student c[],int number,Course co[],int n){ for(int i=0;i<n;i++){for(int j=0;j<number;j++){if(Mark[i][j]<60){cout<<c[j].getName()<<"的"<<co[i].getName()<<"成绩不及格!"<<endl;}}}}void showGood(int Mark[100][100],Student c[],int number,Course co[],int n){for(int i=0;i<n;i++){for(int j=0;j<number;j++){if(Mark[i][j]>90){cout<<c[j].getName()<<"的"<<co[i].getName()<<"成绩优秀!成绩为:"<<Mark[i][j]<<endl;}}}}void order(Student c[],int number,int StuAll[],int n){for(int i=0;i<number;i++){int sum=0;Student stu;if(StuAll[i]<StuAll[i+1]){sum=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<number;i++){cout<<c[i].getName()<<"的排名是:"<<(i+1)<<" 总分:"<<StuAll[i]<<endl;ofstream out;out.open("studentscore.txt",ios::out);if(!out){cerr<<"文件打不开"<<endl;abort();}for(int i=0;i<number;i++){out<<c[i].getName()<<" "<<StuAll[i]<<" "<<(i+1)<<endl; }out.close();}void Delete(int Mark[100][100],Student c[],int number,int n){ string na;cout<<"请输入要删除的学生姓名:"<<endl;cin>>na;for(int i=0;i<number;i++){if(c[i].getName()==na){for(i;i<number;i++){c[i]=c[i+1];}for(int j=0;j<n;j++){for(int k=i;k<number;k++){Mark[j][k]=Mark[j][k+1];}}}else{cout<<"您要删除的学生不存在!"<<endl;} }cout<<"删除成功!"<<endl;}void ReadText(Student c[],int number,Course co[],int n){char sname[30],sex[30];int sno;ifstream in("student.txt",ios::in);if(!in){cerr<<"文件打不开"<<endl;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;}c1.setStudent(c);c1.setNumber(i+1);in.close();char nam[20];ifstream ins("course.txt",ios::in);if(!ins){cerr<<"文件打不开"<<endl;abort();}int j=-1;ins>>nam;while(!ins.eof()){j++;co[j].setName(nam);ins>>nam;}setN(j+1);ins.close();cout<<"读取文件完毕,请继续操作!"<<endl;}};主函数:#include"class.cpp"#include<iostream>void showMenue(){cout<<"********学生成绩管理系统********"<<endl;cout<<"请选择功能:"<<endl;cout<<"1 输入学生成绩"<<endl;cout<<"2 根据成绩排序输出。