C++实现飞机订票系统

本文实例为大家分享了C++实现飞机订票系统的具体代码,供大家参考,具体内容如下

// 飞机订票系统.cpp : 定义控制台应用程序的入口点。
//

#include "stdafx.h"
#include <stdio.h>
#include <string.h>
#include<stdlib.h>
#include<conio.h>
#define N 2

typedef struct plane
{
    char ID[10];
    char Start_Place[10];
    char End_Place[10];
    float price;
    int Buy_num;
    int Max_num;
    char time[20];
}PLANE;
PLANE p[N];

void menu();
void menu1();

void count()
{
    char a[10];
    int i, num = 0;
    printf("请您输入要统计的飞机目的地:");
    scanf("%s", a);
    printf("航班代号     起始地点    目的地    票价    已售     乘客容量 时间/n");
    for (i = 0; i<N; i++)
    {
        if (strcmp(a, p[i].End_Place) == 0)
        {
            num++;
            printf("%s    %s    %s    %7.2f    %d    %d    %d/n", p[i].ID, p[i].Start_Place, p[i].End_Place, p[i].price, p[i].Buy_num, p[i].Max_num, p[i].time);
        }
    }
    printf("/n您想统计的航班有%d条!/n", num);
    getchar();
    menu1();

}

void browse()
{
    int i;
    system("cls");
    printf("浏览航班信息:/n");
    printf("航班代号     起始地点    目的地    票价    已售     乘客容量 时间/n");
    for (i = 0; i<N; i++)
    {
        printf("%s    %s    %s    %7.2f    %d    %d    %s/n", p[i].ID, p[i].Start_Place, p[i].End_Place, p[i].price, p[i].Buy_num, p[i].Max_num, p[i].time);
    }
    getchar();
    menu();

}

void order()
{
    int i, j;
    PLANE temp;
    for (i = 0; i<N; i++)
    {
        for (j = i; j<N; j++)
        {
            if (strcmp(p[i].time, p[j].time)>0)
            {
                temp = p[i];
                p[i] = p[j];
                p[j] = temp;
            }

        }
    }
    browse();

}
void enter()
{
    int i;
    system("cls");
    printf("请您输入航班信息:");
    for (i = 0; i<N; i++)
    {
        printf("航班代号:");
        scanf("%s", p[i].ID);
        printf("起飞地点:");
        scanf("%s", p[i].Start_Place);
        printf("目的地点:");
        scanf("%s", p[i].End_Place);
        printf("票价:");
        scanf("%f", &p[i].price);
        p[i].Buy_num = 0;
        printf("乘客容量:");
        scanf("%d", &p[i].Max_num);
        printf("起飞时间:");
        scanf("%s", p[i].time);
    }

    getchar();
    menu();
}

void buy()
{
    char t[20], place[20];
    int i, w = 0, num;
    printf("时间");
    scanf("%s", t);
    printf("mudidi");
    scanf("%s", place);
    for (i = 0; i<N; i++)
    {
        if (strcmp(t, p[i].time) == 0 && strcmp(place, p[i].End_Place) == 0)
        {
            w = 1;
            printf("%s    %s    %s    %7.2f    %d    %d    %s/n", p[i].ID, p[i].Start_Place, p[i].End_Place, p[i].price, p[i].Buy_num, p[i].Max_num, p[i].time);
            printf("买几张票!");
            scanf("%d", &num);
            if (p[i].Buy_num + num>p[i].Max_num)
            {
                printf("当前余票不足,只剩%d张", p[i].Max_num - p[i].Buy_num);
            }
            else
            {
                p[i].Buy_num = p[i].Buy_num + num;
                printf("购票成功!");
            }
        }

    }
    if (w == 0)
        printf("没有您要得票!");
    getchar();
    menu1();

}
void back()
{
    char id[20];
    int i, w = 0;
    printf("id:");
    scanf("%s", id);
    for (i = 0; i<N; i++)
    {
        if (strcmp(id, p[i].ID) == 0)
        {
            p[i].Buy_num--;
            printf("退票成功");
            w = 1;
        }
    }
    if (w == 0)
        printf("退票失败");
    getchar();
    menu1();
}
void bowse_time()
{
    char a[20];
    int i, w = 0;
    printf("请您输入要查询的飞机起飞时间:");
    scanf("%s", a);
    printf("航班代号     起始地点    目的地    票价    已售     乘客容量 时间/n");
    for (i = 0; i<N; i++)
    {
        if (strcmp(a, p[i].time) == 0)
        {
            w = 1;
            printf("%s    %s    %s    %7.2f    %d    %d    %s/n", p[i].ID, p[i].Start_Place, p[i].End_Place, p[i].price, p[i].Buy_num, p[i].Max_num, p[i].time);
        }
    }
    if (w == 0)
        printf("没有您想查询的航班!/n");
    getchar();
    menu1();

}
void bowse_palce()
{
    char a[10];
    int i, w = 0;
    printf("请您输入要查询的飞机目的地:");
    scanf("%s", a);
    printf("航班代号     起始地点    目的地    票价    已售     乘客容量 时间/n");
    for (i = 0; i<N; i++)
    {
        if (strcmp(a, p[i].End_Place) == 0)
        {
            w = 1;
            printf("%s    %s    %s    %7.2f    %d    %d    %d/n", p[i].ID, p[i].Start_Place, p[i].End_Place, p[i].price, p[i].Buy_num, p[i].Max_num, p[i].time);
        }
    }
    if (w == 0)
        printf("没有您想查询的航班!/n");
    getchar();
    menu1();
}
void bowse_ID()
{
    char a[10];
    int i, w = 0;
    printf("请您输入要查询的飞机航班号:");
    scanf("%s", a);
    printf("航班代号     起始地点    目的地    票价    已售     乘客容量 时间/n");
    for (i = 0; i<N; i++)
    {
        if (strcmp(a, p[i].ID) == 0)
        {
            w = 1;
            printf("%s    %s    %s    %7.2f    %d    %d    %d/n", p[i].ID, p[i].Start_Place, p[i].End_Place, p[i].price, p[i].Buy_num, p[i].Max_num, p[i].time);
        }
    }
    if (w == 0)
        printf("没有您想查询的航班!/n");
    getchar();
    menu1();

}
void menu1()
{
    int n, w1;
    do
    {
        system("cls");
        puts("/t/t/t/t    飞机售票操作!/n/n");
        puts("/t/t*********************MENU*********************/n/n");
        puts("/t/t/t/t1.Buy ticket");
        puts("/t/t/t/t2.return ticket");
        puts("/t/t/t/t3.bowse by time");
        puts("/t/t/t/t4.bowse by end palce");
        puts("/t/t/t/t5.bowse by plane ID");
        puts("/t/t/t/t6.return to menu");
        puts("/n/n/t/t**********************************************/n");
        printf("Choice your number(1-6): [ ]/b/b");
        scanf("%d", &n);
        if (n<0 || n>6)
        {
            w1 = 1;
            printf("your choice is not between 1 and 4,Please input again:");
            getchar();
        }
        else    w1 = 0;
    } while (w1 == 1);

    switch (n)
    {
    case 1:buy(); break;
    case 2:back(); break;
    case 3:bowse_time(); break;
    case 4:bowse_palce(); break;
    case 5:bowse_ID(); break;
    case 6:menu();
    }

}
 int save()
{
    int w = 1;
    FILE *fp;
    int i;
    system("cls");
    if ((fp = fopen("c://ticket.txt", "wb")) == NULL)
    {
        printf("/nCannot open file/n");
        return NULL;
    }
    for (i = 0; i<N; i++)
    if (fwrite(&p[i], sizeof(struct plane), 1, fp) != 1)
    {
        printf("file write error/n");
        w = 0;
    }
    if (w == 1)
    {
        printf("file save ok!/n");
    }
    fclose(fp);
    getchar();
    menu();
}

int load()
{
    FILE *fp;
    int i, w;
    w = 1;
    system("cls");
    if ((fp = fopen("c://ticket.txt", "rb")) == NULL)
    {
        printf("/nCannot open file/n");
        w = 0;
        return NULL;
    }
    for (i = 0; !feof(fp); i++)
    {
        fread(&p[i], sizeof(struct plane), 1, fp);
    }
    fclose(fp);
    if (w == 1)
        printf("Load file ok!");
    getchar();
    menu();

}
void main()
{
    menu();
}
void menu()
{
    int n, w1;
    do
    {
        system("cls");
        puts("                     飞机售票系统   ");
        puts("*************************MENU*************************");
        puts("    1.  Enter new plane");
        puts("    2.  Browse all");
        puts("    3.  opreration");
        puts("    4.  Save file");
        puts("    5.  Load file");
        puts("    6.  Exit");
        puts("******************************************************");
        printf("Choice your number(1-6): ");
        scanf("%d", &n);
        if (n<0 || n>6)
        {
            w1 = 1;
            printf("your choice is not between 1 and 6,Please input again:");
            getchar();
        }
        else    w1 = 0;
    } while (w1 == 1);

    switch (n)
    {
    case 1: enter(); break;
    case 2: browse(); break;
    case 3: menu1(); break;
    case 4: save(); break;
    case 5: load(); break;
    case 6: exit(0);
    }
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C++实现航空订票程序

    这是帮我同学写的一个C++作业,说实话好久没写过C++都有些生疏了.但他们好像还没学面向对象编程,所以只能是简单的结构体和输入输出的逻辑. 题目要求: 编写一个航空订票程序: 假设一等舱5个座位,编号为1~5,经济舱20个座位,编号为1~20 具体要求如下: 当程序开始时,提示输入乘客姓名,一个名字只能订一个座位,如果该名字已经订过座位了,则提示该乘客座位已定及座位号,否则提示输入舱位类型: 当输入舱位类型后,如果该舱位已全部订出,则提示此舱全部订完,重新选择舱位类型:否则显示可以选择的座位号,

  • C++实现航空订票系统课程设计

    本文实例为大家分享了C++实现航空订票系统的具体代码,供大家参考,具体内容如下 一.题目 1.录入功能 可以录入航班信息(如航班号,起飞降落时间,城市,座位数,票价) 2.查询功能 可以查询航班的各项信息(如根据航班号,起飞降落城市查找航班并显示航班信息) 3.修改删除功能 可以修改删除航班的信息 4.追加航线 在原本的航线之后可以继续添加航线方便操作 5.订票功能 可以订票并且记录下乘客的相关信息(如姓名,身份证号码) 6.退票功能 可以退票并且记录乘客的相关信息以及退票信息 二.代码 #in

  • C++实现飞机订票系统

    本文实例为大家分享了C++实现飞机订票系统的具体代码,供大家参考,具体内容如下 // 飞机订票系统.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <stdio.h> #include <string.h> #include<stdlib.h> #include<conio.h> #define N 2 typedef struct plane {     char ID[10];

  • C语言实现飞机订票系统的完整代码

    目录 题目 总体设计和需求分析 设计目的 总体设计和功能 结构体设计 机票信息结构体 主函数的设计 各功能代码的实现 前置 添加机票 查找机票信息 修改机票信息 显示机票信息 推荐机票信息 订票 退票 保存信息 显示时间 测试 总结 题目 本文将设计一个飞机订票系统,主要包括机票的添加.修改.查找.订票.退票.推荐机票功能,用C语言编程实现,并用链表存储产生的航班信息和订票信息数据,最后可以把链表中的数据保存到文件中. 总体设计和需求分析 设计目的 1.怎样去合理的设计一个数据结构来存储订票信息

  • C语言实现飞机订票系统

    问题描述与题目要求 问题描述: 假定某民航有M个航次的班机,每个航次都只到达一个地方.试为该机场售票处设计一个自动订票和退票系统,要求系统具有以下功能: (1) 订票:若该航次余票大于等于乘客订票数,则在该航次的乘客表中,插入订票乘客的信息项,并修改该航次有关数据,否则给出相应信息. (2) 退票:若该航次当前退票数小于等于乘客原订票数,则在相应的乘客表中找到该乘客项,修改该航次及乘客表中有关数据:当某乘客由于退票使订票数为零时,则从乘客表中撤消该数据项. 要求: (1)描述对航次表和乘客表选用

  • C语言实现航空订票系统课程设计

    本文实例为大家分享了C语言实现航空订票系统的具体代码,供大家参考,具体内容如下 大一写的时候没有写注释,后来也懒得加了.在这里说一下读写文件的思路吧. 就是利用二进制将一整个结构体中的数据存入文件,然后读取文件时再用二进制的形式将结构体中的数据读取出来,边读取边创建链表,将结构体中的数据保存到链表中. 以下代码可直接复制粘贴就能运行,绝对是新手的好福利! 如果有第一次写这种大作业不知道如何下手,但又不想直接复制粘贴,想搞清楚这个代码的原理的可以私信我,毕竟我当时也第一次写这种大作业时也很苦恼(我

  • Java实现电影院订票系统代码

    程序是为了方便用户使用的,因此实现图形化界面的程序编写是所有编程语言发展的必然趋势...但是由于时间原因,小编并未在代码中添加可视化图形界面,有兴趣的朋友可自行添加. 可参阅:Java图形化界面设计之容器(JFrame)详解 演示结果: 下面是具体实现代码: public class Test { public static void main(String[] args) { BookTicket bookTicket = new BookTicket(); bookTicket.init()

  • Python利用多线程同步锁实现多窗口订票系统(推荐)

    利用Python实现多窗口订票系统,利用 threading.Lock() 避免出现一票多卖,无票也卖的情况,并规范化输出情况. 代码: import threading import time tickets, lock = 20, threading.Lock() class TicketWindows(threading.Thread): def __init__(self, window_name): threading.Thread.__init__(self) self.window

  • C语言实现航班订票系统

    本文实例为大家分享了C语言实现航班订票系统的具体代码,供大家参考,具体内容如下 描述: 点定义两个链表,一个存储航班信息,一个存储客户信息: 进行一系列简单的增删查找: 代码如下 #include<cstdio> #include<cstring> #include<iostream> #include<cstdlib> using namespace std; const int MAXN=250; typedef struct { string p_id

  • 利用Python实现电影订票系统

    目录 一.效果展示 二.整体结构图 三.代码分解 3.1infos.py 3.2seat_book.py 3.3film_selector.py 3.4main.py 一.效果展示 通过Python实现一个电影订票系统,效果如下图所示: 二.整体结构图 三.代码分解 3.1 infos.py 一部电影的详细信息适合用 字典 结构来存储,我们可以给字典里添加多个键值对来保存电影的名称.座位表和宣传时用的字符画,比如电影<泰坦尼克号>的详细信息就可以按下面的形式保存到字典 titanic 中: i

  • C语言实现火车订票系统

    本文实例为大家分享了C语言实现火车订票系统的具体代码,供大家参考,具体内容如下 程序介绍 1.运行程序时,首先进入到菜单部分,菜单部分提供了菜单显示和输入功能部分.其运行效果如图所示.在主界面上输入数字0——6,实现相应的功能. 2.主界面输入“1”,进入添加火车信息界面,如图所示.根据屏幕上给出的提示输入火车的车次,起点,终点,出发时间,到达时间,票价和可以订购的票数. 3.主界面输入“2”,可以查询火车信息,可以选择查询的方法有两种,一种是按照车次查询,一种是按照你想要到达的地方查询,运行效

随机推荐