回 帖 发 新 帖 刷新版面

主题:求助 火车票预定系统

谢谢各位大侠,帮帮忙,我的作业!!!要不不让毕业了...
编程设计一个简单的火车站车票预定系统,假设始发站固定,车票信息如下:车次、终点站、发车时间、到站时间、票价金额、剩余票数。
要求:
1)    建立一个车票类,其中属性包括 始发站、车次、终点站、发车时间、到站时间、票价金额、剩余票数,函数有添加、查询、购票和退票。
2)    添加车票信息(至少5条记录,从键盘输入)。
3)    能按车次、终点站查询车票信息(要求显示查询记录的所有信息)。
4)    能够定购车票。
5)    能够退票。
6)    编写菜单的退出功能。

回复列表 (共1个回复)

沙发

// 售票系统.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--;
}

我来回复

您尚未登录,请登录后再回复。点此登录或注册