航空客运订票检票系统—计算机毕业设计(论文)_第1页
航空客运订票检票系统—计算机毕业设计(论文)_第2页
航空客运订票检票系统—计算机毕业设计(论文)_第3页
航空客运订票检票系统—计算机毕业设计(论文)_第4页
航空客运订票检票系统—计算机毕业设计(论文)_第5页
已阅读5页,还剩104页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

航空检票系统1问题描述航空检票的业务活动包括查询航线、客票预订和办理退票等。试设计一个航空检票系统,以使上述业务可以借助计算机来完成。11每条航线所涉及的信息有终点站名、航班号、飞机号、飞行周日星期几、乘员定额、余票量、已检票的客户名单包括姓名、检票量、舱位等级1,2或3以及等候替补的客户名单包括姓名、所需票量12作为示意系统,全部数据可以只放在内存中13系统能实现的操作和功能如下131查询航线根据旅客提出的终点站名输出下列信息航班号、飞机号、星期几飞行,最近一天航班的日期和余票额132承办检票业务根据客户提出的要求航班号、检票数额查询该航班票额情况,若尚有余票,则为客户办理检票手续,输出座位号;若已满员或余票额少于检票额,则需重新询问客户要求。若需要,可登记排队候补133承办退票业务根据客户提供的情况日期、航班,为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理检票手续,否则依次询问其他排队候补的客户2概要设计21存储结构设计TYPEDEFSTRUCTAL_CUSTOM/已检票客户CHARNAME15/姓名INTCOUNT/检票量INTLEVEL/舱位等级AL_CUSTOMNEXT/下一节点指针AL_CUSTOM,AL_CUSTOMLINKTYPEDEFSTRUCTWAIT_CUSTOM/等候替补的客户CHARNAME15/姓名INTCOUNT/所需票量WAIT_CUSTOMNEXT/下一节点指针WAIT_CUSTOMTYPEDEFSTRUCTWAIT_QUEUE/等待队列WAIT_CUSTOMFRONT/队列头指针WAIT_CUSTOMREAR/尾指针WAIT_QUEUETYPEDEFSTRUCTFLIGHT/航线CHARTERMINUS15/终点站名CHARFLIGHT_NO10/航班号CHARPLANE_NO10/飞机号INTWEEK/飞行周日INTCOUNT/乘客定额INTREST/余票量AL_CUSTOMLINKAL_LINK/指向成员名单链表的头指针WAIT_QUEUEWAIT_QUEUE/等待替补队列FLIGHT22主要算法设计221主程序模块VOIDMAIN初始化;DO接受命令;处理命令;WHILE命令“退出“222查询航线模块实现查询功能VOIDFINDFLIGHT提示输入要查询航线的终点站名;如果存在该航线,则输出该航线信息;否则提示不存在该航线;223承办检票业务模块实现检票功能VOIDDINGPIAO提示输入航班号和检票数;若不存在该航班号,则提示不存在该航线;否则如果有余票,则办理业务;否则提示没有足够的余票,询问是否候补;若是,则排队候补;224承办退票业务模块实现退票功能VOIDTUIPIAO提示输入航班号和飞行周日;确认航班号和飞行周日都存在,并且客户有检票,则执行退票;为排队候补的客户办理检票业务;否则提示有误23测试用例设计231航线3条1001HP001SHANGHAI2501002HP002BEIJING5501003HP003GUANGZHOU750232查询航线SHANGHAI233承办检票业务航班号1001数额30姓名CHENGANGJIE舱位等级2234承办检票业务航班号1001数额23姓名ZHENXI舱位等级3235承办退票业务姓名CHENGANGJIE航班号1001飞行周日2236查询航线终点站名SHANGHAI3调试分析31本次的设计比较困难,需要实现较多的功能,所以在调试过程中不太顺利,主要是指针的修改。经过反复调试以后才得以解决。32本程序航线采用数组的存储结构,每条航线包含8个域,其中乘员名单域为指向乘员名单链表的头指针,等候替补的客户名单域为分别指向对头和对尾的指针。33检票函数是在退票业务模块中使用4经验和体会通过这次的程序设计,进一步理解了链表和队列结构的实现和应用。尤其需要注意的是对于指针的修改要仔细,否则会发生意想不到的结果。5源程序清单和运行结果51程序清单INCLUDEINCLUDEINCLUDEINCLUDEINCLUDEDEFINEFLIGHT_NUM100/航线最大数量TYPEDEFSTRUCTAL_CUSTOM/已检票客户CHARNAME15/姓名INTCOUNT/检票量INTLEVEL/舱位等级AL_CUSTOMNEXT/下一节点指针AL_CUSTOM,AL_CUSTOMLINKTYPEDEFSTRUCTWAIT_CUSTOM/等候替补的客户CHARNAME15/姓名INTCOUNT/所需票量WAIT_CUSTOMNEXT/下一节点指针WAIT_CUSTOMTYPEDEFSTRUCTWAIT_QUEUE/等待队列WAIT_CUSTOMFRONT/队列头指针WAIT_CUSTOMREAR/尾指针WAIT_QUEUETYPEDEFSTRUCTFLIGHT/航线CHARTERMINUS15/终点站名CHARFLIGHT_NO10/航班号CHARPLANE_NO10/飞机号INTWEEK/飞行周日INTCOUNT/乘客定额INTREST/余票量AL_CUSTOMLINKAL_LINK/指向成员名单链表的头指针WAIT_QUEUEWAIT_QUEUE/等待替补队列FLIGHTVOIDCUSTOM_INITAL_CUSTOMLINKLNEXT0VOIDCUSTOM_INSERTAL_CUSTOMLINKMEMCPYVOIDNEWNODE,NEWNODENEXTPNEXTPNEXTNEWNODEVOIDCOPYCUSTOMLINKAL_CUSTOMLINKAL_CUSTOMLINKQAL_CUSTOMPNEWCUSTOM_INITDESTQDESTWHILEPNEXTPNEWNEWAL_CUSTOMMEMCPYPNEW,PNEXT,SIZEOFAL_CUSTOMPNEWNEXT0QNEXTPNEWQPNEWPPNEXTVOIDWAITER_INITWAIT_QUEUEQFRONTNEXT0VOIDWAITER_ENWAIT_QUEUEMEMCPYNEWNODE,NEWNODENEXT0QREARNEXTNEWNODEQREARNEWNODEBOOLWAITER_DEWAIT_QUEUEMEMCPYWAIT_CUSTOMPQFRONTNEXTQFRONTNEXTPNEXTIFQREARQFRONTQREARQFRONTDELETEPCUSTOMNEXT0RETURNTRUEVOIDCOPYWAIT_QUEUEWAIT_QUEUEWAITER_INITDESTWHILEPNEXTWAITER_ENDEST,PPPNEXTINTFLIGHT_NO/航线数量FLIGHTFLIGHTFLIGHT_NUM/航线数组VOIDINITFLIGHTFLIGHTSTRNCPYCHARCUSTOM_INITFAL_LINKWAITER_INITFWAIT_QUEUEVOIDINITFLIGHT/初始化航线数组FLIGHT_NO0CHARCH0STRNCPYCHARFLIGHT,FORINTI0II1JMEMCPYVOIDMEMCPYVOIDCUSTOM_INITFLIGHTI1AL_LINKWAITER_INITFLIGHTI1WAIT_QUEUECOPYCUSTOMLINKFLIGHTI1AL_LINK,FAL_LINKCOPYWAIT_QUEUEFLIGHTI1WAIT_QUEUE,FWAIT_QUEUEFLIGHT_NOVOIDINITINTMCOUTMFORINTI1IFFLIGHT_NOCOUTFPLANE_NOCOUTFTERMINUSCOUTFWEEKCOUTFCOUNTFRESTFCOUNTINSERTFLIGHTFPRINTF“N“INTFINDBYNAMECHARTERMINUS15/根据终点站名查找FORINTI0ITERMINUSINTINDEXFINDBYNAMETERMINUSIFINDEX1PRINTF“该航线不存在N“RETURNCOUTNEXTCOUNTNEXTNAMECOUNTPNEXTCOUNTFLIGHTINDEXRESTPNEXTCOUNTSTRCPYPNEWNAME,PNEXTNAMEDOCOUTNEXTNAMEPNEWLEVELWHILEPNEWLEVELLEVEL3PNEWNEXTFLIGHTINDEXAL_LINKNEXTFLIGHTINDEXAL_LINKNEXTPNEWWAIT_CUSTOMQPNEXTPNEXTQNEXTIFFLIGHTINDEXWAIT_QUEUEREARQFLIGHTINDEXWAIT_QUEUEREARPDELETEQVOIDDINGPIAO/承办检票业务子模块CHARNO10/航班号INTCOUNT/检票量COUTNOCOUNTINTINDEXFINDBYNONOIFINDEX1COUTCOUNT/尚有余票AL_CUSTOMPNEWNEWAL_CUSTOMCOUTPNEWNAMECOUTPNEWLEVELPNEWCOUNTCOUNTPNEWNEXT0FLIGHTINDEXRESTCOUNTPNEWNEXTFLIGHTINDEXAL_LINKNEXTFLIGHTINDEXAL_LINKNEXTPNEWELSE/没有余票COUTPNEWNAMEPNEWCOUNTCOUNTPNEWNEXT0FLIGHTINDEXWAIT_QUEUEREARNEXTPNEWFLIGHTINDEXWAIT_QUEUEREARPNEWCOUTNAMENAMECOUTNOWEEKBOOLISFINDFALSEFORINTINDEX0INDEXNEXTIFSTRCMPPNEXTNAME,NAME0ISFINDTRUEAL_CUSTOMQPNEXTPNEXTQNEXTFLIGHTINDEXRESTQCOUNTCOUTNEXTIFISFINDCOUT4SWITCHCHCASE1FINDFLIGHTBREAKCASE2DINGPIAOBREAKCASE3TUIPIAOBREAKCASE4BREAKWHILECH452运行结果521输入航线522查询航线523承办检票业务524承办退票业务525查询航线航空检票系统1问题描述航空检票的业务活动包括查询航线、客票预订和办理退票等。试设计一个航空检票系统,以使上述业务可以借助计算机来完成。11每条航线所涉及的信息有终点站名、航班号、飞机号、飞行周日星期几、乘员定额、余票量、已检票的客户名单包括姓名、检票量、舱位等级1,2或3以及等候替补的客户名单包括姓名、所需票量12作为示意系统,全部数据可以只放在内存中13系统能实现的操作和功能如下131查询航线根据旅客提出的终点站名输出下列信息航班号、飞机号、星期几飞行,最近一天航班的日期和余票额132承办检票业务根据客户提出的要求航班号、检票数额查询该航班票额情况,若尚有余票,则为客户办理检票手续,输出座位号;若已满员或余票额少于检票额,则需重新询问客户要求。若需要,可登记排队候补133承办退票业务根据客户提供的情况日期、航班,为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理检票手续,否则依次询问其他排队候补的客户2概要设计21存储结构设计TYPEDEFSTRUCTAL_CUSTOM/已检票客户CHARNAME15/姓名INTCOUNT/检票量INTLEVEL/舱位等级AL_CUSTOMNEXT/下一节点指针AL_CUSTOM,AL_CUSTOMLINKTYPEDEFSTRUCTWAIT_CUSTOM/等候替补的客户CHARNAME15/姓名INTCOUNT/所需票量WAIT_CUSTOMNEXT/下一节点指针WAIT_CUSTOMTYPEDEFSTRUCTWAIT_QUEUE/等待队列WAIT_CUSTOMFRONT/队列头指针WAIT_CUSTOMREAR/尾指针WAIT_QUEUETYPEDEFSTRUCTFLIGHT/航线CHARTERMINUS15/终点站名CHARFLIGHT_NO10/航班号CHARPLANE_NO10/飞机号INTWEEK/飞行周日INTCOUNT/乘客定额INTREST/余票量AL_CUSTOMLINKAL_LINK/指向成员名单链表的头指针WAIT_QUEUEWAIT_QUEUE/等待替补队列FLIGHT22主要算法设计221主程序模块VOIDMAIN初始化;DO接受命令;处理命令;WHILE命令“退出“222查询航线模块实现查询功能VOIDFINDFLIGHT提示输入要查询航线的终点站名;如果存在该航线,则输出该航线信息;否则提示不存在该航线;223承办检票业务模块实现检票功能VOIDDINGPIAO提示输入航班号和检票数;若不存在该航班号,则提示不存在该航线;否则如果有余票,则办理业务;否则提示没有足够的余票,询问是否候补;若是,则排队候补;224承办退票业务模块实现退票功能VOIDTUIPIAO提示输入航班号和飞行周日;确认航班号和飞行周日都存在,并且客户有检票,则执行退票;为排队候补的客户办理检票业务;否则提示有误23测试用例设计231航线3条1001HP001SHANGHAI2501002HP002BEIJING5501003HP003GUANGZHOU750232查询航线SHANGHAI233承办检票业务航班号1001数额30姓名CHENGANGJIE舱位等级2234承办检票业务航班号1001数额23姓名ZHENXI舱位等级3235承办退票业务姓名CHENGANGJIE航班号1001飞行周日2236查询航线终点站名SHANGHAI3调试分析31本次的设计比较困难,需要实现较多的功能,所以在调试过程中不太顺利,主要是指针的修改。经过反复调试以后才得以解决。32本程序航线采用数组的存储结构,每条航线包含8个域,其中乘员名单域为指向乘员名单链表的头指针,等候替补的客户名单域为分别指向对头和对尾的指针。33检票函数是在退票业务模块中使用4经验和体会通过这次的程序设计,进一步理解了链表和队列结构的实现和应用。尤其需要注意的是对于指针的修改要仔细,否则会发生意想不到的结果。5源程序清单和运行结果51程序清单INCLUDEINCLUDEINCLUDEINCLUDEINCLUDEDEFINEFLIGHT_NUM100/航线最大数量TYPEDEFSTRUCTAL_CUSTOM/已检票客户CHARNAME15/姓名INTCOUNT/检票量INTLEVEL/舱位等级AL_CUSTOMNEXT/下一节点指针AL_CUSTOM,AL_CUSTOMLINKTYPEDEFSTRUCTWAIT_CUSTOM/等候替补的客户CHARNAME15/姓名INTCOUNT/所需票量WAIT_CUSTOMNEXT/下一节点指针WAIT_CUSTOMTYPEDEFSTRUCTWAIT_QUEUE/等待队列WAIT_CUSTOMFRONT/队列头指针WAIT_CUSTOMREAR/尾指针WAIT_QUEUETYPEDEFSTRUCTFLIGHT/航线CHARTERMINUS15/终点站名CHARFLIGHT_NO10/航班号CHARPLANE_NO10/飞机号INTWEEK/飞行周日INTCOUNT/乘客定额INTREST/余票量AL_CUSTOMLINKAL_LINK/指向成员名单链表的头指针WAIT_QUEUEWAIT_QUEUE/等待替补队列FLIGHTVOIDCUSTOM_INITAL_CUSTOMLINKLNEXT0VOIDCUSTOM_INSERTAL_CUSTOMLINKMEMCPYVOIDNEWNODE,NEWNODENEXTPNEXTPNEXTNEWNODEVOIDCOPYCUSTOMLINKAL_CUSTOMLINKAL_CUSTOMLINKQAL_CUSTOMPNEWCUSTOM_INITDESTQDESTWHILEPNEXTPNEWNEWAL_CUSTOMMEMCPYPNEW,PNEXT,SIZEOFAL_CUSTOMPNEWNEXT0QNEXTPNEWQPNEWPPNEXTVOIDWAITER_INITWAIT_QUEUEQFRONTNEXT0VOIDWAITER_ENWAIT_QUEUEMEMCPYNEWNODE,NEWNODENEXT0QREARNEXTNEWNODEQREARNEWNODEBOOLWAITER_DEWAIT_QUEUEMEMCPYWAIT_CUSTOMPQFRONTNEXTQFRONTNEXTPNEXTIFQREARQFRONTQREARQFRONTDELETEPCUSTOMNEXT0RETURNTRUEVOIDCOPYWAIT_QUEUEWAIT_QUEUEWAITER_INITDESTWHILEPNEXTWAITER_ENDEST,PPPNEXTINTFLIGHT_NO/航线数量FLIGHTFLIGHTFLIGHT_NUM/航线数组VOIDINITFLIGHTFLIGHTSTRNCPYCHARCUSTOM_INITFAL_LINKWAITER_INITFWAIT_QUEUEVOIDINITFLIGHT/初始化航线数组FLIGHT_NO0CHARCH0STRNCPYCHARFLIGHT,FORINTI0II1JMEMCPYVOIDMEMCPYVOIDCUSTOM_INITFLIGHTI1AL_LINKWAITER_INITFLIGHTI1WAIT_QUEUECOPYCUSTOMLINKFLIGHTI1AL_LINK,FAL_LINKCOPYWAIT_QUEUEFLIGHTI1WAIT_QUEUE,FWAIT_QUEUEFLIGHT_NOVOIDINITINTMCOUTMFORINTI1IFFLIGHT_NOCOUTFPLANE_NOCOUTFTERMINUSCOUTFWEEKCOUTFCOUNTFRESTFCOUNTINSERTFLIGHTFPRINTF“N“INTFINDBYNAMECHARTERMINUS15/根据终点站名查找FORINTI0ITERMINUSINTINDEXFINDBYNAMETERMINUSIFINDEX1PRINTF“该航线不存在N“RETURNCOUTNEXTCOUNTNEXTNAMECOUNTPNEXTCOUNTFLIGHTINDEXRESTPNEXTCOUNTSTRCPYPNEWNAME,PNEXTNAMEDOCOUTNEXTNAMEPNEWLEVELWHILEPNEWLEVELLEVEL3PNEWNEXTFLIGHTINDEXAL_LINKNEXTFLIGHTINDEXAL_LINKNEXTPNEWWAIT_CUSTOMQPNEXTPNEXTQNEXTIFFLIGHTINDEXWAIT_QUEUEREARQFLIGHTINDEXWAIT_QUEUEREARPDELETEQVOIDDINGPIAO/承办检票业务子模块CHARNO10/航班号INTCOUNT/检票量COUTNOCOUNTINTINDEXFINDBYNONOIFINDEX1COUTCOUNT/尚有余票AL_CUSTOMPNEWNEWAL_CUSTOMCOUTPNEWNAMECOUTPNEWLEVELPNEWCOUNTCOUNTPNEWNEXT0FLIGHTINDEXRESTCOUNTPNEWNEXTFLIGHTINDEXAL_LINKNEXTFLIGHTINDEXAL_LINKNEXTPNEWELSE/没有余票COUTPNEWNAMEPNEWCOUNTCOUNTPNEWNEXT0FLIGHTINDEXWAIT_QUEUEREARNEXTPNEWFLIGHTINDEXWAIT_QUEUEREARPNEWCOUTNAMENAMECOUTNOWEEKBOOLISFINDFALSEFORINTINDEX0INDEXNEXTIFSTRCMPPNEXTNAME,NAME0ISFINDTRUEAL_CUSTOMQPNEXTPNEXTQNEXTFLIGHTINDEXRESTQCOUNTCOUTNEXTIFISFINDCOUT4SWITCHCHCASE1FINDFLIGHTBREAKCASE2DINGPIAOBREAKCASE3TUIPIAOBREAKCASE4BREAKWHILECH452运行结果521输入航线522查询航线523承办检票业务524承办退票业务525查询航线航空检票系统1问题描述航空检票的业务活动包括查询航线、客票预订和办理退票等。试设计一个航空检票系统,以使上述业务可以借助计算机来完成。11每条航线所涉及的信息有终点站名、航班号、飞机号、飞行周日星期几、乘员定额、余票量、已检票的客户名单包括姓名、检票量、舱位等级1,2或3以及等候替补的客户名单包括姓名、所需票量12作为示意系统,全部数据可以只放在内存中13系统能实现的操作和功能如下131查询航线根据旅客提出的终点站名输出下列信息航班号、飞机号、星期几飞行,最近一天航班的日期和余票额132承办检票业务根据客户提出的要求航班号、检票数额查询该航班票额情况,若尚有余票,则为客户办理检票手续,输出座位号;若已满员或余票额少于检票额,则需重新询问客户要求。若需要,可登记排队候补133承办退票业务根据客户提供的情况日期、航班,为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理检票手续,否则依次询问其他排队候补的客户2概要设计21存储结构设计TYPEDEFSTRUCTAL_CUSTOM/已检票客户CHARNAME15/姓名INTCOUNT/检票量INTLEVEL/舱位等级AL_CUSTOMNEXT/下一节点指针AL_CUSTOM,AL_CUSTOMLINKTYPEDEFSTRUCTWAIT_CUSTOM/等候替补的客户CHARNAME15/姓名INTCOUNT/所需票量WAIT_CUSTOMNEXT/下一节点指针WAIT_CUSTOMTYPEDEFSTRUCTWAIT_QUEUE/等待队列WAIT_CUSTOMFRONT/队列头指针WAIT_CUSTOMREAR/尾指针WAIT_QUEUETYPEDEFSTRUCTFLIGHT/航线CHARTERMINUS15/终点站名CHARFLIGHT_NO10/航班号CHARPLANE_NO10/飞机号INTWEEK/飞行周日INTCOUNT/乘客定额INTREST/余票量AL_CUSTOMLINKAL_LINK/指向成员名单链表的头指针WAIT_QUEUEWAIT_QUEUE/等待替补队列FLIGHT22主要算法设计221主程序模块VOIDMAIN初始化;DO接受命令;处理命令;WHILE命令“退出“222查询航线模块实现查询功能VOIDFINDFLIGHT提示输入要查询航线的终点站名;如果存在该航线,则输出该航线信息;否则提示不存在该航线;223承办检票业务模块实现检票功能VOIDDINGPIAO提示输入航班号和检票数;若不存在该航班号,则提示不存在该航线;否则如果有余票,则办理业务;否则提示没有足够的余票,询问是否候补;若是,则排队候补;224承办退票业务模块实现退票功能VOIDTUIPIAO提示输入航班号和飞行周日;确认航班号和飞行周日都存在,并且客户有检票,则执行退票;为排队候补的客户办理检票业务;否则提示有误23测试用例设计231航线3条1001HP001SHANGHAI2501002HP002BEIJING5501003HP003GUANGZHOU750232查询航线SHANGHAI233承办检票业务航班号1001数额30姓名CHENGANGJIE舱位等级2234承办检票业务航班号1001数额23姓名ZHENXI舱位等级3235承办退票业务姓名CHENGANGJIE航班号1001飞行周日2236查询航线终点站名SHANGHAI3调试分析31本次的设计比较困难,需要实现较多的功能,所以在调试过程中不太顺利,主要是指针的修改。经过反复调试以后才得以解决。32本程序航线采用数组的存储结构,每条航线包含8个域,其中乘员名单域为指向乘员名单链表的头指针,等候替补的客户名单域为分别指向对头和对尾的指针。33检票函数是在退票业务模块中使用4经验和体会通过这次的程序设计,进一步理解了链表和队列结构的实现和应用。尤其需要注意的是对于指针的修改要仔细,否则会发生意想不到的结果。5源程序清单和运行结果51程序清单INCLUDEINCLUDEINCLUDEINCLUDEINCLUDEDEFINEFLIGHT_NUM100/航线最大数量TYPEDEFSTRUCTAL_CUSTOM/已检票客户CHARNAME15/姓名INTCOUNT/检票量INTLEVEL/舱位等级AL_CUSTOMNEXT/下一节点指针AL_CUSTOM,AL_CUSTOMLINKTYPEDEFSTRUCTWAIT_CUSTOM/等候替补的客户CHARNAME15/姓名INTCOUNT/所需票量WAIT_CUSTOMNEXT/下一节点指针WAIT_CUSTOMTYPEDEFSTRUCTWAIT_QUEUE/等待队列WAIT_CUSTOMFRONT/队列头指针WAIT_CUSTOMREAR/尾指针WAIT_QUEUETYPEDEFSTRUCTFLIGHT/航线CHARTERMINUS15/终点站名CHARFLIGHT_NO10/航班号CHARPLANE_NO10/飞机号INTWEEK/飞行周日INTCOUNT/乘客定额INTREST/余票量AL_CUSTOMLINKAL_LINK/指向成员名单链表的头指针WAIT_QUEUEWAIT_QUEUE/等待替补队列FLIGHTVOIDCUSTOM_INITAL_CUSTOMLINKLNEXT0VOIDCUSTOM_INSERTAL_CUSTOMLINKMEMCPYVOIDNEWNODE,NEWNODENEXTPNEXTPNEXTNEWNODEVOIDCOPYCUSTOMLINKAL_CUSTOMLINKAL_CUSTOMLINKQAL_CUSTOMPNEWCUSTOM_INITDESTQDESTWHILEPNEXTPNEWNEWAL_CUSTOMMEMCPYPNEW,PNEXT,SIZEOFAL_CUSTOMPNEWNEXT0QNEXTPNEWQPNEWPPNEXTVOIDWAITER_INITWAIT_QUEUEQFRONTNEXT0VOIDWAITER_ENWAIT_QUEUEMEMCPYNEWNODE,NEWNODENEXT0QREARNEXTNEWNODEQREARNEWNODEBOOLWAITER_DEWAIT_QUEUEMEMCPYWAIT_CUSTOMPQFRONTNEXTQFRONTNEXTPNEXTIFQREARQFRONTQREARQFRONTDELETEPCUSTOMNEXT0RETURNTRUEVOIDCOPYWAIT_QUEUEWAIT_QUEUEWAITER_INITDESTWHILEPNEXTWAITER_ENDEST,PPPNEXTINTFLIGHT_NO/航线数量FLIGHTFLIGHTFLIGHT_NUM/航线数组VOIDINITFLIGHTFLIGHTSTRNCPYCHARCUSTOM_INITFAL_LINKWAITER_INITFWAIT_QUEUEVOIDINITFLIGHT/初始化航线数组FLIGHT_NO0CHARCH0STRNCPYCHARFLIGHT,FORINTI0II1JMEMCPYVOIDMEMCPYVOIDCUSTOM_INITFLIGHTI1AL_LINKWAITER_INITFLIGHTI1WAIT_QUEUECOPYCUSTOMLINKFLIGHTI1AL_LINK,FAL_LINKCOPYWAIT_QUEUEFLIGHTI1WAIT_QUEUE,FWAIT_QUEUEFLIGHT_NOVOIDINITINTMCOUTMFORINTI1IFFLIGHT_NOCOUTFPLANE_NOCOUTFTERMINUSCOUTFWEEKCOUTFCOUNTFRESTFCOUNTINSERTFLIGHTFPRINTF“N“INTFINDBYNAMECHARTERMINUS15/根据终点站名查找FORINTI0ITERMINUSINTINDEXFINDBYNAMETERMINUSIFINDEX1PRINTF“该航线不存在N“RETURNCOUTNEXTCOUNTNEXTNAMECOUNTPNEXTCOUNTFLIGHTINDEXRESTPNEXTCOUNTSTRCPYPNEWNAME,PNEXTNAMEDOCOUTNEXTNAMEPNEWLEVELWHILEPNEWLEVELLEVEL3PNEWNEXTFLIGHTINDEXAL_LINKNEXTFLIGHTINDEXAL_LINKNEXTPNEWWAIT_CUSTOMQPNEXTPNEXTQNEXTIFFLIGHTINDEXWAIT_QUEUEREARQFLIGHTINDEXWAIT_QUEUEREARPDELETEQVOIDDINGPIAO/承办检票业务子模块CHARNO10/航班号INTCOUNT/检票量COUTNOCOUNTINTINDEXFINDBYNONOIFINDEX1COUTCOUNT/尚有余票AL_CUSTOMPNEWNEWAL_CUSTOMCOUTPNEWNAMECOUTPNEWLEVELPNEWCOUNTCOUNTPNEWNEXT0FLIGHTINDEXRESTCOUNTPNEWNEXTFLIGHTINDEXAL_LINKNEXTFLIGHTINDEXAL_LINKNEXTPNEWELSE/没有余票COUTPNEWNAMEPNEWCOUNTCOUNTPNEWNEXT0FLIGHTINDEXWAIT_QUEUEREARNEXTPNEWFLIGHTINDEXWAIT_QUEUEREARPNEWCOUTNAMENAMECOUTNOWEEKBOOLISFINDFALSEFORINTINDEX0INDEXNEXTIFSTRCMPPNEXTNAME,NAME0ISFINDTRUEAL_CUSTOMQPNEXTPNEXTQNEXTFLIGHTINDEXRESTQCOUNTCOUTNEXTIFISFINDCOUT4SWITCHCHCASE1FINDFLIGHTBREAKCASE2DINGPIAOBREAKCASE3TUIPIAOBREAKCASE4BREAKWHILECH452运行结果521输入航线522查询航线523承办检票业务524承办退票业务525查询航线航空检票系统1问题描述航空检票的业务活动包括查询航线、客票预订和办理退票等。试设计一个航空检票系统,以使上述业务可以借助计算机来完成。11每条航线所涉及的信息有终点站名、航班号、飞机号、飞行周日星期几、乘员定额、余票量、已检票的客户名单包括姓名、检票量、舱位等级1,2或3以及等候替补的客户名单包括姓名、所需票量12作为示意系统,全部数据可以只放在内存中13系统能实现的操作和功能如下131查询航线根据旅客提出的终点站名输出下列信息航班号、飞机号、星期几飞行,最近一天航班的日期和余票额132承办检票业务根据客户提出的要求航班号、检票数额查询该航班票额情况,若尚有余票,则为客户办理检票手续,输出座位号;若已满员或余票额少于检票额,则需重新询问客户要求。若需要,可登记排队候补133承办退票业务根据客户提供的情况日期、航班,为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理检票手续,否则依次询问其他排队候补的客户2概要设计21存储结构设计TYPEDEFSTRUCTAL_CUSTOM/已检票客户CHARNAME15/姓名INTCOUNT/检票量INTLEVEL/舱位等级AL_CUSTOMNEXT/下一节点指针AL_CUSTOM,AL_CUSTOMLINKTYPEDEFSTRUCTWAIT_CUSTOM/等候替补的客户CHARNAME15/姓名INTCOUNT/所需票量WAIT_CUSTOMNEXT/下一节点指针WAIT_CUSTOMTYPEDEFSTRUCTWAIT_QUEUE/等待队列WAIT_CUSTOMFRONT/队列头指针WAIT_CUSTOMREAR/尾指针WAIT_QUEUETYPEDEFSTRUCTFLIGHT/航线CHARTERMINUS15/终点站名CHARFLIGHT_NO10/航班号CHARPLANE_NO10/飞机号INTWEEK/飞行周日INTCOUNT/乘客定额INTREST/余票量AL_CUSTOMLINKAL_LINK/指向成员名单链表的头指针WAIT_QUEUEWAIT_QUEUE/等待替补队列FLIGHT22主要算法设计221主程序模块VOIDMAIN初始化;DO接受命令;处理命令;WHILE命令“退出“222查询航线模块实现查询功能VOIDFINDFLIGHT提示输入要查询航线的终点站名;如果存在该航线,则输出该航线信息;否则提示不存在该航线;223承办检票业务模块实现检票功能VOIDDINGPIAO提示输入航班号和检票数;若不存在该航班号,则提示不存在该航线;否则如果有余票,则办理业务;否则提示没有足够的余票,询问是否候补;若是,则排队候补;224承办退票业务模块实现退票功能VOIDTUIPIAO提示输入航班号和飞行周日;确认航班号和飞行周日都存在,并且客户有检票,则执行退票;为排队候补的客户办理检票业务;否则提示有误23测试用例设计231航线3条1001HP001SHANGHAI2501002HP002BEIJING5501003HP003GUANGZHOU750232查询航线SHANGHAI233承办检票业务航班号1001数额30姓名CHENGANGJIE舱位等级2234承办检票业务航班号1001数额23姓名ZHENXI舱位等级3235承办退票业务姓名CHENGANGJIE航班号1001飞行周日2236查询航线终点站名SHANGHAI3调试分析31本次的设计比较困难,需要实现较多的功能,所以在调试过程中不太顺利,主要是指针的修改。经过反复调试以后才得以解决。32本程序航线采用数组的存储结构,每条航线包含8个域,其中乘员名单域为指向乘员名单链表的头指针,等候替补的客户名单域为分别指向对头和对尾的指针。33检票函数是在退票业务模块中使用4经验和体会通过这次的程序设计,进一步理解了链表和队列结构的实现和应用。尤其需要注意的是对于指针的修改要仔细,否则会发生意想不到的结果。5源程序清单和运行结果51程序清单INCLUDEINCLUDEINCLUDEINCLUDEINCLUDEDEFINEFLIGHT_NUM100/航线最大数量TYPEDEFSTRUCTAL_CUSTOM/已检票客户CHARNAME15/姓名INTCOUNT/检票量INTLEVEL/舱位等级AL_CUSTOMNEXT/下一节点指针AL_CUSTOM,AL_CUSTOMLINKTYPEDEFSTRUCTWAIT_CUSTOM/等候替补的客户CHARNAME15/姓名INTCOUNT/所需票量WAIT_CUSTOMNEXT/下一节点指针WAIT_CUSTOMTYPEDEFSTRUCTWAIT_QUEUE/等待队列WAIT_CUSTOMFRONT/队列头指针WAIT_CUSTOMREAR/尾指针WAIT_QUEUETYPEDEFSTRUCTFLIGHT/航线CHARTERMINUS15/终点站名CHARFLIGHT_NO10/航班号CHARPLANE_NO10/飞机号INTWEEK/飞行周日INTCOUNT/乘客定额INTREST/余票量AL_CUSTOMLINKAL_LINK/指向成员名单链表的头指针WAIT_QUEUEWAIT_QUEUE/等待替补队列FLIGHTVOIDCUSTOM_INITAL_CUSTOMLINKLNEXT0VOIDCUSTOM_INSERTAL_CUSTOMLINKMEMCPYVOIDNEWNODE,NEWNODENEXTPNEXTPNEXTNEWNODEVOIDCOPYCUSTOMLINKAL_CUSTOMLINKAL_CUSTOMLINKQAL_CUSTOMPNEWCUSTOM_INITDESTQDESTWHILEPNEXTPNEWNEWAL_CUSTOMMEMCPYPNEW,PNEXT,SIZEOFAL_CUSTOMPNEWNEXT0QNEXTPNEWQPNEWPPNEXTVOIDWAITER_INITWAIT_QUEUEQFRONTNEXT0VOIDWAITER_ENWAIT_QUEUEMEMCPYNEWNODE,NEWNODENEXT0QREARNEXTNEWNODEQREARNEWNODEBOOLWAITER_DEWAIT_QUEUEMEMCPYWAIT_CUSTOMPQFRONTNEXTQFRONTNEXTPNEXTIFQREARQFRONTQREARQFRONTDELETEPCUSTOMNEXT0RETURNTRUEVOIDCOPYWAIT_QUEUEWAIT_QUEUEWAITER_INITDESTWHILEPNEXTWAITER_ENDEST,PPPNEXTINTFLIGHT_NO/航线数量FLIGHTFLIGHTFLIGHT_NUM/航线数组VOIDINITFLIGHTFLIGHTSTRNCPYCHARCUSTOM_INITFAL_LINKWAITER_INITFWAIT_QUEUEVOIDINITFLIGHT/初始化航线数组FLIGHT_NO0CHARCH0STRNCPYCHARFLIGHT,FORINTI0II1JMEMCPYVOIDMEMCPYVOIDCUSTOM_INITFLIGHTI1AL_LINKWAITER_INITFLIGHTI1WAIT_QUEUECOPYCUSTOMLINKFLIGHTI1AL_LINK,FAL_LINKCOPYWAIT_QUEUEFLIGHTI1WAIT_QUEUE,FWAIT_QUEUEFLIGHT_NOVOIDINITINTMCOUTMFORINTI1IFFLIGHT_NOCOUTFPLANE_NOCOUTFTERMINUSCOUTFWEEKCOUTFCOUNTFRESTFCOUNTINSERTFLIGHTFPRINTF“N“INTFINDBYNAMECHARTERMINUS15/根据终点站名查找FORINTI0ITERMINUSINTINDEXFINDBYNAMETERMINUSIFINDEX1PRINTF“该航线不存在N“RETURNCOUTNEXTCOUNTNEXTNAMECOUNTPNEXTCOUNTFLIGHTINDEXRESTPNEXTCOUNTSTRCPYPNEWNAME,PNEXTNAMEDOCOUTNEXTNAMEPNEWLEVELWHILEPNEWLEVELLEVEL3PNEWNEXTFLIGHTINDEXAL_LINKNEXTFLIGHTINDEXAL_LINKNEXTPNEWWAIT_CUSTOMQPNEXTPNEXTQNEXTIFFLIGHTINDEXWAIT_QUEUEREARQFLIGHTINDEXWAIT_QUEUEREARPDELETEQVOIDDINGPIAO/承办检票业务子模块CHARNO10/航班号INTCOUNT/检票量COUTNOCOUNTINTINDEXFINDBYNONOIFINDEX1COUTCOUNT/尚有余票AL_CUSTOMPNEWNEWAL_CUSTOMCOUTPNEWNAMECOUTPNEWLEVELPNEWCOUNTCOUNTPNEWNEXT0FLIGHTINDEXRESTCOUNTPNEWNEXTFLIGHTINDEXAL_LINKNEXTFLIGHTINDEXAL_LINKNEXTPNEWELSE/没有余票COUTPNEWNAMEPNEWCOUNTCOUNTPNEWNEXT0FLIGHTINDEXWAIT_QUEUEREARNEXTPNEWFLIGHTINDEXWAIT_QUEUEREARPNEWCOUTNAMENAMECOUTNOWEEKBOOLISFINDFALSEFORINTINDEX0INDEXNEXTIFSTRCMPPNEXTNAME,NAME0ISFINDTRUEAL_CUSTOMQPNEXTPNEXTQNEXTFLIGHTINDEXRESTQCOUNTCOUTNEXTIFISFINDCOUT4SWITCHCHCASE1FINDFLIGHTBREAKCASE2DINGPIAOBREAKCASE3TUIPIAOBREAKCASE4BREAKWHILECH452运行结果521输入航线522查询航线523承办检票业务524承办退票业务525查询航线航空检票系统1问题描述航空检票的业务活动包括查询航线、客票预订和办理退票等。试设计一个航空检票系统,以使上述业务可以借助计算机来完成。11每条航线所涉及的信息有终点站名、航班号、飞机号、飞行周日星期几、乘员定额、余票量、已检票的客户名单包括姓名、检票量、舱位等级1,2或3以及等候替补的客户名单包括姓名、所需票量12作为示意系统,全部数据可以只放在内存中13系统能实现的操作和功能如下131查询航线根据旅客提出的终点站名输出下列信息航班号、飞机号、星期几飞行,最近一天航班的日期和余票额132承办检票业务根据客户提出的要求航班号、检票数额查询该航班票额情况,若尚有余票,则为客户办理检票手续,输出座位号;若已满员或余票额少于检票额,则需重新询问客户要求。若需要,可登记排队候补133承办退票业务根据客户提供的情况日期、航班,为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论