学生成绩管理系统项目终极版汇编.docx
《学生成绩管理系统项目终极版汇编.docx》由会员分享,可在线阅读,更多相关《学生成绩管理系统项目终极版汇编.docx(24页珍藏版)》请在冰豆网上搜索。
学生成绩管理系统项目终极版汇编
#include
#include
#include
#include
usingnamespacestd;
#defineMaxSize100
/*********学生类*********/
classCStudent
{
private:
intpas_stu;
intm_iNum;
charm_cNam[20];
floatm_fChinese;
floatm_fMath;
floatm_fEnglish;
friendclassCTeacher;
public:
CStudent();
intmod_stu_serc(intpas_stu);//修改密码
intMenustu();
voidcoming_stu_menu(CStudent&st,intresult);//学生登录界面
voidrank_stu(intm_iNum);//学生总分排序
voidresearch(intm_iNum);//查找学生成绩
voiddisplay();//显示所有学生的信息
voidread();//打开文件
};
CStudentstu[MaxSize];
intsize;
/*********教师类*********/
classCTeacher
{
private:
intacc_te;
intpas_te;
public:
CTeacher();
~CTeacher();
intMenu_te();
voidload();
voidcoming_te_menu(CTeacher&Te,intresult);//教师登录界面
voidset_stu_date();//增加学生信息
CStudentdelet_stu_data(intm_iNumber);//删除指定学号的学生信息
voidchangeInfo(intm_iNumber);//修改指定学号的学生信息
voidsearch(intm_iNumber);//按学号查找学生信息
voidsearch(charm_cName[20]);//按姓名查找学生信息
voidsort_subj(intsubj);//按指定学科及总分成绩排序(从高到低)
voiddisplayall();//显示所有学生的信息
voidsave();//将学生信息保存到teacher.txt文件中
};
CStudent:
:
CStudent()//为密码设初值
{
pas_stu=123;
}
intCStudent:
:
mod_stu_serc(intpas_stu)//修改密码
{
inta;
ofstreamoutfile("sercet.txt",ios:
:
out);
if(!
outfile)
{
cerr<<"openerror!
"<exit
(1);
}
cout<<"◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇"<cout<<"输入你的新密码"<cin>>a;
pas_stu=a;
outfile<cout<<"⌒_⌒密码设置成功!
"<outfile.close();
return0;
}
voidCStudent:
:
read()//打开文件
{
ifstreamoutfile("sercet.txt",ios:
:
in);
if(!
outfile)
{
cerr<<"openerror!
"<exit
(1);
}
outfile>>pas_stu;
outfile.close();
}
voidCStudent:
:
coming_stu_menu(CStudent&st,intresult)//学生登录界面
{
intc,p;
for(inta=0;a<3;a++)
{
st.read();
system("pause");
system("cls");
cout<<"◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇"<cout<<"◇您有"<<3-a<<"次输入机会"<cout<<"◆请输入账户:
";
cin>>c;
cout<<"◇请输入密码:
";
cin>>p;
cout<<"◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇"<inti;
for(i=0;i{
if((c==stu[i].m_iNum)&&(p==pas_stu))
{
cout<<"⌒_⌒登陆成功!
"<i=size+2;
a=4;
result=1;
do{
system("pause");
system("cls");
result=st.Menustu();
}while(result!
=-1);
i++;
break;
}
}
}
if(a==3)
{
cout<<">_<登录失败"<system("pause");
}
}
voidCStudent:
:
rank_stu(intm_iNum)//学生总分排序
{
CStudenttem;
for(inti=0;i{
for(intj=i+1;j{
if((stu[i].m_fChinese+stu[i].m_fMath+stu[i].m_fEnglish)<(stu[j].m_fChinese+stu[j].m_fMath+stu[j].m_fEnglish))
{
tem=stu[i];
stu[i]=stu[j];
stu[j]=tem;
}
}
}
for(intk=0;k{
if(stu[k].m_iNum==m_iNum)
{
cout<<""<";
cout<}
}
}
voidCStudent:
:
display()//显示所有学生的信息
{
for(inti=0;i{
cout<cout<cout<cout<cout<}
}
voidCStudent:
:
research(intm_iNum)//查找学生成绩
{
for(inti=0;i{
if(stu[i].m_iNum==m_iNum)
{
cout<<"╔═══╤═══╤═══╤═══╤═══╗"<cout<<"║学号姓名语文成绩数学成绩英语成绩║"<cout<<"╠═══╬═══╬═══╬═══╬═══╣"<cout<<""<cout<cout<cout<cout<cout<<"╚═══╩═══╩═══╩═══╩═══╝"<break;
}
}
if(i>=size)
cout<<">_<无此学生信息!
"<}
voidCTeacher:
:
load()
{
size=0;
ifstreaminfile;
infile.open("teacher.txt",ios:
:
out);
if(infile)
{
infile.read((char*)&size,sizeof(int));
infile.seekg(sizeof(int));
for(inti=0;i{
infile.read((char*)&stu[i],sizeof(CStudent));
}
infile.close();
}
else
{
cout<!
ERROR:
Cannotopenfile'teacher.txt'."<}
}
voidCTeacher:
:
set_stu_date()//增加学生信息
{
cout<<"请输入该学生的学号:
";
cin>>stu[size].m_iNum;
cout<<"请输入该学生的姓名:
";
cin>>stu[size].m_cNam;
cout<<"请输入该学生的语文成绩:
";
cin>>stu[size].m_fChinese;
cout<<"请输入该学生的数学成绩:
";
cin>>stu[size].m_fMath;
cout<<"请输入该学生的英语成绩:
";
cin>>stu[size].m_fEnglish;
size++;
}
CStudentCTeacher:
:
delet_stu_data(intm_iNumber)//删除指定学号的学生信息
{
CStudenttemp;
for(inti=0;i{
if(stu[i].m_iNum==m_iNumber)
{
temp=stu[i];
for(intj=i;jstu[j]=stu[j+1];
size--;
break;
}
}
returntemp;
}
CTeacher:
:
CTeacher()//为教师登录用户名和密码设初值
{
acc_te=123;
pas_te=123;
}
CTeacher:
:
~CTeacher()
{}
voidCTeacher:
:
changeInfo(intm_iNumber)//修改指定学号的学生信息
{
for(inti=0;i{
if(stu[i].m_iNum==m_iNumber)
{
cout<<"请选择要修改的选项:
"<cout<<"1-学号,2-姓名,3-语文成绩,4-数学成绩,5-英语成绩"<intinput;
cin>>input;
switch(input)
{
case1:
cout<<"学号:
";cin>>stu[i].m_iNum;break;
case2:
cout<<"姓名:
";cin>>stu[i].m_cNam;break;
case3:
cout<<"语文成绩:
";cin>>stu[i].m_fChinese;break;
case4:
cout<<"数学成绩:
";cin>>stu[i].m_fMath;break;
case5:
cout<<"英语成绩:
";cin>>stu[i].m_fEnglish;break;
}
break;
}
}
}
voidCTeacher:
:
search(intm_iNumber)//按学号查找学生信息
{
for(inti=0;i{
if(stu[i].m_iNum==m_iNumber)
{
cout<<"╔═══╤═══╤═══╤═══╤═══╗"<cout<<"║学号姓名语文成绩数学成绩英语成绩║"<cout<<"╠═══╬═══╬═══╬═══╬═══╣"<cout<<""<cout<cout<cout<cout<cout<<"╚═══╩═══╩═══╩═══╩═══╝"<break;
}
}
if(i>=size)cout<<">_<无此学生信息!
"<}
voidCTeacher:
:
search(charm_cName[20])//按姓名查找学生信息
{
intf=0;
for(inti=0;i{
if(strcmp(stu[i].m_cNam,m_cName)==0)
{
f=1;
cout<<"╔═══╤═══╤═══╤═══╤═══╗"<cout<<"║学号姓名语文成绩数学成绩英语成绩║"<cout<<"╠═══╬═══╬═══╬═══╬═══╣"<cout<<""<cout<cout<cout<cout<cout<<"╚═══╩═══╩═══╩═══╩═══╝"<break;
}
}
if(f==0)
cout<<">_<无此学生信息!
"<}
voidCTeacher:
:
sort_subj(intsubj)//按指定学科及总分成绩排序(从高到低)
{
CStudenttemp;
if(subj==1)
{
for(inti=1;ifor(intj=0;j{
if(stu[j].m_fChinese{
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
cout<<"按语文成绩排名如下:
"<}
else
if(subj==2)
{
for(inti=1;ifor(intj=0;j{
if(stu[j].m_fMath{
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
cout<<"按数学成绩排名如下:
"<}
elseif(subj==3)
{
for(inti=1;ifor(intj=0;j{
if(stu[j].m_fEnglish{
temp=stu[j];
stu[j]=stu[j+1];
stu[j+1]=temp;
}
}
cout<<"按英语成绩排名如下:
"<}
elseif(subj==4)
{
for(inti=0;i{
for(intj=i+1;j{
if((stu[i].m_fChinese+stu[i].m_fMath+stu[i].m_fEnglish)<(stu[j].m_fChinese+stu[j].m_fMath+stu[j].m_fEnglish))
{
temp=stu[i];
stu[i]=stu[j];
stu[j]=temp;
}
}
}
cout<<"按总分排名如下:
"<}
cout<<"╔═══╤═══╤═══╤═══╤═══╗"<cout<<"║学号姓名语文成绩数学成绩英语成绩║"<cout<<"╠═══╬═══╬═══╬═══╬═══╣"<for(inti=0;i{
cout<<""<cout<<""<cout<<""<cout<<""<cout<<""<cout<<"╠═══╬═══╬═══╬═══╬═══╣"<}
}
voidCTeacher:
:
displayall()//显示所有学生的信息
{
cout<<"╔═══╤═══╤═══╤═══╤═══╗"<cout<<"║学号姓名语文成绩数学成绩英语成绩║"<cout<<"╠═══╬═══╬═══╬═══╬═══╣"<for(inti=0;i{
cout<<""<cout<<""<cout<<""<cout<<""<cout<<""<cout<<"╠═══╬═══╬═══╬═══╬═══╣"<}
}
voidCTeacher:
:
save()//将学生信息保存到teacher.dat文件中
{
ofstreammyoutfile;//定义输出文件
myoutfile.open("teacher.txt",ios:
:
trunc|ios:
:
in);
if(myoutfile)
{
myoutfile.write((char*)&size,sizeof(int));
myoutfile.seekp(sizeof(int));
for(inti=0;imyoutfile.write((char*)&stu[i],sizeof(CStudent));
myoutfile.close();
}
else
{
cout<!
ERROR:
createfile'teacher.txt'error."<exit(0);
}
}
voidCTeacher:
:
coming_te_menu(CTeacher&Te,intresult)//教师登录界面
{
intx,y;
for(inti=0;i<3;i++)
{
system("cls");
cout<<"◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇"<cout<<"◇您有"<<3-i<<"次机会"<cout<<"◆输入账号:
";
cin>>x;
cout<<"◇输入密码:
";
cin>>y;
cout<<"◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇◆◇"<if((Te.acc_te==x)&&(Te.pas_te==y))
{
do{
system("pause");
system("cls");
result=Te.Menu_te();
}while(result!
=-1);
i=4;
}
}
}
intCTeacher:
:
Menu_te()
{
cout<<"*****************教师登录入口*****************"<cout<cout<cout<<"☆★1-添加学生信息★☆"<cout<<"★☆☆★"<cout<<"☆★2-删除学生信息★☆"<cout<<"★☆☆★"<cout<<"☆★3-修改学生信息★☆"<cout<<"★☆☆★"<cout<<"☆★4-查询学生信息★☆"<cout<<"★☆☆★"<cout<<"