数据结构课程设计报告

发布 2022-10-05 19:03:28 阅读 4001

12级卓越电子专业。

学号 :120910115

姓名:刘强。

信息科学与技术学院。

2024年12月。

3) 订票:(订票情况可以存在一个数据文件中,结构自己设定)可以订票,如果。

该航班已经无票,可以提供相关可选择航班;

4) 退票: 可退票,退票后修改相关数据文件;

5) 客户资料:有姓名,证件号,订票数量及航班情况,订单要有编号;

本系统中,每组航班信息有航班号、起始地、目的地、起飞时间、降落时间、票价、剩余座位数七个信息以及预定功能中的订单信息,包括订单编号、航班号、订票数量和乘客信息。

系统通过录入、查询、修改等操作实现订票。程序以人机对话方式执行,即在计算机上显示提示信息之后由用户在键盘上输入程序中规定的命令,相应的输入数据和运算结果显示在其后。执行完一个任务后通过循环语句返回主菜单。

数据结构方面,航班信息和订单信息均采用单链表的线性存储结构,主要方便数据录入和查找。

功能主要通过航班和订单对应的结构体实现。在实现航班查询中,为方便查找,系统采用了可针对航班号、起始地和出发地这三个字段同时搜索,提高了系统的查找效率,减少了**的冗余量。

函数概要 typedef struct flight //航班信息typedef struct order / 订单信息。

char flightnumber[10]; 航班号int ordernumber; /订单编号。

char splace[10起始地char pname[15乘客姓名。

char dplace[10]; 目的地char id[20身份证号。

char stime[10起飞时间char flightnumber[10];/航班号 charetime[10降落时间int num订票数量int price票价。

int remnantseat; /剩余座位数数order;

flight;

void inputf数据录入函数。

void output(elemtype e航班信息查找输出函数。

void outputorder输出订单函数。

void amendf(elemtype e修改航班信息函数。

void outputf全部航班信息输出函数。

void orderf订票函数。

void deleteorder(elemtype2 f) /退票函数。

void menu主菜单。

程序调用关系。

#include<>

#include<>

#include<>

#include<>

#define true 1

#define false 0

#define ok 1

#define error 0

#define infeasible -1

typedef int status;

typedef struct flight//航班信息。

char flightnumber[10];/航班号。

char splace[10];/起始地。

char dplace[10];/目的地。

char stime[10];/起飞时间。

char etime[10];/降落时间。

int price;//票价。

int remnantseat;//剩余座位数。

flight;

struct flight e;

typedef struct flight elemtype;

typedef struct order//订单信息。

int ordernumber;//订单编号。

char pname[15];/乘客姓名。

char id[20];/身份证号。

char flightnumber[10];/航班号。

int num;//订票数量。

order;

struct order f;

typedef struct order elemtype2;/*线性表的单链表存储结构 */

struct lnode

elemtype data;

struct lnode *next;

typedef struct lnode *linklist;

linklist fl;

struct lnode2

elemtype2 data;

struct lnode2 *next;

typedef struct lnode2 *linklist2;

linklist2 ol;/*单链表结构初始化 */

status initlist(linklist *l)

l=(linklist)malloc(sizeof(struct lnode));

if(!*l)

exit(overflow);

*l)->next=null;

return ok;

int listlength(linklist l)

int i=0;

linklist p=l->next;//p 指向首元素。

while(p)

i++;p=p->next;

return i;

status listinsert(linklist l,int i,elemtype e)

/*在带头结点的单链表 l 中第 i 个位置之前插入元素 e*/

int j=0;

linklist p=l,s;

while(p&&j{

p=p->next;

j++;if(!p||j>i-1) return error;//i<1 或大于表长。

s=(linklist)malloc(sizeof(struct lnode));生成新结点。

s->data=e;

s->next=p->next;//插入 l 中。

p->next=s;

return ok;

status listdelete(linklist l,int i,elemtype *e)

/*在带头结点的单链表 l 中删除第 i 个元素,并由 e 返回其值*/

int j=0;

linklist p=l,q;

while(p->next&&j{

p=p->next;

j++;if(!p->next||j>i-1) return error;//删除位置不合理。

q=p->next;

p->next=q->next;

e=q->data;

free(q);/删除并释放结点。

return ok;

status listdelete2(linklist2 l,int i,elemtype2 *f)

//同上。

int j=0;

linklist2 p=l,q;

while(p->next&&j{

p=p->next;

j++;if(!p->next||j>i-1) return error;

q=p->next;

p->next=q->next;

f=q->data;

free(q);

return ok;

int locateelem(linklist l,elemtype e,int i)//单链表中元素定位。

int j=1;

linklist p=l->next;//初始化,p 指向第一个结点,j 为计数器。

while(p&&j{

p=p->next;+j;

数据结构课程设计报告

东莞理工学院城市学院。题目 二叉排序树 专业 计算机科学与技术 本 年级 2010级计算机科学与技术专业 1 班。个人姓名 何振江。指导教师 张娟老师 时间 2010至2011第二学期第18周 地点 实验楼615机房 东莞理工学院城市学院计算机与信息科学系制。2011年 6月。实习报告的内容。一 问...

数据结构课程设计报告

设计一个校园导游程序,为来访的客人提供信息查询服务。1 设计学校的校园平面图。选取若干个有代表性的景点抽象成一个无向带权图 无向网 以图中顶点表示校内各景点,边上的权值表示两景点之间的距离。2 存放景点代号 名称 简介等信息供用户查询。3 为来访客人提供图中任意景点相关信息的查询。4 为来访客人提供...

数据结构课程设计报告

河北科技大学。课程设计报告。学生姓名学号。专业班级。课程名称数据结构。学年学期 2 012 2 013学年第 2 学期指导教师 黄春茹。2 0 13年 6 月。课程设计成绩评定表。一 数据结构课程设计目标。二 问题描述。三 需求分析。四 概要设计。五 详细设计。六 软件说明书 给出软件如何使用,使用...