网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
02月03日漏签0天
程序设计吧 关注:51,908贴子:140,761
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 0回复贴,共1页
<<返回程序设计吧
>0< 加载中...

求大神写一个主程序,使下面的c++程序运行起来。

  • 只看楼主
  • 收藏

  • 回复
  • 再回首46
  • 仗剑天涯
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
#include <iostream.h>
#include <string.h>
void FlightInsert();
void FlightDelete();
void FlightLookup();
void FlightRework();
void FlightBuyticket();
void FlightCancelticket();
void Flightclean();
void MainMenu();
typedef struct Customer //已定票乘客信息
{
char Name[10]; //姓名
int Amount; //定票数
int Level; //车厢数
int SeatNum; //座位号
char FlightNum[10]; //所定车次
struct Customer *next;
}Customer;
typedef struct Replace //替补乘客信息
{
char Name[10]; //姓名
int Amount; //定票数
int Level; //车厢数
char FlightNum[10]; //所定车次
struct Replace *next;
}Replace;
typedef struct Flight //火车路线信息
{
char From[10]; //起点站名
char Des[10]; //终点站名
char FlightNum[10]; //车班次号
char PlaneNum[10]; //车次
char Week; //出站周日
int Ration; //票数总额
int FreeTicket; //剩余票数
float Price[3]; //车厢的价格
int ReplacePas; //候补乘客数
Replace *ReplName; //该车次的候补乘客名单
Customer *CustName; //该车次的已定票乘客名单
struct Flight *next; //指示下一火车路线结点
}Flight,*PFlight;
int Ration=0; //乘客总数
Flight *head; //建立火车路线头结点
Flight *rear; //建立火车路尾结点
Customer *Cusrear;
Replace *Reprear;
void MainMenu()
{
char i='0';
while (i!='7')
{
cout<<" ******************火车定票系统***************"<<endl;
cout<<" * 1、增加火车路线 *"<<endl;
cout<<" * 2、查询火车路线 *"<<endl;
cout<<" * 3、修改火车路线 *"<<endl;
cout<<" * 4、预订火车票 *"<<endl;
cout<<" * 5、退订火车票 *"<<endl;
cout<<" * 6、清空系统 *"<<endl;
cout<<" * 7、退出系统 *"<<endl;
cout<<" **************************************************"<<endl;
cin>>i;
switch(i)
{
case '1':FlightInsert();break;
case '2':FlightLookup();break;
case '3':FlightRework();break;
case '4':FlightBuyticket();break;
case '5':FlightCancelticket();break;
case '6':Flightclean();break;
case '7':cout<<"退出系统"<<endl;break;
default:cout<<"输入错误"<<endl;break;
}
}
}
void FlightInsert() //车次录入
{
Flight *p;
p=new Flight;
cout<<"起点站:淮安"<<endl;
// cin>>p->From;
cout<<"请输入终点站名:"<<endl;
cin>>p->Des;
cout<<"请输入车次:"<<endl;
cin>>p->FlightNum;
cout<<"请输入火车号:"<<endl;
cin>>p->PlaneNum;
cout<<"请输入出站周日:"<<endl;
cin>>p->Week;
cout<<"请输入票数总额:"<<endl;
cin>>p->Ration;
p->FreeTicket=p->Ration;
// cout<<"请输入车厢的价格:"<<endl;
cout<<"包厢的价格"<<endl;
cin>>p->Price[0];
cout<<"软座的价格"<<endl;
cin>>p->Price[1];
cout<<"硬座的价格"<<endl;
cin>>p->Price[2];
p->ReplName=new Replace;
p->CustName=new Customer;
p->CustName->next=NULL;
p->ReplName->next=NULL;
p->ReplacePas=0;
rear->next=p;
rear=p;
rear->next=NULL;
}
void FlightLookup() //查询车次
{
Flight *p,*q;
char FlightNum[10];
p=head;
int i=0;
while (i!=1)
{
cout<<"请输入需要查询的车次:"<<endl;
cin>>FlightNum;
while (p->next&&strcmp(p->next->FlightNum,FlightNum))
{
p=p->next;
}
q=p->next;
if (q==NULL)
{
cout<<"对不起不存在此车次"<<endl;
}
else
{
cout<<"车次:"<<q->FlightNum<<endl;
cout<<"火车号:"<<q->PlaneNum<<endl;
cout<<"起点站:淮安"<<endl;
cout<<"目的地:"<<q->Des<<endl;
cout<<"出站周日:"<<q->Week<<endl;
cout<<"总票数:"<<q->Ration<<endl;
cout<<"剩余票数:"<<q->FreeTicket<<endl;
cout<<"候补乘客数:"<<q->ReplacePas<<endl;
cout<<"包厢的价格:"<<q->Price[0]<<endl;
cout<<"软座的价格:"<<q->Price[1]<<endl;
cout<<"硬座的价格:"<<q->Price[2]<<endl;
}
cout<<"1、返回主菜单 2、继续"<<endl;
cin>>i;
}
}
void FlightRework() //修改火车路线信息
{
int Customer_Number ;
Flight *p,*q;
char FlightNum[10];
char i;
p=head;
cout<<"请输入需要修改的车次:"<<endl;
cin>>FlightNum;
while (p->next&&strcmp(p->next->FlightNum,FlightNum))
{
p=p->next;
}
q=p->next;
if (q==NULL)
{
cout<<"对不起不存在此车"<<endl;
}
else
{
while(i!='9')
{
cout<<" *****请输入需要修改的数据*****"<<endl;
cout<<" *1、车次 *"<<endl;
cout<<" *2、火车号 *"<<endl;
cout<<" *3、目的地 *"<<endl;
cout<<" *4、出站周日 *"<<endl;
cout<<" *5、票数总额 *"<<endl;
cout<<" *6、包厢的价格*"<<endl;
cout<<" *7、软座的价格*"<<endl;
cout<<" *8、硬座的价格*"<<endl;
cout<<" *9、退出 *"<<endl;
cout<<" ******************************"<<endl;
cin>>i;
switch(i)
{
case '1':cout<<"请输入车次:"<<endl;
cin>>q->FlightNum;break;
case '2':cout<<"请输入火车号:"<<endl;
cin>>q->PlaneNum;break;
case '3':cout<<"请输入目的地:"<<endl;
cin>>q->Des;break;
case '4':cout<<"请输入出站周日:"<<endl;
cin>>q->Week;break;
case '5':cout<<"请输入票数总额:"<<endl;
Customer_Number=q->Ration-q->FreeTicket;
cin>>q->Ration;q->FreeTicket=q->Ration-Customer_Number;break;
case '6':cout<<"请输入包厢的价格:"<<endl;
cin>>q->Price[0];break;
case '7':cout<<"请输入软座的价格:"<<endl;
cin>>q->Price[1];break;
case '8':cout<<"请输入硬座的价格:"<<endl;
cin>>q->Price[2];break;
case '9':cout<<"退出"<<endl;
break;
default:cout<<"error\n";break;
}
}
}
}
void FlightBuyticket() //订票
{
int Ticket_Amount;
void Buyticket(PFlight ,int );
void Buyreplace(PFlight ,int ,int );
Flight *p,*q;
char Des[10];
int i=2;
while (i!=1)
{
cout<<"请输入目的地:"<<endl;
cin>>Des;
p=head;
while (p->next&&strcmp(p->next->Des,Des))
{
p=p->next;
}
q=p->next;
if (q==NULL)
{
cout<<"对不起不存在此车次"<<endl;
}
else
{
while(i!=1)
{
cout<<"总票数为:"<<q->Ration<<endl;
cout<<"剩余票数为:"<<q->FreeTicket<<endl;
cout<<"输入需要够买的票数"<<endl;
cin>>Ticket_Amount;
while(Ticket_Amount==0)
{
cout<<"请输入一个非零数:"<<endl;
cin>>Ticket_Amount;
}
if (Ticket_Amount<=q->FreeTicket)
{
Buyticket(q,Ticket_Amount);
}
else
{
int n;
cout<<"剩余票数小于定票数,是否需要列入候补名单?(1、是 2、否)"<<endl;
cin>>n;
Buyreplace(q,Ticket_Amount,n);
}
cout<<"1、返回主菜单 2、继续"<<endl;
cin>>i;
}
}
}
}
void FlightCancelticket() //退票
{
void Buyticket(PFlight ,int );
Flight *p,*q;
Customer *h,*j;
char FlightNum[6];
char Customer_Name[10];
int Replace1_Amount; //候补第一个人的定票数
int i;
while (i!=1)
{
cout<<"请输入需要退定的车次:"<<endl;
cin>>FlightNum;
p=head;
while (p->next&&strcmp(p->next->FlightNum,FlightNum))
{
p=p->next;
}
q=p->next;
if (q==NULL)
{
cout<<"对不起不存在此车次"<<endl;
}
else
{
while (i!=2)
{
cout<<"请输入姓名:"<<endl;
cin>>Customer_Name;
h=q->CustName;
while (h->next&&strcmp(h->next->Name,Customer_Name))
{
h=h->next;
}
j=h->next;
if(j==NULL)
{
cout<<"查无此人"<<endl;
}
else
{
if(j->next==NULL){ //当删除最后一个结点
Cusrear=h;
}
h->next=h->next->next;
q->FreeTicket+=j->Amount;
delete j;
cout<<"删除成功!"<<endl;
if(q->ReplName->next!=NULL)
{
Replace1_Amount=q->ReplName->next->Amount;
if (Replace1_Amount<=q->FreeTicket)
{
Replace *rep;
rep=q->ReplName->next;
Customer *Cus2;
Cus2=new Customer;
Cus2->SeatNum=q->Ration-q->FreeTicket+1;
strcpy(Cus2->FlightNum, q->FlightNum );
strcpy(Cus2->Name, rep->Name );
Cus2->Amount=rep->Amount;
Cus2->Level=rep->Level;
cout<<"乘客"<<rep->Name<<"已经成功买票 "<<endl;
cout<<"座位号为:";
for(int i=1;i<=(rep->Amount);i++)
{
cout<<Cus2->SeatNum++<<" ";
}
cout<<endl;
if (q->CustName->next==NULL)
{
Cusrear=q->CustName;
Cusrear->next=Cus2;
Cusrear=Cus2;
Cusrear->next=NULL;
}
else
{
Cusrear->next=Cus2;
Cusrear=Cus2;
Cusrear->next=NULL;
}
q->FreeTicket-=rep->Amount;
q->ReplName->next=q->ReplName->next->next;
q->ReplacePas--;
delete rep;
}
}
}
cout<<"1:继续退订"<<endl;
cout<<"2:退出姓名录入"<<endl;
cin>>i;
}
}
cout<<"1、返回主菜单"<<endl;
cin>>i;
}
}
void Flightclean()
{
head->next=rear->next;
cout<<"系统已经清空!"<<endl;
}
void Buyticket(PFlight q,int Ticket_Amount) //买票
{
int n=Ticket_Amount;
Customer *Cus2;
Cus2=new Customer;
Cus2->SeatNum=q->Ration-q->FreeTicket+1;
strcpy(Cus2->FlightNum, q->FlightNum );
Cus2->Amount=Ticket_Amount;
cout<<"请输入姓名:"<<endl;
cin>>Cus2->Name;
cout<<"请输入车厢等级(1--3):"<<endl;
cin>>Cus2->Level;
cout<<"你的座位号为"<<endl;
for(int i=1;i<=Ticket_Amount;i++)
{
cout<<Cus2->SeatNum++<<" ";
}
cout<<endl;
if (q->CustName->next==NULL)
{
Cusrear=q->CustName;
Cusrear->next=Cus2;
Cusrear=Cus2;
Cusrear->next=NULL;
}
else
{
Cusrear->next=Cus2;
Cusrear=Cus2;
Cusrear->next=NULL;
}
q->FreeTicket-=Ticket_Amount;
}
void Buyreplace(PFlight q,int Ticket_Amount,int n) //进入候补队列
{
Replace *Rep2;
Rep2=new Replace;
if(n==1)
{
q->ReplacePas+=Ticket_Amount;
strcpy(Rep2->FlightNum,q->FlightNum);
Rep2->Amount=Ticket_Amount;
cout<<"请输入姓名:"<<endl;
cin>>Rep2->Name;
cout<<"请输入车厢等级(1-3):"<<endl;
cin>>Rep2->Level;
if(q->ReplName->next==NULL)
{
Reprear=q->ReplName;
Reprear->next=Rep2;
Reprear=Rep2;
Reprear->next=NULL;
}
else{
Reprear->next=Rep2;
Reprear=Rep2;
Reprear->next=NULL;
}
}
}


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 0回复贴,共1页
<<返回程序设计吧
分享到:
©2026 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示