已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
火车票务管理系统 第 1 页 共 30 页 一 课题内容和要求课题内容和要求 设计目标 设计一个火车票务管理系统 用 C 语言实现 对该系统的要求如下 需求描述 1 系统功能 1 火车时刻信息录入 包括车次 日期 起点 终点 开车时间 到 达时间 票价 数据存入数据文件 hchsk dat 或 hchsk txt 中 2 火车时刻信息查询 按照车次查询 按终点查询 按起点查询 按终点和日期查询 3 统计 按终点统计每日的车次数 按起点统计每日的车次数 2 系统主界面应有以下功能选项 录入火车时刻信息 查询火车时刻信息 统计火车车次 退出 注 建议用 VC 环境开发用户界面 结果形式 提交程序设计报告和可演示的系统软件 二 二 需求分析需求分析 系统主界面应有以下功能选项 录入火车时刻信息 查询火车时刻信息 统计火车车次 退出 1 火车时刻信息录入 包括车次 日期 起点 终点 开车时间 到 火车票务管理系统 第 2 页 共 30 页 达时间 票价 数据存入数据文件 hchsk dat 或 hchsk txt 中 2 火车时刻信息查询 按照车次查询 按终点查询 按起点查询 按终点和日期查询 3 统计 按终点统计每日的车次数 按起点统计每日的车次数 在该部分中叙述每个模块的功能要求 三 三 概要设计概要设计 头文件 include include include 函数声明 int MENU 菜单模块 void INPUT 输入模块 void SEARCH 查询模块 void SELECT 统计模块 void WRITE 文件记录模块 void PRINT 打印模块 void READ 文件读取模块 void WRONG 纠错模块 宏定义 define N 1000 最大列车组数 define Print s 13s 10s 10s 12s 15s 11s n T i code T i data T i lp T i ap T i lt T i at T i price 输出记录格式 火车票务管理系统 第 3 页 共 30 页 define Wrong n 输入错误 请重新输 入 n define GeShi 车次 日期 起点 终点 开车 时间 到达时间 票价 n 输出表头 结构定义 struct Train char code 10 车次 char data 10 日期 char lp 10 left place 起点 char ap 10 arrive place 终点 char lt 10 left time 开车时间 char at 10 arrive time 到达时间 char price 10 票价 T N 全局变量 int i 0 输入计数器 int n 0 合计计数器 char l 20 纠错空间 四 详细设计四 详细设计 头文件 include include include 函数声明 int MENU 菜单模块 void INPUT 输入模块 void SEARCH 查询模块 void SELECT 统计模块 火车票务管理系统 第 4 页 共 30 页 void WRITE 文件记录模块 void PRINT 打印模块 void READ 文件读取模块 void WRONG 纠错模块 宏定义 define N 1000 最大列车组数 define Print s 13s 10s 10s 12s 15s 11s n T i code T i data T i lp T i ap T i lt T i at T i price 输出记录格式 define Wrong n 输入错误 请重新输入 n define GeShi 车次 日期 起点 终点 开车时间 到达时间 票价 n 输出表头 结构定义 struct Train char code 10 车次 char data 10 日期 char lp 10 left place 起点 char ap 10 arrive place 终点 char lt 10 left time 开车时间 char at 10 arrive time 到达时间 char price 10 票价 T N 全局变量 int i 0 输入计数器 int n 0 合计计数器 char l 20 纠错空间 火车票务管理系统 第 5 页 共 30 页 主函数 int main int x do x MENU switch x case 1 INPUT break case 2 SEARCH break case 3 SELECT break case 4 printf n printf n 正在退出 请按任意键退 出 printf n n 阿哈工作室出品 B printf n n break default WRONG break while x 4 return 0 菜单模块 int MENU 火车票务管理系统 第 6 页 共 30 页 int choice system cls 借鉴而来的清屏语句 好用 printf n n printf n printf n printf 欢迎进入火车票务管理系统 n printf n printf n printf n n printf n 请输入选项 n printf 1 录入火车时刻信息 n printf 2 查询火车时刻信息 n printf 3 统计火车车次 n printf 4 退出 n printf n printf 请选择 scanf d gets l return choice 火车票务管理系统 第 7 页 共 30 页 输入模块 void INPUT char ch do system cls 借鉴而来的清屏语句 好用 printf n n 欢迎进入 录入火车时刻信息 界面 n do printf n 新建列车信息 y n scanf c gets l if ch y while ch y if ch n break printf printf n 录入第 d 趟列车信息 n n 1 printf 车次 gets T i code printf 日期 gets T i data printf 起点 gets T i lp 火车票务管理系统 第 8 页 共 30 页 printf 终点 gets T i ap printf 开车时间 gets T i lt printf 到达时间 gets T i at printf 票价 gets T i price n i while i N WRITE system cls 借鉴而来的清屏语句 好用 printf n printf n printf 系统记载的列车信息如下 n printf n n PRINT 文件记录模块 void WRITE FILE fp fp1 if fp fopen hchsk txt w NULL 火车票务管理系统 第 9 页 共 30 页 printf 无法创建文件 n n getchar return if fp1 fopen N txt w NULL 用于记录共几趟车 printf 无法创建文件 n getchar return for i 0 i n i if fwrite fprintf fp1 d n fclose fp fclose fp1 文件读取模块 void READ FILE fp fp1 if fp fopen hchsk txt r NULL printf 无法打开文件 n getchar return if fp1 fopen N txt r NULL 火车票务管理系统 第 10 页 共 30 页 printf 无法打开文件 n n getchar return fscanf fp1 d fclose fp1 for i 0 i n i fread fclose fp 打印模块 void PRINT char ch 10 READ printf n n printf GeShi for i 0 i n i printf Print printf n printf n 按任意键返回上级菜单 火车票务管理系统 第 11 页 共 30 页 gets ch 查询模块 void SEARCH char name1 10 车次 char name2 10 终点 char name3 10 起点 char name41 10 终点 char name42 10 日期 char choice int j int k do system cls 借鉴而来的清屏语句 好用 printf n n 欢迎进入 查询火车时刻信 息 界面 n printf n 请选择查找方式 n n printf 1 显示所有列车信息 2 按车次查询 3 按终点查询 n printf 4 按起点查询 5 按终点和日期查询 6 返回上级菜单 n printf n 请选择 scanf d gets l switch j 火车票务管理系统 第 12 页 共 30 页 case 1 PRINT break case 2 printf n 请输入车次 gets name1 break case 3 printf n 请输入终点 gets name2 break case 4 printf n 请输入起点 gets name3 break case 5 printf n 请输入终点 gets name41 printf n 请输入日期 gets name42 break case 6 break default WRONG break READ 火车票务管理系统 第 13 页 共 30 页 k 0 if j 2 for i 0 i n i if strcmp T i code name1 0 printf n 按 车次 查找 列车信息成功 n printf n n printf GeShi break for i 0 i 共查询到 d 趟列车信息 请按 任意键返回 k 火车票务管理系统 第 14 页 共 30 页 gets l if j 3 for i 0 i n i if strcmp T i ap name2 0 printf n 按 终点 查找 列车信息成功 n printf n n printf GeShi break for i 0 i 共查询到 d 趟列车信息 请按 火车票务管理系统 第 15 页 共 30 页 任意键返回 k gets l if j 4 for i 0 i n i if strcmp T i lp name3 0 printf n 按 起点 查找 列车信息成功 n printf n n printf GeShi break for i 0 i 共查询到 d 趟列车信息 请按 任意键返回 k gets l if j 5 for i 0 i n i if strcmp T i ap name41 0 printf n n printf GeShi break for i 0 i 共查询到 d 趟列车信息 请按 任意键返回 继续查找 1 返回主 菜单 2 choice getchar gets l if choice 1 while choice 1 while choice 2 统计模块 void SELECT char name1 10 终点 char name2 10 起点 int t k char choice do 火车票务管理系统 第 18 页 共 30 页 system cls printf n n 欢迎进入 统计火车车次 界 面 n printf n 请选择统计方式 n n printf 1 按终点统计每日的车次数 n printf 2 按起点统计每日的车次数 n printf n 请选择 scanf d gets l switch t case 1 printf 请输入终点 gets name1 break case 2 printf 请输入起点 gets name2 break default WRONG break READ if t 1 k 0 for i 0 i n i 火车票务管理系统 第 19 页 共 30 页 if strcmp T i lp name1 0 printf n 按 终点 统计 列车信息成功 n break for i 0 i 共查询到 d 趟列车信息 请按 任意键返回 k gets l if t 2 k 0 for i 0 i n i if strcmp T i lp name2 0 printf n 按 起点 统计 列车信息成功 n break 火车票务管理系统 第 20 页 共 30 页 for i 0 i 共查询到 d 趟列车信息 请按 任意键返回 继续统计 1 返回主 菜单 2 输入错误 请按任意键返回 gets l 火车票务管理系统 第 21 页 共 30 页 五 测试数据及其结果分析五 测试数据及其结果分析 1 菜单模块 选择 界面 1 菜单模块 退出 火车票务管理系统 第 22 页 共 30 页 2 输入模块 2 输入完毕 火车票务管理系统 第 23 页 共 30 页 3 查询模块 3 查询模块 1 火车票务管理系统 第 24 页 共 30 页 3 查询模块 2 3 查询模块 3 火车票务管理系统 第 25 页 共 30 页 3 查询模块 4 3 查询模块 5 火车票务管理系统 第 26 页 共 30 页 3 查询模块 询问 3 查询模块 失败 火车票务管理系统 第 27 页 共 30 页 4 统计模块 1 4 统计模块 2 火车票务管理系统 第 28 页 共 30 页 4 统计模块询问 出错提示 火车票务管理系统 第 29 页 共 30 页 六 调试过程中的问题六 调试过程中的问题 实验中遇到的问题不少 有以下几点 1 本来一开始做程序时候想使用模块化的 但因外部变量总要声明的缘故 被取消 2 对于需要选择的时候 比如在菜单模块中 如果键入一些非正常的字符 就会是系统出错无法运行 因此 我加入了纠错模块 WRONG 3 在输出格式上面很难控制 几经调试才最后成功 并且引入宏 define Print 加以控制 4 在结构定义时本想引入动态空间加以控制 但因不好控制最终定义为 define N 1000 5 最难得在与数据的写入与读取 WRITE READ 最后为了保证准确记 录列车的趟数不得不加入了文件 N fp1 同时 由于在 for
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年清远辅警招聘考试题库及答案详解(有一套)
- 2025年黔西南州辅警招聘考试题库含答案详解
- 2025年铜川辅警招聘考试题库附答案详解(轻巧夺冠)
- 2025年连云港辅警招聘考试真题含答案详解(b卷)
- 2025年辖县辅警协警招聘考试真题含答案详解(a卷)
- 2025年运城辅警协警招聘考试备考题库有完整答案详解
- 2025年漯河辅警招聘考试题库及参考答案详解一套
- 2025年辽源辅警招聘考试真题及答案详解(必刷)
- 2025年辽阳辅警招聘考试真题含答案详解(培优b卷)
- 2025年濮阳辅警协警招聘考试备考题库及一套完整答案详解
- 肉羊高效养殖技术-成教学院
- 绵阳市促进低空经济高质量发展行动方案
- 公司超额运费管理办法
- 心房颤动诊疗中国专家共识
- 学堂在线 大国航母与舰载机 章节测试答案
- 物业管理耗材采购清单及限价
- 华润物业住宅管理办法
- 2025年全国大学生数学建模大赛试题及答案
- 胸外科常见管道的护理
- DL-T 5022-2023 发电厂土建结构设计规程
- 契税法宣传课件
评论
0/150
提交评论