学生成绩管理系统 C++.docx

上传人:b****8 文档编号:9322691 上传时间:2023-02-04 格式:DOCX 页数:16 大小:33.99KB
下载 相关 举报
学生成绩管理系统 C++.docx_第1页
第1页 / 共16页
学生成绩管理系统 C++.docx_第2页
第2页 / 共16页
学生成绩管理系统 C++.docx_第3页
第3页 / 共16页
学生成绩管理系统 C++.docx_第4页
第4页 / 共16页
学生成绩管理系统 C++.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

学生成绩管理系统 C++.docx

《学生成绩管理系统 C++.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统 C++.docx(16页珍藏版)》请在冰豆网上搜索。

学生成绩管理系统 C++.docx

学生成绩管理系统C++

设计题目:

成绩管理系统

设计要求实现如下功能:

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

要求:

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

2。

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

3。

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

4。

显示每门科目中,成绩在90分以上的学生信息。

另外还输出每门科目中不及格的学生信息;

5。

能按姓名或者学号查找,增加,删除和保存各个学生的信息.

6文件操作

源码:

class.cpp文件:

#include〈iostream〉

#include〈fstream>

#include

usingnamespacestd;

classStudent{

private:

intno;

stringname,sex;

public:

stringgetName(){returnname;}

stringgetSex(){returnsex;}

intgetNo(){returnno;}

voidsetSex(strings){sex=s;}

voidsetNo(intsno){no=sno;}

voidsetName(stringnam){name=nam;}

voidshow(){

cout〈<”学号:

"<〈no<〈endl;

cout〈<”姓名:

”<

cout〈〈”性别:

"〈〈sex〈〈endl;

cout〈〈endl;

}

voidInit(){

stringn;

intnum,s;

cout<<"请输入学号:

”<

cin〉〉num;

cout<<"请输入姓名:

"〈

cin〉〉n;

cout<〈”请选择性别:

男0,女1"〈〈endl;

cin〉〉s;

no=num;

name=n;

strings1,s2;

if(s=0){s1="boy";Student:

setSex(s1);}

else{

s2=”girl”;Student:

setSex(s2);

}

}

};

classClasses{

private:

stringname;

public:

intnumber;

Studentc[100];

intgetNumber(){returnnumber;}

StudentgetStu(){returnc[100];}

voidsetStudent(Studenta[100]){c[100]=a[100];}

voidsetNumber(intnum){number=num;}

voidInit(){

number=0;

stringnam;

cout〈〈"请输入班级姓名:

”〈

cin〉〉nam;

cout<〈”请输入班级人数:

"〈

cin〉>number;

for(inti=0;i〈number;i++){

c[i]。

Init();

}

ofstreamout;

out。

open(”student。

txt",ios:

out);

if(!

out){

cerr<〈"文件打不开”〈〈endl;

abort();

for(inti=0;i〈number;i++){

out〈

getName()〈<""〈〈c[i]。

getSex()<

out。

close();

voidsearchByName(){

stringnam;

cout〈〈”请输入要查找的学生姓名:

"〈

cin>〉nam;

inti;

for(i=0;i

if(c[i].getName()==nam){

c[i]。

show();

}

voidserchByNo(){

intn;

cout〈〈"请输入要查找的学号;"<

cin〉〉n;

inti;

for(i=0;i〈100;i++){

if(c[i].getNo()==n){c[i].show();break;}

};

classCourse{

private:

stringname;

intscore;

public:

stringgetName(){returnname;}

voidInit(){

stringnam;

cout<〈”请输入课程名:

"〈

cin>>nam;

setName(nam);

}

voidsetName(stringnam){name=nam;}

};

classOpreatorCou{

public:

Classesc1;

Courseco[20];

intMark[100][100],StuAll[100],n;

voidsetN(intnn){n=nn;}

intgetN(){returnn;}

intgetMark(){returnMark[100][100];}

CoursegetCo(){returnco[20];}

voidIN(){

cout〈〈”请输入课程数量:

”〈

cin>>n;

for(inti=0;i

co[i].Init();

}

ofstreamoutS;

outS.open("course.txt",ios:

:

out);

if(!

outS){

cerr<<"文件打不开"<〈endl;

abort();

}

for(inti=0;i

outS<〈co[i]。

getName()〈〈endl;

outS.close();

voidinput(Courseco[20],intn,Studentc[],intnumber){

ints;

for(inti=0;i

for(intj=0;j〈number;j++){

cout<<"请输入”<〈c[j]。

getName()〈<"的”<〈co[i].getName()<〈"成绩"<〈endl;

cin>〉s;

if(s〈0||s>100){

cout<〈"你输入的成绩有误请重新输入!

(成绩范围为0-100!

)"〈

j=j-1;

else{

Mark[i][j]=s;

ofstreamout;

out。

open(”score.txt",ios:

:

out);

if(!

out){

cerr〈〈"文件打不开"〈〈endl;

abort();

}

for(inti=0;i

out〈〈co[i].getName();

for(intj=0;j

out<〈"”〈

}

out〈

out.close();

}

voidCountStu(intMark[100][100],intnumber,intn){

for(inti=0;i

ints=0;

for(intj=0;j

s=s+Mark[j][i];

}

StuAll[i]=s;

}

voidCountCouAvg(intMark[100][100],Studentc[],intnumber,Courseco[],intn){

floatCouAll[10];

for(inti=0;i

floats=0。

0;

for(intj=0;j〈number;j++){

s=s+Mark[i][j];

}

CouAll[i]=s/n;

for(inti=0;i〈n;i++){

cout〈〈co[i]。

getName()<〈"的平均分是:

”〈〈(CouAll[i])〈〈endl;

}

for(inti=0;i

for(intj=0;j〈number;j++){

if(Mark[i][j]〈CouAll[i]){

cout<〈c[j].getName()<<”的”〈

"〈〈endl;}

voidshowUnpass(intMark[100][100],Studentc[],intnumber,Courseco[],intn){

for(inti=0;i〈n;i++){

for(intj=0;j

if(Mark[i][j]〈60){

cout<〈c[j]。

getName()〈<”的"<

"<

}

voidshowGood(intMark[100][100],Studentc[],intnumber,Courseco[],intn){

for(inti=0;i

for(intj=0;j〈number;j++){

if(Mark[i][j]〉90){

cout〈

成绩为:

"〈

}

voidorder(Studentc[],intnumber,intStuAll[],intn){

for(inti=0;i〈number;i++){

intsum=0;Studentstu;

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(inti=0;i〈number;i++){

cout〈〈c[i].getName()<<"的排名是:

"<〈(i+1)〈〈”总分:

”<

}

ofstreamout;

out。

open(”studentscore。

txt”,ios:

:

out);

if(!

out){

cerr<<"文件打不开"〈

abort();

for(inti=0;i〈number;i++){

out〈

getName()<<””<

out。

close();

voidDelete(intMark[100][100],Studentc[],intnumber,intn){

stringna;

cout<<"请输入要删除的学生姓名:

”〈

cin>〉na;

for(inti=0;i〈number;i++){

if(c[i].getName()==na){

for(i;i〈number;i++){

c[i]=c[i+1];

for(intj=0;j〈n;j++){

for(intk=i;k

Mark[j][k]=Mark[j][k+1];

}

else{cout〈〈”您要删除的学生不存在!

"〈〈endl;}

}

cout<〈”删除成功!

"<〈endl;

}

voidReadText(Studentc[],intnumber,Courseco[],intn){

charsname[30],sex[30];

intsno;

ifstreamin(”student。

txt”,ios:

:

in);

if(!

in){

cerr<<"文件打不开"〈

abort();

}

inti=—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();

charnam[20];

ifstreamins(”course。

txt”,ios:

in);

if(!

ins){

cerr〈<"文件打不开”<〈endl;

abort();

intj=-1;

ins〉〉nam;

while(!

ins.eof()){

j++;

co[j].setName(nam);

ins>〉nam;

}

setN(j+1);

ins。

close();

cout〈<"读取文件完毕,请继续操作!

”〈

};

主函数:

#include”class.cpp"

#include

voidshowMenue(){

cout〈<"********学生成绩管理系统********”<〈endl;

cout〈<”请选择功能:

"〈

cout<<”1输入学生成绩”〈〈endl;

cout〈<"2根据成绩排序输出."〈

cout〈〈"3显示成绩大于90分的学生"<

cout<<”4显示不及格学生"〈〈endl;

cout<<"5按姓名查找”<〈endl;

cout<〈”6按学号查找"〈〈endl;

cout〈〈"7显示成绩小于课程平均分的学生"<

cout<<”8删除学生信息”〈

cout〈〈"0退出"<

cout〈

}

voidmain(){

intchoice,input;

cout<〈"请选择初始化方式:

1.手动输入2.从文件读取”<

cin>〉input;

OpreatorCouop;

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){

case1:

op。

input(op。

co,op。

getN(),op.c1。

c,op。

c1.getNumber());break;

case2:

{op.CountStu(op.Mark,op。

c1.getNumber(),op。

getN());

op.order(op.c1。

c,op.c1.getNumber(),(op.StuAll),op。

getN());

break;

}

case3:

op。

showGood(op。

Mark,op.c1。

c,op.c1.getNumber(),op。

co,op。

getN());break;

case4:

op.showUnpass(op.Mark,op。

c1.c,op。

c1.getNumber(),op。

co,op.getN());break;

case5:

op。

c1。

searchByName();break;

case6:

op。

c1。

serchByNo();break;

case7:

op.CountCouAvg(op.Mark,op.c1。

c,op.c1。

getNumber(),op。

co,op.getN());break;

case8:

op。

Delete(op。

Mark,op.c1。

c,op.c1.getNumber(),op。

getN());break;

case0:

break;

default:

cout〈<"您输入的有误,请重新输入!

"〈〈endl;

}while(choice!

=0);

}

运行界面:

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 高等教育 > 医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1