# 航班管理系统 **Repository Path**: dys168/flight-management-system ## Basic Information - **Project Name**: 航班管理系统 - **Description**: 该系统基于C/C++语言开发,用户数据采用单链表存放,航班信息采用双向循环链表增加效率,原始数据采用随机数进行随机生成。数据采用文件IO进行保存和读取。交互界面使用Incursesw库进行开发,音频提示使用SDL2库。开发功能有注册、登录、找回密码,管理员可以对用户信息和航班信息进行增删改查,用户划分为四个会员等级,享有购票、查票、退票、查询中转站以及我的订单功能。 - **Primary Language**: C - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-08-14 - **Last Updated**: 2024-10-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README 该系统基于C/C++语言开发,用户数据采用单链表存放,航班信息采用双向循环链表增加效率,原始数据采用随机数进行随机生成。数据采用文件IO进行保存和读取。交互界面使用Incursesw库进行开发,音频提示使用SDL2库。开发功能有注册、登录、找回密码,管理员可以对用户信息和航班信息进行增删改查,用户划分为四个会员等级,享有购票、查票、退票、查询中转站以及我的订单功能。 开发语言:C语言、shell、Makefile 开发环境:ubuntu16.04、vscode、git 编译环境: gcc 5.4.0 # 功能架构图 ![输入图片说明](%E9%A1%B9%E7%9B%AE%E6%A1%86%E6%9E%B6.png) # 文件架构 ``` flight_system/ ├── include/ │ ├── user.h // 用户相关结构体和函数声明 │ ├── admin.h // 管理员相关操作函数声明 │ ├── flight.h // 航班相关结构体和函数声明 │ ├── list.h // 链表操作相关函数声明 │ ├── dlist.h // 双向循环链表操作相关函数声明 │ ├── array.h // 顺序表操作相关函数声明 │ ├── utils.h // 公用工具函数声明 | ├── head.h // 包含所有头文件 | ├── System.h // 系统界面相关函数声明 │ └── ui.h // 终端 UI 界面相关函数声明 ├── src/ │ ├── main.c // 主程序入口 │ ├── user.c // 用户功能实现 | ├── admin.h // 管理员功能实现 │ ├── flight.c // 航班功能实现 │ ├── list.c // 链表操作实现 │ ├── dlist.c // 双向循环链表操作实现 │ ├── array.c // 顺序表操作实现 │ ├── utils.c // 公用工具函数实现 │ ├── ui.c // 终端 UI 界面实现 | ├── System.c // 系统菜单界面实现 | └── Plane.c // 飞机加载动画界面实现 ├── data/ │ ├── users.txt // 用户数据文件 │ ├── regular_users.txt // 普通用户数据文件 │ ├── silver_members.txt // 白银用户数据文件 │ ├── gold_members.txt // 黄金用户数据文件 │ ├── platinum_members.txt // 白金用户数据文件 | ├── flights.txt // 航班信息数据文件 │ └── ticket.txt // 用户订单数据文件 ├── img/ │ └── 项目功能图.png // 项目功能图 |── media/ // BGM存放目录 |── log/ // 系统报错日志文件 └── README.md // 项目说明文档 ``` # 功能介绍 ### 登录模块 #### 登录 通过文件读取获取已有用户数据,根据用户输入的账号去进行查找,可以自动实现,判定登陆的用户等级,若成功找到则校验密码是否正确。若用户名和密码累计输入超过 3 次,则会限制用户输入,需要重新等待 3 秒输入。 #### 注册 只能注册普通用户,初始金额为 0。 用户注册前会根据文件中的数据校验用户名是否重复才能进行后续注册。用户进行注册功能完成对基本信息的填写,填写完成后重新登录。 #### 找回密码 用户可以通过手机号去对密码进行找回,找到之后需要通过此账号绑定的手机号码进行校验,校验成功后重新登录 #### 退出系统 ### 管理员模块 #### 用户管理 管理员的用户管理有对会员等级升级、注销用户账号、查询用户信息、修改用户信息四个功能,其中会员升级在4种会员等级中仅限于升一级。 ##### 增加航班 管理员通过完善航班信息增加新的航班 ##### 修改航班 管理员可以通过航班班次找到唯一的航班信息,并修改其除航班班次以外的信息 ##### 个人信息 管理员可以修改自己的基本信息 ##### 退出登录 ### 用户模块 #### 浏览航班信息 用户进入浏览航班信息大屏,会随机滚动播放15条航班信息 ,用户可以选择根据班次和票价两种方式对航班信息进行排序。 #### 预定航班 用户从键盘中输入飞行起点和终点后,显示两地之间的所有班次信息,用户可以根据航班班次来进行购买,购买时会判断用户余额是否充足、是否有剩余座位,是否起飞。购买完成后,修改相关的余额、票数、座位等信息。 #### 退订航班 通过用户的账号查询到此此账号所关联的所有机票,通过用户指定的航班班次进行退票,退款,剩余航班座位量的增加。 #### 余额充值 显示用户当前的余额,用户从键盘输入进行充值,当充值达到 - 10000 银卡会员信息文件(9折) - 15000 金卡会员信息文件(8折) - 20000 白金会员信息文件(7折) #### 我的订单 用户通过我的订单可以查询到自己的全部购买记录 #### 个人中心 显示用户的用户名、密码、性别、等级、手机号等所有个人信息,并选择相应的信息进行修改 #### 退出登录