C语言程序设计航空售票系统.docx
- 文档编号:23131811
- 上传时间:2023-05-08
- 格式:DOCX
- 页数:39
- 大小:416.34KB
C语言程序设计航空售票系统.docx
《C语言程序设计航空售票系统.docx》由会员分享,可在线阅读,更多相关《C语言程序设计航空售票系统.docx(39页珍藏版)》请在冰豆网上搜索。
C语言程序设计航空售票系统
某航空公司订票信息管理系统
学号:
姓名:
完成日期:
2010年12月
一、题目内容:
1、题目描述:
某航空公司订票信息管理系统
2、功能要求:
(1)录入全部机票的订票信息(包括已定出和未定出),订票编号按顺序生成;
(2)显示全部机票的订票信息;
(3)添加一条订票信息;
(4)给定订票编号,显示对应该订票编号的全部信息;
(5)给定客户姓名,显示该客户的全部订票信息;
(6)给定订票编号,修改此编号的订票信息,要求有修改确认;
(7)给定航线编号,显示该航线所有未定出的机票信息;
(8)给定客户编号或身份证号,删除此客户的订票信息(退订),删除处理后可以找到该编号。
要求有删除确认;
(9)给定订票编号,删除此编号的订票信息,删除处理后无法找到该编号。
要求有修改确认;
(10)提供一些统计各类信息的功能(例如:
各种类型舱位的订票数量、各种类型舱位机票剩余数量、最高折扣、某一天的机票总销售额等,可以自己发挥);
(11)提供一些按各类信息进行排序的功能(自己发挥)。
3、题目要求:
(1)按照分析、设计、编码、调试和测试的软件开发过程完成这个应用程序;
(2)为各项操作功能设计一个菜单。
应用程序运行后,先显示这个菜单,然后用户通过菜单项选择希望进行的操作项目。
4、输入要求:
应用程序运行后,在屏幕上显示一个菜单。
用户可以根据需求,选定相应的操作项目。
进入每个操作后,根据应用程序的提示信息,从键盘输入相应的信息。
5、输出要求:
(1)应用程序运行后,要在屏幕上显示一个菜单;
(2)要求用户输入数据时,要给出清晰、明确的提示信息,包括输入的数据内容、格式及结束方式等。
(3)输出的结果要清晰美观,以表格形式上下对齐。
二、用户文档
1、应用程序功能的说明:
本程序可实现以下功能:
1存储客机信息。
(包括:
订票编号、是否定出、客户姓名、客户身份证号码、折扣比例、航线编号、航班日期、出发城市、到达城市、舱位类型(经济舱、公务舱、头等舱)、机票价格、结算金额、备注信息等。
);
2显示全部机票的订票信息;
3添加一条订票信息;
4给定订票编号,显示对应该订票编号的全部信息;
5给定客户姓名,显示该客户的全部订票信息;
6给定订票编号,修改此编号的订票信息,要求有修改确认;
7给定航线编号,显示该航线所有未定出的机票信息;
8给定客户编号或身份证号,删除此客户的订票信息(退订),删除处理后可以找到该编号。
要求有删除确认;
9给定订票编号,删除此编号的订票信息,删除处理后无法找到该编号。
要求有修改确认;
10按折扣从高到低排序;
2、安装、启动方式:
将本程序复制到指定路径下,用WIN-TC,TC2.0或TC3.0打开。
3、界面、交互方式、操作方式:
打开程序后,您将看到以下界面:
键入1选择录入信息:
键入2选择输出信息:
键入3选择添加一条信息:
键入4选择按编号查找:
键入5选择按姓名查找:
键入6选择按编号修改:
键入7选择查找未定出的机票:
键入8选择按身份证号退订:
键入9选择按编号删除:
键入10选择按折扣从大到小排序:
4、输入数据的类型、格式、内容限制:
本程序仅支持数字、字符和英文字母的输入与显示,不支持汉字,英文字母区分大小写。
各项信息及可输入字符数上限:
信息点
字符数上限
订票编号
10
是否定出
10
客户姓名
25
客户身份证号码
45
折扣比例
10
航线编号
10
航班日期
10
出发城市
10
到达城市
10
舱位类型
10
机票价格
10
结算金额
10
本程序支持的客机上限为:
100
5、程序的运行环境
本程序可在安装有TurboC3.0,2.0或WIN-TC的PC或其他兼容机上运行。
6、产生的错误提示及原因
提示信息
产生原因
InputEorror.
键入错误编号
Noinformation.
键入错误
WrongNO.
键入错误编号
Wrongflightnumber.
键入错误航线编号
三、技术文档
1、程序整体结构
2、模块的划分及各模块的功能
本程序共10个模块,包括:
主函数、菜单模块、10个功能模块。
其中,菜单模块由两个函数嵌套而成,其余10个功能模块各由一个函数构成。
菜单模块中各函数的用途:
MENU()
输出菜单
DisplayMenu()
选择所要进行的操作
各功能模块(函数)的用途:
input()
通过键盘输入机票的订票信息
output()
显示全部机票的订票信息
add_a_ticket()
添加一条订票信息
search_by_NO()
给定订票编号,显示对应该订票编号的全部信息
search_by_name()
给定客户姓名,显示该客户的全部订票信息
revise_by_NO()
给定订票编号,修改此编号的订票信息
search_surplus_ticket_by_flight_number()
给定航线编号,显示该航线所有未定出的机票信息
delete_by_ID()
给定客户编号或身份证号,删除此客户的订票信息(退订)
delete_by_NO()
给定订票编号,删除此编号的订票信息
sort_by_discount()
按机票折扣从高到低排序
3、对于重要模块(函数)的说明
(1)函数DisplayMenu()的算法
(2)函数input()的算法
(3)函数output()的算法
(4)函数add_a_ticket()的算法
(5)函数search_by_NO()的算法
(6)函数search_by_name()的算法
(7)函数revise_by_NO()的算法
(8)函数search_surplus_ticket_by_flight_number()的算法
(9)函数delete_by_ID()的算法
(10)函数delete_by_NO()的算法
(11)函数sort_by_discount()的算法
4、程序的测试
(1)在菜单中输入“1”,即:
选择input功能,请按照程序给出的提示输入以下内容。
输入完毕后,请按任意键返回主菜单。
本次需要输入:
2人
订票编号
是否定出
客户姓名
身份证号
折扣比例
航线编号
航班日期
出发城市
到达城市
舱位类型
机票价格
结算金额
1
NO
X
4
4
4
1-1
B
A
R
1000
400
2
YES
A
5
5
4
1-2
A
B
X
1000
500
(2)返回菜单后输入“2”,即:
选择output功能。
查看全部输入内容是否输入正确。
然后,按任意键返回主菜单。
(3)返回菜单后输入“3”,即:
选择add_a_ticket功能。
按照提示添加两组信息,
订票编号
是否定出
客户姓名
身份证号
折扣比例
航线编号
航班日期
出发城市
到达城市
舱位类型
机票价格
结算金额
3
NO
B
6
8
3
1-10
C
D
R
1000
800
4
NO
C
7
2
3
1-20
D
C
X
1000
200
然后,按任意键返回主菜单。
返回菜单后输入“2”,看是否有相应添加内容;
(4)返回菜单后输入“4”,即:
选择search_by_NO功能。
输入“1”,此时应显示出编号1相关信息。
然后,按任意键返回主菜单。
(5)返回菜单后输入“5”,即:
选择search_by_name功能。
按提示输入客户姓名,如:
“A”,此时应显示客户“A”的订票信息信息,
按任意键返回主菜单。
(6)返回菜单后输入“6”,即:
选择revise_by_NO功能。
输入所要修改的订票编号“3”,显示原信息列表,提示是否修改。
此时选择“Y”,按提示将信息进行修改。
(若输入“N”表示放弃修改)
修改完成后,程序将再次显示该编号下修改后的信息。
订票编号
是否定出
客户姓名
身份证号
折扣比例
航线编号
航班日期
出发城市
到达城市
舱位类型
机票价格
结算金额
3
YES
D
7
6
3
1-11
C
D
X
1000
600
(7)返回菜单后输入“7”,即:
选择search_surplus_ticket_by_flight_number功能。
按提示输入要查询的航线编号“4”,此时显示未定出的机票信息。
订票编号
是否定出
客户姓名
身份证号
折扣比例
航线编号
航班日期
出发城市
到达城市
舱位类型
机票价格
结算金额
1
NO
X
4
4
4
1-1
B
A
R
1000
400
按任意键返回主菜单。
(8)返回菜单后输入“8”,即:
选择delete_by_ID功能。
按提示输入客户身份证号码,如:
“4”,显示该客户订票信息,并提示是否删除。
此时选择“Y”删除该信息。
(若输入“N”表示放弃删除)
按任意键返回主菜单。
回到功能2,此时,该客户身份证号码被保留,订票信息被清除,即退票。
(9)返回菜单后输入“9”,即:
选择delete_by_NO功能。
按提示输入订票编号,如:
“4”,显示该订票信息,并提示是否删除。
此时选择“Y”删除该信息。
(若输入“N”表示放弃删除)
按任意键返回主菜单。
回到功能2,此时,该订票信息被清除。
(10)返回菜单后输入“10”,即:
选择sort_by_discount功能。
此时所有机票的折扣按照从大到小的排列顺序,并输出信息。
按任意键返回主菜单。
上述过程无异常,则测试通过。
5、程序开发环境:
TurboC3.0
6、程序源代码
#include
#include
#include
#include
#defineNUM100/*定义符号常量NUM代替100(客机数上限)*/
typedefstructticket{/*订票信息的结构类型*/
charNO[10];/*订票编号*/
charorder[10];/*是否定出*/
charname[25];/*客户姓名*/
charID[45];/*客户身份证号码*/
chardiscount[10];/*机票折扣*/
charflight_number[10];/*航线编号*/
charTake_offtime[10];/*航班日期*/
charstartlocation[10];/*出发城市*/
chardestinations[10];/*到达城市*/
charcabin[10];/*舱位类型*/
charprice[10];/*机票价格*/
charmoney[10];/*结算金额*/
}ticket;
tickett[NUM];
inti=0,n=0;/*定义全局变量i和n*/
voidMENU();/*声明函数MENU()的原型*/
voidDisplayMenu();/*声明函数DisplayMenu()的原型*/
intinput(tickett[],intn);/*声明函数input()的原型*/
voidoutput(tickett[],intn);/*声明函数output()的原型*/
intadd_a_ticket(tickett[],intn);/*声明函数add_a_ticket()的原型*/
voidsearch_by_NO(tickett[],intn);/*声明函数search_by_NO()的原型*/
voidsearch_by_name(tickett[],intn);/*声明函数search_by_name()的原型*/
voidrevise_by_NO(tickett[],intn);/*声明函数revise_by_NO()的原型*/
voidsearch_surplus_ticket_by_flight_number(tickett[],intn);
/*声明函数search_surplus_ticket_by_flight_number()的原型*/
voiddelete_by_ID(tickett[],intn);/*声明函数delete_by_ID()的原型*/
voiddelete_by_NO(tickett[],intn);/*声明函数delete_by_NO()的原型*/
voidsort_by_discount(tickett[],intn);/*声明函数sort_by_discount()的原型*/
main()
{
DisplayMenu();
return0;/*结束主函数*/
}
voidMENU()
{
clrscr();
printf("\n======MENU======\n");
printf("\n1......input_information\n");
printf("\n2......output_information\n");
printf("\n3......add_a_ticket\n");
printf("\n4......search_by_NO\n");
printf("\n5......search_by_name\n");
printf("\n6......revise_by_NO\n");
printf("\n7......search_surplus_ticket_by_flight_number\n");
printf("\n8......delete_by_ID\n");
printf("\n9......delete_by_NO\n");
printf("\n10......sort_by_discount\n");
printf("\n11......Exit\n");
}
voidDisplayMenu()
{
intchoice;/*定义开关变量*/
clrscr();
do{/*根据用户输入做出选择*/
MENU();/*输出菜单*/
printf("Pleaseenteryourchoice:
");
scanf("%d",&choice);/*接收用户输入信息*/
switch(choice){/*进行开关选择*/
case1:
n=input(t,n);break;
case2:
output(t,n);break;
case3:
n=add_a_ticket(t,n);break;
case4:
search_by_NO(t,n);break;
case5:
search_by_name(t,n);break;
case6:
revise_by_NO(t,n);break;
case7:
search_surplus_ticket_by_flight_number(t,n);break;
case8:
delete_by_ID(t,n);break;
case9:
delete_by_NO(t,n);break;
case10:
sort_by_discount(t,n);break;
default:
printf("\nInputEorror.");
exit(0);
}
}while(choice!
=0);
printf("\nBYE!
\n");
}
intinput(tickett[],intn)
{
intw;/*定义循环变量w(本次需要输入的机票数)*/
clrscr();
printf("\nHowmanyairplaneinformationwillyouinputthistime:
");
scanf("%d",&w);
for(i=0;i printf("\nyoustillhave%dinformationtoinput",w-i); /*提示还有w-i个机票信息待输入*/ printf("\nEnterinformation: NO\n");/*提示输入编号*/ scanf("%s",&t[i].NO); printf("\nEnterinformation: order(YES/NO)\n");/*提示输入是否定出*/ scanf("%s",&t[i].order); printf("\nEnterinformation: name\n");/*提示输入客户姓名*/ scanf("%s",&t[i].name); printf("\nEnterinformation: ID\n");/*提示输入客户身份证号码*/ scanf("%s",&t[i].ID); printf("\nEnterinformation: discount\n");/*提示输入机票折扣*/ scanf("%s",&t[i].discount); printf("\nEnterinformation: flight_number\n");/*提示输入航线编号*/ scanf("%s",&t[i].flight_number); printf("\nEnterinformation: Take_offtime\n");/*提示输入航班时间*/ scanf("%s",&t[i].Take_offtime); printf("\nEnterinformation: startlocation\n");/*提示输入出发城市*/ scanf("%s",&t[i].startlocation); printf("\nEnterinformation: destinations\n");/*提示输入到达城市*/ scanf("%s",&t[i].destinations); printf("\nEnterinformation: cabin\n");/*提示输入舱位类型*/ scanf("%s",&t[i].cabin); printf("\nEnterinformation: price\n");/*提示输入机票价格*/ scanf("%s",&t[i].price); printf("\nEnterinformation: money\n");/*提示输入结算金额*/ scanf("%s",&t[i].money); clrscr(); } returnw; } voidoutput(tickett[],intn) { clrscr(); printf("\nNO\torder\tname\tID\tDis\tF_NO\n"); for(i=0;i printf("\n%s\t%s\t%s\t%s\t%s\t%s\n",t[i].NO,t[i].order,t[i].name,t[i].ID,t[i].discount,t[i].flight_number); } printf("\nTake_offtime\tST\tDE\tcabin\tprice\tmoney\n"); for(i=0;i printf("\n%s\t%s\t%s\t%s\t%s\t%s\n",t[i].Take_offtime,t[i].startlocation,t[i].destinations,t[i].cabin,t[i].price,t[i].money);/*显示的信息*/ } printf("\nPressanykeytoreturn.\n");/*提示返回*/ getch(); } intadd_a_ticket(tickett[],intn) { intj=n;/*定义变量j,并将j赋值给n*/ clrscr(); printf("\n-----------add_a_ticket------------\n"); printf("\nEnterinformation: NO\n"); scanf("%s",t[n].NO); printf("\nEnterinformation: order(YES/NO)\n"); scanf("%s",t[n].order); printf("\nEnterinformation: name\n"); scanf("%s",t[n].name); printf("\nEnterinformation: ID\n"); scanf("%s",t[n].ID); printf("\nEnterinformation: discount\n"); scanf("%s",t[n].discount); printf("\nEnterinformation: flight_number\n"); scanf("%s",t[n].flight_number); printf("\nEnterinformation: Take-offtime\n"); scanf("%s",t[n].Take_offtime); printf("\nEnterinformation: startlocation\n"); scanf("%s",t[n].startlocation); printf("\nEnterinformation: destinations\n"); scanf("%s",t[n].destinations); printf("\nEnterinformation: cabin\n"); scanf("%s",t[n].cabin); printf("\nEnterinformation: price\n"); scanf("%s",t[n].price); printf("\nEnterinformation: money\n"); scanf("%s",t[n].money); n=j+1; printf("\nPressanykeytoreturn.\n"); getch(); clrscr
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言程序设计 航空 售票 系统
![提示](https://static.bdocx.com/images/bang_tan.gif)