| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 2187 人关注过本帖
标题:求助:一个订票和退票的问题
只看楼主 加入收藏
lanke711
Rank: 9Rank: 9Rank: 9
来 自:流浪在天国之路
等 级:蜘蛛侠
威 望:7
帖 子:317
专家分:1437
注 册:2015-7-16
结帖率:100%
收藏
已结贴  问题点数:100 回复次数:2 
求助:一个订票和退票的问题
一个航空客运的问题.rar (4.91 KB)

代码太长,贴不上来。上传附件了。
请求各位前辈解惑
需要求助的问题:航线添加成功,但是打印不出来?

下面是我测试的代码,调用两个模块又是正常的。添加航线成功,又能打印出来。不知道附件里的代码是哪里出问题了?
程序代码:
#include <iostream>
#include <string>
using namespace std;
class transportNode//航线类节点
{
    friend class transport;
private:
    string finish;//目的地
    string flightname;//航班名
     int flightnum;//飞机编号(航班号)
     int day;//飞行日期
     int limitednum;//乘员限额
     int remainber;//余票
    struct booknode
    {
    public:
        string name;//乘客姓名
        char ID[20];//乘客身份证号码
        int ticketnum;//票数
        int rate;//舱位等级
    }b[40];
    struct sparenode
    {
    public:
        string name;//乘客姓名
        int ticketnum;//票数
        int m;//记录排队等候的顾客的数量
    }s[40];
    transportNode *next;

};
class transport
{
public:

    transport();//无參构造函数构造头节点
    void recort();//记录航班信息
    void delrecort();//删除航班
    void chest();//实现根据输入的目的地查询的功能
    void book();//实现旅客的订票功能
    void bounce();//实现退票功能
    void outTran();//打印航班信息
    int lookup(string cityname);//返回查询的航班
    int searchID();//查询乘客ID是否存在
    int GetElem();
private:
    transportNode *head;
};

transport::transport()
{
    head = new transportNode;
    head->next = NULL;
}
void transport::recort()
{
    transportNode* t;
    transport();
    t = new transportNode;
    cout << "        请输入航线终点:";
    cin >> t->finish;
    cout << "        请输入航班号:";
    cin >> t->flightname;
    cout << "        请输入飞机号:";
    cin >> t->flightnum;
    cout << "        请输入飞行日期:";
    cin >> t->day;
    cout << "        请输入乘客限额:";
    cin >> t->limitednum;
    t->remainber = t->limitednum;
    //head->next=t->next;
    //t->next=head;
    t->next=head->next;
    head->next=t;
    //t->next = head->next;
    //head->next = t->next;
    

    cout << "添加航线成功!" << endl;

    
}
void transport::outTran()//显示所有航班
{
    transportNode* p;

    p = head->next;
    
    if (p == NULL)
    {
        cout << "没有任何航班!" << endl;
        exit(-1);
    }
    while (p)
    {
        cout << "航班目的站点" << "\t" << "航班号" << "\t" << "飞机编号" << "\t" << "飞行日期" << "\t" << "乘客限额" << "\t" << "余票" << endl;
        cout << p->finish << "\t" << p->flightname << "\t" << p->flightnum << "\t" << p->day << "\t" << p->limitednum << "\t" << p->remainber << endl;
        p = p->next;
    }

}

int main()
{
    
transport p;
p.recort();
p.outTran();
return 0;
}
搜索更多相关主题的帖子: 订票 
2017-01-12 12:30
随风飘荡
Rank: 7Rank: 7Rank: 7
等 级:黑侠
威 望:3
帖 子:208
专家分:598
注 册:2011-9-9
收藏
得分:100 
看了半天就是觉得你在用C++写C,没看出问题,下载了源代码才发现。

关键字:变量作用域

你每个菜单都声明一个transport对象,而且,不·是·传·参·的也·不·是·全·局·的,函数重入就没有了。
比较不理解的是为什么你会有这样觉得能用的想法。
入口调用菜单函数,然后进而转入管理界面1/2
程序代码:
void system1()//航班客运管理界面,实现1.办理业务2.添加航班3.删除航班等操作
{
    //char *cityname;
    string cityname;
    transport searchct;    //????
    //…………
}

void system2()//客户服务界面实现1.查询航线 2.客票预定3.办理退票4.查看客户资料操作
{
    //char cityname[20];
    string cityname;
    int number = 0;
    int a = 1;
    int i;
    transport p;    //?????
    //…………
}


对象也是变量,对象离开函数体后也会析构(销毁回收)。
如果让你写一个函数,每调用一次就输出一个数字,但是每次调用输出的数字都要加1呢?你会怎么写?

我建议再复习一下然后自己找出原因并更改,不懂继续问
2017-01-13 01:40
lanke711
Rank: 9Rank: 9Rank: 9
来 自:流浪在天国之路
等 级:蜘蛛侠
威 望:7
帖 子:317
专家分:1437
注 册:2015-7-16
收藏
得分:0 
明白了。。一语点醒我。谢谢!

普通人之所以普通,是因为他们普遍有一个通病,那就是认为自己永远普通。
千夫所指,我亦坚持。就算被所有人误解,我也照样守护这一切。
我们总是觉得,这些灵魂的表情,傲慢自大,目中无人,其实,真正目中无人的是我们。它们傲慢的不过是表情,而我们傲慢的却是行为!
记得,是为了忘记!
只要想着有那么一天,我就能忍受现在的每一天!
灾难并不可怕,可怕的是心中没有了希望。
你以为我在天堂,其实我正在路上。
当你觉得自己走不到终点的时候,请不要放弃。或许你的对手也是这种感觉。
2017-01-13 13:02
快速回复:求助:一个订票和退票的问题
数据加载中...
 
   



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

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