数据结构课程教学设计-飞机订票系统设计与实现(里面附有源代码) 下载本文

,.

5.4 业务流程

输入相应的选择信息,便可进入相应的模块中。

(1)输入“1”,进入【录入航班信息】模块,输入航班的相关信息,完成航班信息的录入。

(2)输入“2”,进入【客户订票】模块,输入客户的信息、要订的票数和要订的航班号,完成客户的订票操作。

(3)输入“3”,进入【客户退票】模块,输入客户的信息、要退的航班号,完成客户的退票操作。

(4)输入“4”,进入【查询航班信息】模块,可以浏览或查询航班的相关信息。 (5)输入“5”,进入【查询订单信息】模块,可以浏览或查询订单的相关信息。 (6)输入“6”,进入【修改航班信息】模块,可以添加航班信息、删除航班信息和修改航班的起飞抵达时间。

6. 总结

经过这两周的数据结构课程设计,我收获很大,在实现系统功能的过程中,也遇到很多问题,分工协作,设计修改,编写调试,每一步都渗透着沟通和分析,每一次沟通之后,都会对系统功能有更深层次的理解和阐述,这也促使我们一步步完成了整个系统,并使之可以运行。两周的时间太短暂了,我们无法把全部学到的知识运用到具体的系统实现中,深深感受到数据结构这门课程的重要性,以及它在实际应用中的广泛性。本系统由于种种原因仍然存在需要改进,需要完善的地方,我对于这个系统的认识和对数据结构这门课程的理解已经更加深入了。在今后的学习和工作中,会更加深入地把知识和思想体会更广泛地应用到其他相关领域。

,.

本系统在人性化的方面做得还不够,对于另类的输入错误,还不能很好地应对,这也体现出本系统不够健壮,会在今后的学习中加以改进和完善;在功能模块方面还可以增加更多相关模块,是系统更加完善。

在实现系统的过程中,我感受到自己的知识的薄弱零散,经过这次做系统,我觉得自己的知识得到巩固和整合,知识体系更加系统化。我也深深体会到实践检验真理,只有实践中,才能出真知。我懂得了学习不只是纸上谈兵,更重要的是实践,就比如平常我们在学习中经常会遇到一些问题,看似无关紧要跳过去,不求甚解,在得知答案的时候,总是感觉心领神会,久而久之,对于的知识点就模棱两可,形成知识漏洞。但这次课程设计所要编写的程序很长,涉及的知识点也很多,选择此题目的时候我心里面还底气十足,自认为没什么问题,对于程序的步骤仿佛了然于胸,但在实际操作中才发现并非如此,在编写程序的过程中,我不断地查阅相关资料进行学习,积极地思考该怎样实现系统的每一个功能。

通过这次数据结构的课程设计,我巩固和加深对数据结构基本知识的理解,锻炼了综合运用课本知识的能力,自己也真正地完整而系统地设计并编写了一个程序,使得自己的编程能力大为提高。通过对我所选择飞机订票系统的设计和编写,我初步掌握简单软件的分析方法和设计方法,更深的领悟了“纸上得来终觉浅,觉知此事要躬行”的重要意义,第一次体会到了数据结构编程知识在实际生活中的重要性和应用的广泛性。

参考文献

[1]谭浩强 C程序设计(第四版) 北京:清华大学出版社,2006 [2]李春葆 数据结构教程 (第二版) 北京:清华大学出版社,2007

,.

附录:程序源代码

#include #include #include #include typedef struct flightnode{

char flight_num[10]; //航班号 char start_time[10]; //起飞时间 char end_time[10]; //抵达时间 char start_place[20];//起飞城市 char end_place[20]; //抵达城市 int left; //空座数 float price; //票价 float price_discount;//票价折扣 int isFull; //航班是否满仓 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;

void init_flight(flightnode *&h)//目的是要建立一个以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 save_passenger(passengerList *PList) { FILE* fp = fopen(\ if(fp==NULL)

return;

passengernode *temp=PList->head->next; while(temp!=NULL) { fwrite(temp,sizeof(passengernode),1,fp); temp = temp->next;

};

fclose(fp);

}

void load_passenger(passengerList *PList) { FILE* fp = fopen(\ if(fp==NULL)

return;

passengernode *q; int n;

while(!feof(fp)) {

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