ImageVerifierCode 换一换
格式:DOC , 页数:20 ,大小:241KB ,
资源ID:2308254      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-2308254.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(队列类模板.doc)为本站会员(hw****26)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

队列类模板.doc

1、封 皮(按学校要求手工填写)成 绩 评 定 表学生姓名 崔丁昴 班级学号 1203060115专 业 通信工程 课程设计题目队列类模板的设计与实现评语组长签字:成绩日期 20 年 月 日课程设计任务书学 院 信息科学与工程 专 业 通信工程学生姓名 崔丁昴 班级学号 1203060115课程设计题目 队列类模板的设计与实现实践教学要求与任务进行队列类模板的设计并实现,队列采用循环队列实现,数据元素可以是 char, int, float 等多种数据类型,包括以下功能:(1) 实现初始化队列操作,建立一个空队列;(2) 实现清空队列操作; (3) 实现判断队列是否为空的操作;(4) 实现求队列长

2、度的操作; (5) 实现返回队首元素的操作;(6) 实现入队操作; (7) 实现出队操作;(8) 实现队列的遍历操作,输出队列的每个元素。(9) 将上述功能作为类的成员函数实现,编写主函数测试上述功能。工作计划与进度安排第 17 周:分析题目,查阅课题相关资料,进行类设计、算法设计;第 18 周:程序的设计、调试与实现;第 19 周:程序测试与分析,撰写课程设计报告,进行答辩验收。指导教师:201 年 月 日专业负责人:201 年 月 日学院教学副院长:201 年 月 日摘 要很多自然科学和工程技术中的问题的解决最终都归结到队列问题的处理,模板是处理问题很经典的方法,由它改进、变形得到的类模板

3、,是一种效率很高、较为常用的方法。本文采用 C+语言实现了对队列的各个操作,设计了队列类,采用 Visual C+ 6.0 的控制台工程和 MFC 工程分别实现了对队列的处理。关键词:队列;类模板;控制台工程;MFC 工程目 录1 需求分析 .12 算法基本原理 .13 类设计 .24 基于控制台的应用程序 .24.1 类的初始定义 .24.2 类的实现 .34.3 主函数设计 .54.4 基于控制台的应用程序测试 .65 基于 MFC 的应用程序 .85.1 基于 MFC 的应用程序设计 .85.1.1 MFC 程序界面设计 .85.1.2 MFC 程序代码设计 .95.2 基于 MFC 的

4、应用程序测试 .11结 论 .14参考文献 .1511. 需求分析1.应用类模板可以使类中的数据成员、成员函数的参数及成员函数的返回值能根据模板参数匹配情况取任意数据类型。这种类型既可以是 C+预定义的数据类型,也可以是用户自定义的数据类型。2.队列在程序设计中也经常出现。一个最典型的例子就是操作系统中的作业排队。在允许多道程序运行的计算机系统中,同时有几个作业运行。如果运行的结果都需要通过通道输出,那就要按请求输出的先后次序排队。每当通道传输完毕可以接受新的输出任务时,队头的作业先从队列中退出作输出操作。凡是申请输出的作业都从队尾进入队列。2. 算法基本原理1.初始化一个循环队列。和顺序栈相

5、类似,在队列的顺序存储结构中,除了用一组地址连续的存储单元依次存放从队列头到队列尾的元素之外,尚需附设两个指针 front 和 rear 分别指示队列头元素及队列尾元素的位置。2.实现清空队列操作。直接让类 Queue 中的 private 成员全部清零。从而实现队列的清空。3.实现判断队列是否为空的操作。如果该队列中成员 count 为零的话。便直接输出该队列为空。4.实现求队列长度的操作。直接输出当前情况下的成员 count 的值。 5. 实现返回队首元素的操作。由于存在 front 直接指向着对首。所以直接输出该队首元素即 qfront。6.实现入队操作。在 count+的情况下。让输入

6、的值赋于 qrear+。即实现了在队尾插入的功能。 7.实现出队操作。在 count-的情况下。让 qfront=qfront+1。即实现了在队首删除的功能。8.实现队列的遍历操作。输出队列的每个元素。利用 for 循环直接输出 q数组中所有的元素。23. 类设计1.对于基类 Queue 来讲。内部有私有成员和公有成员。私有成员包括了描述一个队列必须的对首(front) 、队尾(rear) 、即队总数(count) 。另外还有用于存放队列数据的一个数组 qlistMaxQSize。公有成员则包括了各个函数。Queue(void)为构造函数。QDelete()为实现队列的删除的函数。QInser

7、t()为实现队列的插入的函数。ClearQueue()为实现队列的清空的函数。QLength()为计算求出队列的长度的函数。QFront()为找到队列的队首元素的函数。QEmpty()为判断队列是否为空的函数。PrintQueue()输出队列的函数。2.对于模板类来讲。即 template。由于要求的是可以执行int、char、float 三种类型的数据。所以我们在主函数中定义了三个成员Queue s、Queue z、 Queue y。用于分别调用这三种类型进行操作处理。4.基于控制台的应用程序整个程序分为三个大部分。第一个部分即为对类 Queue 的定义。第二个部分则是对类 Queue 中的

8、各个成员函数进行定义。第三个部分即为主函数,主函数中分别定义了 int 型、float 型、char 型的队列类型用于程序的选择及处理。4.1 类的初始定义#include#include using namespace std;const int MaxQSize = 20;template /模板声明class Queue /类 Queue 的声明private:int count; int front; int rear; /类 Queue 私有成员声明T qlistMaxQSize;public:Queue(void); /构造函数void QDelete(); /实现队列的删除voi

9、d QInsert(); /实现队列的插入void ClearQueue(); /实现队列的清空void QLength(); /计算求出队列的长度void QFront(); /找到队列的队首元素3void QEmpty(); /判断队列是否为空void PrintQueue(); /输出这个队列;4.2 类的实现template Queue :Queue(void):front(0), rear(0), count(0) /初始化template void Queue :QDelete() /删除T temp;if (count = 0)coutvoid Queue :QInsert()

10、/插入char a; T item; if (count = MaxQSize)couta;if(a=Y|a=y)coutitem;count+;qlistrear = item; rear = (rear+1) % MaxQSize;else break;4template void Queue :QLength() /长度coutvoid Queue :QFront() /队首coutvoid Queue :ClearQueue() /清空count=0; front=0; rear=0; template void Queue :QEmpty() /判断if(count=0) coutv

11、oid Queue :PrintQueue() /输出int i;for(i=0;ii;5if(i=Y|i=y) return 0;else exit(1);4.3 主函数的设计#include#include using namespace std;const int MaxQSize = 20;void main()int c,d;Queue s; Queue z; Queue y;coutc;switch(c)case 1: while(1)coutd;switch(d)case 1:s.QInsert();IfContinue();break; case 2:s.QDelete();I

12、fContinue();break;case 3:s.QLength();IfContinue();break; case 4:s.QFront();IfContinue();break;case 5:s.ClearQueue();IfContinue();break; case 6:s.QEmpty();IfContinue();break;case 7:s.PrintQueue();IfContinue();break;default: break;break;case 2: while(1)coutd;switch(d)case 1:z.QInsert();IfContinue();break; case 2:z.QDelete();IfContinue();break;case 3:z.QLength();IfContinue();break; case 4:z.QFront();IfContinue();break;case 5:z.ClearQueue();IfContinue();break; case 6:z.QEmpty();IfContinue();break;

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。