蓝桥杯第七十六天~第七十七天

《程序设计基础课程设计》

一、课程设计题目及内容

程序名称:飞机订票系统

功能要求:假定民航机场共有n个航班,每个航班有一航班号、确定的航线(起始站、终点站)、确定的飞行时间(星期几)和一定的成员订额。

 二、主要设计思路

以链表作为数据结构存储航班等信息,然后围绕链表编写一些函数来实现一堆功能

定义一个全局范围内的头节点,然后在其他子函数中可以进行链表数据的遍历,存储信息,查找,删除等功能

能够在录入的同时将航班信息打印到文件中

  • 程序结构分析

本次飞机订票系统导入了除基本库函数预处理命令<stdio.h>外的两个预处理命令,定义一个符号常量,两个结构体(航班信息和乘客信息),一个全局变量,七个自定义子函数,分别实现主菜单界面,录入信息,写入文件,显示信息,查询信息,订票,退票等功能

四、程序源码及注释

  1. 预处理命令

导入<stdlib.h>调用malloc动态分配函数

基本结构 (指针数据类型)malloc (数据类型字节大小)

导入<string.h>调用strcmp函数进行对链表指定元素的查询,如在find函数里查找指定航班号,遍历链表,用strcmp函数进行匹配查找

基本结构 strcmp(字符串1,字符串2)  如果相等返回0值,否则返回-1

定义符号常量为指定的文件地址

  1. 结构体定义

航班信息结构体TIC定义

结构体内包含基本的一些航班属性,以及一个同类型的指向下一个节点的指针

乘客信息结构体

PAS定义

  1. 全局变量

全局的头节点变量,可以在所有的自定义里函数自由使用

  1. 函数声明
  1. main函数定义

在初始时定义一个整型变量,记录下用户输入的数字,通过一个死循环来实现与用户的互动,通过switich...case 选择结构执行相关的功能,当用户退出系统时,return带回一个0值让循环终止

  1. 自定义子函数定义
  1. .menu函数

通过基本的printf函数打印基本的菜单栏视图,用来提示用户使用基本功能

  1. .add函数

定义一个接受信息的节点,并通过malloc函数动态分配一块内存,提示用户输入航班的各个基本信息,然后从头节点开始判断节点内是否有值,如果没有则将接收到信息赋值给该节点,不断遍历直至链表结束

  1. .write函数

定义一个文件类型的指针,打开对应文件,如果文件地址为空则退出并提示重新输入,文件访问类型为追加“at+”,写入信息不会覆盖之前写入的信息

定义一个p节点,让其等于head,然后从头节点开始用fprintf函数遍历将信息写入文件,执行操作完成后用fclose函数关闭文件

  1. .display函数

定义一个p节点,让其等于head,然后从头节点开始将节点信息输出打印

  1. .find函数

定义一个choice选择变量,让用户选择查询方式,然后执行不同的查询方法

定义两个节点,分别进行从头节点开始的遍历,利用strcmp函数匹配对应的字符串信息,如果带回值则查询成功,输出当前节点的航班信息,如果没有查到指定航班信息,提示用户查询失败

  1. .book函数

定义一个乘客类型的结构体指针,提示用户输入个人的基本信息进行购票,输入完成后

显示目前所有的航班信息,提示用户输入要购买的航班号,用户输入后提示用户购买成功

定义一个p节点从头节点开始遍历,然后匹配到对应购买的航班号后将对应的剩余票数减一,然后输出对应信息

  1. .refund函数

定义一个char类型的confirm变量,询问用户是否确认退票,如果接收到y,让用户输入要退订的航班号,从头节点开始遍历,匹配到对应要退订的航班号后,将对应剩余票数加一,如果接收到n,提示用户退票成功

运行实例

1.录入两组航班信息并显示(控制台显示和文件显示)

  1. 查询指定航班

航班号查询

终点站查询

3.购买机票

4.退订机票

  1. 退出系统
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值