C语言实现铁路订票系统

我们可以使用C编程语言来实现铁路订票系统。这与我们在网上预订车票时所看到的流程是一样的。在使用该软件预订火车票时,我们将遵循以下一系列步骤——

  • 输入乘客信息:第一步是提供乘客的总人数,并提交所有必要的乘客详细信息。
  • 输入行程:下一步是输入出发地和目的地。
  • 选择列车:系统将显示可用列车列表。我们需要从中选择一趟列车。
  • 选座与支付:系统将计算票价,并通过显示座位矩阵来询问座位选择。最后,屏幕上会生成一张收据。

实现思路:

  • 第一步是实现一个结构体,用于存储乘客的详细信息,例如姓名、性别和年龄。
  • 我们定义了五个函数来保证系统的流畅运行:INLINECODE034c850e、INLINECODE24cd7090、INLINECODEef27b8ab、INLINECODEe443e504 和 void bill(int, int)
  • 结构体中包含三个元素:两个字符串(分别用于存储乘客姓名和性别)和一个整型(用于存储乘客年龄)。此外,我们将使用一个结构体指针,它有助于链接到下一个乘客的节点。这与链表的概念相似。
  • 我们定义了字符数组,并在全局范围内定义了一些整型数组。
  • 接收乘客人数作为输入,并将这些详细信息发送给 details() 函数
  • 执行一个 for 循环来接收每位乘客的详细信息。用户输入的详细信息将被发送到 add_node() 函数。
  • add_node 函数中,每个细节都将存储在一个对应乘客的节点中。这些节点将相互链接。这是基于链表概念的。
  • 接收出发地、目的地的输入,系统将给出一些可用的列车选择。基于此,用户需要做出选择。然后调用 cal() 函数
  • cal() 函数中,用户需要在卧铺或空调等级之间做出选择。如果用户选择空调等级,将打开另外三个选项,用户需要再次进行选择。系统将基于此对金额加收 18% 的 GST(商品及服务税),并计算总金额。
  • 调用 seat() 函数,其中将向用户显示座位矩阵,用户必须选择与乘客数量相同的座位。
  • 最后,调用 bill() 函数,屏幕上将显示包含所有必要详细信息的总账单金额。

下面是上述思路的实现代码:

// 用于上述方法的C程序
#include 
#include 
#include 
#include 

// 定义结构体
typedef struct mynode {
    char name[20];
    char gen[6];
    int age;
    struct mynode* link;
} Node;

Node* start = NULL;

void details(int);
int seat(int);
int cal(int, int, int);
void bill(int, int);

// 全局变量
char source[20], des[20], train[40];
char station[40], cla[40];
int time1, time2, a[55];

// 主驱动代码
void main()
{
    int i, j, a1, a2, b, c, int x = 0, d, e, r;
    char o;
    printf("请输入乘客人数: ");
    fflush(stdin);
    scanf("%d", &j);

    // 调用 details() 函数,
    // 参数为乘客人数
    details(j);
    printf("请输入出发地: ");
    fflush(stdin);
    gets(source);
    printf("请输入目的地: ");
    gets(des);
    printf("\t\t以下列车可用.....
");
    printf("\t\t1. Rajdhani Express.."
           ".......10:00 "
           "a.m........Sealdah Station
");
    printf("\t\t2. Satabdi Express..."
           ".......05:00 "
           "p.m........Howrah Station
");
    printf("\t\t3. Humsafar Express..."
           ".......11:00 "
           "p.m........Kolkata Chitpur"
           " Station
");
    printf("\t\t4. Garib-Rath Express"
           ".........05:00 "
           "p.m........Sealdah Station
");
    printf("\t\t5. Duronto Express..."
           ".........07:00 "
           "a.m.........Santraganchi"
           "Station
");
    scanf("%d", &i);
    do {
        switch (i) {
        case 1: {
            strcpy(train,
                   "Rajdhani Express");
            strcpy(station,
                   "Sealdah Station");
            time1 = 10;
            time2 = 00;
            a1 = 2099;
            a2 = 1560;

            // 调用 cal() 函数
            // 传入三个参数
            // 并接收返回值
            d = cal(a1, a2, j);
            printf("总账单金额:"
                   " %d
",
                   d);
        }; break;
        case 2: {
            strcpy(train,
                   "Satabdi Express");
            strcpy(station,
                   "Howrah Station");
            time1 = 05;
            time2 = 0
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。如需转载,请注明文章出处豆丁博客和来源网址。https://shluqu.cn/53909.html
点赞
0.00 平均评分 (0% 分数) - 0