C语言火车订票系统开发

这是一个使用C语言编写的火车订票系统,包括添加火车信息、查询、订票、修改、显示所有信息和保存数据等功能。用户通过菜单选择操作,系统提供直观的交互界面。
摘要由CSDN通过智能技术生成

C语言火车订票系统开发

程序介绍

1.运行程序时,首先进入到菜单部分,菜单部分提供了菜单显示和输入功能部分。其运行效果如图所示。在主界面上输入数字0——6,实现相应的功能。

在这里插入图片描述
2.主界面输入“1”,进入添加火车信息界面,如图所示。根据屏幕上给出的提示输入火车的车次,起点,终点,出发时间,到达时间,票价和可以订购的票数。
在这里插入图片描述
3.主界面输入“2”,可以查询火车信息,可以选择查询的方法有两种,一种是按照车次查询,一种是按照你想要到达的地方查询,运行效果如图所示。
在这里插入图片描述
4.当在主界面输入“3”时,进入订票界面,按照提示输入你想要到达的城市,会自动显示出你终点站为你输入城市的信息,根据提示输入你是否决定订票以及你的个人信息,运行效果如图所示。
在这里插入图片描述
5.当在主界面输入“4”时,进入修改界面,根据提示输入你要修改的内容,修改模块的运行效果如图所示。
在这里插入图片描述

6.当在主界面输入“5”时,可以显示出所有的火车信息,显示模块效果如图所示。
在这里插入图片描述
7.当在主界面输入“6”时,进入到保存模块,将录入的火车信息进行保存,并且将订票人的信息也进行保存,存储在指定的磁盘文件中。运行效果如图所示。
在这里插入图片描述

代码

#include <conio.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <dos.h>
#define HEADER1 " -------------------------------BOOK TICKET----------------------------------\n"
#define HEADER2 " |  number  |start city|reach city|takeofftime|receivetime|price|ticketnumber|\n"
#define HEADER3 " |----------|----------|----------|-----------|-----------|-----|------------|\n"
#define FORMAT  " |%-10s|%-10s|%-10s|%-10s |%-10s |%5d|  %5d     |\n"
#define DATA p->data.num,p->data.startcity,p->data.reachcity,p->data.takeofftime,p->data.receivetime,p->data.price,p->data.ticketnum
int saveflag=0 ;
/*定义存储火车信息的结构体*/
struct train 
{
   
    char num[10];/*列车号*/
    char startcity[10];/*出发城市*/
    char reachcity[10];/*目的城市*/
    char takeofftime[10];/*发车时间*/
    char receivetime[10];/*到达时间*/
    int  price;/*票价*/
    int  ticketnum ;/*票数*/
};
/*订票人的信息*/
struct man 
{
   
    char num[10];/*ID*/
    char name[10];/*姓名*/
    int  bookNum ;/*订的票数*/
};
/*定义火车信息链表的结点结构*/
typedef struct node 
{
   
    struct train data ;
    struct node * next ;
}Node,*Link ;
/*定义订票人链表的结点结构*/
typedef struct Man 
{
   
    struct man data ;
    struct Man *next ;
}book,*bookLink ;
/* 初始界面*/
void menu()
{
   
    puts("\n\n");
    puts("\t\t|------------------------------------------------------|");
    puts("\t\t|                   Booking Tickets                    |");
    puts("\t\t|------------------------------------------------------|");
    puts("\t\t|       0:quit the system                              |");
    puts("\t\t|       1:Insert a train information                   |");
    puts("\t\t|       2:Search a train information                   |");
    puts("\t\t|       3:Book a train ticket                          |");
    puts("\t\t|       4:Modify the train information                 |");
    puts("\t\t|       5:Show the train information                   |");
    puts("\t\t|       6:save information to file                     |");
    puts("\t\t|------------------------------------------------------|");
}
/*添加一个火车信息*/
void Traininfo(Link linkhead)
{
   
    struct node *p,*r,*s ;
    char num[10];
    r = linkhead ;
    s = linkhead->next ;
    while(r->next!=NULL)
    r=r->next ;
    while(1)
    {
   
        printf("please input the number of the train(0-return)");
        scanf("%s",num);
        if(strcmp(num,"0")==0)
          break ;
        /*判断是否已经存在*/
        while(s)
        {
   
            if(strcmp(s->data.num,num)==0)
            {
   
                printf("the train '%s'is existing!\n",num);
                return ;
            }
            s = s->next ;
        }
        p = (struct node*)malloc(sizeof(struct
  • 15
    点赞
  • 75
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值