C++学生成绩管理系统源代码.docx
《C++学生成绩管理系统源代码.docx》由会员分享,可在线阅读,更多相关《C++学生成绩管理系统源代码.docx(16页珍藏版)》请在冰豆网上搜索。
C++学生成绩管理系统源代码
#include
#include
#include
#include
#include
classPerson
{public:
charname[8];
};
classstudent:
publicPerson//构建学生类
{
public:
friendvoidManage(studentstud[]);
friendvoidInput(studentstud[]);
friendvoidStatistic(studentstud[]);
friendvoidLookup(studentstud[]);
friendvoidModify(studentstud[]);
friendvoidOutput(studentstud[]);
friendvoidInsert(studentstud[]);
friendvoidWrite(studentstud[],intn);
friendintRead(studentstud[]);
private:
intnum;
charname[8];
charclass_0[20];
floatc_program;
floatenglish;
floatmath;
floataverage;
intorder;
}stud[100];
classManage:
publicstudent
{};
voidWrite(studentstud[],intn)//向文件中写入数据
{
fstreammyFile;
myFile.open("score.txt",ios:
:
out|ios:
:
binary);
if(!
myFile)
{
cout<<"score.txtcan'topen!
"<abort();
}
intcount=n;
myFile<for(inti=0;i<=count;i++)
{
myFile<}
myFile.close();
}
intRead(studentstud[])//从文件中读数据
{
fstreammyFile;
myFile.open("score.txt",ios:
:
in|ios:
:
binary);
if(!
myFile)
{
cout<<"score.txtcan'topen!
"<abort();
}
intcount;
myFile.seekg(0);
myFile>>count;
for(inti=0;i<=count;i++)
{
myFile>>stud[i].class_0>>stud[i].num>>stud[i].name>>stud[i].c_program>>stud[i].english>>stud[i].math>>stud[i].average;
}
myFile.close();
returncount;
}
voidInput(studentstud[])//---------------输入学生成绩
{
system("cls");/*运行前清屏*/
inti=0;
intflag;
charsign;
cout<>>>>>>>请输入学生成绩<<<<<<<<\n"<while(sign!
='n'&&sign!
='N')/*判断*/
{
cout<<"班级:
";/*交互输入*/
cin>>stud[i].class_0;
loop:
cout<<"学号:
";
cin>>stud[i].num;
intc=0;
while(c
{
c++;
if(stud[i].num==stud[i-c].num)
{
cout<<"你输入的学号已经存在!
请重新输入!
"<gotoloop;
}
}
cout<<"姓名:
";
cin>>stud[i].name;
do{
flag=0;
cout<<"C++成绩:
";
cin>>stud[i].c_program;
if(stud[i].c_program>100||stud[i].c_program<1)
cout<<"请输入1-100之间的数字!
\n";
else
flag=1;
}while(flag==0);
do{
flag=0;
cout<<"英语成绩:
";
cin>>stud[i].english;
if(stud[i].english>100||stud[i].english<1)
cout<<"请输入1-100之间的数字!
\n";
else
flag=1;
}while(flag==0);
do{
flag=0;
cout<<"数学成绩:
";
cin>>stud[i].math;
if(stud[i].math>100||stud[i].math<1)
cout<<"请输入1-100之间的数字!
\n";
else
flag=1;
}while(flag==0);
stud[i].average=(stud[i].c_program+stud[i].english+stud[i].math)/3;
cout<<"平均分:
"<cout<<"继续录入学生成绩?
(y/n)";
cin>>sign;/*输入判断*/
i++;
}
Write(stud,i);
}
voidStatistic(studentstud[])//---------------统计学生数据
{
system("cls");/*运行前清屏*/
intn=Read(stud);
cout<>>>>>>>显示学生成绩<<<<<<<<\n"<cout<<"班级"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"平均分"<for(inti=0;icout<system("pause");
}
voidLookup(studentstud[])//---------------查找学生成绩
{intp;
cout<<"请选择1.按学号查找2.按姓名查找"<cin>>p;
if(p==1)
{
system("cls");/*运行前清屏*/
intn=Read(stud);
ints;
inti=0;
cout<>>>>>>>查找学生成绩<<<<<<<<\n"<cout<<"请输入查找学生的学号:
"<cin>>s;
while((stud[i].num-s)!
=0&&iif(i==n)
{
cout<<"没有该学生的信息!
"<}
else
{
cout<<"---------------------------"<cout<<"班级:
"<cout<<"学号:
"<cout<<"姓名:
"<cout<<"C++:
"<cout<<"英语:
"<cout<<"数学:
"<cout<<"平均分:
"<}
}
if(p==2)
{system("cls");/*运行前清屏*/
intm=Read(stud);
chart;
inti=0;
cout<>>>>>>>查找学生成绩<<<<<<<<\n"<cout<<"请输入查找学生的姓名:
"<cin>>t;
while(strcmp(stud[i].name-t,stud[i].name)==0&&i{
cout<<"---------------------------"<cout<<"班级:
"<cout<<"学号:
"<cout<<"姓名:
"<cout<<"C++:
"<cout<<"英语:
"<cout<<"数学:
"<cout<<"平均分:
"<}
}
}
voidModify(studentstud[])//---------------修改学生成绩
{
system("cls");/*运行前清屏*/
intn=Read(stud);
ints,a;floatq;
inti=0;
cout<>>>>>>>修改学生成绩<<<<<<<<\n"<cout<<"输入修改成绩学生的学号:
"<cin>>s;
while((stud[i].num-s)!
=0&&iif(i==n)
{
cout<<"没有该学生的成绩!
"<}
else
{
cout<<"----------该学生的信息----------\n"<cout<<"班级"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"c++"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"平均分"<cout<<"---------------------------------"<cout<cout<<"---------------------------------"<cout<<"请输入要修改的课程号"<cout<<"1.c语言2.英语3.数学"<cin>>a;
cout<<"重新输入分数"<cin>>q;
if(a==1)stud[i].c_program=q;
if(a==2)stud[i].english=q;
if(a==3)stud[i].math=q;
stud[i].average=(stud[i].c_program+stud[i].english+stud[i].math)/3;
cout<<"----------该学生的信息----------\n"<cout<<"班级"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"c++"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"平均分"<cout<<"---------------------------------"<cout<charc;
cout<<"是否保存数据?
(y/n)"<cin>>c;
if(c!
='n'&&c!
='N')
Write(stud,n);
}
}
voidInsert(studentstud[])//---------------增加学生成绩
{
system("cls");/*运行前清屏*/
intn=Read(stud);
chars;
cout<while(s!
='n'&&s!
='N')
{
cout<<"班级:
"<cin>>stud[n].class_0;
cout<<"学号:
";
cin>>stud[n].num;
cout<<"姓名:
";
cin>>stud[n].name;
cout<<"C++成绩:
";
cin>>stud[n].c_program;
cout<<"英语成绩:
";
cin>>stud[n].english;
cout<<"数学成绩:
";
cin>>stud[n].math;
stud[n].average=(stud[n].c_program+stud[n].english+stud[n].math)/3;
cout<<"平均分"<n++;
cout<<"插入成功!
"<cout<<"是否继续输入(y/n)"<cin>>s;
}
Write(stud,n);
}
voidManage(studentstud[])//---------------按平均分对学生成绩记录项进行降序排序
{
system("cls");/*运行前清屏*/
inti,j,k;
floats;
chart[20];
cout<intn=Read(stud);
for(i=0;ifor(j=0;jif(stud[j].average{
strcpy(t,stud[j+1].class_0);
strcpy(stud[j+1].class_0,stud[j].class_0);
strcpy(stud[j].class_0,t);
k=stud[j+1].num;
stud[j+1].num=stud[j].num;
stud[j].num=k;
strcpy(t,stud[j+1].name);
strcpy(stud[j+1].name,stud[j].name);
strcpy(stud[j].name,t);
s=stud[j+1].c_program;
stud[j+1].c_program=stud[j].c_program;
stud[j].c_program=s;
s=stud[j+1].english;
stud[j+1].english=stud[j].english;
stud[j].english=s;
s=stud[j+1].math;
stud[j+1].math=stud[j].math;
s=stud[j+1].average;
stud[j+1].average=stud[j].average;
stud[j].average=s;
}
cout<<"-------------------------------------"<cout<<"班级"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"C++"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"平均分"<<"\t"<<"名次"<for(i=0;i{
stud[i].order=i+1;
cout<}
Write(stud,n);
}
voidOutput(studentstud[])//---------------显示全部学生成绩
{
system("cls");/*运行前清屏*/
intn=Read(stud);
cout<<"*****************显示班级学生成绩*****************\n"<if(!
stud)
cout<<"没有记录";
else
{
cout<<"-------------------------------------------------------------------------"<cout<<"班级"<<"\t"<<"学号"<<"\t"<<"姓名"<<"\t"<<"c++"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"平均分"<for(inti=0;i{
cout<}
cout<<"-------------------------------------------------------------------------"<}
}
intmenu()/*菜单函数*/
{
charc;
do
{
system("cls");/*运行前清屏*/
cout<<"*******************************************************\n"<cout<<"-----------------欢迎使用学生成绩管理系统-------------\n"<cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<cout<<"*【1】输入学生成绩*"<cout<<"*【2】显示学生成绩*"<cout<<"*【3】查找学生成绩*"<cout<<"*【4】修改学生成绩*"<cout<<"*【5】插入学生成绩*"<cout<<"*【6】排列管理成绩*"<cout<<"*【7】显示班级学生成绩*"<cout<<"*【0】退出本系统*"<cout<<"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"<cout<<"请你选择(0-7):
"<c=getchar();/*读入选择*/
}
while(c<'0'||c>'8');
return(c-'0');/*返回选择*/
}
voidmain()/*主函数*/
{
for(;;)
{
switch(menu())/*选择判断*/
{
case1:
Input(stud);/*输入学生成绩*/
break;
case2:
Statistic(stud);/*输出学生统计数据*/
break;
case3:
Lookup(stud);/*查找学生成绩*/
cout<<"\t\t\t";
system("pause");
break;
case4:
Modify(stud);/*修改学生成绩*/
cout<<"\t\t\t";
system("pause");
break;
case5:
Insert(stud);/*增加学生成绩*/