数据结构课程设计报告格式及要求(航空购票系统)_第1页
数据结构课程设计报告格式及要求(航空购票系统)_第2页
数据结构课程设计报告格式及要求(航空购票系统)_第3页
数据结构课程设计报告格式及要求(航空购票系统)_第4页
数据结构课程设计报告格式及要求(航空购票系统)_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、 数据结构课程设计报告题目 航空客运订票系统 专业班级 学号 姓名 指导教师 成绩 一、设计任务航空客运订票的业务包括查询(航线和客票预订的)信息、客票预订和办理退票等。基本要求有:(1) 系统必须存储的数据信息i. 航班信息:飞机抵达城市、航班号、飞机号、起降时间、航班票价、票价折扣、总位置和剩余位置、已订票的客户名单。ii. 客户信息:客户姓名、证件号、座位号。(2) 系统能实现的功能i. 承办订票业务:根据客户提出的要求(飞机低达城市、起降时间、订票数量)查询该航班信息(包括票价、折扣和剩余位置),若满足要求,则为客户办理订票手续,输出座位号。ii. 承办退票业务:根据客户提供的情况(航

2、班号、订票数量),为客户办理退票手续。(3) 查询功能i. 查询航线信息:根据飞机降落地点,输出下列信息:航班号、飞机号、起降时间、航班票价、票价折扣和剩余位置。ii. 查询客户预订信息:根据客户证件号,输出下列信息:航班号、飞机号和座位号。提供的参考程序已经基本实现以上功能,但有很多不足之处,要求进行程序改进和完善。具体任务有:(1) 分析参考程序实现了哪些功能?指出存在的缺陷。(2) 从以下几方面完善程序:i. 功能上的完善ii. 程序结构上的完善iii. 程序控制上的完善二、设计要点1、改变了订票系统主界面格式及背景颜色;2、增加了清屏功能,避免语句过多的结果;3、实现了订票与否;4、实

3、现了只能输入正确航班;5、实现了选择性别只能选择男女;6、订票成功余票减少三、算法实现#include<stdio.h>#include <stdlib.h>#include<malloc.h>#include<string.h>#define OK 1#define ERROR 0typedef struct airline /* 飞机航班的结构定义 */char air_num8; /航班号 char plane_num8;/飞机号 char end_place20;/抵达城市 int total; /总位置 int left; /剩余位置s

4、truct airline *next;airline;/*顾客信息的结构定义 */typedef struct customer char name8; /姓名 char sex8; /性别 char id20; /身份证 char air_num8; /航班号 int seat_num; /座位号 struct customer *next; /指向下一个旅客customer; /*创建航班链表 */airline *start_air() airline *a; a=(airline*) malloc(sizeof(airline); if(a=NULL) printf("空间

5、不足"); return a;/*创建顾客链表 */customer *start_cus() customer *c; c=(customer*)malloc(sizeof(customer); if(c=NULL) printf("空间不足"); return c;/* 修改航班的空余座位信息 */airline *modefy_airline(airline *l,char *air_num) airline *p; p=l->next; for(;p!=NULL;p=p->next) if(strcmp(air_num,p->air_nu

6、m)=0) p->left+; return l; printf("NO the airline!"); return 0; /* 增加航班信息*/int insert_air(airline *p,char *air_num,char *plane_num,char *end_place,int total,int left) airline *q; q=(airline*)malloc(sizeof(airline); strcpy(q->air_num,air_num); strcpy(q->plane_num,plane_num); strcpy(

7、q->end_place,end_place); q->total=total; q->left=left; q->next=NULL; (*p)->next=q; (*p)=(*p)->next; return OK; /*增加某航班的顾客信息*/int insert_cus(customer *p,char *name,char *sex,char *id,char *air_num,int seat_num) customer *q; q=(customer*)malloc(sizeof(customer); strcpy(q->name,nam

8、e);strcpy(q->sex,sex);strcpy(q->id,id); strcpy(q->air_num,air_num); q->seat_num=seat_num; q->next=NULL; (*p)->next=q; (*p)=(*p)->next; return OK;/*订票操作*/int book(airline *a,char *air_num,customer *c,char *name,char *sex,char *id) airline *p=a; customer *q=c->next; p=a->nex

9、t; for(;p->next!=NULL;p=p->next)if(strcmp(p->air_num,air_num)=0)break;while(q->next!=NULL)q=q->next; if(p->left>0) printf("您的座位号是 %d",(p->total-p->left+1);printf("n"); insert_cus(&q,name,sex,id,air_num,p->total-p->left+1); -p->left;p=p->

10、next; return OK; else printf("没您的座啦!"); return 0; /*取消订票信息操作*/int del_cus(customer *c,airline *l,char *name) customer *p,*pr; char air_num8; pr=c; p=pr->next; while(p!=NULL) if(strcmp(p->name,name)=0|strcmp(p->air_num,air_num)=0) strcpy(air_num,p->air_num); l=modefy_airline(l,a

11、ir_num); pr->next=p->next; p=pr->next; printf("取消订票成功!n"); return OK; pr=pr->next; p=pr->next; printf("没有这个人儿啊n"); return ERROR;/*查找航班信息操作*/int search_air(airline *head) airline *p=head->next; printf("air_num plane_num end_place total leftn"); for(;p!=

12、NULL;p=p->next) printf("%s %-10s %-8s %-8d%-8dn", p->air_num, p->plane_num,p->end_place,p->total,p->left); return OK; /*查找顾客信息操作*/int search_cus(customer *head) struct customer *q=head->next; printf(" name sex id air_num seat_numn"); for(;q!=NULL;q=q->next

13、) printf("%-8s%-8s%-8s%-12s%-dn",q->name,q->sex,q->id,q->air_num,q->seat_num); return OK;/*预先设置航班信息*/int creat_air(airline *l) airline *p=*l; int i=0; char *air_num3="007af","008af","009af" char *plane_num3="航班1","航班2","

14、航班3" char *end_place3="美国","德国","法国" int total3=100,100,100; int left3=52,54,76; for(i=0;i<3;i+) insert_air(&p,air_numi, plane_numi, end_placei,totali, lefti); return OK;/*预先设置已订票的顾客信息 */int creat_cus(customer *l) customer *p=*l; int i=0; char *name3="张

15、三","李四","王五"char *sex8="nan","nan","nan"char *id20="123456","654321","741852" char *air_num3="007af","008af","009af" int seat_num3=2,5,7; for(i=0;i<3;i+) insert_cus(&p,namei,sexi

16、,idi,air_numi,seat_numi); return OK;void main() system("color 8E"); int t=1; customer *cus=start_cus(); airline *air=start_air(); char name8,air_num8,ch,m;char sex8,id20; creat_air(&air); creat_cus(&cus);search_air(air); while(t=1) printf("nnn"); printf(" *n");

17、printf(" * 欢迎来订票哦,亲! *n"); printf(" * 订票-1 *n"); printf(" * 退票-2 *n"); printf(" * 查询-3 *n"); printf(" * 退出-4 *n"); printf(" *n"); scanf("%s",&ch); if(ch='1') system("cls");search_air(air); printf("亲,想乘坐哪

18、辆航班嘞:"); scanf("%s",air_num); if(strcmp(air_num,"007af")=0|strcmp(air_num,"008af")=0|strcmp(air_num,"009af")=0) printf("亲叫啥嘞:"); scanf("%s",name);y1: printf("您的性别(nan or nv):");scanf("%s",sex); if(strcmp(sex,"n

19、an")=0|strcmp(sex,"nv")=0) printf("您的id:"); scanf("%s",id); else goto y1; printf("*确认请输入Y否则输入N:");scanf("%s",&m); if(m='Y'|m='y') printf("订票成功!");book(air,air_num,cus,name,sex,id); else if(m='n'|m='N') printf("取消航班成功!n"); elseprintf("您的输入有误n"); else printf("对不起,没有你要找的航班:nn");system("pause"); else if(ch='2&#

温馨提示

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

评论

0/150

提交评论