学生成绩管理系统 C++

更新时间:2023-03-10 18:21:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

设计题目:成绩管理系统

设计要求实现如下功能:

输入一个班级的学生基本信息(包括学号,姓名,性别,科目),对N门考试的成绩进行管理(例N=5) 要求 :

1。用户录入每个学生每门课程的分数;

2。能够计算每个学生的各门功课总分和平均分,并按总分将成绩排序,显示每个学生的总分和排名;

3。计算全班各门功课的平均分,显示没门课程中低于平均分的每一个学生的学号,姓名,性别,科目,成绩等信息;

4。显示每门科目中,成绩在90分以上的学生信息。另外还输出每门科目中不及格的学生信息;

5。能按姓名或者学号查找,增加,删除和保存各个学生的信息。 6 文件操作

源码:

class.cpp文件:

#include #include #include 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 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;i90){ cout<

}

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 void showMenue(){ cout<<\学生成绩管理系统********\

}

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); }

运行界面:

本文来源:https://www.bwwdw.com/article/43xw.html

Top