航空客运售票服务系统

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据结构与数据处理应用训练

课程名称:数据结构与数据处理应用训练

计划学时:32学时(1周)

一、课程目的

1.培养运用数据结构的基本知识解决实际问题的能力;

2.加深对数据结构基本知识的理解;

3.发挥各人的想象能力和分析能力,拓展思维空间;

4.掌握应用程序设计的基本方法;

5.培养书写课程设计报告的能力。

二、课程设计内容与要求

具体见附录I,每位学生任选一题。

三、考核形式

考核办法:结合课程设计作品、课程设计报告和平时情况评定。

评分标准:程序运行及答辩占60%,课程设计报告占20%,平时占20%。

评分等级为优秀、良好、中等、及格、不及格五个级别。

实现难度不同的课程设计,给不同的分数。若完成项目指定功能,按对应的标准给分;若在完成指定功能的基础上,还添加扩展功能、有创意,给予一定的加分;若运行有错误,酌情减分。

课程设计要求独立完成,严禁抄袭,如发现雷同,一经证实,相关人都按作弊处理,没有成绩,并且上报学院。

四、应提交材料

1、课程设计报告(实习报告)

不少于3000字。格式参见附录II的模板。内容主要包括:

(1) 封面。

(2) 课程设计题目、摘要、关键词。

(3) 内容与要求(说明课程设计题目的具体内容、需实现的功能及要求)。

(4) 总体设计(说明算法总体思路及由哪几大功能模块组成、各功能模块的

功能介绍)。

(5) 详细设计(说明各功能模块的具体实现算法----流程图、存储结构描述、

及各功能模块的参数说明)。

(6) 程序测试(给出程序运行结果截图,需包括若干组测试用例以及实现对

各种情况的测试)。

(7) 总结(说明调试过程中遇到的问题是如何解决的;对设计与实现的回顾

讨论与分析、改进设想;收获与体会等)。

(8) 参考文献

(9) 附录(包含源程序)

2、程序

提交完整的工程文件。

在统一答辩完成后,每个教学班交一张光盘,包含所有学生的资料(课程设计报告与程序),每个学生的资料放在以“学号姓名”命名的文件夹中。

附录I 课程设计题目:

题目一:航空客运售票服务系统

【问题描述】

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

【具体要求】

设民航售票处的计算机系统可以为客户提供下列各项服务:

1.查询航线:根据旅客提出的终点站名输出下列信息:

航班号、飞机号、星期几飞行,最近一天航班的日期和余票额。

2. 承办订票业务:根据客户提出的要求(日期、航班号、订票数额)查询该航班票额情况,若尚有余额,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需要重新询问客户要求。若需要,可预约登记排队等候。

3.承办退票业务:根据客户提供的情况(日期、航班、退票数额),为客户办理退票手续,然后查询该航班是否有人预约登记,首先询问排在第一的客户,若所退票数能满足他的要求,则为他办理订票手续,否则依次询问其他排队预约的客户。

【实现提示】

每条航线应包含的信息有:终点站名、航班号、飞机号、飞行日期(星期几)、乘员定额、余票额、已订票的客户名单(包括姓名、订票额、座位号)和预约登记的客户名单(包括日期、姓名、所需票额)。这最后两项显然是一个线性表和一个队列。为查找方便、已订票客户的线性表应按客户姓名有序,并且,为插入和删除方便,应以链表作存储结构。由于预约人数无法预料,队列也应以链表作存储结构。整个系统需汇总各条航线的情况登录在一张线性表上,由于航线基本不变,可采用顺序存储结构,并按航班有序或按终点站名有序。每条航线是这张表上的一个记录,包含上述八个域,其中乘员名单域为指向乘员名单链表的头指针,预约登记客户名单域为分别指向队头和队尾的指针。

【测试数据】

自己设计,但报告上要求写出多批数据测试结果。

【选做内容】

当客户订票要求不能满足时,系统可向客户提供到达同一目的地的其它航线情况。大家还可以充分发挥自己的想象力,增加你的系统的功能和其它服务项目。

题目二:多级反馈队列调度算法的实现

【问题描述】

多级反馈队列调度算法是操作系统中CPU处理机调度算法之一,该算法既能使高优先级的进程(任务)得到响应又能使短进程(任务)迅速完成。UNIX 操作系统便采取这种算法。试用C语言模拟某多级反馈队列调度算法。

【具体要求】

多级反馈队列调度算法描述:

1、该调度算法设置四级就绪队列:前三级就绪队列采用时间片轮转法,时间片大小分别为

2、4和8;最后一级就绪队列采用FIFO调度。

2、任务在进入待调度的队列等待时,首先进入优先级最高的队列等待。

3、首先调度优先级高的队列中的任务。若高优先级中队列中已没有调度的任务,则调度次优先级队列中的任务,依次类推。

4、对于同一个队列中的各个任务,按照队列指定调度方法调度。每次任务调度执行后,若没有完成任务,就被降到下一个低优先级队列中。

5、在低优先级的队列中的任务在运行时,又有新到达的任务,那么在运行完这个时间片后,CPU马上分配给新到达的任务,即算法支持抢占式。

6、为方便实现,时间以1为单位,用整数数据表示;且每个时间点,最多只有一个任务请求服务(即输入)。

【实现提示】

实现一个队列数组(queue array),该数组的每个元素都代表一个长度可变的队列,队列中的每个元素则代表一个任务job,任务结构定义如下:typedef struct Job {

int JobNum; //任务号

int ArriveTime;//到达时间

int Burst; //运行时间

struct Job *next;

}

【测试数据】

输入:任务号到达时间运行时间

输出:任务号响应时间离开时间周转时间

具体数据自己设计,但报告上要求写出多批数据测试结果。

【选做内容】

可以考虑对各个任务赋予不同的优先级(通过输入确定),首先按优先级将各个任务放入四级队列中的某一个队列,然后按上述调度法调度。还可以考虑一个时间点可能有多个任务同时请求服务(即输入)。大家可以充分发挥自己的想象力,增加你的系统功能。

相关文档
最新文档