1、设计题目:成绩管理系统 设计要求实现如下功能: 输入一个班级的学生基本信息(包括学号,姓名,性别,科目),对N门考试的成绩进行管理(例N=5) 要求 : 1.用户录入每个学生每门课程的分数; 2.能够计算每个学生的各门功课总分和平均分,并按总分将成绩排序,显示每个学生的总分和排名; 3.计算全班各门功课的平均分,显示没门课程中低于平均分的每一个学生的学号,姓名,性别,科目,成绩等信息; 4。显示每门科目中,成绩在90分以上的学生信息。另外还输出每门科目中不及格的学生信息; 5。能按姓名或者学号查找,增加,删除和保存各个学生的信息。 6 文件操作 源码: class.cpp
2、文件:
#include〈iostream〉
#include 3、int sno){no=sno;}
void setName(string nam){name=nam;}
void show(){
cout〈〈”学号 :"〈〈no〈〈endl;
cout〈<”姓名 :”〈 4、
cin〉〉n;
cout〈〈”请选择性别:男 0,女 1"〈 5、
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〈<"请输入班级人数:"〈< 6、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〈 7、〈 8、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 9、
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 10、){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() 11、
}
for(int i=0;i〈n;i++){
outS〈 12、〈"成绩"〈〈endl;
cin>>s;
if(s〈0||s〉100){
cout〈<"你输入的成绩有误请重新输入!(成绩范围为0-100!)”〈 13、"<〈endl;
abort();
}
for(int i=0;i 14、i 15、{
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 16、均分."〈〈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〈 17、 }
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〈 18、tudent c[],int number,int StuAll[],int n){
for(int i=0;i 19、0;i〈number;i++){
cout< 20、< 21、
}
for(int j=0;j〈n;j++){
for(int k=i;k 22、0];
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(se 23、x);
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()){
24、 j++;
co[j]。setName(nam);
ins〉>nam;
}
setN(j+1);
ins。close();
cout〈<”读取文件完毕,请继续操作!"〈〈endl;
}
};
主函数:
#include”class。cpp”
#include〈iostream〉
void showMenue(){
cout<<”********学生成绩管理系统********”〈 25、ut〈<”2 根据成绩排序输出。"〈〈endl;
cout〈〈”3 显示成绩大于90分的学生”〈〈endl;
cout<〈”4 显示不及格学生”< 26、〈〈endl;
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 27、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;
28、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〈〈”您输入的有误,请重新输入!"<






