主题:求助 火车票预定系统
lukezax
[专家分:0] 发布于 2006-02-20 17:46:00
谢谢各位大侠,帮帮忙,我的作业!!!要不不让毕业了...
编程设计一个简单的火车站车票预定系统,假设始发站固定,车票信息如下:车次、终点站、发车时间、到站时间、票价金额、剩余票数。
要求:
1) 建立一个车票类,其中属性包括 始发站、车次、终点站、发车时间、到站时间、票价金额、剩余票数,函数有添加、查询、购票和退票。
2) 添加车票信息(至少5条记录,从键盘输入)。
3) 能按车次、终点站查询车票信息(要求显示查询记录的所有信息)。
4) 能够定购车票。
5) 能够退票。
6) 编写菜单的退出功能。
最后更新于:2010-12-22 13:57:00
回复列表 (共1个回复)
沙发
liujiwei [专家分:3840] 发布于 2006-02-22 22:09:00
// 售票系统.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include <string>
using namespace std;
struct Ticket
{
string Type;
string Go_city;
int Start_time;
int End_time;
int Ticket_money;
int Ticket_count;
Ticket* Next;
Ticket(string Type,string Go_city,int Start_time,int End_time,
int Ticket_money,int Ticket_count=100,Ticket* Next=NULL);
};
Ticket::Ticket(string Type,string Go_city,int Start_time,int End_time,
int Ticket_money,int Ticket_count,Ticket* Next)
{
this->Type=Type;
this->Go_city=Go_city;
this->Start_time=Start_time;
this->End_time=End_time;
this->Ticket_money=Ticket_money;
this->Ticket_count=Ticket_count;
this->Next=Next;
}
class Traveller
{
public:
Traveller();
void Insert();
void Delete();
void Search();
void Sort();
void Print();
int Size()const;
void Buy_ticket();
void Send_back_ticket();
Ticket* Set_position(int);
private:
int Count;
Ticket* Head;
};
Traveller::Traveller()
{
Count=0;
Head=NULL;
}
Ticket* Traveller::Set_position(int Position)
{
Ticket* Q=Head;
for(int i=0;i<Position;i++)
Q=Q->Next;
return Q;
}
void Traveller::Insert()
{
int Position;
cout<<"请输入插入的位置"<<endl;
cout<<"插入的位置从0到"<<Count<<endl;
cin>>Position;
while(Position<0||Position>Count)
{
cout<<"您插入的位置不正确"<<endl;
cout<<"请重新输入"<<endl;
cin>>Position;
}
string Type;
cout<<"请输入车次"<<endl;
cin>>Type;
string Go_city;
cout<<"请输入终点站"<<endl;
cin>>Go_city;
int Start_time;
cout<<"请输入开车时间"<<endl;
cin>>Start_time;
int End_time;
cout<<"请输入到站时间"<<endl;
cin>>End_time;
int Ticket_money;
cout<<"请输入车票价格"<<endl;
cin>>Ticket_money;
Ticket *Privous,*Following,*New_ticket;
if(Position>0)
{
Privous=Set_position(Position-1);
Following=Privous->Next;
}
else
Following=Head;
New_ticket=new Ticket(Type,Go_city,Start_time,End_time,
Ticket_money,100,Following);
if(New_ticket==NULL)
return;
if(Position==0)
Head=New_ticket;
else
Privous->Next=New_ticket;
Count++;
}
void Traveller::Delete()
{
cout<<"请选择删除的位置"<<endl;
cout<<"删除的位置从0到"<<Count<<endl;
int Position;
cin>>Position;
if(Position<0||Position>Count)
return;
Ticket *Privous,*Following;
if(Position>0)
{
Privous=Set_position(Position-1);
Following=Privous->Next;
}
else
Following=Head;
if(Position==0)
Head=Following->Next;
else
Privous->Next=Following->Next;
delete Following;
Count--;
}
我来回复