学生成绩管理系统 C++Word文档格式.docx
《学生成绩管理系统 C++Word文档格式.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统 C++Word文档格式.docx(16页珍藏版)》请在冰豆网上搜索。
〈no<
〈endl;
”姓名:
”<
name<
endl;
cout〈〈”性别:
〈〈sex〈〈endl;
cout〈〈endl;
}
voidInit(){
stringn;
intnum,s;
cout<
请输入学号:
endl;
cin〉〉num;
请输入姓名:
〈<
cin〉〉n;
〈”请选择性别:
男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;
〈”请输入班级人数:
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;
out〈<
c[i].getNo()〈〈"
”<
〈c[i]。
getName()〈<
"
〈〈c[i]。
getSex()<
}
out。
close();
voidsearchByName(){
stringnam;
cout〈〈”请输入要查找的学生姓名:
cin>
〉nam;
inti;
for(i=0;
i<
number;
if(c[i].getName()==nam){
c[i]。
show();
voidserchByNo(){
intn;
请输入要查找的学号;
cin〉〉n;
inti;
i〈100;
i++){
if(c[i].getNo()==n){c[i].show();
break;
}
};
classCourse{
private:
stringname;
intscore;
stringgetName(){returnname;
〈”请输入课程名:
>
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〈〈”请输入课程数量:
n;
n;
co[i].Init();
ofstreamoutS;
outS.open("
course.txt"
ios:
:
if(!
outS){
文件打不开"
〈endl;
outS<
〈co[i]。
getName()〈〈endl;
outS.close();
voidinput(Courseco[20],intn,Studentc[],intnumber){
ints;
for(intj=0;
j〈number;
j++){
cout<
请输入”<
〈c[j]。
的”<
〈co[i].getName()<
成绩"
cin>
〉s;
if(s〈0||s>
100){
cout<
你输入的成绩有误请重新输入!
(成绩范围为0-100!
)"
j=j-1;
}
else{
Mark[i][j]=s;
ofstreamout;
open(”score.txt"
,ios:
out);
out){
cerr〈〈"
out〈〈co[i].getName();
for(intj=0;
j<
j++){
out<
”〈<
Mark[i][j]〈<
””;
}
out.close();
voidCountStu(intMark[100][100],intnumber,intn){
for(inti=0;
ints=0;
s=s+Mark[j][i];
StuAll[i]=s;
}
voidCountCouAvg(intMark[100][100],Studentc[],intnumber,Courseco[],intn){
floatCouAll[10];
floats=0。
0;
j〈number;
s=s+Mark[i][j];
CouAll[i]=s/n;
i〈n;
cout〈〈co[i]。
getName()<
的平均分是:
”〈〈(CouAll[i])〈〈endl;
for(intj=0;
if(Mark[i][j]〈CouAll[i]){
cout<
〈c[j].getName()<
”的”〈<
co[i].getName()〈<
”成绩小于平均分。
〈〈endl;
voidshowUnpass(intMark[100][100],Studentc[],intnumber,Courseco[],intn){
i〈n;
if(Mark[i][j]〈60){
〈c[j]。
”的"
co[i].getName()<
”成绩不及格!
}
voidshowGood(intMark[100][100],Studentc[],intnumber,Courseco[],intn){
if(Mark[i][j]〉90){
cout〈<
c[j].getName()〈〈"
co[i].getName()〈〈"
成绩优秀!
成绩为:
Mark[i][j]〈<
voidorder(Studentc[],intnumber,intStuAll[],intn){
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;
cout〈〈c[i].getName()<
的排名是:
〈(i+1)〈〈”总分:
StuAll[i]<
open(”studentscore。
txt”,ios:
c[i]。
””<
StuAll[i]〈〈”"
(i+1)<
voidDelete(intMark[100][100],Studentc[],intnumber,intn){
stringna;
cout<
请输入要删除的学生姓名:
〉na;
if(c[i].getName()==na){
for(i;
c[i]=c[i+1];
for(intj=0;
j〈n;
for(intk=i;
k<
k++){
Mark[j][k]=Mark[j][k+1];
}
else{cout〈〈”您要删除的学生不存在!
〈”删除成功!
voidReadText(Studentc[],intnumber,Courseco[],intn){
charsname[30],sex[30];
intsno;
ifstreamin(”student。
in);
in){
inti=—1;
in>
sno>
〉sname>
〉sex;
while(!
in.eof()){
i=i+1;
c[i].setNo(sno);
c[i]。
setName(sname);
setSex(sex);
〉sno>
sname>
〉sex;
}
c1。
setStudent(c);
c1.setNumber(i+1);
in。
charnam[20];
ifstreamins(”course。
txt”,ios:
if(!
ins){
cerr〈<
文件打不开”<
abort();
intj=-1;
ins〉〉nam;
while(!
ins.eof()){
j++;
co[j].setName(nam);
ins>
setN(j+1);
ins。
close();
cout〈<
读取文件完毕,请继续操作!
主函数:
#include”class.cpp"
#include<
iostream〉
voidshowMenue(){
********学生成绩管理系统********”<
”请选择功能:
”1输入学生成绩”〈〈endl;
2根据成绩排序输出."
3显示成绩大于90分的学生"
”4显示不及格学生"
5按姓名查找”<
〈”6按学号查找"
7显示成绩小于课程平均分的学生"
”8删除学生信息”〈<
0退出"
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:
showGood(op。
Mark,op.c1。
c,op.c1.getNumber(),op。
break;
case4:
op.showUnpass(op.Mark,op。
c1.c,op。
c1.getNumber(),op。
co,op.getN());
case5:
c1。
searchByName();
case6:
serchByNo();
break;
case7:
op.CountCouAvg(op.Mark,op.c1。
c,op.c1。
getNumber(),op。
co,op.getN());
case8:
Delete(op。
Mark,op.c1。
case0:
default:
您输入的有误,请重新输入!
}while(choice!
=0);
运行界面: