文档库 最新最全的文档下载
当前位置:文档库 › 数据结构课程设计源代码(完整版)

数据结构课程设计源代码(完整版)

数据结构课程设计源代码(完整版)
数据结构课程设计源代码(完整版)

算法与数据结构

课程设计报告设计题目:

专业

班级

学生

学号

指导教师

2014年第 1学期

第一部分:需求分析

1、系统名称:航空客运订票系统

航空客运订票的业务活动包括:查询航线、客票预定和办理退票等。要求在TC或VC环境下设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。

2、要求:

(1)每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行日期(星期几)、乘员定额、余票量、已经订票的客户(包括、订票量)以及等候替补的客户(包括、所需票量)。

(2)作为模拟系统,全部数据可以只存放在存中。

(3)通过此系统可以实现如下功能:

①录入功能:可以录入航班情况

②查询功能:根据客户提供的终点站名进行查询,可以输出以下信息:航班号、飞机号、星期几飞行和余票量等。也可以根据航班号,查询飞机某个航线的情况。

③订票功能:根据客户提出的要求(、终点站名、订票数量)查询该航班的余票量情况。如尚有足够的余票,则为客户办理订票手续;若已满员或余票量少于订票数量,则需要重新询问客户要求,如需要,可登记排队候补。

④退票功能:根据客户提供的情况(、日期、航班号),为客户办理退票手续,然后查询该航班是否有人排队候补,若有人排队,则为排在第一位的客户办理订票手续。

第二部分:系统设计图样

一:设计说明

1:添加航班:

整个航班的信息保存在一个结构体flight

中,采用结构体数组,每一个航班信息包含航班号、起飞时间、起飞城市、降落时间、降落城市、余票数量。

航班信息通过lulu()函数进行添加。添加的信息保存在航班flight

结构体数组中。

2

:查询航班:查询板块分为两个部分,按查找和按站名查找。

按查找:通过所输入的和已定客户的相匹配,匹配成功则查找成功。

按站名查找:通过所输入的起始站名和终点站名进行匹配,匹配成功则查找成功。

3:订票功能:根据用户的和航班号进行订票,如果所查找的航班号的余票满足用户需要的票数,则订票成功,该信息保存在Customer中,才用结构体数组,包含已定客户的、客户ID、订的票数、起飞时间、起飞城市、降落时间、降落城市、航班号。若所查找的航班的余票不满足客户的需求,则提醒用户是否需要进入到等候用户的里,等候用户信息保存在Wait结构体数组中,每添加一个信息,该数组则会生成一个记录。

4:退票功能:根据用户的和航班号进行退票,如果用户输入的和航班号在已定客户的结构体数组中能找到该记录,则在已定客户的数组中删除此条记录,

并且将该条记录的票数添加到flight中该航班的余票中去。

5:浏览航班:该功能分为三个板块:显示已定客户信息,显示等候客户,显示所有航班信息。

显示已定客户信息:通过格式化输出,将已定客户Customer结构体数组中的信息利用一个循环输出。

显示等候客户:通过格式化输出,将等候客户Wait结构体数组中的信息利用一个循环进行输出。

显示所有航班信息:铜锁格式化输出,将所有航班信息flight结构体数组中的信息利用一个循环进行输出。

6:安全退出:通过exit函数进行退出程序。

第三部分:实现

1、头文件部分

#include"stdafx.h"

#include

#include

#include

#include

#include

#include

#include

#include

2、函数体部分

const int MAX_POSSIBILITY = 100;

using namespace std;

static string title[6]={"航班号", "起飞时间","降落时间","起飞城市", "降落城市", "余票量"};

static int wid[6]={8,10,10,10,10,8};

static string title1[9]={"客户","座位号","航班号","证件号","订票数","降落时间","起飞时间","起飞城市","降落城市"};

static int wid1[9]={8,9,8,8,8,11,11,11,11};

static string title2[5]={"客户","起飞城市","降落城市","客户 ID","预订票数"};

static int wid2[5]={8,10,10,10,10};

extern int len=0;

extern int A=0;

extern int max1=0;

struct flight //航班号

{

int a1; //航班号

string a2; //起飞时间

string a3; //降落时间

string a4; //起飞城市

string a5; //降落城市

int a6; //余票

}fl[50];

struct customer //客户信息

{

string name; //客户

int seat; //座位号

int num; //航班号

string no; //证件号

int ps; //订票数

string jls; //降落时间

string qfs; //起飞时间

string qfd; //起飞城市

string jld; //降落城市

}cu[100];

struct wait

{

string b1; //客户

string b2; //起飞城市

string b3; //降落城市

string no; //客户ID

int num; //订票数

}Wa[50];

void luru(); //声明录入航班信息函数void chaxun(); //声明查询函数

void dingpiao(); //声明订票函数

bool tuipiao(); //声明退票函数

void tuichu(); //声明退出函数

void menu(); //声明主菜单函数

void chaxun1(); //声明按航班号查询void chaxun2(); //声明按城市查询

void visit(); //声明预览菜单

void visit1();

void visit2();

void visit3();

void fresh();

void luru()

{

cout<<"**********请输入航班信息**********"<

cout<<"请输班号:";

cin>>fl[len].a1;

cout<<"起飞时间:";

cin>>fl[len].a2;

cout<<"降落时间:";

cin>>fl[len].a3;

cout<<"起飞城市:";

cin>>fl[len].a4;

cout<<"降落城市:";

cin>>fl[len].a5;

cout<<"剩余票量:";

cin>>fl[len].a6;

len++;

cout<<"请选择所要进行的操作"<

menu();

}

void visit()

{

cout<<"1:显示已定航班信息"<

cout<<"2:显示等候客户信息"<

cout<<"3:显示所有航班信息"<

cout<<"请选择...";

end:int s;

cin>>s;

switch(s)

{

case 1:visit1(); //显示已定客户信息

break;

case 2:visit2(); //显示等候客户信息

break;

case 3:visit3(); //显示所有航班信息

break;

default:cout<<"******请重新输入******"<

goto end;

//break;

}

return;

}

void visit1()

{

cout<<"**********已定客户信息**********"<

for(int i=0;i<9;i++)

相关文档