C++学生成绩管理系统源代码.docx
《C++学生成绩管理系统源代码.docx》由会员分享,可在线阅读,更多相关《C++学生成绩管理系统源代码.docx(40页珍藏版)》请在冰点文库上搜索。
C++学生成绩管理系统源代码
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_progra
m>>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;i
cout<
"<
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&&i
if(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&&i
查找判断
*/
if(i==n)
{
cout<<"
没有该学生的成绩
!
"<
输入失败信息
*/
}
else
{
cout<<"----------
该学生的信息
----------\n"<
格式头
*/
cout<<"
班级
"<<"\t"<<"
学号
"<<"\t"<<"
姓名
"<<"\t"<<"c++"<<"\t"<<"英语"<<"\t"<<"数学"<<"\t"<<"
平均分
"<cout<<"---------------------------------"<
cout<
stud[i].c_program<<"\t"<
stud[i].average<
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;i
for(j=0;j
if(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<
stud[i].c_program<<"\t"<
<
}
cout<<"-------------------------------------------------------------
------------"<
}
}
intmenu()/*菜单函数*/
{
charc;
do
{
system("cls");/*运行前清屏*/
cout<<"*******************************************************\n"<
ndl;
cout<<"-----------------欢迎使用学生成绩管理系统
-------------\n