- 1、本文档共30页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
数据结构排队购票问题
东北大学信息科学与工程学院
数据结构课程设计报告
题目 排队购票问题
课题组长 侯永跃
课题组成员 林浩成 李博然 韩硕
专业名称 计算机科学与技术
班级 计1307
指导教师 杨雷
2015 年 1月
课程设计任务书
题目:
排队购票问题 问题描述:
欧洲杯足球赛正在激烈进行。决赛门票处于热卖。为使门票公平、安全的销售,售票处决定采用如下售票规则:
(1)购票者到购票处领取一个随机编号。
(2)购票者按随机编号从小到大排序。
(3)随机编号处于最小编号与最大编号之间的购票者,可直接到窗口排队购票。
(4)售票窗口空闲时随机发出0或1指令,指令为0时,最小编号者到窗口购票,指令为1时,最大编号者到窗口购票。
设计要求:
设计算法实现按上述规则的排队售票程序。
(1)采用STL的双端队列等数据结构。
(2)实现STL的双端队列类deque。
(3)尝试采用不同数据结构的多种解法。
指导教师签字:
2015年1月4日 目录
1 课题概述 5
1.1 课题任务 5
1.2 课题原理 5
1.3 相关知识 5
2 需求分析 6
2.1 课题调研 6
2.2 用户需求分析 6
3 方案设计 7
3.1 总体功能设计 7
3.2 数据结构设计 7
3.3 函数原型设计 7
3.4 主算法设计 7
3.5 用户界面设计 7
4 方案实现 9
4.1 开发环境与工具 9
4.2 程序设计关键技术 9
4.3 个人设计实现 9
4.3.1 侯永跃设计实现 9
4.3.2 李博然设计实现 12
4.3.3 林浩成设计实现 13
4.3.4 韩硕设计实现 13
5 测试与调试 15
5.1 个人测试 15
5.1.1 侯永跃测试 15
5.1.2 李博然测试 15
5.1.3 林浩成测试 16
5.2 组装与系统测试 17
5.3 系统运行 18
6 课题总结 21
6.1 课题评价 21
6.2 个人设计小结 21
6.2.1 侯永跃设计小结 21
6.2.2 李博然设计小结 21
6.2.3 林浩成设计小结 21
6.2.4 韩硕设计小结 21
7 附录A 课题任务分工
A-1 课题程序设计分工 22
A-2 课题报告分工 23
附录B 课题设计文档(光盘) 附
B-1课程设计报告(电子版)
B-2源程序代码(*.H,*.CPP) 24
B-3工程与可执行文件 附 1 课题概述
1.1 课题任务
欧洲杯足球赛正在激烈进行。决赛门票处于热卖。为使门票公平、安全的销售,售票处决定采用如下售票规则:
(1)购票者到购票处领取一个随机编号。
(2)购票者按随机编号从小到大排序。
(3)随机编号处于最小编号与最大编号之间的购票者,可直接到窗口排队购票。
(4)售票窗口空闲时随机发出0或1指令,指令为0时,最小编号者到窗口购票,指令为1时,最大编号者到窗口购票。
要求:
设计算法实现按上述规则的排队售票程序。
(1)采用STL的双端队列等数据结构。
(2)实现STL的双端队列类deque。
(3)尝试采用不同数据结构的多种解法。
1.2 课题原理
读取文件中的字符串,统计串中各字符出现的次数,成为权值,之后构建最优二叉树进行编码。再将串中字符与编码匹配,输出编码字符串,之后每八位用底层字符进行压缩。
每次有观众领取编号,利用随机数输出一个1~100之间随机的一个数。按从小到大的顺序插入双端队列,售票窗口随机发出0或1指令,指令为0时,最小编号出队列,指令为1时,最大编号出队列。
1.3 相关知识
1.STL的双端队列。利用STL的双端队列deque类,实现随机编号的入队列、出队列。
2.随机数的生成。通过随机数的生成,实现给购票者分配一个随机编号、售票窗口发出随机指令等操作。
2 需求分析
2.1 课题调研:
1.为购票者分配随机编号(范围定为1-100)。
2.将分配到的编号插入队列,使队列中的元素顺序为从小到大。
3.查看队列。
4.随机发出指令0或1。0时,移出最小编号;1时,移出最大编号。
2.2 用户需求分析:
1.随机分配给购票者编号。
2.能够从分配出的编号中选出最小编号和最大编号。
3.随机给出0或1指令。
3 方案设计
3.1 总体功能设计:
本程序主要实现三个功能:为购票者分配随机编号,售票窗口发出随机指令,查看正在队列中的编号。
为购票者分配编号需要用到随机函数,分配完毕之后插入队列。
将随机数依次与队列元素比较,找到合适的“位置”后插入到指针后面
3.2 数据结构设计:
本程序使用STL的双端队列类deque。主要涉及操作有push_front()、push_back(
文档评论(0)