c语言,说明飞机订票系统,#include <stdio.h> #include <stdlib.h> #include <string.h> #include "datatype.h" BOOL datecmp(DATE* date1, DATE* date2) { return (date1->m_year == date2->m_year && date1->m_month == date2->m_month && date1->m_day == date2->m_day); } BOOL timecmp(TIME* time1, TIME* time2) { return (time1->m_hour == time2->m_hour && time1->m_min == time2->m_min); } void ClearBuffer(void) { getchar(); } void ReadFlight(FLIGHT fltlist[]) { FILE *fp; if ((fp = fopen("flight.dat", "rb")) != NULL) fread(fltlist, sizeof(FLIGHT), 40, fp); else { int i; for (i = 0; i < 40; i++) fltlist[i].m_fltno = -1; } fclose(fp); } void ReadPassenger(PNODE psglist) { FILE *fp; if ((fp = fopen("psg.dat", "rb")) == NULL) psglist->next = NULL; else { int i, n; fread(&n, sizeof(int), 1, fp); for (i = 0; i < n; i++) { PASSENGER psg; fread(&psg, sizeof(PASSENGER), 1, fp); AddPassenger(psglist, &psg); } } } BOOL AddFlight(FLIGHT fltlist[], PFLIGHT fltdata) { int i; BOOL bResult = FALSE; for (i = 0; i < 40; i++) { if (fltlist[i].m_fltno == -1) { memcpy(&fltlist[i], fltdata, sizeof(FLIGHT)); bResult = TRUE; break; } } return bResult; } void DelFlight(FLIGHT fltlist[], int index) { fltlist[index].m_fltno = -1; } void AddPassenger(PNODE psglist, PPASSENGER psgdata) { PNODE p, q; for (p = psglist; p->next != NULL; p = p->next) ; q = NEW(NODE, 1); memcpy(&q->m_psg, psgdata, sizeof(PASSENGER)); q->next = NULL; p->next = q; } BOOL DelPassenger(PNODE psglist, int index) { int i = 0; PNODE p, q; for (p = psglist->next; p->next != NULL; p = p->next) i++; if (p != NULL && i == index - 1) { q = p->next; p->next = q->next; free(q); return TRUE; } else return FALSE; } void ClearPsgList(PNODE psglist) { PNODE p = psglist->next, q; while (p != NULL && p->next != NULL) { q = p; p = p->next; free(q); } } unsigned int GetPsgCount(PNODE psglist) { PNODE p; unsigned int s = 0; for (p = psglist->next; p != NULL; p = p->next) s++; return s; } 【飞机订票系统】是一个基于C语言开发的软件,用于管理航班信息以及乘客购票操作。系统的核心功能包括读取和写入航班数据、乘客数据,以及进行航班信息的增删查改、订票和退票操作。以下是系统中涉及的关键知识点: 1. 数据结构: - 结构体(Struct):`DATE` 和 `TIME` 结构体用于存储日期和时间信息,而 `FLIGHT` 结构体包含了航班号、起止日期、起飞和降落时间等信息。`PNODE` 和 `PASSENGER` 结构体则用于表示乘客链表节点和乘客信息。 - 链表:系统使用链表存储乘客信息,方便添加和删除乘客数据。 2. 文件操作: - 读写文件:通过 `fopen()`、`fclose()`、`fread()` 和 `fwrite()` 函数来读取和写入航班及乘客数据文件,如 "flight.dat" 和 "psg.dat"。 - 数据序列化:将结构体对象的数据写入文件时,使用 `sizeof()` 函数确定数据大小,以便正确地读取和写入。 3. 数据比较: - `datecmp()` 和 `timecmp()` 函数分别用于比较两个日期和时间是否相等,它们在处理航班信息时很有用,比如查找特定日期或时间的航班。 4. 缓冲区清理: - `ClearBuffer()` 函数使用 `getchar()` 清除输入缓冲区中的剩余字符,防止输入数据的干扰。 5. 功能函数: - `ReadFlight()` 和 `ReadPassenger()` 函数读取航班和乘客数据,并将它们加载到内存中的结构体数组或链表。 - `AddFlight()` 和 `DelFlight()` 分别用于在航班数组中添加或删除一个航班。 - `AddPassenger()` 在乘客链表末尾添加新的乘客信息。 - `DelPassenger()` 删除指定索引位置的乘客。 - `ClearPsgList()` 清空乘客链表。 - `GetPsgCount()` 计算链表中乘客的数量。 6. 用户界面: - 系统提供了一个简单的命令行用户界面,用户可以选择不同的操作(如输入航班信息、查看航班、订票等)。 - 输入验证:例如,使用 `strcmp()` 检查用户输入的密码是否正确。 - 循环结构:使用 `do-while` 循环来持续接收用户输入,直到用户选择退出。 7. 业务逻辑: - 航班信息的输入、输出、修改、查找和删除都是基于结构体数组实现的,而乘客信息则是通过链表操作实现的,这体现了数据结构在实际应用中的重要性。 - 订票和退票功能涉及对乘客链表的操作,需要在链表中找到合适的节点进行插入或删除。 这个飞机订票系统虽然简单,但它演示了如何使用C语言处理实际问题,包括文件操作、数据结构和基本的用户交互,是学习C语言编程的一个良好示例。
剩余17页未读,继续阅读
- 粉丝: 0
- 资源: 1
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Python项目-自动办公-02 批量生成PPT版荣誉证书.zip
- 2025年十大战略技术趋势-Gartner-2024-27页.pdf
- tsn-imagenet-pretrained-r50-8xb32-1x1x8-100e-kinetics400-rgb-20220906-2692d16c.pth
- Python项目-实例-21 音乐播放器.zip
- 2010-2023年中国地级市绿色金融试点DID数据
- dpdk源码,高性能的网络驱动
- tsn-imagenet-pretrained-r50-8xb32-dense-1x1x5-100e-kinetics400-rgb-20220906-dcbc6e01.pth
- 对matplotlib进行介绍
- cmake-3.30.5.tar.gz
- 有监督的学习-线性回归.ipynb