| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 389 人关注过本帖
标题:程序相关的考生信息文件应该怎么写
取消只看楼主 加入收藏
seeddestiny
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-11-2
结帖率:50%
收藏
已结贴  问题点数:15 回复次数:1 
程序相关的考生信息文件应该怎么写
下面这个程序可以用  不过自己建的考生信息等文件为什么多打入几个信息 在进行考试环节时就提示学号不在名单中  文件到底应该怎么建啊
#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;
}
搜索更多相关主题的帖子: 考生 文件 
2010-11-03 18:54
seeddestiny
Rank: 1
等 级:新手上路
帖 子:8
专家分:0
注 册:2010-11-2
收藏
得分:0 
自己建了一个考生信息的txt文件,不过程序运行时功能选择2时提示请输入学号 可为什么老提示不在考生名单中啊  迷惑
2010-11-03 18:58
快速回复:程序相关的考生信息文件应该怎么写
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.051385 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved