华中科技大学C++课程实验报告继承对象的整型队列编程.docVIP

华中科技大学C++课程实验报告继承对象的整型队列编程.doc

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
华中科技大学C++课程实验报告继承对象的整型队列编程.doc

课程实验报告 课程名称:面向对象程序设计 实验名称:继承对象的整型队列编程 院 系:计算机科学与技术 专业班级: CS1502 学 号: U201414596 姓 名: 卢振兴 指导教师: 马光志 2017年 11月 20 日 一、需求分析 题目要求 整型队列是一种先进后出的存储结构,对其进行的操作通常包括判断队列是否为空、向 队列顶添加一个整型元素、出队列等。整型队列类型及其操作函数采用面向对象的C++语言 定义,请将完成上述操作的所有函数采用C++编程。然后写一个main函数对队列的所有操 作函数进行测试,要求main按照《关于C++实验自动验收系统说明》给定的方式工作。注 意,请用实验三的SATCK继承形成新的类QUEUEo分析说明除构造函数以外的函数,加 virtual说明与不加virtual说明有无区别。并说明为什么不将s2也作为基类。 class QUEUE: public STACK{ STACK s2; public: QUEUE(int m); 〃每个栈最多m个元素,要求实现的队列最多能入2m个元素 QUEUE(const QUEUEs); 〃用队列s拷贝初始化队列 virtual operator int () const; 〃返回队列的实际元素个数 virtual int full () const; //返回队列是否已满,满返回1,否则返回0 virtual int operator[ ](int x)const; 〃取下标为x的元素,第1个元素下标为0 virtual QUEUE operatorvv(int e); 〃将 e 入队列,并返回队列 virtual QUEUE operator?(int e); 〃出队列到 e,并返回队列 virtual QUEUE operator=(const QUEUEs); 〃赋 s 给队列,并返回被赋值的队列 virtual void print() const; 〃打印队列 virtual ~QUEUE(); 〃销毁队列 }; 注意:虽然实现的队列最多能入2m个元素,但是由于模拟中入出操作序列的限制,即 操作不能违背先进先出的原则,可能还没入2m个元素队列就“满”了,所以要注意full()函 数的实现:不能简单判断队列是否装了 2m个元素。 在完成上述程序及测试无误后,请使用队列解决如下舞伴问题,此时main用非命令行的 方式工作。假定在一次舞会上,势士排成一队,女士排成另一队。每次舞曲响起时,从男队 和女队的队头各出一人,配成舞伴跳完此曲,跳完后各自进入自己队列的尾?部。若男女两队 的初始人数分别为M和F (M和F均为素数,且M!=F),男队中排在位置m (m=M)的男 士,非常想和女队位置f (fv=F)的女士跳舞,问他在第几支曲舞曲才能和该女士跳舞?请编 程解决上述问题。 需求分析 利用实验三完成的栈结构实现先入先出的整型队列。队列能够实现初始化(通过确定队 列大小初始化,或者通过拷贝队列进行初始化)、返回队列的实际元素个数、判断队列是否满、 取下标为X的元素,入队和出队,赋值给队列,打印队列以及销毁队列的功能。该队列类型 需要继承实验三实现的栈结构,并且能够按照《关于C++实验自动验收系统说明》给定的方 式工作。 除此之外,还需利用上述程序解决题目要求中的舞伴问题。即当男女两队人数都为不同 的素数时,求男队中的一员和女队中的另一员成功配对为舞伴时跳的舞曲的序数。 二、系统设计 1.概要设计 在木实验中,是利用两个栈(栈1和栈2)来实现队列的功能。总体而言,栈1用于模拟 入队列,栈2用于模拟出队列。具体实现的方式是这样的:在入队时,用栈1来接收入队的 元素,如图6-1 (a)所示。当栈1满后,将栈1中的所有元素倒入栈2,如图6-1 (b)所示。之 后,继续让元素入栈1。在出队列时,首先检查栈2是否为空,如果不为空,从栈2出元素, 如图6-2 (a)所示;如果栈2为空,则将栈1中的元素全部倒入栈2,再从栈2中出元素,如 图6-2 (b)所示。 图6-1栈模拟入队图6?2栈出队列(a) 图6-1栈模拟入队 图6?2栈出队列 (a) 该系统程序包括队列功能和解决舞伴问题的功能。队列的基本功能共有10个,分别是① 通过确定队列大小初始化、②通过拷贝队列初始化、③返冋队列大小、④返冋实际元素、⑤ 判满、⑥取下标、⑦入队、⑧出队、⑨赋值给队列、⑩打印队列。解决舞伴问题的功能则通 过建立两个队列的循环来实现。总体结构如图6.3所示。 图6.3系统总体结构图 系统的总体流程按照是否有命令行参数来分支。进入系统后,首先判断是否存在命令行, 如果存在,则进入《关于C++实验自动验收系统说明》给定的方式工作。如果不存在,则进 入另一分支一一在该分支中,可以进行两种选择,若输

文档评论(0)

ggkkppp + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档