航班订票系统设计课程设计论文.doc

上传人:yyf 文档编号:3961999 上传时间:2019-10-11 格式:DOC 页数:55 大小:1.15MB
返回 下载 相关 举报
航班订票系统设计课程设计论文.doc_第1页
第1页 / 共55页
航班订票系统设计课程设计论文.doc_第2页
第2页 / 共55页
航班订票系统设计课程设计论文.doc_第3页
第3页 / 共55页
航班订票系统设计课程设计论文.doc_第4页
第4页 / 共55页
航班订票系统设计课程设计论文.doc_第5页
第5页 / 共55页
点击查看更多>>
资源描述

《航班订票系统设计课程设计论文.doc》由会员分享,可在线阅读,更多相关《航班订票系统设计课程设计论文.doc(55页珍藏版)》请在三一文库上搜索。

1、航班订票系统 数据结构课程设计 报 告设计题目: 航班订票系统 专 业: 信息管理与信息系统学生姓名: 班级学号: 分组成员: 指导教师: 2013 年 12月 27日数据结构课程设计报告一、 设计时间2013年12月23日-12月27日二、 设计地点湖南城市学院实验楼计算机403机房三、 设计目的1巩固和加深对数据结构课程所学知识的理解,了解并掌握数据结构与算法的设计方法;2初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技能;3提高综合运用所学的理论知识和方法,独立分析和解决问题的能力;4训练用系统的观点和软件开发一般规范进行软件开发,培养软件工作者所应具备的科学的工作

2、方法和作风;5培养查阅资料,独立思考问题的能力。四、 设计小组成员120660218 钱佳明五、 指导老师陈强、刘洋六、 设计课题航班订票系统七、 基本思路及关键问题的解决方法(需求分析和概要设计)需求分析:程序主要实现的功能模块1. showSystemMenu()显示系统菜单界面2. showAdminMenu()显示管理员操作菜单界面3. showUserMenu()显示用户操作菜单界面4. systemCmd()获取用户输入的命令5. userLogin()用户登陆6. insertFly()新增航班7. editFly()修改航班8. deleteFly()删除航班9. showFl

3、y()显示所有航班10. insertUser()新增用户11. editUser()修改用户12. deleteUser()删除用户13. showUser()显示所有用户14. searchFly()航班查询15. checkForm()订票16. deleteForm()退票17. showForm()查询订单18. showInformation()显示个人信息19. editInformation()修改个人信息20. main()程序执行入口21. fly.txt文件用于存储航班信息22. user.txt文件用于存储用户信息23. form.txt文件用于存储订单信息八、 算法及

4、流程图(详细设计)1. showSystemMenu()显示系统菜单界面设计系统初始菜单,包含用户登陆、用户注册、航班查询和退出系统四个选项。运用printf()语句实现。2. showAdminMenu()显示管理员操作菜单界面设计管理员操作菜单,包含新增航班、修改航班、删除航班、航班一览、新增用户、修改用户、删除用户、用户一览和注销九个选项运用printf()语句实现。3. showUserMenu()显示用户操作菜单界面。设计用户操作菜单,包含订票、退票、查询订单、用户信息、信息修改和注销六个选项。运用printf()语句实现。4. systemCmd()获取用户输入的命令将用户输入模块

5、进行封装。运用scanf()语句实现。5. userLogin()用户登陆模块 定义字符数组变量user、pwd,用户输入后进行判断是否为管理员,若是,则进入管理员后台操作界面;若不是,则打开user.txt数据文件进行查找是否存在该用户,若存在,则进入用户操作界面;若不是,则提示登陆失败。6. insertFly()新增航班 定义一个结构体fly,其中包含的变量有航班编号num、起飞城市flyCity、抵达城市arriveCity、起飞时间flyTime、抵达时间arriveTime、飞行时间flyTime、票价price、折扣discount和剩余座位remain。用户输入信息后提示是否保

6、存,若否,则不保存信息到fly.txt文件中;若是,则将结构体fly中的信息保存到fly.txt文件中。7. editFly()修改航班 打开文件fly.txt,将所有的航班信息输出到屏幕中,管理员输入需要修改的航班信息编号进行修改。8. deleteFly()删除航班打开文件fly.txt,将所有的航班信息输出到屏幕中,管理员输入需要删除的航班信息编号进行删除。9. showFly()显示所有航班打开文件fly.txt,将所有的信息输出到屏幕上给管理员进行查看。10. insertUser()新增用户定义一个结构体user,其中包含的变量有用户名userName、密码userPwd和身份证号

7、码userID。用户输入信息后提示是否保存,若否,则不保存信息到user.txt文件中;若是,则将结构体user中的信息保存到user.txt文件中。11. editUser()修改用户信息打开文件user.txt,将所有的用户信息输出到屏幕中,管理员输入需要修改的用户信息编号进行修改。12. deleteUser()删除用户打开文件user.txt,将所有的用户信息输出到屏幕中,管理员输入需要删除的用户信息编号进行删除13. showUser()显示所有用户打开文件user.txt,将所有的信息输出到屏幕上给管理员进行查看。14. searchFly()航班查询获取用户输入的航班编号或者航班

8、起飞城市和抵达城市信息,打开fly.txt文件,进行信息匹配,若匹配成功,则将该航班的相关信息输出到屏幕中。15. checkForm()订票用户查询相关航班后,输入相关航班的编号进行订票,若该航班有余票,则订票成功;若该航班的票已售完,则订票失败。订单信息由订单编号formID、用户名userName、航班编号num、起飞城市flyCity、抵达城市arriveCity、起飞时间flyTime、抵达时间arriveTime、飞行时间flyTime和票价price信息。16. deleteForm()退票打开文件form.txt,将用户相关的订单信息输出到屏幕中,用户输入需要删除的订单编号进行

9、删除。17. showForm()查询订单打开文件form.txt,将用户相关的订单信息输出到屏幕中。18. showInformation()显示用户信息打开文件user.txt,将用户相关的信息输出到屏幕中。19. editInformation()修改用户信息打开文件user.txt,获取相关用户输入的信息,将信息进行修改并保存。20. 其中新增航班insertFly()、修改航班editFly()、删除航班deleteFly()使用线性表的操作21. 其中新增用户insertUser()、修改用户editUser()、删除用户deleteUser()使用线性表的结构22. 在用户登录u

10、serLogin()、查询航班searchFly()使用顺序查找进行信息匹配。 九、 调试过程中出现的问题及相应解决办法(调试分析)1. showSystemMenu()显示系统菜单2. showAdminMenu()显示管理员操作菜单界面3. showUserMenu()显示用户操作菜单界面4. userLogin()用户登陆5. insertFly()新增航班信息6. editFly()修改航班信息7. deleteFly()删除航班信息8. showFly()显示所有航班信息9. insertUser()新增用户10. editUser()修改用户信息11. deleteUser()删除

11、用户信息12. showUser()显示所有用户信息13. searchFly()航班查询14. checkForm()订单15. deleteForm()退票16. showForm()查询订单17. showInformation()显示个人用户信息18. editInformation()修改个人用户信息十、 课程设计心得体会(课程总结)在本次课程设计中,是我对数据结构这门课程有了更深入的理解。数据结构是一门实践性较强的课程,为了学好这门课程,必须在掌握理论的同时,加强上级实践。我的课程设计题目是航班订票系统,刚开始做的时候,在函数模块方面想了很多,一开始使用了头文件*.h来封装函数,后

12、来查阅了多次资料,并再三考虑之下,决定将函数一并写在*.cpp文件中。同时在写航班查询的时候一开始没有进行多次考虑,导致代码多次运行错误。在本次课程设计中,我明白了理论与实践应用相结合的重要性,并提高了自己数据及编写大型应用程序的能力。培养了基本的、良好的程序设计分析能力。这次的程序训练培养了我实际分析问题、编程和动手能力,使我掌握了程序设计的基本技能,提高了我适应实际,实践编程的能力。十一、 源程序(核心代码部分加上清晰的程序注释)#include#include#includechar userName10;/用户名 char userPwd10; /密码 char userID20; /

13、身份证 char formID20;/订单编号 struct flyint count;/编号 char num10;/航班号 char flyCity10;/起飞城市 char arriveCity10;/抵达城市 char flyTime10;/起飞时间 char arriveTime10;/抵达时间 char allTime10;/飞行时间 char price10;/票价 char discount10;/票价折扣 char remain2;/剩余座位 newFly;struct userint count;/编号 int index;/用户位置char userName10;/用户名

14、 char userPwd10;/密码char userID20;/身份证 newUser;/-菜单界面-/显示系统菜单界面void showSystemMenu()printf(*n);printf(*欢迎使用梦想航班系统*n);printf(* 1.用户登录 n);printf(* 2.用户注册 n);printf(* 3.航班查询 n);printf(* 4.退出系统 n);printf(*n);/显示管理员操作菜单界面void showAdminMenu()printf(*n);printf(*欢迎使用梦想航班系统*n);printf(* n);printf(* -航班管理-n);pr

15、intf(* 1.新增航班 n);printf(* 2.修改航班 n);printf(* 3.删除航班 n);printf(* 4.航班一览 n);printf(* -用户管理-n);printf(* 5.新增用户 n);printf(* 6.修改用户 n);printf(* 7.删除用户 n);printf(* 8.用户一览 n); printf(* -其他-n);printf(* 9.注销 n);printf(*n);/显示用户操作菜单界面void showUserMenu()printf(*n);printf(*欢迎使用梦想航班系统*n);printf(* n);printf(* -订单

16、管理-n);printf(* 1.订票 n);printf(* 2.退票 n);printf(* 3.查询订单 n);printf(* -用户信息-n);printf(* 4.用户信息 n);printf(* 5.信息修改 n);printf(* -其他-n);printf(* 6.注销 n);printf(*n);/-用户输入-/获取用户输入的命令int systemCmd()int cmd;printf(请输入菜单命令:);/获取用户输入的菜单命令scanf(%d,&cmd);return cmd;/-用户登陆-/用户登陆int userLogin()int result = 0;char

17、 user10;char pwd10;printf(请输入用户名:);scanf(%s,user);printf(请输入密码:);scanf(%s,pwd);/判断是否为管理员 if(!(strcmp(user,admin)&(!strcmp(pwd,admin)result = 1;elseFILE *fp;fp = fopen(user.txt,r);/打开user.txt文件 if(fp=NULL)result = 0;elsenewUser.index = 1;while(!feof(fp)fscanf(fp,%st,userName);fscanf(fp,%st,userPwd);f

18、scanf(fp,%sn,userID);/判断是否存在该用户并且输入的密码正确 if(!(strcmp(user,userName)&!(strcmp(pwd,userPwd)result = 2;break;newUser.index+;fclose(fp);return result; /-航班管理-/新增航班void insertFly()printf(请输入航班号(注意:航班号最长字符串不超过10):);scanf(%s,newFly.num);printf(请输入起飞城市(注意:最长字符串不超过10):);scanf(%s,newFly.flyCity);printf(请输入抵达城

19、市(注意:最长字符串不超过10):);scanf(%s,newFly.arriveCity);printf(请输入起飞时间(格式:HH:MM):);scanf(%s,newFly.flyTime);printf(请输入抵达时间(格式:HH:MM):);scanf(%s,newFly.arriveTime);printf(请输入飞行时间(格式:HH:MM):); scanf(%s,newFly.allTime); printf(请输入票价:); scanf(%s,&newFly.price); printf(请输入票价折扣:);scanf(%s,newFly.discount);printf(请

20、输入剩余座位(最大99):); scanf(%s,newFly.remain); printf(确认保存Y/N?:);char c;c = getchar(); scanf(%c,&c);if(c=Y | c=y)FILE *fp;fp = fopen(fly.txt,a);if(fp=NULL)printf(数据保存失败!n);elsefprintf(fp,%st,newFly.num);/写入航班号 fprintf(fp,%st,newFly.flyCity);/写入起飞城市 fprintf(fp,%st,newFly.arriveCity);/写入抵达城市 fprintf(fp,%st,

21、newFly.flyTime);/写入起飞时间 fprintf(fp,%st,newFly.arriveTime);/写入抵达时间 fprintf(fp,%st,newFly.allTime);/写入飞行时间 fprintf(fp,%st,newFly.price);/写入票价fprintf(fp,%st,newFly.discount);/写入票价折扣 fprintf(fp,%sn,newFly.remain);/写入剩余座位 fclose(fp);printf(数据保存成功!n);/修改航班 void editFly()printf(请输入需要修改航班的编号:);int cmd;scanf

22、(%d,&cmd);if(cmd0&cmd0&cmdnewFly.count)FILE *fp;FILE *fpt;fp = fopen(fly.txt,r);fpt = fopen(temp.txt,a);if(fp=NULL|fpt=NULL)printf(数据打开失败!n);elsefor(int i=1;!feof(fp);i+)fscanf(fp,%st,newFly.num);/读取航班号 fscanf(fp,%st,newFly.flyCity);/读取起飞城市 fscanf(fp,%st,newFly.arriveCity);/读取抵达城市 fscanf(fp,%st,newF

23、ly.flyTime);/读取起飞时间 fscanf(fp,%st,newFly.arriveTime);/读取抵达时间 fscanf(fp,%st,newFly.allTime);/读取飞行时间 fscanf(fp,%st,newFly.price);/读取票价fscanf(fp,%st,newFly.discount);/读取票价折扣 fscanf(fp,%sn,newFly.remain);/读取剩余座位 if(i!=cmd)fprintf(fpt,%st,newFly.num);/写入航班号 fprintf(fpt,%st,newFly.flyCity);/写入起飞城市 fprintf

24、(fpt,%st,newFly.arriveCity);/写入抵达城市 fprintf(fpt,%st,newFly.flyTime);/写入起飞时间 fprintf(fpt,%st,newFly.arriveTime);/写入抵达时间 fprintf(fpt,%st,newFly.allTime);/写入飞行时间 fprintf(fpt,%st,newFly.price);/写入票价fprintf(fpt,%st,newFly.discount);/写入票价折扣 fprintf(fpt,%sn,newFly.remain);/写入剩余座位fclose(fp);fclose(fpt);remo

25、ve(fly.txt);rename(temp.txt,fly.txt);printf(删除航班成功!n);elseprintf(错误!无此编号!n);/显示所有航班 int showFly()int result = 1;newFly.count = 1;FILE *fp;fp = fopen(fly.txt,r);if(fp=NULL)printf(数据打开失败!n);result = 0;elsewhile(!feof(fp)fscanf(fp,%st,newFly.num);/读取航班号 fscanf(fp,%st,newFly.flyCity);/读取起飞城市 fscanf(fp,%

26、st,newFly.arriveCity);/读取抵达城市 fscanf(fp,%st,newFly.flyTime);/读取起飞时间 fscanf(fp,%st,newFly.arriveTime);/读取抵达时间 fscanf(fp,%st,newFly.allTime);/读取飞行时间 fscanf(fp,%st,newFly.price);/读取票价fscanf(fp,%st,newFly.discount);/读取票价折扣 fscanf(fp,%sn,newFly.remain);/读取剩余座位printf(%-10st,编号);printf(%-10st,航班编号);printf(

27、%-10st,起飞城市);printf(%-10st,抵达城市);printf(%-10sn,起飞时间);printf(%-10dt,newFly.count+); printf(%-10st,newFly.num);printf(%-10st,newFly.flyCity);printf(%-10st,newFly.arriveCity);printf(%-10sn,newFly.flyTime);printf(%-10st,抵达时间);printf(%-10st,飞行时间);printf(%-10st,票价);printf(%-10st,折扣);printf(%-10sn,剩余座位);pr

28、intf(%-10st,newFly.arriveTime);printf(%-10st,newFly.allTime);printf(%-10st,newFly.price);printf(%-10st,newFly.discount);printf(%-10sn,newFly.remain);printf(-n); fclose(fp);return result;/-用户管理-/新增用户 void insertUser()printf(请输入用户名(注意:用户名最长字符串不超过10):);scanf(%s,newUser.userName);printf(请输入密码(注意:密码最长字符串不超过10):);scanf(%s,newUser.userPwd);printf(请输入身份证(注意:身份证为18位):);scanf(%s,newUser.userID);printf(确认保存Y/N?:);char c;c = getchar(); scanf(%c,&c);if(c=Y | c=y)FILE *fp;fp = fopen(user.txt,a);if(fp=NULL)printf(数据保存失败!n);elsefprintf(fp,%st,newUser.userName);/写入用户名

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 其他


经营许可证编号:宁ICP备18001539号-1