考试管理系统存在几个错误 求改
最近和同学编了一个考试管理系统的程序,可是有2个错误一直改不了 请各位大大们帮忙检查一下 在线等 蛮急的#include<fstream>
#include<string.h>
using namespace std;
class stu
{
public:
string num;//学号
string name;//姓名
string keyword;//考生密码
int cond;//是否考过试
int fen;//得分
int mingci;
stu()
{
num="0";
name="0";
keyword="0";
cond=0;
fen=0;
mingci=0;
}
};
class ti
{
public:
string timu;//题目内容
string A;//A选项内容
string B;//B选项内容
string C;//C选项内容
string D;//D选项内容
string t;//正确选项
int q;//标记是否做过
ti()
{
timu="0";
A="0";
B="0";
C="0";
D="0";
t="0";
q=0;
}
};
void main()
{
ti shiti[20];
stu kao[5];
printf("**************************欢迎使用考试管理系统****************************");
printf("功能选择:1考生管理,2考试,3试题库管理,4退出:");//功能选择
int n;
scanf("%d",&n);
while (n!=4)
{
while(!(n>=1&&n<4))
{
printf("输入有误,请重新输入:");
scanf("%d",&n);
}
//_______________________________考生管理___________________________________//
if(n==1)
{
ifstream inf("考生信息.txt");
if(!inf)
{
printf("打开考生信息文件出错!");
return;
}
for(int i=0;!inf.eof();i++)
{
string num,name,keyword;
int cond,fen,mingci;
scanf("%d%d%d%d%d%d",&num,&name,&cond,&fen,&keyword,&mingci);
kao[i].num=num;
kao[i].name=name;
kao[i].cond=cond;
kao[i].fen=fen;
kao[i].keyword=keyword;
kao[i].mingci=mingci;
printf("学生信息");
printf("kao[i].num,kao[i].name,kao[i].cond,kao[i].fen,kao[i].keyword,kao[i].mingci");
}
inf.close();
int x;//记录题数
int nn=1;
while(nn!=2)
{
ifstream inf("考生信息.txt");
if(!inf)
{
printf("打开文件考生信息出错!");
return;
}
for(int i=0;!inf.eof();i++)
{
string num,name,keyword;
int cond,fen,mingci;
printf("num,name,cond,fen,keyword,mingci");
kao[i].num=num;
kao[i].name=name;
kao[i].cond=cond;
kao[i].fen=fen;
kao[i].keyword=keyword;
kao[i].mingci=mingci;
}
x=i;
printf("考生信息管理:1.增加考生信息 2.删去考生信息 3.更改学生信息 4.退出 请选择:");
scanf("%d",&nn);
if(nn==1)
{
string num,name,cond,fen,keyword,mingci;
printf("请输入学号:");
scanf("%d",&num);
printf("请输入姓名:");
scanf("%d",&name);
printf("请输入考试与否:");
scanf("%d",&cond);
printf("请输入分数:");
scanf("%d",&fen);
printf("请输入密码:");
scanf("%d",&keyword);
printf("请输入名次:");
scanf("%d",&mingci);
ofstream outf("考生信息.txt");
if(!outf)
{
printf("打开学生信息文件出错!");
return;
}
for(int i=0;i<x;i++)
printf("kao[i].num","kao[i].name","kao[i].cond","kao[i].fen","kao[i].keyword","kao[i].mingci");
printf("num","name","cond","fen","keyword","mingci");
outf.close();
printf("已增加!");
x++;
}
}
}
//________________________________考试______________________________________//
if(n==2)
{
ifstream inf("考生信息.txt");
if(!inf)
{
printf("打开学生信息文件出错!");
return;
}
for(int i=0;i<5;i++)
{
scanf("%d%d%d%d%d%d",&kao[i].num,&kao[i].name,&kao[i].cond,&kao[i].fen,&kao[i].keyword,&kao[i].mingci);
}
inf.close();
string num;
printf("请输入你的学号:");
scanf("%d",&num);
int d=1;
string keyword;
printf("请输入你的密码");//输入密码
scanf("%d",&keyword);
for(i=0;i<5;i++)
{
if(&kao[i].num==&num&&kao[i].cond!=1)
{
while(kao[i].keyword!=keyword)
{
d++;
if(d==4)return;
printf("密码有误,请重新输入密码:");
scanf("%d",&keyword);
}
printf("kao[i].name****"欢迎你!"*****);
int nn,m=5;
printf("默认题数为5题,是否需要修改?1是,2否,请选择:");
scanf("%d",&nn);
if(nn==1)
{
printf("请输入考试题数:");
scanf("%d",&m);
}
printf("下面开始答题(选项大写):");
ifstream inf("试题.txt");
if(!inf)
{
printf("打开试题文件出错!");
return;
}
for(int k=0;!inf.eof();k++)
{
string timu,A,B,C,D,t;
inf>>timu>>A>>B>>C>>D>>t;
shiti[k].timu=timu;
shiti[k].A=A;
shiti[k].B=B;
shiti[k].C=C;
shiti[k].D=D;
shiti[k].t=t;
}
inf.close();
int x2=k;//记录试题总数
//___________________________答m道题目__________________________//
for(int j=0;j<m;j++)
{
srand(time(NULL));
int r;
r=(rand()%x2+1)-1;//产生随机数
while(shiti[r].q==1)
{
srand(time(NULL));
r=(rand()%x2+1)-1;
}
printf("第"%d",&j+1"题:");
cout<<shiti[r].timu<<endl<<shiti[r].A<<endl<<shiti[r].B<<endl<<shiti[r].C<<endl<<shiti[r].D<<endl;
printf("请选择:");
string daan;
scanf("%d",&daan);
if(daan==shiti[r].t)
kao[i].fen=kao[i].fen+5;
shiti[r].q=1;
}
//_______________________________________________________________//
printf("您的总分为:"%d",&kao[i].fen");
int arr[]={kao[1].fen,kao[2].fen,kao[3].fen,kao[4].fen,kao[5].fen};
int sort( arr[],int i,j,temp)
{ for(i=0;i<5;i++)
for(j=4;j>i;j--)
if(arr{kao[j].fen]<arr[kao[j].fen]
{temp=arr[kao[j-1].fen];
arr[kao[j-1].fen]=arr[kao[j].fen];
arr[kao[j]=temp;
return j-1;
}
}
kao[i].cond=1;
for(int l=0;l<x2;l++)
shiti[l].q=0;
break;
}
else if(kao[i].num==num&&kao[i].cond==1)
{
printf("您已经参加过考试!");
break;
}
}
if(i==5)
printf("所输入的学号不在考生名单中!");
ofstream outf("考生信息.txt");
if(!outf)
{
printf("打开试题文件出错!");
return;
}
for(int c=0;c<5;c++)
outf<<" "<<kao[c].num<<" "<<kao[c].name<<" "<<kao[c].cond<<" "<<kao[c].fen<<" "<<kao[i].mingci;
outf.close();
}
//________________________________试题管理_________________________________//
if(n==3)
{
string a="123456";
string b;
int n=1;
printf("请输入试题管理密码:");
scanf("%d",&b);
while(a!=b)
{
n++;
if(n==4)return;
printf("密码有误,请重新输入:");
scanf("%d",&b);
}
ifstream inf("试题.txt");
if(!inf)
{
printf("打开试题文件出错!");
return;
}
for(int i=0;!inf.eof();i++)
{
string timu,A,B,C,D,t;
inf>>timu>>A>>B>>C>>D>>t;
shiti[i].timu=timu;
shiti[i].A=A;
shiti[i].B=B;
shiti[i].C=C;
shiti[i].D=D;
shiti[i].t=t;
printf("第"%d",&i+1"题:");
cout<<shiti[i].timu<<endl<<shiti[i].A<<endl<<shiti[i].B<<endl<<shiti[i].C<<endl<<shiti[i].D<<endl;
printf("正确答案:"%d",&shiti[i].t");
}
inf.close();
int x;//记录题数
int nn=1;
while(nn!=2)
{
ifstream inf("试题.txt");
if(!inf)
{
printf("打开试题文件出错!");
return;
}
for(int i=0;!inf.eof();i++)
{
string timu,A,B,C,D,t;
inf>>timu>>A>>B>>C>>D>>t;
shiti[i].timu=timu;
shiti[i].A=A;
shiti[i].B=B;
shiti[i].C=C;
shiti[i].D=D;
shiti[i].t=t;
}
x=i;
printf("是否要增加试题?1是,2否,请选择:");
scanf("%d",&nn);
if(nn==1)
{
string timu,A,B,C,D,t;
printf("请输入题目:");
scanf("%d",&timu);
printf("请输入A选项");
scanf("%d",&A);
cprintf("请输入B选项");
scanf("%d",&B);
printf("请输入C选项");
scanf("%d",&C);
printf("请输入D选项");
scanf("%d",&D);
printf("请输入正确答案");
scanf("%d",&t);
ofstream outf("试题.txt");
if(!outf)
{
printf("打开试题文件出错!");
return;
}
for(int i=0;i<x;i++)
outf<<" "<<shiti[i].timu<<" "<<shiti[i].A<<" "<<shiti[i].B<<" "<<shiti[i].C<<" "<<shiti[i].D<<" "<<shiti[i].t;
outf<<" "<<timu<<" "<<A<<" "<<B<<" "<<C<<" "<<D<<" "<<t;
outf.close();
printf("已增加!");
x++;
}
}
}
printf("功能选择:1考生管理,2考试,3试题库管理,4退出:");//功能选择
scanf("%d",&n);
}
printf("*********************************谢谢使用***********************************");
}