汽车乘票购票系统

#include
#include
#include
#include
using namespace std;
ifstream infile1;
ifstream infile2;
ifstream infile3;
class qclx
{

 string checi;
    string start,end;
 string type;
 string distance;
 string statime,endtime;
 double price;
 int zws;
 public:
  void input();
  void output();
  friend void change1();
};
void qclx::input()
{
 infile1>>checi;
 infile1>>start;
 infile1>>end;
 infile1>>type;
 infile1>>distance;
 infile1>>statime;
 infile1>>endtime;
 infile1>>price;
 infile1>>zws;
}
void qclx::output()
{
 cout<<checi<<" "<<start<<" "<<end<<" "<<type<<" "<<distance<<" "
  <<statime<<" "<<endtime<<" "<<price<<" "<<zws<<endl;
}
class pwxx
{
   string checi;
   string time;
   int ydps,syps;
public:
    void input();
 void output();
 friend void change();
 friend void change1();
};
void pwxx::input()
{
    infile2>>checi;
 infile2>>time;
 infile2>>ydps;
 infile2>>syps;
}
void pwxx::output()
{
 cout<<checi<<" "<<time<<" "<<"已订票数:"<<ydps<<" "<<"剩余票数:"<<syps<<endl;
}
class dpxx
{
 string name;
 string num;
 string checi;
    string date;
 string zws;
public:
 void input();
 void output();
};
void dpxx::input()
{
 infile3>>name;
 infile3>>num;
 infile3>>checi;
 infile3>>date;
}
void dpxx::output()
{
 cout<<name<<" "<<num<<" "<<checi<<" "<<date<<endl;
}
qclx r1[20];pwxx r2[20];dpxx r3[20];int j=10;
void Input()
{
 infile1.open("lyt.txt");
    infile2.open("lyt2.txt");
    infile3.open("lyt3.txt");
   for(int i=0;i
         r1[i].input();
  for(i=0;i
         r2[i].input();
  for(i=0;i
         r3[i].input();
 
  infile1.close();
  infile2.close();
  infile3.close();
}
void Output()
{
 infile1.open("lyt.txt");
    infile2.open("lyt2.txt");
    infile3.open("lyt3.txt");
 for(int i=0;i
         r1[i].output();
       cout<<endl;
  for(i=0;i
         r2[i].output();
       cout<<endl;
  for(i=0;i
         r3[i].output();
  infile1.close();
  infile2.close();
  infile3.close();
}
void change()
{
 infile1.open("lyt.txt");
    infile2.open("lyt2.txt");
    infile3.open("lyt3.txt");
 char c1;string str1;int m,n;
 cout<<"你是想订票还是退票???1:订票,2:退票。";cin>>n;
 switch(n)
 {
 case 1:
  {
   cout<<"是否想预定车票 Y or N:";
   while(cin>>c1)
   {
    if(c1=='Y'||c1=='N')
     break;
    else cout<<"输入错误,请重新输入:";
   }
         while(c1=='Y')
   {
        system("cls");
        for(int i=0;i
              r1[i].output();
              cout<<endl;
              aa: cout<<"请输入所要乘的第几条路线?";cin>>m;

     if(r2[m-1].syps<1)
     {
      cout<<"该趟车次没有剩余车票!!!"<<endl<<"是否想重新输入路线???Y or N:";
         cin>>c1;
         if(c1=='Y') goto aa ;
              }
    else
    {
     r2[m-1].output();
     --r2[m-1].syps;
     ++r2[m-1].ydps;
     cout<<"该车次车票最新数据:"<<endl;
     r2[m-1].output();
    }
    cout<<"是否想继续订票???Y or N:";cin>>c1;
   }
   break;
  }
 case 2:
  {
     cout<<"是否想退定车票 Y or N:";cin>>c1;
         while(c1=='Y')
   {
  system("cls");
        for(int i=0;i
              r1[i].output();
              cout<<endl;
     cout<<"请输入想要退订的序号1~10: ";cin>>m;
     r2[m-1].output();
     --r2[m-1].syps;
     r2[m-1].output();
       c1='N';break;
   }
 }
 }
 infile1.close();
  infile2.close();
  infile3.close();
}
void change1()
{
 infile1.open("lyt.txt");
    infile2.open("lyt2.txt");
    infile3.open("lyt3.txt");
 char c1;int m;
 cout<<"是否想修改路线信息???Y or N:";
 while(cin>>c1)
 {
  if(c1=='Y'||c1=='N')
  break;
  else
   cout<<"输入错误,请重新输入。";
 }
 while(c1=='Y')
 {
       cout<<"1:增加路线,2:删除路线,3:修改路线: ";cin>>m;
       switch(m)
    {
          case 1:{cout<<"请输入想要新增的路线,例如:k343 九江 武汉 普通火车343公里 2012年3月24号 2012年3月24号 324 122";
     cin>>r1[j].checi>>r1[j].start>>r1[j].end>>r1[j].type>>r1[j].distance>>r1[j].statime>>\
     r1[j].endtime>>r1[j].price>>r1[j].zws;j++;
                    for(int i=0;i
                       r1[i].output();
     }break;
             case 2:{cout<<"请输入要删除的路线:";cin>>m;
     for(m=m-1;m
      r1[m]=r1[m+1];
     for(int i=0;i
                       r1[i].output();
     }break;
    case 3:{cout<<"请输入要修改的路线:";cin>>m;
         r1[m].output();
      cout<<"请重新输入汽车路线的数据:"<<endl;
      cin>>r1[--m].checi>>r1[m].start>>r1[m].end>>r1[m].type>>r1[m].distance>>r1[m].statime>>\
     r1[m].endtime>>r1[m].price>>r1[m].zws;
      cout<<"请重新输入该路线的票务信息:"<<endl;
      cout<<"车次   "<<"时间   "<<"已定票数   "<<"剩余票数    "<<endl;
                       cin>>r2[m].checi>>r2[m].time>>r2[m].ydps>>r2[m].syps;
     }break;
    }  
    cout<<"是否想继续修改路线信息 ? ? ? ";cin>>c1;
 }
 infile1.close();
  infile2.close();
  infile3.close();
 
}
void glz()
{
 infile1.open("lyt.txt");
    infile2.open("lyt2.txt");
    infile3.open("lyt3.txt");
 int n=1,mm=3;char a[6]={'l','y','t','l','y','t'},b[6];
    cout<<"请输入管理者密码(你有三次输入机会):"<<endl;
  while(n!=0)
  {
   n=0;
      for(int i=0;i<6;i++)
   {
               b[i]=_getch();
         _putch('*');
   }
   cout<<endl;
   for(i=0;i<6;i++)
   {
        if(a[i]!=b[i])
           n++;
   }
      if(n!=0)
       cout<<"ERROR!!!   请重新输入密码(你还有"<<--mm<<"次机会): "<<endl;
   if(mm==0)
    cout<<"你输入密码错误的次数超过三次哦!!!等你过段是假想好了密码在过来吧哈···"<<endl;
       change1();
    system("cls");
    for( i=0;i
         r1[i].output();
       cout<<endl;
       for(i=0;i
         r2[i].output();
       cout<<endl;
     for(i=0;i
         r3[i].output();
 }
  infile1.close();
  infile2.close();
  infile3.close();
}
char stop()
{
 char c;
 cout<<"是否想退出系统??? Y or N :";cin>>c;
 return c;
}   
int main()
{
 system("title 长途运输信息");
 system("color  87");
 char c='Y';
 int m;
  putchar(004);
  cout<<" 1,票务信息查看。  ";
  putchar(004);
  cout<<" 2,订票退票管理。"<<endl;
  putchar(004);
  cout<<" 3,路线增加删除修改。";
  putchar(004);
  cout<<" 4,退出车辆信息查询系统。"<<endl;
  Input();
 while(c=='Y')
 { infile1.open("lyt.txt");
        infile2.open("lyt2.txt");
        infile3.open("lyt3.txt");
  cout<<"请输入你想要进入的服务:";
  cin>>m;
  switch(m)
  {
  case 1:Output();break;
  case 2:change();break;
  case 3:glz();break;
  case 4:c=stop();break;
  }
   
        infile1.close();
        infile2.close();
        infile3.close();
 }
  infile1.close();
  infile2.close();
  infile3.close();
   return 0;
}

转载于:https://www.cnblogs.com/12345678lyt/archive/2012/12/07/2808171.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
#这只是一个半成品,只是实现了,一个完整的订票过程,对于,如果刷票,自己研究 #简单过程 # 第一、getRandAndCookie() 获得cook 和一个随机数用于登录 # 第二、getEnterRandCode() 得到登录时的识别码 # 第三、setuseandpassword(randcode,use,password) 发送随机数、识别码和用户及密码。由于随机数只在内部使用,所以定义成了全局变量, # 第四、GetTrainList() 得到所有车站列表,'@bjb|北京北|VAP|beijingbei|bjb|0' 其中有中文、拼音、拼音缩写、所一个ID(唯一),其主要是可以,通过上面的列表,找到它的唯一ID,TranCityToId('南昌') # 第五、GetTrainNumList(date,fromstationid,tostationid,starttime) 得到哪到哪的所在车次,消息格式如下,其中所以,一下车次的的ID:"id":"650000K1060I" # {"end_station_name":"北京西","end_time":"16:18","id":"650000K1060I","start_station_name":"深圳","start_time":"10:54","value":"K106"} # 通过ChangeToTrainNumId('K106')得到车次ID # 第六、QueryTrain(fromstationid,tostationid,date,stationNum,starttime) 就是点击查询按键,得到是否有能预订,格式如下 #       南昌         20:12,    北京西        07:38,11:26,--,--,--,--,10,有,有,--,有,有,--,<a name='btn130_2' class='btn130_2' # 通过choiceSubmitNum(stationNum,trainsubmitinfo)提取出getSelected()消息 # 第七、submitRequest(choiceSubmitNum(stationNum,trainsubmitinfo),date,starttime) 就是点击预订按钮 # 第八、getrandCheckCode()得到提交订单的识别码 # 第十、CheckInMyTicket(info,randcode,peoples)点击提交,如果成功的话,就会返回{"errMsg":"Y"} # 出于,网络是UTF8格式,所以,必须# -*- coding: utf-8 -*-,(当然,自己转换也是可以的) # 出于这一个控制台信息,所以,识别码的图片在脚本同一目录 #得到头信息

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值