飞机订票系统实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计

课程名称:数据结构

实验项目:飞机订票系统

姓名:

专业:

班级:

学号:

计算机科学与技术学院

年月日

实验项目名称:飞机订票系统

一、实验目的:

1. 了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;

2. 初步掌握软件开发过程的问题分析、系统设计、程序编码、测试等基本方法和技

能;

3. 提高综合运用所学的理论知识和方法独立分析和解决问题的能力;

二、实验内容

(1)本系统实现航班订票的功能。要求具有录入、订票、退票等功能。

(2)航班信息存放在一个结构体中,分别有航班号、起飞时间、降落时间、票价等信息。(3)程序完成航班信息的录入和乘客订票功能。

(4)客户能通过航班号或抵达城市查询航班信息,并且能订票。当座位无剩余时提示客户并提示相关航线。

三.概要设计

程序包含函数:

主控模块包含子模块为:

四.详细设计

算法流程图

a) 系统以菜单方式工作;

b) 航班订票功能

c) 航班退票功能

d) 查询航线:(至少一种查询方式)--算法;

e) 修改航线

(1) 增加航班号

(2) 删除航班号

(3) 修改密码

(4) 查询航班信息

f) 按终点站查询。

程序截图菜单

增加航线信息

订票

退票查询

五.源代码

#include

#include

#include

#include

#define OK 1

#define TRUE 1

#define FALSE 0

#define ERROR 0

#define OVERFLOW -2

#define PR printf

typedef int status;

typedef struct airline

{

char line_num[8];//航班号

char plane_num[8];//飞机号

char end_place[20];//目的的

int total;//座位总数

int left;//剩余座位

struct airline *next;//下一个结点

}airline;

typedef struct customer

{

char name[9];//顾客名

char line_num[8];//航班号

int seat_num;//座位号

struct customer *next;//下一个结点

}customer;

airline *init_airline()

{ //初始化链表

airline *l;

l=(airline*)malloc(sizeof(airline)); if(l==NULL)

{ exit(0);

}

l->next=NULL;

return l;

}

customer * init_customer(){//初始化链表customer *l;

l=(customer*)malloc(sizeof(customer)); if(l==NULL){

exit(0);

l->next=NULL;

return l;

}

status insert_airline(airline **p,char *line_num,char *plane_num,char *end_place,int total,int left){//airline链表插入操作

airline *q;

q=(airline*)malloc(sizeof(airline));

strcpy(q->line_num , line_num);

strcpy(q->plane_num , plane_num);

strcpy(q->end_place , end_place);

q->total =total;

q->left =left;

q->next=NULL;

(*p)->next=q;

(*p)=(*p)->next;

// PR("insert %d ,%dis succssed!\n",e,bl);

return OK;

}

status insert_customer(customer **p,char *name,char *line_num,int seat){//customer链表插入操作

customer *q;

q=(customer*)malloc(sizeof(customer));

/* { PR("内存分配失败\n");

return OVERFLOW; }*/

strcpy(q->name , name);

strcpy(q->line_num , line_num);

q->seat_num =seat;

q->next=NULL;

(*p)->next=q;

(*p)=(*p)->next;

// PR("insert %d ,%dis succssed!\n",e,bl);

return OK;

}

airline *modefy_airline(airline *l,char *line_num)//修改airline链表中的数据{ airline *p;

p=l->next ;

for(;p!=NULL;p=p->next )

{ if(strcmp(line_num,p->line_num )==0)

{ p->left ++;

// PR("modefy %s\n",p->line_num );

return l;

}

}

PR("\n\t\t没有这个航班,无法完成修改任务!");

相关文档
最新文档