课程设计——航空客运订票系统

这是一个由王华慧于2017年完成的烟台大学计算机与控制工程学院的课程设计项目,包括fk.h和fk.cpp两个文件,分别用于声明和定义程序的各种功能。
摘要由CSDN通过智能技术生成
/*Copyright  (c)2017,烟台大学计算机与控制工程学院        
*All rights reservrd.              
*作者:王华慧  
*完成时间:2017年12月21日        
*版本号:v1.0   
*问题描述:航空客运订票系统


  
  
  
  1. /*************************************************************      
  2. * Copyright (c) 2017, 烟台大学计算机与控制工程学院      
  3. * All rights reserved.      
  4. * 文件名称:fk.h 
  5. * 文件标识:无 
  6. * 内容概要:实现程序各种功能的函数的声明   
  7. * 作者:王华慧    
  8. * 完成日期:2017年12月21日      
  9. * 版本号:V1.0     
  10. *************************************************************/   
#pragma once
#ifndef FK_H_INCLUDED
#define FK_H_INCLUDED

#define MAXSIZE 6 /*定义航线量的最大值*/

typedef struct waiting
{
	char name[10];/*姓名*/
	int wait_ask_number;/*订票量*/
	struct waiting *next;
}qnode, *qptr;

typedef struct pqueue
{
	qptr front;/*等候替补客户名单域的头指针*/
	qptr rear;/*等候替补客户名单域的属指针*/
}linkqueue;

typedef struct ordered_people
{
	char name[10];/*客户姓名*/
	char zheng[50];
	int ordering_number;/*订票量*/
	int grade;/*舱位等级*/
	struct ordered_people *next;
}linklist;

typedef struct airline
{
	char end_station[10];/*终点站名 */
	char air_num[10];/*航班号*/
	char plane_num[10];/*飞机号*/
	char day[7];/*飞行周日(星期几)*/
	int people_quota;/*乘员定额*/
	int more_ticket;/*余票量*/
	linklist *order;/*乘员名单域,指向乘员名单链表的头指针*/
	linkqueue wait;/*等候替补的客户名单域,分别指向排队等候名单队头队尾的指针*/
}lineinfo;/*在后面加,*start的意思是定义一种start类型,跟int型一样。*/

void list(airline *&start);
void search(airline *&start);
struct airline *find_air_num(airline *&start);
void prtlink(airline *&start);
void ordering(airline *&start);
void return_ticket(airline *&start);
int menu_select();
#endif // FK_H_INCLUDED
  1. /*************************************************************      
  2. * Copyright (c) 2017, 烟台大学计算机与控制工程学院      
  3. * All rights reserved.      
  4. * 文件名称:fk.cpp
  5. * 文件标识:无 
  6. * 内容概要:实现程序各种功能的函数的定义  
  7. * 作者:王华慧    
  8. * 完成日期:2017年12月21日      
  9. * 版本号:V1.0     
  10. *************************************************************/ 

#include "fk.h"
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <malloc.h>
using namespace std;
void list(airline *&start)/*打印全部航线信息*/
{
void display(struct airline *info);
struct airline *info;
int i = 0;
info = start;
printf("终点站名\t航班号\t飞机号\t飞行周日\t乘员定额\t余票量\n");
while (i<MAXSIZE) {
display(info);
info++;
i++;
}
printf("\n\n");
}


void display(struct airline *info)
/*打印每条航线的基本信息*/
{
printf("%8s\t%3s\t%s\t%4s\t\t%3d\t%10d\n", info->end_station, info->air_num, info->plane_num, info->day, info->people_quota, info->more_ticket);
}




void search(airline *&start)
/*根据客户提出的终点站名输出航线信息*/
{
struct airline *info, *find_air_num();
char name[10];
int i = 0;
info = start;
printf("请输入终点站名:");
scanf("%s", name);
printf("终点站名\t航班号\t飞机号\t飞行周日\t乘员定额\t余票量\n");
while (i<MAXSIZE) {
if (!strcmp(name, info->end_station))/*strcmp函数是比较两个字符串,相同的话返回0*/


display(info);


info++;
i++;
}
if (i>MAXSIZE)
printf("对不起,该航线未找到!\n");


}


struct airline *find_air_num(airline *&start)
/*根据系统提出的航班号查询并以指针形式返回*/
{
struct airline *info;
char number[10];
int i = 0;
info = start;
printf("请输入航班号:");
scanf("%s", number);
while (i<MAXSIZE) {
if (!strcmp(number, info->air_num)) return info;
info++;
i++;
}
printf("对不起,该航线末找到!\n");
return NULL;
}


void prtlink(airline *&start)
/*打印订票乘员名单域的客户名单信息*/
{
linklist *p;
struct airline *info;
info = find_air_num(start);
p = info->order;
if (p != NULL) {
printf("客户姓名   订票数额   舱位等级\n");
while (p) {
printf("%s\t\t%d\t%d\n", p->name, p->ordering_number, p->grade);
p = p->next;
}
}
else
printf("该航线没有客户信息!!\n");
}


linkqueue appendqueue(linkqueue q, char name[], int amount)
/*增加排队等候的客户名单域*/
{
qptr p = (qptr)malloc(sizeof(qnode));
strcpy(p->name, name);
p->wait_ask_number = amount;
p->next = NULL;
if (q.front == NULL)/*若原排队等候客户名单域为空*/
q.front = p;
else
q.rear->next = p;
q.rear = p;
return q;
}


linklist *insertlink(linklist *head, int amount, char name[], int grade)
/*增加订票乘员名单域的客户信息*/


{
linklist *p1, *p;
p1 = head;
p = (linklist *)malloc(sizeof(linklist));
if (!p) { printf("\n系统出现错误\n"); return NULL; }
strcpy(p->name, name);
p->order
  • 3
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
航空客运订票系统 特点:超详细的JAVA代码注释,代码保护性,无论输入什么都不会崩溃; 【问题描述】航空客运订票的业务活动包括:查询航线、添加航班,客票预订和办理退票等七大功能,已实现操作文件。试设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。 【基本要求】 (1)每条航线所涉及的信息有:终点站名、航班号、飞机号、飞行周日(星期几)、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级1,2或3)以及等候替补的客户名单(包括姓名、所需票量); (2)系统能实现的操作和功能如下: ①录入:可以录入航班情况,全部数据可以只放在内存,最好存储在文件; ②查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额; ③承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需重新询问客户要求。若需要,可登记排队候补; ④承办退票业务:根据客户提供的情况(日期、航班),为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足他的要求,则为他办理订票手续,否则依次询问其他排队候补的客户。 【测试数据】由读者自行指定。 【实现提示】两个客户名单可分别由线性表和队列实现。为查找方便,已订票客户的线性表应按客户姓名有序,并且,为插入和删除方便,应以链表作存储结构。由于预约人数无法预计,队列也应以链表作存储结构。整个系统需汇总各条航线的情况登录在一张线性表上,由于航线基本不变,可采用顺序存储结构,并按航班有序或按终点站名有序。每条航线是这张表上的一个记录,包含上述8个域、其乘员名单域为指向乘员名单链表的头指针,等候替补的客户名单域为分别指向队头和队尾的指针。 【选作内容】当客户订票要求不能满足时,系统可向客户提供到达同一目的地的其他航线情况。读者还可充分发挥自己的想象力,增加你的系统的功能和其他服务项目 I/O流操作时用到了GSON,解压即可看到,如果发现报错,读者可以配置一下Gson的路径,在属性,JAVA构建路径删除原有的三个GSON库,添加外部,下载的GSON库。如果不用可以将Main类new ReadFlightLine();注释掉即可。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值