程序相关的考生信息文件应该怎么写
下面这个程序可以用 不过自己建的考生信息等文件为什么多打入几个信息 在进行考试环节时就提示学号不在名单中 文件到底应该怎么建啊#include<iostream>
#include<time.h>
#include<string>
#include<fstream>
using namespace std;
class stu
{
public:
string num;//学号
string name;//姓名
int cond;//是否考过试
int fen;//得分
stu()
{
num="0";
name="0";
cond=0;
fen=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];
cout<<"**************************欢迎使用考试管理系统****************************"<<endl;
cout<<"功能选择:1考生管理,2考试,3试题库管理,4退出:";//功能选择
int n;
cin>>n;
while (n!=4)
{
while(!(n>=1&&n<4))
{
cout<<"输入有误,请重新输入:";
cin>>n;
}
//_______________________________考生管理___________________________________//
if(n==1)
{
ifstream inf("考生信息.txt");
if(!inf)
{
cout<<"打开学生信息文件出错!"<<endl;
return;
}
string num1,num2,num3,num4,num5,name1,name2,name3,name4,name5;
int cond1,cond2,cond3,cond4,cond5,fen1,fen2,fen3,fen4,fen5;
cout<<"参加考试的考生学号与姓名为:"<<endl;
inf>>num1>>name1>>cond1>>fen1>>num2>>name2>>cond2>>fen2>>num3>>name3>>cond3>>fen3>>num4>>name4>>cond4>>fen4>>num5>>name5>>cond5>>fen5;
inf.close();
cout<<num1<<" "<<name1<<endl;//输出五个考生的信息
cout<<num2<<" "<<name2<<endl;
cout<<num3<<" "<<name3<<endl;
cout<<num4<<" "<<name4<<endl;
cout<<num5<<" "<<name5<<endl;
inf.close();
}
//________________________________考试______________________________________//
if(n==2)
{
ifstream inf("考生信息.txt");
if(!inf)
{
cout<<"打开学生信息文件出错!"<<endl;
return;
}
for(int i=0;i<5;i++)
{
inf>>kao[i].num>>kao[i].name>>kao[i].cond>>kao[i].fen;
}
inf.close();
string num;
cout<<"请输入你的学号:"<<endl;
cin>>num;
for(i=0;i<5;i++)
{
if(kao[i].num==num&&kao[i].cond!=1)
{
cout<<kao[i].name<<"欢迎你!"<<endl;
int nn,m=5;
cout<<"默认题数为5题,是否需要修改?1是,2否,请选择:";
cin>>nn;
if(nn==1)
{
cout<<"请输入考试题数:";
cin>>m;
}
cout<<"下面开始答题(选项大写):"<<endl;
//_________________________将文件中的题目内容读出_________________________//
ifstream inf("试题.dat");
if(!inf)
{
cout<<"打开试题文件出错!"<<endl;
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;
}
cout<<"第"<<j+1<<"题:"<<endl;
cout<<shiti[r].timu<<endl<<shiti[r].A<<endl<<shiti[r].B<<endl<<shiti[r].C<<endl<<shiti[r].D<<endl;
cout<<"请选择:";
string daan;
cin>>daan;
if(daan==shiti[r].t)
kao[i].fen=kao[i].fen+10;
shiti[r].q=1;
}
//_______________________________________________________________//
cout<<"您的总分为:"<<kao[i].fen<<endl;
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)
{
cout<<"您已经参加过考试!"<<endl;
break;
}
}
if(i==5)
cout<<"所输入的学号不在考生名单中!"<<endl;
ofstream outf("考生信息.txt");
if(!outf)
{
cout<<"打开试题文件出错!"<<endl;
return;
}
for(int c=0;c<5;c++)
outf<<" "<<kao[c].num<<" "<<kao[c].name<<" "<<kao[c].cond<<" "<<kao[c].fen;
outf.close();
}
//________________________________试题管理_________________________________//
if(n==3)
{
string a="123456";
string b;
int n=1;
cout<<"请输入试题管理密码:";
cin>>b;
while(a!=b)
{
n++;
if(n==4)return;
cout<<"密码有误,请重新输入:";
cin>>b;
}
ifstream inf("试题.txt");
if(!inf)
{
cout<<"打开试题文件出错!"<<endl;
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;
cout<<"第"<<i+1<<"题:"<<endl;
cout<<shiti[i].timu<<endl<<shiti[i].A<<endl<<shiti[i].B<<endl<<shiti[i].C<<endl<<shiti[i].D<<endl;
cout<<"正确答案:"<<shiti[i].t<<endl;
}
inf.close();
int x;//记录题数
int nn=1;
while(nn!=2)
{
ifstream inf("试题.txt");
if(!inf)
{
cout<<"打开试题文件出错!"<<endl;
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;
cout<<"是否要增加试题?1是,2否,请选择:";
cin>>nn;
if(nn==1)
{
string timu,A,B,C,D,t;
cout<<"请输入题目:";
cin>>timu;
cout<<"请输入A选项";
cin>>A;
cout<<"请输入B选项";
cin>>B;
cout<<"请输入C选项";
cin>>C;
cout<<"请输入D选项";
cin>>D;
cout<<"请输入正确答案";
cin>>t;
ofstream outf("试题.txt");
if(!outf)
{
cout<<"打开试题文件出错!"<<endl;
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();
cout<<"已增加!"<<endl;
x++;
}
}
}
cout<<"功能选择:1考生管理,2考试,3试题库管理,4退出:";//功能选择
cin>>n;
}
cout<<"*********************************谢谢使用***********************************"<<endl;
}