欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    中南大学C++课程设计实践报告内附程序 航空订票系统.docx

    • 资源ID:17948663       资源大小:836.20KB        全文页数:20页
    • 资源格式: DOCX        下载积分:1金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要1金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    中南大学C++课程设计实践报告内附程序 航空订票系统.docx

    1、中南大学C+课程设计实践报告内附程序 航空订票系统课程设计实践报告设计题目:航空订票系统姓 名: 专业班级: 学 号: 指导老师: 上课地点: 上课时间: 一设计要求2二设计思想2三程序代码2四调试过程15五运行结果18六心得体会27一设计要求:1订票业务:有新客户订票时,先输入客户的姓名和航班号,查询该航线的订票情况,若有余票,则为客户办理订票手续,分配给客户一个座位号,然后将新客户的信息添加到文件“customer.dat”,并修改文件“airline.dat”中该航线的订票数和余票数。每个客户信息包姓名,座位号,航班号3项。2退票业务:根据输入的姓名和航班号,找出相应的客户信息,从“cu

    2、stomer.dat”中找出客户信息并删除。同时修改文件“airline.dat”中相应航线的订票数和余票数。3查询客户信息:输入客户姓名,从文件中调出相关信息并输出。4查询全部信息:调出文件“customer.dat”、“airline.dat”并将其信息全部输出。5退出系统。二设计思想为了方便编写程序,我采用了比较简单的方法,从main主函数中指向5个函数,并且全部定义为void型,可以指向任意类型的数据,提高兼容性。用switch选择语句来指向调用函数,再对5个调用函数进行定义。这样函数之间彼此循环构成了一个完整的函数。三程序代码#include #include#include usi

    3、ng namespace std;struct flightint fligh;int num;char place10;int dticket;int yticket;fl10=101,01,北京,1,99, 102,02,上海,1,99, 103,03,广州,1,99;struct customerchar name10; int seat; int num;cu300=张三,01,101,李四,01,102,王麻子,01,103; /定义结构体int cnum=3; /定义客户编号void list();void dingpiao();void tuipiao();void chaxun

    4、(); void chaxun();void chaxunquanbu();void caidan1(); /函数声明void caidan2();void chushi();void main()cout欢迎使用航空订票系统2012末日版版权所有,盗版必究endlendl; caidan2(); /主函数void caidan1()int i; cout* 航空订票系统v2012 *endl; cout* *endl; cout* 1.订票业务 2.退票业务 *endl; cout* 3.查询客户信息 4.查询全部信息 *endl; cout* 5.退出系统 *endl; cout* *en

    5、dl; cout* 如果是第一次使用本系统,请载入初始信息谢谢 *endl; cout*endl;ifstream infile1(airline.dat);ifstream infile2(customer.dat);for(i=0;ifli.flighfli.numfli.placefli.dticketfli.yticket;for(i=0;icui.namecui.numcui.seatcnum; infile1.close();infile2.close(); /读取数据cout请输入业务代码:;list(); /菜单1void caidan2()int t; coutt; if(t

    6、=1)chushi();else caidan1(); /菜单2void chushi()int i; ofstream outfile(airline.dat); ofstream file(customer.dat); for (i=0;i3;i+) outfilefli.fligh fli.num fli.place fli.dticket fli.yticketendl;filecui.name cui.num cui.seat cnumendl; outfile.close();file.close();cout初始化已完毕!endla;coutendl;switch(a)case

    7、1:dingpiao();break; case 2:tuipiao();break; case 3:chaxun();break; case 4:chaxunquanbu();break; case 5:;break; default:cout输入错误,请重新输入正确的代码:;list(); /输入代码void dingpiao()/ 订票char name10;int num,i,t,j,k,temp;int x; cout请输入你的姓名和想订的航班号:endlendl; coutname; coutendl; coutnum;for(i=0;i300;i+)if(strcmp(name,

    8、cui.name)=0)coutt;switch(t) case 1:caidan1();break; default :break; for(i=0;i300;i+)if (name!=cui.name)for(j=0;j10;j+)if(flj.fligh=num)temp=j; if(fltemp.yticket=100) coutx; switch(x) case 1: for (k=0;k3;k+) if (flk.fligh=num) flk.dticket=flk.dticket+1;flk.yticket=flk.yticket-1;cnum=cnum+1; strcpy(cu

    9、cnum.name,name);cucnum.num=num; cucnum.seat=flk.dticket; ofstream outfile1(airline.dat); for(j=0;j3;j+) outfile1flj.fligh flj.num flj.place flj.dticket flj.yticketendl; ofstream outfile2(customer.dat,ios:app); outfile2cucnum.name cucnum.num cucnum.seat cnumendl; /打开文件并存储数据 cout订票成功!endlendl 客户信息:cuc

    10、num.namet航班号:cucnum.numt座位号:cucnum.seatendl; outfile1.close();outfile2.close(); couttemp; if(temp=1) caidan1();else; ;break; default :caidan1();break;else cout此航班票已经售完,请订其他航班次的票; / /订票void tuipiao()/ 退票char name10;int i,temp,t,num,a,j;struct tmp;cout请输入您的姓名和航班号:endl;coutname;coutnum;coutendl;for(i=0

    11、;i300;i+)if (strcmp(cui.name,name)=0)a=0;couttemp; if(temp=1) ofstream outfile1(airline.dat); ofstream outfile2(customer.dat); for(j=0;j=i;j+) outfile2cuj.name cuj.num cuj.seat jendl; for(t=0;t3;t+) if(flt.fligh=num) flt.dticket=flt.dticket-1;flt.yticket=flt.yticket+1; for(t=0;t3;t+) outfile1flt.fli

    12、gh flt.num flt.place flt.dticket flt.yticketendl; else a!=0; if (a!=0) cout没有你的信息,请查证后再操作!;couttemp;if(temp=1)caidan1();/ 退票void chaxun()char name10;int temp,i,a; coutname; for(i=0;i300;i+) if (strcmp(cui.name,name)=0)temp=i;a=0; cout*乘客信息*endl姓名:cutemp.namet 航班号:cutemp.numt座位号:cutemp.seatendl; if (

    13、a!=0) cout没有你的信息,请查证后再操作!endl;couttemp;if(temp=1)caidan1(); /查询客户信息void chaxunquanbu()int i,temp;cout乘客信息:endlendl;for(i=0;i300;i+)if (cnum=i) temp=i;for(i=0;itemp;i+)cout姓名:cui.namet航班号:cui.numt座位号:cui.seatt编号:i+1endl;coutendl航班信息:endlendl;for(i=0;i3;i+)cout航班号:fli.flight飞机号:fli.numt目的地:fli.placet已

    14、订票数:fli.dtickett剩余票数:fli.yticketendl;couttemp;if(temp=1)caidan1(); /查询全部信息 四调试过程由于学的知识不是很多,也不是很熟练,在最开始的时候老是范一些小错误,而且很多语法错误,比如忘了写分号啊,把分号写成逗号啦。而且忘了写全就会出现很多个错误,在一个庞大的程序里面找这些错误再一一改正,很可能还是不能运行,但是多加一个就很可能全部错误都搞定!调试的时候很多地方都是牵一发而动全身,特别是修改的时候,修改一个变量就得把其他部分的都改掉,不然就会一直出现错误。还经常忘了定义变量就用,不过看英文提示面前能看懂,也能找到相应的错误。在把

    15、语法小错误解决之后就剩下运行了,但是运行的情况不容乐观,很多地方呢不是我想要的结果。比如在最开始要初始化程序,就是把预先输入好的几个客户信息存档,这个工作必须在进入程序时就得进行,不然文件里面没有内容。但是在每次返回主菜单的时候又不能初始化,那样的话就存不进去了。所以我想出了用两个菜单函数caidan1(),caidan2的办法。Caidan1()是每次返回菜单时用的函数,只是负责到主界面和读取数据,而caidan2()就可以进行初始化,最开始进入程序是选择是否第一次进入,也就是选择是进入caidan1()还是caidan2().程序如下:这样就能分开初始化和正常的进入主菜单了。在退票的时候,

    16、由于需要在一个循环里面一直的判断并且存储,如果判断出输入的名字在文件中没有的话就输出“没有你的信息,请查证后再操作!”,但是随着每一次循环如果找不到信息就得输出一次,这样就会不停地输出那句话。我想了很久才想出来用一个中间变量a来解决,如果名字像匹配就让a=0,不匹配就让a=1,这样就能避免一直的循环,直接在后面判断a的值就能知道判断的结果,然后做出相应的结果,运行的时候终于解决了这个问题,让我感叹我真的还是有点小聪明的在其他的几个函数里面我也遭遇到了同样的问题,就是在判断的时候屏幕上一直不停地输出信息,我采取了同样的方法解决了问题。同样用定义中间变量值的办法。修改后的程序如下:还有就是存储问题

    17、了。在开始的时候我一直按照书上的直接用输出流对象来存储到文件里面,后来打开文件,里面确实有数据,但是在调出数据,也就是在查询客户信息的时候,尽管我输入的是已经存在的客户姓名,但是系统却找不到客户信息。我研究了好久无果,在学校问了老师之后才知道,我存储的时候数据间没有间隔,在读取的时候就不能分别数据了,应该在存储的时候在每个数据间加入一个空格符号,来分开每一个数据。这样终于搞定了,系统能正常识别数据了。主要的问题就是以上部分,当然还有一些问题没有一一罗列出来,在chaxun()和chaxunquanbu()函数里面遇到的问题较少,因为只需要把调出的数据一一输出即可。五.运行结果1、首先进入系统提

    18、示是否是第一次进入,如果是第一次就进行初始化,讲预先的几个乘客信息存档。否则直接进入主菜单:第一次进入,初始化!并且进入主菜单:提示输入业务代码,如果输入的不是以上业务代码则提示输入错误:2、进行第一个功能选项:订票业务:如果已经存在此客户的信息则会出现下面情况:则提示已经定过航班,问是否进入主菜单。如果输入的客户在档案里面没有则进行正常订票:输出客户信息,并且安排一个座位号,提示是否返回主菜单。3、下面为第二个功能选项:查询客户信息输入客户姓名,就会自动输出客户的相关信息。如果没有客户信息则输出一下内容:并且提示是否进入到主菜单。4、查询全部信息:包括所有客户信息和所有航班的信息。 自动将客

    19、户编号,便于知道客户的总人数,并且在订票的时候已经修改航班信息,使得订票数和余票数吻合。5、第4项功能:退票业务:输入客户姓名和航班,将其信息删除。并提示是否返回主菜单。为了验证是否删除了客户信息,可以进行查询客户信息业务和查询全部信息业务:显示没有刚刚已经退订客户的信息。显示出没有刚刚已退订客户的信息,并且航班的信息随之调整,订票数和余票数自动修改为正确值。5、退出系统:退出:退出。六心得体会 本次程序设计所用时间较长,工作量很饱满,而且所用的知识很多,但是我们平常在课堂上所学的知识很有限,这就需要我大量的自学书本和课外的其他书籍上的知识。为了让程序容易使人看懂,我用到的知识点不是非常多,大

    20、都是一些基本知识,我能熟练地运用这些知识编程也算一个很大的成功了。毕竟很多知识没有学,能用基本知识就尽量用的基本知识。C+设计实践是对之前学过的知识的加深和巩固,之前学得较浅,实践的机会不多,这次实践让我对C+程序有了更加深入的了解,心理也由原来的不喜欢到喜欢,感觉很有意思也很有用,可也设计一些有用的或者是自己喜欢的程序。最令我收益的是写程序的过程和调试修改的过程,因为之前我们就学了几章,没有把知识学习全面,因此编写起来是有难度的,在预先想好程序结构后,就开是卡看书,一个函数一个函数来编写,不懂的地方就上网搜或是请教一下同学和老师,当终于把程序写出来的时候,内心里又有一种说不出来的激动,我感觉这很符合大学的教育观念,是对个人自主学习能力的一个锻炼。在接下来就是调试,虽然出了很多的错误,虽然自己也被搞的焦头烂额,但我还是很兴奋,我感觉自己就像是个侦探,一点点找线索,找到问题,再解决,每次成功都带给自己一次激动。现在程序终于能较好的运行出来了,当然,还存在一些瑕疵,但通过这近两周的实践学习,我收获的不仅仅是这一个程序,我的自学能力,以及寻找问题解决问题的能力也得到了很好的锻炼。参考文献:C+程序设计谭浩强版 清华大学出版社 2010年7月7日星期三


    注意事项

    本文(中南大学C++课程设计实践报告内附程序 航空订票系统.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

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

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


    收起
    展开