软件课程-设计报告_第1页
软件课程-设计报告_第2页
软件课程-设计报告_第3页
软件课程-设计报告_第4页
软件课程-设计报告_第5页
已阅读5页,还剩35页未读 继续免费阅读

下载本文档

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

文档简介

1、 TOC o 1-5 h z 1软件设计31 . 1设计题目31.2设计思想3 HYPERLINK l bookmark9 o Current Document . 3功能划分3 HYPERLINK l bookmark23 o Current Document 1.4程序流程图5软件测试10 HYPERLINK l bookmark26 o Current Document 2.1浏览航班信息模块测试10 HYPERLINK l bookmark30 o Current Document 2.2创建航班信息模块测试11 HYPERLINK l bookmark33 o Current Doc

2、ument 2.3航班信息查询模块测试11 HYPERLINK l bookmark39 o Current Document 2.4乘客信息查询模块测试13 HYPERLINK l bookmark42 o Current Document 2.5机票购买模块测试15 HYPERLINK l bookmark45 o Current Document 2.6退票模块测试17 HYPERLINK l bookmark54 o Current Document 开发体会22 HYPERLINK l bookmark70 o Current Document 附录:源代码清单2 4参考文南犬351

3、、软件设计1.1设计题目飞机票销售系统1.2设计思想设计一个飞机票销售系统,所设计的系统分为六个模块,分别 为创建航班信息、浏览航班信息、航班信息查询、机票购买、机票信 息查询和机票退购六个基本模块程序中定义了两个结构体airfight 和pessinform,分别用于航班信息和乘客信息的存取和修改。程序 中有两个文件“inf_fl.txt”和“inf_cl.txt”,用于存取航班信息 和乘客信息。通过子函数完成每个模块的功能,并将信息存储在文件 中。将所设计的系统分为两个子系统:1、航班管理系统;2、飞机票 销售系统。航班管理系统提供航班信息建立和浏览的服务。机票销售 系统提供四个服务,订票

4、、退票、航班信息查询、乘客信息查询。每 个模块通过子函数是实现。程序中使用的查找数据方式为顺序查找。1.3功能划分程序的模块组成及功能: 主函数main()打开文件函数:打开航班信息open_fl()打开乘客信息open_cl()存储文件函数:存储航班信息save_fl()存储乘客信息save_cl()菜单显示函数:欢迎界面函数welcome()航班管理manage_sys()飞机票销售系统sold_sys()航班管理系统创建航班信息函数:creat_fl ()浏览航班信息函数:scan_fl ()机票销售系统信息查询函数:search_fl ()航班信息查询函数search_client(乘

5、客信息查询函数购票函数 perchase_cl()退票函数 ticket_back()1.4程序流程图主函数流程图航班信息查询函数search_fl ()流程图2软件测试2.1浏览航班信息模块测试运行程序,进入欢迎界面选择1,进入航班管理系统,继续选择2,进入浏览航班信息显示已经存储的十组航班信息:2.2创建航班信息模块测试进入航班管理系统后,选择1,开始输入新的航班信息询询务劳 查查服服 息息买购 信信购退 班蓄票 航乘段 询询务劳 查查服服 息息买购 信信购退 班蓄票 航乘段 创建航班编号为BH1267,目的地changchun,起飞时间19:30,剩余 机票数15,最大载客数300的航班

6、。显示航班信息创建完毕。2.3航班信息查询模块测试选择2,进入飞机票销售系统乎 *F: 课件软件课程设计飞机票Debugvork. exe*L进入航踱置理鑫统L进入飞机景销舍系统E退出系统飞机票销售系统请选择没 .飞机票销售系统请选择:选择1查询航班信息,输入目的地“shanghai”I-K进入飞机祟销售豺而 退出系统询询 查查服服 息息买购 信信购诅 班备票 航乘贵 L A 土 .生查询航线请选择T查询航线请输入目的弛:shanghai若有飞彳主shanghai的航班,显示查询结果查询目的地“Changchun”的航班信息I?1飞机票销售系统询询务务 查查服服 息息买购 信信购退 班蓄禀查询

7、航线航班编号CA1000航班编号ZH1006ri-:目的地changchun字息:目的地changchun起飞时间起飞时间14:55剩余机票数11剩余机票数7最大载客数200最大载客数2002.4乘客信息查询模块测试进入飞机票销售系统后,选择2,查询乘客信息| m -F八课件软件课程设计飞机票YDeIhI叭017虹EKEk:进入航班篁理是统2,进入飞料集销售系统M退出系统询询务务 查查服服 息息买购 询询务务 查查服服 息息买购 信购退 班备票 航乘帆 心12.13.14.请选择壮输入查询的航班号,如“CA1002”若航班中有乘客,显示结果一凝疝信皂一-:请输入所要查询的航班号Cfil002机

8、票编号航班编号目的地起飞时间姓名性别证件号码B0801 CA1002vjuhan10:08liyemal票编号航班编号目的地起飞时间姓名性别证件号码AB701 CA10B2vjuhan10:08i-jen zhangmal口 Xg *F八课件_软件课程设计飞机票Debugvork. exe*查询的航班号“CA1001”中的乘客信息:显示此趟航班中所有乘客信息查询乘客信息A1001加票编号航班编号BR902 CA1031机票编号航班编号A0903 CA1Q31机票编号航班编号BR904 CA1031 机票编号航班编号

9、 机票编号航班编号BS906 CA1031机票编号航班编号A0987 CA1031机票编号航班编号BR908 CA1Q31机票编号航班编号A090? CA1031机票编号航班编号J91010 CA1031 机票编号航班编号 filBll CA1031目的弛guangzhou目的地guangzhou目的地guangzhou目的地guangzhou目的弛guangzhou目的弛guangzhou目的地guangzhou目的地guangzhou目的地guangzhou目的弛guangzhou起飞时间起飞时间起飞时间起飞时i司起飞时间起飞时间起飞时间起飞时间起飞时i司起飞时间n i n q- e o

10、n n i i 名ue名nl名ue名an名如名g名Ji名ue名如名ol 姓he姓su姓.贝姓Xi姓11姓那姓.g姓四姓眼姓费 i o weayx性别nale性别fenale隹别fenale怪别male性别female性别nale性别fenale性别fenale怪别emale性别female证件号码4201061967K5231542证件号码4201051987B2145454证件号件号码42010619H7B2149816证件号码4201061987B214H101证件号件号码4201051987B214581S证

11、件号码42010619V5B2145467证件号码4201061967B2145454证件号码4201061990821454012.5机票购买模块测试选择3,进入购买机票服务,显示航班信息询询务务 查查服服 息息买购 信信购退 班簧票. 航乘畀购买航班CA1002的机票:询询务务 查查服服 息息买购 信信购退 班簧票. 航乘畀购买航班CA1002的机票:输入航班编号CA1002,若这次航班中有剩余机票,则继续输入机票 编号。输入乘客zhangyue的信息:输入机票号A1515,乘客姓名zhangyue,性别female,证件号码显示购票成功。返回主菜单

12、,进入查询航线服务输入zhangyue购买的机票的目的地“wuhan”,查询航班信息。显示编号为“CA1002”的航班剩余机票数由“4”减少为“3”。e H课件软件课程设计飞机票DebugYvork. exe*查询乘客信息请输入所要查询的航班号:CA1002机票编号航班编号B0801 CA1002机票编号航班编号查询乘客信息请输入所要查询的航班号:CA1002机票编号航班编号B0801 CA1002机票编号航班编号A0701 CA1002机票编号航班编号A1515 CA1002技任意键返回主菜单!目的地i-juhan目的地i-juhan目的地i-juhan起飞时间起飞时间起飞时间ege 名iy

13、名即名W 姓1姓办姓叫性别male性别male性别F enale证件号码4201S561967(n283?64证件号码4201i?61991(532Ji7872证件号码4201H6197807228213查询CA1002航班中乘客信息,有zhangyue的信息。表明购票成功。2.6退票模块测试选择2,进入机票销售系统统 统系 理销 X 如飞系 入入出 进进退12 3择选hf询询务务查查服服息息买购信信购退班蓄寄示航乘畀择选hf选择4,输入退票的航班编号ZH1006调用乘客信息查询函数,显示航班ZH1006的乘客信息输入航班编号;机票编号航班编号B3131 ZH1066机票编号航班编号A5454

14、 ZH1066机票编号航班编号H3S01 ZH1S66机票编号航班编号H3蜉甚N ZH1066机票编号航班编号计5453机票编号航班编号B3130 ZH1S66,查询乘客信息 店号:目的地起飞时间change Iiun14:55目的地起飞时间changehun14:55目的地起飞时间changehun14:55目的地起飞时间changehun14:55目的地起飞时间changehun14=55目的地起飞时间changehun14:55君tao名*名心名fei名nqi名tao 姓ai姓响姓孙姓旧姓he姓11 h h o Zz 1 ffnaw性别male性别male性别F emale性别male性

15、别F emale性别male证件号码4201S6199103251324证件号码4201819903251324证件号码42018199187131324证件号件号码4201S61991ia25101S证件号码4201S6197703252325乘客majie退票:课件软件课程设计、飞机票Debugvork. exe*清输入慈鬲饪件号码:4261061993032513241退票成功!按任意键返回主菜单I输入乘客majie的证件号此次航班有此人,显示退票成功。返回主菜单,进入查询航线服务查询ZH1006的航班信息,

16、显示剩余机票数由7”增加到“8”。g *H: 课件_软件课程设计飞机票Debugvork. exe*官跑06机票编号航班编号B3131ZH1006机票编号航班编号B3001ZH1006机票编号航班编号B3002ZH1006机票编号航班编号官跑06机票编号航班编号B3131ZH1006机票编号航班编号B3001ZH1006机票编号航班编号B3002ZH1006机票编号航班编号A5453ZH1006机票编号航班编号B3130 ZH1006目的地changchun目的地changchun目的地changchun目的地changcliLin目的地changchun起飞时间起飞时间起飞时间起飞时间起飞时

17、间o i i i o名ta名ss名e名叫名杯姓ai姓前姓ng姓膈姓lih hozz 1 ffnau性别证件号码male别证件号码fenale别证件号码nale别证件号码female别证件号码nale询ZH1006的乘客信息,显示没有乘客majie的信息。综上表明退 票成功。退出系统:返回主菜单,选择3L进入航理篁理是统以进入飞机票铠誉系统k退出系统:卢M 藉:声:芦:声:芦:芦:尸:声:讣 :声

18、M: t*请选择方选择1,保存信息,退出系统3、开发体会一个飞机票销售系统所包含的信息很多,在刚拿到题目时,对于 如何处理众多的信息感到困惑。于是开始思考从子函数到主函数这个 大致方向。首先,按照功能将程序大致划分为6个模块,定义两个结 构体链表指针flnode* (航班)和clnode* (乘客),为了方便在子模 块中操作,将其定义为全局变量。模块化思想能让思路更清晰在子 函数中完成单个功能以减少错误。在编程过程中,遇到的问题如下:1、运行时内存不可读。调试发现是打开文件出错,改正方法是 先将结构体链表的第一个链结的信息输入到内存,再通过循环判断语 旬while(!feof(fp_fligh

19、t)依次将链表的信息输入到内存。2、每个链表,分别定义了两个全局变量指针,头指针flhead*、 clhead*和尾指针fltail*、cltail*。在打开文件操作、建立信息操作中, 需要先给头指针分配内存空间。最后要把新添加的链表指针赋给尾指 针,例如 fltail=p;fltail-next=NULL;3、购票相当于增加乘客链表一个链结,同时修改航班链表信息。 退票相当于删除乘客链表一个链结,同时修改航班链表信息。应用链 表一章的相关知识分别编写两个子函数。4、在运行时,不能显示文件中的信息,直接跳过printf (*); 语旬。反复检测后发现是格式问题。写入文件中的信息在格式上要一 一

20、对应。比如:printf(%8s%8s%12s%8s%13s%10s%20sn,p-data.pes_num,p-data.p es_flight,p-data.pes_des,p-data.pes_time,p-data.pes_name,p-data.pe s_sex,p-data.idcard);输出乘客信息,在文件中写入乘客信息时格式 %8s%8s%12s%8s%13s%10s%20sn保存文件函数中格式为fprintf(fp_client,%8s%8s%12s%8s%13s%10s%20sn,*)这次飞机票销售系统的开发任务是学习C语言以来所遇到的最 复杂的题目,也是将所学的知识应用

21、到实际中去的一次实践。之所以 觉得难,是因为文件、链表的相关知识掌握得不熟悉,很多方法需要 自学,并且时间有限。但通过这次的分析、设计、开发,让我初步掌 握了小规模程序的设计开发方法和步骤。附录:源代码清单#include#include#include #include #includeFILE *fp_flight;/存储航班信息的文件 FILE *fp_client;/存储乘客信息文件typedef struct airlinechar fl_num20;/航 班编号char fl_des20;/ 目的地char fl_time20;/起 飞时间int fl_left;/剩余机票数int

22、 fl_max;/最 大载客数 airflight;typedef struct pessenagerchar pes_num20;/乘 客机票编号char pes_flight20;/所 乘航班编号char pes_des20;/乘 客目的地char pes_time10;/起 飞时间char pes_name20;/乘 客姓名char pes_sex10;/乘客性 别char idcard20;/乘 客证件号码 pessinform;typedef struct linkflightairflight data;struct linkflight *next;flnode;/航班信息结构体

23、链表指针 flnode *flhead=NULL; /全局链表头指针 flnode *fltail=NULL; /全局链表尾指针typedef struct linkclientpessinform data;struct linkclient *next;clnode;/a票信息结构体链表指针clnode *clhead=NULL;clnode *cltail=NULL;void welcome() /界面欢迎函数 printf(*n);printf(printf(中国航空n);n);printf(printf(欢迎进入飞机票销售系统n);n);printf(按任意键进入_n);void o

24、pen_fl()/打开航班信息文件函数flnode *p,*q;flhead=p=(flnode *)malloc(sizeof(flnode);fltail=(flnode *)malloc(sizeof(flnode);if(fp_flight=fopen(inf_fl.txt,rt)=NULL)printf(不能打开文件,按任意键推出! n);getch();exit(1);rewind(fp_flight);/重 置文件指针/将文件中的信息输入到内存fscanf(fp_flight,%s%s%s%d%d”,p-data.fl_num,p-data.fl_des,p-data.fl_ti

25、me,&p-data.fl_left,&p-data.fl_max);while(!feof(fp_flight)q=(flnode *)malloc(sizeof(flnode);fscanf(fp_flight,%s%s%s%d%d”,q-data.fl_num,q-data.fl_des,q-data.fl_time,&q-data.fl_left, &q-data.fl_max;p-next=q;p=q;fltail=p;fltail-next=NULL;fclose(fp_flight);/关闭文件void save_fl()/存储航班信息文件函数flnode *p=flhead;i

26、f(fp_flight=fopen(inf_fl.txt,wt)=NULL)printf(不能打开文件,按任意键推出! n);getch();exit(1);while(p!=NULL)fprintf(fp_flight,%15s%15s%15s%10d%10dn”,p-data.fl_num,p-data.fl_des,p-data.fl_time,p-data.fl_left,p-data.fl_max);/将内存中的信息输出到文件p=p-next;fclose(fp_flight);/关闭文件void open_cl()/打开乘客信息文件clnode *p,*q;clhead=p=(cl

27、node *)malloc(sizeof(clnode);cltail=(clnode *)malloc(sizeof(clnode);if(fp_client=fopen(inf_cl.txt,rt)=NULL)printf(不能打开文件,按任意键推出! n);getch();exit(1);/将文件中的信息输入到内存fscanf(fp_client,%s%s%s%s%s%s%s”,p-data.pes_num,p-data.pes_flight,p-data.pes_des,p-data.pes_time,p-data.pes_name,p-data.pes_sex,p-data.idca

28、rd);while(!feof(fp_client)q=(clnode *)malloc(sizeof(clnode);fscanf(fp_client,%s%s%s%s%s%s%s”,p-data.pes_num,p-data.pes_flight,p-data.pes_des,p-data.pes_time,p-data.pes_name,p-data.pes_sex,p-data.idcard);p-next=q;p=q;cltail=p;cltail-next=NULL;fclose(fp_client);/关闭文件 void save_client()/存储乘客信息文件clnode

29、*p=clhead;if(fp_client=fopen(inf_cl.txt”,wt)=NULL)printf(不能打开文件,按任意键推出! n);getch();exit(1);while(p!=NULL)fprintf(fp_client,%8s%8s%12s%8s%13s%10s%20sn,p-data.pes_num,p-data.pes_flight,p-data.pes_des, p-data.pes_time,p-data.pes_name,p-data.pes_sex, p-data.idcard);p=p-next;fclose(fp_client);/关闭文件void m

30、anage_sys()/航班管理系统函数 TOC o 1-5 h z printf(-航班管理系统n);printf(n);printf(-1、创建 航 班 信 息n);printf(2、浏 览 航 班 信 息n);void creat_fl()创建航班信息函数flnode *p;flhead=(flnode *)malloc(sizeof(flnode);p=(flnode *)malloc(sizeof(flnode);printf(-创建航班信息n);printf(请输入航班编号:n);scanf(%s”,p-data.fl_num);printf(请输入飞行目的地:n);scanf(%

31、s”,p-data.fl_des);printf(请输入起飞时间:n);scanf(%s,p-data.fl_time);printf(请输入剩余机票数:n);scanf(%d,&p-data.fl_max);printf(请输入最大载客数:n);scanf(%d,&p-data.fl_left);if(flhead=NULL)flhead=p;elsefltail-next=p;fltail=p;fltail-next=NULL;printf(-航班信息创建完毕!n);void scan_fl()浏览航班信息函数flnode *p=flhead;printf(-浏览航班信息n);if(p=N

32、ULL)printf(无任何航班信息n);elseprintf(-航班编号目的地t起飞时间t剩余机票数t最大载客数n);while(p!=NULL)printf(%15s%15s%15s%10d%10dn”,p-data.fl_num,p-data.fl_des,p-data.fl_time,p-data.fl_left,p-data.fl_max);/输出航班信息p=p-next;void sold_sys()/销售系统服务菜单函数printf(飞机票销售系统n);printf(n);nnnn询询务务查查服服息息买购信信购退printf(1、nnnn询询务务查查服服息息买购信信购退print

33、f(2、乘 客printf(3、机 票printf(4、机 票printf(n);void search_fl()/航班信息查询函数flnode *p=flhead;int a=0;char str15;printf(查询航线n);printf(请输入目的地:n);scanf(%s”,str);if(p=NULL)printf(-无任何航班信息! n);while(p!=NULL)if(strcmp(p-data.fl_des,str)=0)a=1;/找到查询信息printf(-飞往此目的地的航班信息:n);printf(-航班编号七目的地宣 起飞时间t剩余机票数t最大载客数/);printf

34、(%15s%15s%15s%10d%10dn”,p-data.fl_num,p-data.fl_des,p-data.fl_time,p-data.fl_left,p-data.fl_max);/输出航班信息p=p-next;if(a=0)printf(抱歉!没有您所需的航班! n);void search_client()/乘 客信息查询函数clnode *p=clhead;flnode *q=flhead;char str20;int x=0,y=0;printf(查询乘客信息n);printf(-请输入所要查询的航班号:n);scanf(%s”,str);getchar();while(

35、q!=NULL)if(strcmp(q-data.fl_num,str)=0)x=1;/找到此航班while(p!=NULL)if(strcmp(p-data.pes_flight,q-data.fl_num)=0)y=1;/找到此趟航班中乘客printf(-机票编号航班编号目的地 起飞时间 姓名性别t证件号码n);printf(%8s%8s%12s%8s%13s%10s%20sn”,p-data.pes_num,p-data.pes_flight,p-data.pes_des,p-data.pes_time, p-data.pes_name,p-data.pes_sex,p-data.idc

36、ard);p=p-next;if(y=0)printf(此航班暂无乘客! n);q=q-next;if(x=0)printf(无此航班! n);void perchase_cl()/机 票购买函数 clnode *p;flnode *q=flhead;int x=0,y=0;char m20;p=(clnode *)malloc(sizeof(clnode);printf(购买机票-n);printf(*航班信息*n吃printf(航班编号目的地起飞时间剩余机票数最大载客数n);printf(CA1000changchun09:0011200n);printf(CA1001guangzhou1

37、1:2712200n);printf(CA1002wuhan10:084100n);printf( CZ1003shenzhen15:2015100n);printf( AG1004shenzhen08:0015200n);printf( AG1005shanghai16:306200n);printf( ZH1006changchun14:557200n);printf( ZH1007chongqing07:303100n);printf( CA1008qingdao09:2010100n);printf( ZA1009wuhan20:205100n);printf(* 创建乘客信息 *n)

38、;printf(n);n);printf(n);printf(请输入所乘航班编号:n);scanf(%s,m);getchar();while(q!=NULL)if(strcmp(q-data.fl_num,m)=0)x=1;/找到此航班if(q-data.fl_left)0)/还有剩余机票y=1;printf(-请输入机票编号:n);scanf(%s”,p-data.pes_num);/输 入机票编号printf(请输入乘客姓名:n);scanf(%s”,p-data.pes_name);/输 入姓名printf(-请输入乘客性别:n);scanf(%s”,p-data.pes_sex);/

39、输 入性别printf(请输入证件号码:n);scanf(%s”,p-data.idcard); /输入证件号码strcpy(p-data.pes_flight,q-data.fl_num);/复制机票的航班编号 strcpy(p-data.pes_des,q-data.fl_des);/复制机票的目的地 strcpy(p-data.pes_time,q-data.fl_time);/复制机票的起飞时间 if(clhead=NULL)clhead=p;elsecltail-next=p;cltail=p;cltail-next=NULL;(q-data.fl_left)-;/购买一张机票,剩余

40、机票数减少一张if(y=0)printf(已无剩余机票! n);elseprintf(乘客信息创建完毕!购票成功! n);q=q-next;if(x=0)printf(无此航班! n);void ticket_back()/退 票函数flnode *p=flhead;clnode *q=clhead,*qq;char m15,str20;int x=0;int flag=0;printf(退票n);printf(*航班信息*n);printf(航班编号目的地起飞时间 剩余机票数最大载客数/printf( CA1000changchun09:0011200n);printf( CA1001guangzhou11:2712200n);printf(CA1002wuhan10:084100n);printf( CZ1003shenzhen15:2015100n);printf( AG1004shenzhen08:0015200n);printf( AG1005shanghai16:306200n);printf( ZH1006changchun14:557200n);printf( ZH1007chongqing07:303100n);printf( CA1008qingdao09:2010100n);printf(ZA1009wuhan20:205100n);prin

温馨提示

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

评论

0/150

提交评论