ImageVerifierCode 换一换
格式:DOCX , 页数:69 ,大小:730.62KB ,
资源ID:11736131      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-11736131.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(c语言课程设计报告航空订票系统.docx)为本站会员(b****2)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

c语言课程设计报告航空订票系统.docx

1、c语言课程设计报告航空订票系统西安郵電學院C语言课程设计报告题 目: 航空订票系统院系名称: 计算机学院专业名称: 计算机科学与技术设计起止时间:2013年06月17日2013年06月20日1. 设计目地 对所学知识进行体系化、系统化地整理; 进行模块化地训练,将大地程序转化为一个个小地函数一次解决问题; 统筹规划,在设计之前有一个大地构想,以此为基础进行发散设计; 关注细节,避免在设计程序中因为一个小小地bug导致程序崩溃 代码健壮性,考虑一些错误地操作可能带来地影响.二. 设计内容 航空订票系统三概要设计1功能模块图;游客登陆管理员登陆申请帐号信息查询订票系统退票系统订单详情增加航班删除航

2、班修改航班信息查询航班信息账号管理系统首页2各个模块详细地功能描述. 游客登陆: 1、信息查询 a.航班号查询 (依据输入地航班号来找到对应地航班信息) b.起降地查询 (依据输入地起飞地和目地地来找到对应航班信息) c.时间查询 (依据输入地时间找到对应航班信息 时间可逐渐具体) 2、订票系统 根据输入地起飞地与目地地显示出所有走此航线地航班信息,然后根 据显示地信息输入想要订购航班地航班号,确认购票后系统自动付款将此 航班加入登陆用户地订单信息中. 3、退票系统 进入后首先显示出当前登陆者已有地航班订单,输入需要退票地航班 地航班号,退票成功. 4、订单详情 显示出当前登陆者已有地航班订单

3、信息,并按照时间先后顺序显示. 管理员登陆: 1、增加航班 确定增加新航班后依据提示以此输入航班号、起飞地、目地地、起飞 时间、到达时间、票价;之后选择是否继续输入,若选Y继续刚才地循环, 否则退出增加航班. 2、删除航班 输入需要删除航班地航班号,回车后该航班即被删除. 3、修改航班信息 输入需要修改航班地航班号,显示出该航班地航班信息,选项选择修 改航班信息地哪一项,选择后即可对该项信息进行修改. 4、信息查询 a.时间查找 (与游客登陆中地时间查询一样) b.起始地查询 (输入起始地,显示出由此地起飞地所有航班信息) c.目地地查询 (输入目地地,显示飞往此地地所有航班信息) d.起降地

4、查询 (与游客登陆中起降地查询一致) e.航班号查询 (与游客登陆中航班号查询一致) f.所有航班 (显示出当前已录入地所有航班航班信息) 5、账号管理 a.密码修改 (针对遗忘密码地用户可以进行密码地重置) b.所有用户 (显示出所有已注册用户地用户名) 帐号申请: 根据提示输入用户名,若该用户名已有则显示“该用户已存在”,若用户 名可用,则继续输入密码,两次密码一致则注册成功,可使用该用户以游客 身份登陆. 四详细设计1功能函数地调用关系图2各功能函数地数据流程图; 游客登陆后将该游客对应链表中地节点位置进行传递,以便以后对该游客地信息操 做; 在使用到链表时用打开文件地函数将文件信息转化

5、为链表返回其头指针,使用处用 相同类型地指针变量作为接收即可对该链表进行操作; 在对链表操作完成后,将链表头指针传递给保存信息到文件地函数,该函数会将链 表转化为文件信息进行储存; 输入密码函数,只需将用于保存密码地数组名作为参数传递,则可对该数组进行密 码地输入与回删.3重点设计及编码. next=NULL。 p1=head_youke。 if(fp=fopen(youke_information.txt,r)=NULL) printf(Open youke_information error!n)。 exit(1)。 while(feof(fp)=0) /当读取文件没有结尾时 p2=(Yo

6、uke *)malloc(LEN_Youke)。 /新开辟空间 fread(p2,LEN_Youke,1,fp)。 /将一个结构体大小地数据信息存放在该空间中 for(i=0,p3=p2。p3-namei!=0。i+) p3-namei-=3。 /对从文件读入地信息解密 for(i=0,p3=p2。p3-passwdi!=0。i+) p3-passwdi-=4。 p1-next=p2。 /让上一个节点指向这个新节点 p2-next=NULL。 /新节点指向空 p1=p2。 fclose(fp)。 for(p1=p2=head_youke-next。p1-next!=NULL。p2=p1,p1=

7、p1-next)。 p2-next=NULL。 /目地为链表结尾指向NULL,貌似可以不用. return head_youke。 /返回这个链表头节点 以便以后对链表进行操作 next。 /p1为头节点地下一个节点 while(p1!=NULL) for(i=0,p2=p1。p2-namei!=0。i+) p2-namei+=3。 /在将信息保存到文件前进行加密处理 for(i=0,p2=p1。p2-passwdi!=0。i+) p2-passwdi+=4。 if(fwrite(p1,LEN_Youke,1,fp)!=1) /每次向文件中写入一个结构体大小地数据信息 printf(file

8、write error!n)。 p1=p1-next。 fclose(fp)。 3、输入密码函数,可以进行回删 void passwd(char passwd) int i。 char ah。 for(i=0。i+) ah=getch()。 if(ah=13) passwdi=0。 break。 if(ah=127) if(i=0) i=i-1。 continue。 printf(b b)。 i=i-2。 continue。 passwdi=ah。 putchar(*)。 五测试数据及运行结果4正常测试数据(3组)及运行结果;首页游客登陆游客首页信息查询航班号查询起降地查询查询结果时间查询查询

9、结果查询结果订票系统订票系统支付宝功能退票系统订单详情管理员登陆管理员首页增加航班删除航班修改航班查看已有航班起始地查找查询结果目地地查询查询结果所有航班查询用户管理密码修改所有用户帐号申请5非正常测试数据(2组)及运行结果.登陆密码错误错误地航班号错误地起降地错误地时间六调试情况,设计技巧及体会1对自己地设计进行评价,指出合理和不足之处,提出改进方案; 仍有很多待优化地地方,例如订购机票时没有显示出此航班飞机还有多少座位,是 否还能订购;没有区分游客与用户地区别,作为游客不需要登陆即可进行简单地查询操 作;过期机票不应当予以现实.2对设计及调试过程地心得体会. 期间会遇到许多难以解决地问题,

10、每次出现Bug使用调试工艺挨个检错,有时也在 必要地地方进行printf来检测当前变量值是否为预期地值.7参考文献C Primer PlusLinux C编程实战八附录:源代码(电子版)/*= * * Filename: C.c * * Description: Curriculum Design * * Version: 1.0 * Created: 2013年06月08日 18时52分56秒 * Revision: none * Compiler: gcc * * Author: Leehom (RenLixiang), OurHom.759 * Company: Class 1204 o

11、f Computer Science and Technology * * =*/#include #include #include #include #include #include passwd.h#include pay.h#include file.h#include function.h#include getch.h#include root.h#include time_fun.hint main(int argc, char *argv) home_page()。 return EXIT_SUCCESS。void home_page() /最开始界面 char ch。 do

12、 system(clear)。 printf(nntt 航 空 订 票 系 统nn)。 printf(ttt 【1】游客登陆nn)。 printf(ttt 【2】管理员登陆nn)。 printf(ttt 【3】帐号申请nn)。 printf(ttt 【0】退出程序nn)。 ch=getch()。 switch(ch) case1:youke_denglu()。break。 case2:manager_denglu()。break。 case3:zhuce()。break。 case0:system(clear)。printf(nnnnttttByen)。sleep(1)。exit(1)。bre

13、ak。 while(1)。void youke_denglu() /游客登陆函数 实现游客登陆功能 char youke_name20。 char youke_passwd20。 int flag=0。 Youke *head_youke,*p1。 head_youke=file_1()。 system(clear)。 printf(nttt游客登陆nn)。 printf(nt【0】返回上页)。 printf(nnttt用户名:)。 gets(youke_name)。 if(strcmp(youke_name,0)=0) home_page()。 printf(nnttt密 码:)。 pass

14、wd(youke_passwd)。 /调用passwd(char passwd20)函数 在passwd.h中定义 for(p1=head_youke-next。p1!=NULL。p1=p1-next) if(strcmp(p1-name,youke_name)=0)&(strcmp(p1-passwd,youke_passwd)=0) /当密码与用户名匹配时登陆成功 system(clear)。 printf(nnnnttt登陆成功!n)。 sleep(1)。 youke(p1)。 /传递当前登陆者地节点地址 if(strcmp(p1-name,youke_name)=0)&(strcmp(

15、p1-passwd,youke_passwd)!=0) /当用户名存在 但密码输入错误是显示密码错误 system(clear)。 flag=1。 printf(nnnnttt密码错误!n)。 sleep(1)。 youke_denglu(head_youke)。 / if(flag=0) /在之前设置标记符 此时显示无该用户 system(clear)。 printf(nnnnttt无该用户!n)。 sleep(1)。 youke_denglu(head_youke)。 void youke(Youke *UK) /游客登陆成功后跳转到该页面 char ch。 do system(clear

16、)。 printf(nnt 尊敬地 %s 欢迎来到本航空公司服务系统n,UK-name)。 printf(nnttt【1】信息查询nn)。 printf(ttt【2】订票系统nn)。 printf(ttt【3】退票系统nn)。 printf(ttt【4】订单详情nn)。 printf(ttt【0】退出登陆nn)。 ch=getch()。 switch(ch) case1:polling(UK)。break。 case2:ding_ticket(UK)。break。 case3:tui_ticket(UK)。break。 case4:ding_dan(UK)。break。 case0:syste

17、m(clear)。printf(nnnnttt正在退出.n)。sleep(1)。home_page()。break。 while(1)。void polling(Youke *UK) /查询信息主页面 char ch。 do system(clear)。 printf(nnttt信息查询系统nnn)。 printf(ttt【1】航班号查询nn)。 printf(ttt【2】起降地查询nn)。 printf(ttt【3】时间查询nn)。 printf(ttt【0】返回上页nn)。 ch=getch()。 switch(ch) case1:polling_hangban(UK)。break。 ca

18、se2:polling_start(UK)。break。 case3:polling_time(UK)。break。 case0:youke(UK)。break。 while(1)。int polling_hangban(Youke *UK) /根据航班号查询信息 Flight *head_flight,*p1。 head_flight=file_3()。 char num20。 int flag=0。 system(clear)。 printf(ntt 航班号查询nnn)。 printf(nt【0】返回上页n)。 printf(nnttt航班号:)。 gets(num)。 if(strcmp

19、(num,0)=0) polling(UK)。 for(p1=head_flight-next。p1!=NULL。p1=p1-next) if(strcmp(num,p1-flight_num)=0) /判断是否找到需要地航班 system(clear)。 flag=1。 printf(nttt 查询结果nn)。 printf(n)。Pri_Tit /宏 在file.h中定义 Pri_Fli /宏 在file.h中定义 if(flag=0) printf(nntt 没有找到 %s 号航班n,num)。 sleep(1)。 polling_hangban(UK)。 /没有找到时再次进入本函数 p

20、rintf(nttt按任意键返回上页n)。 getch()。 polling(UK)。 /找到后回到查询信息主页面 return 0。int polling_start(Youke *UK) /起降地查询 Flight *head_flight,*p1。 head_flight=file_3()。 char start20,end20。 int flag=0。 system(clear)。 printf(ntt 起降地查询nnn)。 printf(nt【0】返回上页n)。 printf(nnttt起飞地:)。 gets(start)。 if(strcmp(start,0)=0) polling

21、(UK)。 printf(nnttt目地地:)。 gets(end)。 system(clear)。 printf(nttt 查询结果nn)。 printf(n)。Pri_Tit for(p1=head_flight-next。p1!=NULL。p1=p1-next) if(strcmp(start,p1-flight_start)=0)&(strcmp(end,p1-flight_end)=0) /判断是需要找地航班 flag=1。 Pri_Fli if(flag=0) system(clear)。 printf(nnnntt没有找到 %s-%-s 地航班n,start,end)。 slee

22、p(1)。 polling_start(UK)。 printf(nttt按任意键返回上页n)。 getch()。 polling(UK)。 return 0。void polling_time(Youke *UK) /根据时间查找航班 Flight *head_flight,*p1。 head_flight=file_3()。 char year21,month3,day3。 int flag=0。 system(clear)。 printf(ntt 时间查询nnn)。 printf(nt【0】返回上页n)。 printf(nttt年:)。 gets(year)。 if(strcmp(year

23、,0)=0) polling(UK)。 system(clear)。 printf(nttt 查询结果nn)。 printf(n)。Pri_Tit for(p1=head_flight-next。p1!=NULL。p1=p1-next) if(strncmp(year,p1-flight_time_start,4)=0) /比对时间字符串中前4个字符是否是输入地字符 flag=1。 Pri_Fli if(flag=0) printf(nttt没有找到相关信息n)。 printf(nttt按任意键返回上页n)。 getch()。 polling(UK)。 flag=0。 printf(nt【0】

24、返回上页n)。 printf(nttt月:)。 gets(month)。 if(strcmp(month,0)=0) polling(UK)。 if(strlen(month)=1) month1=month0。 /将格式转化为可以进行比对地统一模式 month0=0。 /与之后地管理员时间查询函数一致 /与之后地day格式调整一样 year4=-。 year5=0。 strcat(year,month)。 /将输入地月份续接在year数组之后 system(clear)。 printf(nttt 查询结果nn)。 printf(n)。Pri_Tit for(p1=head_flight-next。p1!=NULL。p1=p1-next) if(strncmp(year,p1-flight_time_start,7)=0) /对比时间字符串中前7个字符是否时输入地字符 flag=1。 Pri_Fli if(flag=0) print

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2