数据结构课程设计——源代码

数据结构课程设计源代码 主程序main()#include "ds.h" #include #include #include #include using namespace std; LinkList::LinkList() { head=(LNode *)malloc(sizeof(LNode)); head->next=NULL; length=0; } bool LinkList::IsCre 阅读详情

飞机订票系统源代码

问题及代码:

 

/**************************************************** 
*版权所有(C)2016,孙丽玮
*文件名称:飞机订票系统 
*文件标识:无 
*内容摘要:实现录入航班信息、订票、退票、预约、
*          查询航班、查询订单、查看预约、修改航班功能。
*其他内容:无 
*当前版本:VC++6.0 
*作    者:孙丽玮 
*完成日期:2016.12.28 
*修改记录:无 
****************************************************/  

 

1、plane.h的代码

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>

typedef struct flightnode
{
	char flight_num[10];//航班号
	char start_time[15];//起飞时间
    char end_time[15];//抵达时间
	char start_place[20];//起飞城市
	char end_place[20];//降落城市
	int left;//空座数
	float price;//票价
	int ifull;//航班是否满仓
	struct flightnode *next;//指向下一节点
}flightnode;

typedef struct passengernode
{
	char name[20];//姓名
	char ID_num[20];//证件号
	char flight_num[10];//航班号
	int order_num;//订单号
	int ticket_num;//订票数量
	struct passengernode *next;//指向下一节点
}passengernode;

typedef struct passengerList
{
	passengernode *head;
	passengernode *rear;
}passengerList;

typedef struct waitnode
{
	char name[20];//姓名
	char phone[20];//手机号
	char flight_num[10];//航班号
	int ticket_num;//订票数量
	int order_num;//预约排队号
	struct waitnode *next;//指向下一节点

}waitnode;

typedef struct waitList
{
	waitnode *front;
	waitnode *rear;
}waitList;

void init_flight(flightnode *&h);//建立以h为头结点的空链表,录入航班信息和增加航班后将航班结点插入该链表
void init_passengerList(passengerList *&pList);//建立一个带有头尾指针的空链表,存储带有顾客信息的节点
void init_waitList(waitList *&wList);//建立一个带有头尾指针的空链表,存储带有预约客户信息的节点

void save_flight(flightnode *h);//保存航班信息到指定的数据文件中
void load_flight(flightnode *&h);//从存储航班信息的文件导入航班信息到航班链表中

void save_passenger(passengerList *PList);//保存客户信息到指定数据文件中
void load_passenger(passengerList *&PList);//从存储客户信息的文件导入客户信息到客户链表中

void save_wait(waitList *WList);//保存预约客户信息到指定数据文件中
void load_wait(waitList *&WList);//从存储预约客户信息的文件导入预约客户信息到预约客户链表中

void add_flight(flightnode *&h);//录入航班信息后调用insert_flight函数增加航班
//录入航班情况或增加新的航班后,将新的航班结点插入到航线链表中
void insert_flight(flightnode *&h, char *flight_num, char *start_place, char *end_place, char *start_time, char *end_time, int left, float price, int ifull);

//完成客户订票,将客户结点插入客户链表,并修改相应的航班信息
int book(flightnode *&h,passengerList *&PList,waitList *WList);
//客户订票时输入的航班号对应航班已满,提供其他可选航班并输出显示
int find_same_flight(flightnode *h,char *flight_num);
//在客户订票后,将该客户结点插入到客户链表,并修改相应航班信息
void insert_passengerList(flightnode *&h, passengerList *&PList, char *name, char *ID_num, char *flight_num, int ticket_num);

//在客户预约票后,将该预约客户结点插入到预约客户链表
void insert_waitList(waitList *&WList, char *name, char *phone, char *flight_num, int ticket_num,int order_num);

//完成退票,将订单从客户链表删除并修改相应航班信息
void cancel(passengerList *&PList,flightnode *&h);
//按照要退票的客户姓名和证件号查找该客户结点,进行删除操作
int delete_passenger(passengerList *&PList,flightnode *&h, char *name, char *ID_num);

void flight_check(flightnode *h);//选择使用何种方式对航班信息进行查询
void check_all_flight(flightnode *h);//浏览所有航班信息
int place_check(flightnode *h, char *start_place, char *end_place);//按照起飞抵达城市查询航班信息
int flight_num_check(flightnode *h, char *flight_num);//按照航班号查询航班信息

void passenger_check(passengerList *PList);//选择使用何种方式查询订单信息
void check_all_passenger(passengerList *PList);//浏览所有订单信息
int ID_name_check(passengerList *PList, char *name, char *ID_num);//按客户姓名和证件号查询订单信息

void check_all_wait(waitList *WList);//浏览所有预约客户信息

void modify_flight(flightnode *&h, passengerList *&PList);//修改航班信息
void delete_flight(flightnode *&h, passengerList *&PList);//按照某个航班号删除航班结点
void modify_flight_time(flightnode *&h, passengerList *&PList);//修改航班时间

 

2、plane.cpp的代码

 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include "plane.h"

//建立以h为头结点的空链表,录入航班信息和增加航班后将航班结点插入该链表
void init_flight(flightnode *&h)
{
	h=(flightnode *)malloc(sizeof(flightnode));//申请头结点空间
	if(h==NULL)
		exit(0);
	h->next=NULL;//将头结点h的指针域置为空
}
//建立一个带有头尾指针的空链表,存储带有客户信息的节点
void init_passengerList(passengerList *&pList)
{
	pList=(passengerList *)malloc(sizeof(passengerList));
	pList->head=(passengernode *)malloc(sizeof(passengernode));//创建头结点
	pList->rear=pList->head;
	pList->rear->order_num=0;//订单号从0开始计数
	pList->head->next=NULL;
}
//建立一个带有头尾指针的空队,存储带有预约客户信息的节点
void init_waitList(waitList *&wList)
{
	wList=(waitList *)malloc(sizeof(waitList));
	wList->front=(waitnode *)malloc(sizeof(waitnode));//创建头结点
	wList->rear=wList->front;
	wList->rear->order_num=0;//预约排队号从0开始计数
	wList->front->next=NULL;
}

//保存航班信息到指定的数据文件中
void save_flight(flightnode *h)
{
	FILE *fp=fopen("flightList.dat","wb");//以只写('wb')的方式打开名为'flightList.dat'的文件
	if(fp==NULL)
		return;
	flightnode *temp=h->next;
	while(temp!=NULL)
	{
		fwrite(temp,sizeof(flightnode),1,fp);//向其中写入temp(temp是指针)地址的l个flight
旅行模拟查询系统 96分 [BUPT]数据结构课程设计 - 旅行模拟查询系统 - 完整源代码 + 项目文档整合资源包... 阅读详情

相关推荐

数据结构课程设计学生成绩管理系统源代码

#include #include #include #include #include #include const MaxListSize=100;//设置数组长度为100 //student类 class student { private: int num; int grade[5]; float sum; float ping; char name[20]; int age

Tyrone_Wade的博客 1万+

《数据结构》课程设计

《数据结构》课程设计 学生姓名 赵丹敏 所在专业 信息管理与信息系统 所在班级 信管1131 任课老师 易学明 实习时间         2015年  1  月 9 日   目录 1) 课题描述  2) 系统需求分析 3) 总体设计

darmic的专栏 1630

《数据结构课程设计》——活期储蓄账目管理系统

《数据结构课程设计》     课程题目 活期储蓄账目管理系统 课程编号 j1620102 学生姓名 张瑞祺 所在专业 信息管理与信息系统 所在班级 信管1132 学号 201311671231 任课老师

melody9494的专栏 2万+

数据结构课程设计

首先是心得体会: 老实说做完这个真的是有心无力啊,原本计划使用java来实现的,本人自学了半个学期的java,感觉比学了一年的C语言更加有把握,但是,在java领域不知道如何使用链表的知识来完成通讯录的功能,其实我用java已经完成了该通讯录的功能了,但是不会引用链表的知识,最后只能选择用C++了,但是C++我把握得很不好,理解的还不够透切,原本在java里面我已经弄好界面和插入,登录,显示

wushenghuan的专栏 5291

数据结构课程设计大作业-全国交通咨询模拟(报告、源代码)

cout<<"请依次输入起点站,终点站,最优决策策略(1代表最节约时间,2代表最省钱,3代表中转次数最少),交通方式"<<endl;cout<<"\n最少旅行时间为:";cout<<endl;cout<<"按照车次号,起始站,终点站,发车时间,到达时间,价格输入"<<endl;cout<<"按照航班,起始站,终点站,起飞时间,到达时间,价格输入"<<endl;cout<<"\n最少中转次数为:"<<dis[ed]-1<<endl;cout<<"\n最少旅费为:"<<dis[ed]<<endl;

m0_73546099的博客 517

《数据结构课程设计》报告

广东海洋大学学生课程设计报告书 一、题目描述 该程序为哈夫曼树编译/译码器,编译时,首先构造27个字符的哈夫曼树,再根据输入的字符串进行加密(编码)和解密(译码)。   二、设计的功能 共有4个功能: 1、功能1; 初始化字符集,用户输入来初始化字符集大小和相应用字符。 2、功能2; 加密字符串,用户输入字符串并进行编译哈弗曼编码。 3、功能3; 解密字符串。把哈弗曼编码翻译

TammyShan的专栏 3054

数据结构课程设计:约瑟夫生者死者游戏(c++实现、单循环链表、输出死者姓名和编号、附可执行源代码)

(c++、单循环链表)有N个旅客同乘一条船,因为严重超载,加上风高浪大,危险万分;因此船长告诉乘客,只有将全船一半的旅客投入海中,其余人才能幸免于难;无奈,大家只得同意这种办法,并议定N个人围成一圈,由第一个人开始,依次报数,数到第9人,便把他投入大海中,然后再从他的下一个人开始,数到第9人,再把他投入大海中,如此循环地进行,直到剩下N/2个乘客为止。问哪些乘客是将被投入大海的?输出这些乘客的姓名和位置。......

m0_64336416的博客 6814

「杂谈」数据结构课程设计(图书借阅管理系统)

数据结构课程设计(图书借阅管理系统) 大学数据结构的课程设计,功能还不够完善有待后续完善更新: 设计要求如下: 图书馆借阅管理系统 主要分为两大功能: 图书管理(增加图书、查询图书、删除图书、图书借阅、还书) 会员管理(增加会员、查询会员、删除会员、借书信息) 要实现这些功能,根据已经学习的内容,选择采用单链表的结构存储,源代码如下: // // main.cpp // 数据结构课程设计(...

Jack's Blog 5996

数据结构实训项目源代码

数据结构实训项目源代码

数据结构实验(c++)源代码

数据结构实验 (c++) 源代码 比较不错 拿来分享下

数据结构课程设计代码大全

这是很好的数据结构课程设计代码大全。好好研究分析,对你很有帮助。

航空订票系统java源码-Flight-Booking:机票预订

航空订票系统 java源码抽象的 此应用程序的主要目标是减少商业航空公司预订过程中的人工错误,并使客户能够根据需要预订航线,以便他们可以实施此应用程序来创建预订、更改预订或终止预订。特别预订。 该应用程序的名称是“AIRLINE BOOKING SYSTEM”。 此应用程序提供了在特定时间范围内观看不同时间可用的不同路线的替代方案,并为客户提供发布入场、更改或终止特定预订的服务,但它不向客户提供入场价格信息,并且不允许客户更改其预订的特定方面,并且他/她可以更改他/她的所有信息。 该软件不断向用户生成有关计划相关更新的及时消息。 特定技术 Java,小程序 项目任务 用例分析、设计、实现和用户界面 项目的功能组件 以下是该系统的功能列表。 您认为合适的更多功能可以添加到此列表中。 而且,在功能描述不充分的地方,您可以做出适当的假设并继续。 现有的航空公司信息已经存储在本地内存中。 任何新的乘客信息都可以通过乘客信息输入屏幕存储在本地存储器中。 屏幕将输入乘客的所有详细信息以及他的姓名、他所属的整个地址、旅程详细信息以及身份证明详细信息,例如 Pan 卡号等。 航空公司数据输入操作员应该

软件工程课程设计飞机订票系统源代码,JAVA民航订票管理系统源码+数据库

软件工程课程设计飞机订票系统源代码,民航订票管理系统源码+数据库 民航订票管理系统实现了航班信息查询,客户定票,客户退票,航班信息管理,航线管理 航班延误管理,已订票客户信息管理,会员信息管理等功能。 软件架构 开发工具:eclipse Intel idea sqlserver java swing jdbc

LAMMPS GCMC模拟保姆级教程:从fix gcmc命令到吸附等温线实战

本文提供LAMMPS GCMC模拟的详细教程,从fix gcmc命令设置到吸附等温线实战,涵盖巨正则蒙特卡洛模拟的全流程。通过MOF-5吸附甲烷的案例,指导用户构建模拟体系、转换化学势与压力、定义GCMC区域,并绘制出版级吸附等温线,助力材料科学研究。

weixin_33724046的博客 606

从零开始:使用VMOS Pro和Xposed绕过APP环境检测的完整指南

本文详细解析了使用VMOS Pro和Xposed框架绕过APP环境检测的完整技术方案,包括模拟器检测、Root环境检测和Hook框架检测的对抗方法。通过实战案例和代码示例,展示了如何利用Xposed Hook技术拦截检测逻辑,特别针对360加固等保护技术提供了解决方案。

ee345的博客 737

ZXDoc工业级CAN总线仿真工具全解析与应用实践

CAN总线作为现代工业通信的核心协议,其仿真技术是汽车电子和工业控制领域的关键支撑。通过物理层信号模拟、协议层报文解析和应用层人机交互的三维仿真,开发者能够构建完整的硬件在环测试环境。ZXDoc作为工业级仿真工具,集成了DBC工程化管理、HMI面板设计和自动化测试脚本等核心功能,特别适用于ECU开发、产线验证等场景。工具支持ISO11898标准协议,提供错误帧注入、负载压力测试等高级特性,结合Python API可实现复杂测试用例的自动化执行。在新能源车VCU测试等实践中,通过优化采样点等参数配置,显著提升

weixin_30096975的博客 472

信号处理算法:自适应滤波_(8).自适应陷波器

自适应陷波器是一种强大的工具,广泛应用于电力系统、通信系统和生物医学信号处理等领域。通过自适应调整滤波器的参数,自适应陷波器可以在特定频率处形成陷波,从而有效地抑制噪声或干扰信号。常见的自适应算法包括LMS和RLS,它们各有优缺点,可以根据实际需求选择合适的算法。

2401_87715305的博客 1371

手把手教你玩转CPU微架构专栏--​​​​1.5 工具准备:用Gem5模拟器“看见”微架构(安装、基础仿真命令)​

本文介绍了如何使用Gem5模拟器进行微架构学习和实验。Gem5是一款支持多种指令集的开源微架构模拟器,可模拟CPU流水线、缓存等核心组件。文章详细说明了在Ubuntu和macOS上安装Gem5的步骤,包括依赖安装、源码编译和验证方法。通过一个简单的加法指令测试程序,演示了如何运行基础仿真并解读输出日志,包括指令执行流程和性能统计数据。此外,还提供了两个实战实验:修改L1缓存大小和观察分支预测失败,帮助读者理解微架构参数对性能的影响。最后指出Gem5是学习微架构的"显微镜",能直观观察指令

xiaoheshang_123的博客 141

31、自然语言生成中的流畅度评估

本博客探讨了自然语言生成(NLG)中流畅度评估的重要性和方法。文章详细介绍了流畅度的定义及其影响因素,包括句法结构、词汇选择、语义一致性和段落组织。同时,讨论了自动评估和人工评估两种主要方法,并以机器翻译、自动摘要和对话系统为例分析了流畅度评估的应用场景。最后,文章提出了提升流畅度的技术策略以及未来研究方向,为相关领域的研究者和开发者提供了有价值的参考。

h9j8k7l6m5n的博客 275

PostgreSQL 核心原理:大字段(大对象)是如何被压缩和存储的(TOAST存储机制)

PostgreSQL通过TOAST机制高效处理大字段存储问题,解决单行超过8KB页大小限制的挑战。TOAST采用透明分片、按需加载和自动压缩策略,支持TEXT、JSONB等变长类型,无需用户干预。其核心包括四种存储策略(plain/external/main/extended),自动将大字段分片存入专用TOAST表,主表仅保留指针。读取时按需解压拼接,支持部分加载优化。TOAST表结构包含chunk_id、序列号和分片数据,配合内置PGLZ压缩算法,平衡存储效率与访问性能。该机制使PostgreSQL能稳定

数据知道的博客 2629

STM32开发 -- GPIO详解

之前有简单讲过GPIO工作模式和寄存器,还是有点没搞明白。这次需要全方位的看一下了。 一、数据手册 1、STM32F105RC引脚说明 可知:STM32F105RC 一共有4组IO口 一共16X3+3=51个IO GPIOA0~A15 GPIOB0~B15 GPIOC0~C15 GPIOD0~D2 2、程序定义 GPIO端口号 STM32F1...

不积跬步,无以至千里 5万+

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

上一篇: 数据结构课程设计——运行结果
下一篇: onSenUI笔记
MF-Bee
博客等级 码龄10年 25粉丝 93原创
评论 8
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值