数据结构课程设计题目及要求

上传人:kms****20 文档编号:40511862 上传时间:2018-05-26 格式:DOC 页数:11 大小:298KB
返回 下载 相关 举报
数据结构课程设计题目及要求_第1页
第1页 / 共11页
数据结构课程设计题目及要求_第2页
第2页 / 共11页
数据结构课程设计题目及要求_第3页
第3页 / 共11页
数据结构课程设计题目及要求_第4页
第4页 / 共11页
数据结构课程设计题目及要求_第5页
第5页 / 共11页
点击查看更多>>
资源描述

《数据结构课程设计题目及要求》由会员分享,可在线阅读,更多相关《数据结构课程设计题目及要求(11页珍藏版)》请在金锄头文库上搜索。

1、实验一实验一 实验四任选一题;实验五实验四任选一题;实验五 实验九任选一题。实验九任选一题。实验一实验一 运动会分数统计运动会分数统计一、一、实验目的:实验目的:(1)熟练掌握线性表的两种存储方式(2)掌握链表的操作和应用。(3)掌握指针、结构体的应用(4)按照不同的学校,不同项目和不同的名次要求,产生各学校的成绩单、团体总分报表。二、二、实验内容:实验内容:【问题描述】参加运动会的 n 个学校编号为 1n。比赛分成 m 个男子项目和 w 个女子项目,项目编号分别为 1m 和 m1mw。由于各项目参加人数差别较大,有些项目取前五名,得分顺序为 7,5,3,2,1;还有些项目只取前三名,得分顺序

2、为 5,3,2。写一个统计程序产生各种成绩单和得分报表。【基本要求】产生各学校的成绩单,内容包括各校所取得的每项成绩的项目号、名次(成绩) 、姓名和得分;产生团体总分报表,内容包括校号、男子团体总分、女子团体总分和团体总分。【测试数据】对于 n4,m3,w2,编号为奇数的项目取前五名,编号为偶数的项目取前三名,设计一组实例数据。【实现提示】可以假设 m20,m30,w20,姓名长度不超过 20 个字符。每个项目结束时,将其编号、类型符(区分取前五名还是前三名)输入,并按名次顺序输入运动员姓名、校名(和成绩) 。【选作内容】允许用户指定某些项目可采取其他名次取法。实验二实验二 停车场管理停车场管

3、理一、一、实验目的:实验目的:(1)熟练掌握栈顺存和链存两种存储方式。(2)掌握栈的基本操作及应用。(3)以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。二、二、实验内容:实验内容:【问题描述】设停车场是一个可停放 n 辆汽车的 长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序,依次由北向南排列(大门在最南端,最先到达的第一辆车信放在车场的最北端) ,若车场内已停满 n 辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆车要离开时,在它之后进入的车辆必须先退出车场为它让路,待该辆车

4、开出大门外,其他车辆再按原次序进入车场院,每辆停放在车场的车在它离开停车场时必须按它停留的时间长短交纳费用。试为停车场编制按上述要求进行管理的模拟程序。【基本要求】以栈模拟停车场,以队列模拟车场外的便道,按照从终端读入的输入数据序列进行模拟管理。每一组输入数据包括三个数据项:汽车“到达”或“离去”信息、汽车牌照号码以及到达或离去的时刻。对每一组输入数据进行操作后的输出信息为:若是车辆到达,则输出 汽车在停车场内或便道上的停车位置;若是车辆离去,则输出汽车在停车场内停留的时间和应交纳的费用(在便道上停留的时间不收费) 。栈以顺序结构实现,队列以链表结构实现。【测试数据】设 n=2,输入数据为:(

5、A,1,5), (A,1,15) , (A,3,20) , (A,4,25) ,(A,5,30) , (D,2,35) , (D,4,40) , (E,0,0) 。其中:A 表示到达(Arrival) ;D 表示离去(Departure) ;E 表示输入结束(End) 。【实现提示】需另设一个栈,临时停放为给要离去的汽车让路而从停车场退出来的汽车,也用顺序存储结构实现。输入数据按到达或离去的时刻有序。栈中每个元素表示一辆汽车,包含两个数据项:汽车的牌照号码和进入停车场的时刻。【选作内容】(1)两个栈共享空间,思考应开辟数组的空间是多少?(2)汽车可有不同种类,则他们的占地面积不同收费标准也不同

6、,如 1 辆客车和 1.5辆小汽车的占地面积相同,1 辆十轮卡车占地面积相当于 3 辆小汽车的占地面积。(3)汽车可以直接从便道开走,此时排在它前面的汽车要先开走让路,然后再依次排到队尾。 (4)停放在便道上的汽车也收费,收费标准比停放在停车场的车低,请思考如何修改 结构以满足这种要求。实验三实验三 病人看病模拟程序病人看病模拟程序一、一、实验目的:实验目的:(1)熟练掌握队列顺存和链存两种存储方式。(2)掌握队列的基本操作及应用。(3)以队列模拟病人排队,实现病人看病系统。二、二、实验内容:实验内容:【问题描述】模拟病人到医院看病,选择看病的诊室排队看医生的情况。在病人排队过程中,主要重复两

7、件事:(1)病人到达诊室,将病历本交给护士,排到等待队列中候诊。(2)护士从等待队列中取出下一位病人的病历,该病人进入诊室就诊【基本要求】要求模拟病人等待就诊这一过程。程序采用菜单方式,其选项及功能说明如下:(1)显示可选择的各诊室。(2)排队输入排队病人的病历号,加入到某诊室病人排队队列中。(3)就诊该诊室病人排队队列中最前面的病人就诊,并将其从队列中删除。(4)查看各诊室排队从队首到队尾列出所有的该诊室排队病人的病历号。(5)不再排队,余下依次就诊从队首到队尾列出所有的排队病人的病历号及就诊诊室,并退出运行。(5)下班退出运行。【实现提示】采用链式队列模拟病人去医院看病的过程。实验四实验四

8、 航空客运订票系统航空客运订票系统一、一、实验目的:实验目的:(1)熟练掌握线性表基本操作及应用。(2)熟练掌握队列基本操作及应用。(3)利用线性表和队列实现航空客运订票系统。二、实验内容:二、实验内容:【问题描述】 航空客运订票的业务活动包括;查询航线、客票预订和办理退票等。试设计一个航空客运订票系统,以使上述业务可以借助计算机来完成。【基本要求】(1)每条航线所涉及的信息有:终点站名、航班名、飞机号、飞行周日(星期几) 、乘员定额、余票量、已订票的客户名单(包括姓名、订票量、舱位等级 1,2 或 3)以及等候替补的客户名单(包括姓名、所需票量) ;(2)作为示意系统,全部数据可以只放在内存

9、中;(3)系统能实现的操作和功能如下:查询航线:根据旅客提出的终点站名输出下列信息:航班号、飞机号、星期几飞行,最近一天航班的日期和余票额;承办订票业务:根据客户提出的要求(航班号、订票数额)查询该航班票额情况,若尚有余票,则为客户办理订票手续,输出座位号;若已满员或余票额少于订票额,则需重新询问客户要求。若需要,可登记排队候补;承办退票业务:根据客户提供的情况(日期、航班) ,为客户办理退票手续,然后查询该航班是否有人排队候补,首先询问排在第一的客户,若所退票额能满足客户的要求,则为客户办理订票手续,否则依次询问其他排队候补的客户。【测试数据】自行指定。【实现提示】两个客户名单可分别由线性表

10、和队列实现。为查找方便,已订票客户的线性表应按客户姓名有序,并且为了插入和删除方便,应以链表作为存储结构。由于预约人数无法预计,队列也应以链表作存储结构。整个系统需汇总各条航线的情况登录在一张线性表上,由于航线基本不变,可采用顺序存储结构,并按航班有序或按终点站名有序。每条航线是这张表上的一个记录,包含上述 8 个域、其中乘员名单域为指向乘员名单链表的头指针,等候替补的客户名单域为分别指向队头和队尾的指针。【选作内容】当客户订票要求不能满足时,系统可向客户提供到达同一目的地的其他航线情况。还可充分发挥自己的想象力,增加你的系统的功能和其他服务项目。实验五实验五 文学研究助手文学研究助手一、一、

11、实验目的实验目的(1)熟练掌握串的基本操作及应用。(2) 熟练掌握串的匹配操作算法。(3)基于串的存储和操作,实现对英文文章文字统计系统。二、 实验内容实验内容 【问题描述】文学研究人员需要统计某篇英文小说中某些形容词的出现次数和位置。试写一个实现这一目标的文字统计系统,称为“文学研究助手” 。【基本要求】英文小说存于一个文本文件中。等待统计的词汇集合要一次输入完毕,即统计工作必须在程序的一次运行之后就全部完成。程序的输出结果是每个词的出现次数和出现位置所在行的行号,格式自行设计。【测试数据】以你的 C 源程序模拟英文小说,C 语言的保留字集作为待统计的词汇集。【实现提示】约定小说中的词汇一律

12、不跨行。这样。每读入一行,就统计每个词在这行中的出现次数。出现位置所在行的行号可以用链表存储。若某行中了现了不止一次,不必存多个相同的行号。如果读者希望达到选做部分(1)和(2)所提出的要求,则首先应把 KMP 算法改写成如下的等价形式,再将它推广到多个模式的情形。i=1;j=1l;while(i !=s.curlen+1 i + +; /每次进入循环体,i 只增加一次【选作内容】(1)模式匹配要基于 KMP 算法。(2)整个统计过程中只对小说文字扫描一遍以提高效率。(3)假设小说中的每个单词或者从行首开始,或者前置一个空格符。利用单词匹配特点另写一个高效的统计程序,与 KMP 算法统计程序进

13、行效率比较。(4)推广到更一般的模式集匹配问题,并设待查模式串并可以跨行(提示:定义操作GetAChar) 。实验六实验六 哈夫曼编哈夫曼编/ /译码器译码器【问题描述】利用哈夫曼编码进行通信可以大大提高信道利用率,缩短信息传输时间,降低传输成本。但是,这要求在发送端通过一个编码系统对待传输数据预先编码,在接收端将传来的数据进行译码。对于双工信道(即可以双向传输信息的信道) ,每端都需要一个完整的编/译码系统。试为这样的信息收发站写一个哈夫曼的编/译码系统。【基本要求】一个完整的系统应具有以下功能:(1)I:初始化(Initialization) 。从终端读入字符集大小 n,以及 n 个字符和

14、 n 个权值,建立哈夫曼树,并将它存于文件 hfmTree 中。(2)E:编码(Encoding) 。利用以建好的哈夫曼树(如不在内存,则从文件 hfmTree中读入) ,对文件 ToBeTran 中的正文进行编码,然后将结果存入文件 CodeFile 中。(3)D:译码(Decoding) 。利用已建好的哈夫曼树将文件 CodeFile 中的代码进行译码,结果存入文件 TextFile 中。(4)P:印代码文件(Print) 。将文件 CodeFile 以紧凑格式显示在终端上,每行 50个代码。同时将此字符形式的编码文件写入文件 CodePrin 中。(5)T:印哈夫曼树(Tree Prin

15、ting) 。将已在内存中的哈夫曼树以直观的方式(树或凹入表形式)显示在终端上,同时将此字符形式的哈夫曼树写入文件 TreePrint 中。【测试数据】利用下表给出的字符集和频度的实际统计数据建立哈夫曼树,并实现以下报文的编码和译码:“THIS PROGRAM IS MY FAVORITE” 。字符ABCDEFGHIJKLM频度1866413223210321154757153220字符NOPQRSTUVWXYZ频度5763151485180238181161【实现提示】(1)编码结果以文本方式存储在文件 CodeFile 中。(2)用户界面可以设计为“菜单”方式:显示上述功能符号,再加上“Q

16、” ,表示退出运行 Quit。请用户输入一个选择功能符。此功能执行完毕后再显示此菜单,直至某此用户选择了“Q”为止。(3)在程序的一次执行过程中,第一次执行 I,D 或 C 命令之后,哈夫曼树已经在内存了,不必再读入。每次执行中不一定执行 I 命令,因为文件 hfmTree 可能早已建好。【选做内容】(1)上述文件 CodeFile 中的每个“0”或“1”实际上占用了一个字节的空间,只起到示意或模拟的作用。为最大限度地利用码点存储能力,试改写你的系统,将编码结果以二进制形式存放在文件 CodeFile 中。(2)修改你的系统,实现对你的系统的源程序的编码和译码。(3)实现各个转换操作的源/目文件,均由用户在选择此操作时指定。实验七实验七 校园导游咨询校园导游咨询一、一、实验目的实验目的(1)熟练掌握图的创建及遍历基本操作算法。(2) 熟练掌握最短路径算法。(3)利用图的遍历和最短路径求解技术,设计一个校园导游程序,为来访的客人提供各种信息查询服务。二

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号