学生考试管理系统设计与实现.docx
《学生考试管理系统设计与实现.docx》由会员分享,可在线阅读,更多相关《学生考试管理系统设计与实现.docx(44页珍藏版)》请在冰豆网上搜索。
学生考试管理系统设计与实现
21学生修改个人密码13
29主函数22
30主函数23
#include
#include
#include
#include
#include
#include
#include
usingnamespacestd;
externconstintSHCOOL_CODE=18;//学校代码
externconstintFULL_NUMBER=10;//假设每个考场能容纳的人数
inttem=0;
inttem1=0;
voidmenu();
voidstmenu();
voidadmenu();
intmenu1();
voidmenu2();
classStu//构建学生类
{
public:
friendvoidLookup(Stustud[]);//管理员查找学生记录
friendvoidModify(Stustud[]);//管理员修改学生记录
friendvoidDelete(Stustud[]);//管理员删除学生记录
friendvoidInsert(Stustud[]);//管理员插入学生记录
friendvoidXie_stu(Stustud[],intn);//管理员向文件中写入记录
friendintDu_stu(Stustud[]);//管理员从文件中读出记录
friendvoidLookup_st();//学生浏览个人记录
friendvoidModify_st_mima();//学生修改个人密码
friendvoidst_denglu();//学生登录函数
friendvoidstmenu();//学生登录界面
private:
chargrade[10];//专业年级
charname[10];//姓名
chargender[10];//性别
intstuID;//学号
charstmima[10];//学生密码
chartestID[20];//准考证号
charseatnum[10];//座位号
intattendNum;//考场号
charinvigilator[10];//监考老师
}stud[100];
classAD//构建管理员类
{
public:
friendvoidad_denglu();//管理员登录设置
friendvoidmenu2();//管理员记录管理界面
friendvoidinput_ad(ADadmini[]);//重新注册管理员
friendvoidXie_ad(ADadmini[],intn);//将管理员记录写入文件
friendintDu_ad(ADadmini[]);//将管理员记录从文件中读出
friendintmenu1();//管理员界面
private:
charname[20];//管理员姓名
charpass[10];//管理员密码
}admini[10];
classKS//构建考试安排类
{
public:
friendvoidLookup_kao(KSkao[]);//管理员查找考试信息
friendvoidModify_kao(KSkao[]);//管理员修改考试信息
friendvoidDelete_kao(KSkao[]);//管理员删除考试信息
friendvoidInsert_kao(KSkao[]);//管理员插入考试信息
friendvoidXie_kao(KSkao[],intn);//管理员向文件中写入考试信息
friendintDu_kao(KSkao[]);//管理员从文件中读出考试信息
private:
intknum;//课程号
charkname[20];//课程名称
stringktime;//考试时间
charinstructor[10];//任课老师
}kao[10];
voidXie_stu(Stustud[],intn)//向文件中写入学生记录
{
ofstreamoutfile("student.txt",ios:
:
out);
if(!
outfile)
{
cerr<<"student.txtcan'topen!
"<}
intcount=n;
for(inti=0;i{
outfile<outfile<}
outfile.close();
}
voidXie_ad(ADadmini[],intn)//向文件中写入管理员记录
{
ofstreamoutfile("administrator.txt",ios:
:
out);
if(!
outfile)
{
cerr<<"administrator.txtcan'topen!
"<}
intcount=n;
for(inti=0;i{
outfile<<""<}
outfile.close();
}
voidXie_kao(KSkao[],intn)//管理员向文件中写入考试信息
{
ofstreamoutfile("kaoshi.txt",ios:
:
out);
if(!
outfile)
{
cerr<<"kaoshi.txtcan'topen!
"<}
intcount=n;
for(inti=0;i{
outfile<}
outfile.close();
}
intDu_stu(Stustud[])//从文件中读出学生记录
{
intcount;
cout<<"\t输入学生人数:
";
cin>>count;
ifstreaminfile("student.txt",ios:
:
in);
if(!
infile)
{
cerr<<"student.txtcan'topen!
"<exit
(1);
}
for(inti=0;i{
infile>>stud[i].grade>>stud[i].name>>stud[i].gender>>stud[i].stuID>>stud[i].stmima;
infile>>stud[i].seatnum>>stud[i].attendNum>>stud[i].testID>>stud[i].invigilator;
}
cout<<"专业年级"<<"姓名"<<"性别"<<"学号"<<"学生密码"<<"座位号"<<"考场号"<<"准考证号"<<"监考老师"<for(inti=0;i{
cout<}
system("pause");
infile.close();
returncount;
}
intDu_ad(ADadmini[])//从文件中读出管理员记录
{
intcount;
cout<<"\t输入管理员人数:
";
cin>>count;
ifstreaminfile("administrator.txt",ios:
:
in);
if(!
infile)
{
cerr<<"administrator.txtcan'topen!
"<exit
(1);
}
for(inti=0;i{
infile>>admini[i].name>>admini[i].pass;
}
cout<<"姓名"<<"密码"<for(inti=0;i{
cout<<""<}
system("pause");
infile.close();
returncount;
}
intDu_kao(KSkao[])//管理员从文件中读出考试信息
{
intcount;
cout<<"\t输入考试信息条数:
";
cin>>count;
ifstreaminfile("kaoshi.txt",ios:
:
in);
if(!
infile)
{
cerr<<"kaoshi.txtcan'topen!
"<exit
(1);
}
for(inti=0;i{
infile>>kao[i].knum>>kao[i].kname>>kao[i].ktime>>kao[i].instructor;
}
cout<<"课程号"<<"课程名称"<<"\t考试时间"<<"\t任课老师"<for(inti=0;i{
cout<}cout<<"";
system("pause");
infile.close();
returncount;
}
voidinput_ad(ADadmini[])//重新注册管理员
{
system("cls");/*运行前清屏*/
intn=Du_ad(admini);
inti=0;
chars;
cout<"<while(s!
='n'&&s!
='N')
{
cout<<"姓名:
";
cin>>admini[i].name;
cout<<"密码:
";
cin>>admini[i].pass;
n++;
cout<<"是否继续注册?
(Y/N)";
cin>>s;
}
Xie_ad(admini,n);
}
voidModify(Stustud[])//管理员修改学生记录
{
system("cls");/*运行前清屏*/
intn=Du_stu(stud);
ints;
inti;
cout<"<cout<<"请输入需要修改记录学生的学号:
";
cin>>s;
while((stud[i].stuID-s)!
=0&&iif(i==n)
{
cout<<"对不起,无该学生的记录!
"<}
else
{
cout<<"该学生的信息:
"<cout<<"专业年级:
"<"<"<"<"<cout<<"座位号:
"<"<"<"<cout<<"请重新输入该学生的信息"<cout<<"专业年级:
";
cin>>stud[i].grade;
cout<<"姓名:
";
cin>>stud[i].name;
cout<<"性别:
";
cin>>stud[i].gender;
cout<<"学号:
";
cin>>stud[i].stuID;
cout<<"学生密码:
";
cin>>stud[i].stmima;
cout<<"座位号:
";
cin>>stud[i].seatnum;
cout<<"考场号:
";
cin>>stud[i].attendNum;
cout<<"准考证号:
";
cin>>stud[i].testID;
cout<<"监考老师:
";
cin>>stud[i].invigilator;
charc;
cout<<"是否保存记录?
(y/n)";
cin>>c;
if(c!
='n'&&c!
='N')
Xie_stu(stud,n);
}
}
voidModify_kao(KSkao[])//管理员修改考试信息
{
system("cls");/*运行前清屏*/
intn=Du_kao(kao);
ints;
inti;
cout<"<cout<<"请输入需要修改课程号:
";
cin>>s;
while((kao[i].knum-s)!
=0&&iif(i==n)
{
cout<<"对不起,无该课程记录!
"<}
else
{
cout<<"该课程信息:
"<cout<<"课程号:
"<"<"<"<cout<<"请重新输入该课程信息"<cout<<"课程号:
";
cin>>kao[i].knum;
cout<<"课程名称:
";
cin>>kao[i].kname;
cout<<"考试时间:
";
cin>>kao[i].ktime;
cout<<"任课老师:
";
cin>>kao[i].instructor;
charc;
cout<<"是否保存记录?
(y/n)";
cin>>c;
if(c!
='n'&&c!
='N')
Xie_kao(kao,n);
}
}
voidDelete(Stustud[])//管理员删除学生记录
{
system("cls");/*运行前清屏*/
intn=Du_stu(stud);
ints;
inti,j;
cout<";
cin>>s;
while((stud[i].stuID-s)!
=0&&iif(i==n)
{
cout<<"对不起,无法找到该学生!
"<}
else
{
for(j=i;j{
strcpy(stud[j].grade,stud[j+1].grade);
strcpy(stud[j].name,stud[j+1].name);
strcpy(stud[j].gender,stud[j+1].gender);
stud[j].stuID=stud[j+1].stuID;
strcpy(stud[j].stmima,stud[j+1].stmima);
strcpy(stud[j].seatnum,stud[j+1].seatnum);
stud[j].attendNum=stud[j+1].attendNum;
strcpy(stud[j].testID,stud[j+1].testID);
strcpy(stud[j].invigilator,stud[j+1].invigilator);
}
cout<"<}
Xie_stu(stud,n-1);
}
voidDelete_kao(KSkao[])//管理员删除考试信息
{
system("cls");/*运行前清屏*/
intn=Du_kao(kao);
ints;
inti;
cout<";
cin>>s;
while((kao[i].knum-s)!
=0&&iif(i==n-1)
{
cout<<"对不起,无法找到该该课程!
"<}
else
{
for(intj=i;j{
kao[j].knum=kao[j+1].knum;
strcpy(kao[j].kname,kao[j+1].kname);
kao[j].ktime=kao[j+1].ktime;
strcpy(kao[j].instructor,kao[j+1].instructor);
}
cout<<"已成功删除!
"<Xie_kao(kao,n-1);
}
}
voidInsert(Stustud[])//管理员插入学生记录
{
system("cls");/*运行前清屏*/
intn=Du_stu(stud);
inti=0;
chars;
cout<"<while(s!
='n'&&s!
='N')
{
cout<<"专业年级:
";
cin>>stud[i].grade;
cout<<"姓名:
";
cin>>stud[i].name;
cout<<"性别:
";
cin>>stud[i].gender;
cout<<"学号:
";
cin>>stud[i].stuID;
cout<<"学生密码:
";
cin>>stud[i].stmima;
cout<<"座位号:
";
cin>>stud[i].seatnum;
cout<<"考场号:
";
cin>>stud[i].attendNum;
cout<<"准考证号:
";
cin>>stud[i].testID;
cout<<"监考老师:
";
cin>>stud[i].invigilator;
n++;
cout<<"是否继续写入学生记录?
(Y/N)";
cin>>s;
}
Xie_stu(stud,n);
}
voidInsert_kao(KSkao[])//管理员插入考试信息
{
system("cls");/*运行前清屏*/
intn=Du_kao(kao);
inti=0;
chars;
cout<"<while(s!
='n'&&s!
='N')
{
cout<<"课程号:
";
cin>>kao[i].knum;
cout<<"课程名称:
";
cin>>kao[i].kname;
cout<<"考试时间:
";
cin>>kao[i].ktime;
cout<<"任课老师:
";
cin>>kao[i].instructor;
n++;
cout<<"是否继续写入考试信息?
(Y/N)";
cin>>s;
}
Xie_kao(kao,n);
}
voidLookup(Stustud[])//管理员查找学生记录
{
system("cls");/*运行前清屏*/
intn=Du_stu(stud);
ints;
inti;
cout<"<cout<<"请输入需要查找学生的学号:
";
cin>>s;
while((stud[i].stuID-s)!
=0&&iif(i==n)
{
cout<<"对不起,无法找到该学生的记录!
"<}
else
{
cout<<"专业年级:
"<cout<<"姓名:
"<cout<<"性别:
"<cout<<"学号:
"<cout<<"学生密码:
"<cout<<"座位号:
"<cout<<"考场号:
"<cout<<"准考证号:
"<cout<<"监考老师:
"<}
}
voidLookup_kao(KSkao[])//查看考试信息
{
system("cls");/*运行前清屏*/
intn=Du_kao(kao);
ints;
int