- 11
- 0
- 约1.03万字
- 约 19页
- 2016-12-18 发布于湖北
- 举报
课 程 实 验 报 告
课程名称:面向对象程序设计
实验名称:面向对象的整型队列编程
院 系 :计算机科学与技术
专业班级 : CS1305
学 号 : U201314933
姓 名 : 严铭
指导教师 : 马光志
2015 年 12 月 30 日
需求分析
题目要求
整型队列是一种先进后出的存储结构,对其进行的操作通常包括判断队列是否为空、向队列顶添加一个整型元素、出队列等。整型队列类型及其操作函数采用面向对象的C++语言定义,请将完成上述操作的所有函数采用C++编程, 然后写一个main函数对队列的所有操作函数进行测试。
class QUEUE{
int *const elems; //申请内存用于存放队列的元素
const int max; //队列能存放的最大元素个数
int head, tail; //队列头和尾,队列空时head=tail;初始时head=tail=0
public:
QUEUE(int m); //初始化队列:最多m个元素
QUEUE(const QUEUE s); //用队列s拷贝初始化队列
virtual operator int ( ) const; //返回队列的实际元素个数
virtual QUEUE operator(int e); //将e入队列,并返回队列
virtual QUEUE operator(int e); //出队列到e,并返回队列
virtual QUEUE operator=(const QUEUE s); //赋s给队列,并返回被赋值的队列
virtual void print( ) const; //打印队列
virtual ~QUEUE( ); //销毁队列
};
需求分析
这里主要完成队列的8个功能,和之前的实验只有一点出入,首先是队列的初始化,然后是对初始化后的队列赋值,然后求队列的实际长度,这里不需要求队列的最大长度,其实和之前赋值的一样,设队列的最大长度是MAXSIZE40,入队和出队与之前栈的出栈入栈相反,这里是先进先出,使用头尾两个变量成员来完成,然后是对已经赋值过的队列再进行赋值,这里重新赋完值的队列会覆盖之前的元素。然后是队列的销毁,即析构函数。
系统设计
概要设计
这里要完成的是队列的基本操作,用到了C++中的虚函数,但是和上次试验一样,没有太大的作用。如上图所示,要求完成8大基本功能,除了队列的初始化,还有赋值初始化,在主函数中没有写出来,因为我觉得第6个功能可以包括这一项,对初始化的队列进行赋值。在入队和出队功能设计上队列是先进先出和栈的先进后出刚好相反,这里需要设置两个指针,分别表示头指针和尾指针,基本所有操作靠这两个指针的变化完成,所有这两个指针很重要,首先还是初始化,这个和栈的初始化没有什么不同,用关键字new进行空间分配,设队列最多m个元素,在函数体外完成elems(new int [m]),max(elems == NULL?0:m) ,然后在函数体写头指针等于尾指针等于0,此时为空队列。然后赋值初始化,因为此时队列为空,没有元素,所以直接将s的元素拷贝到初始化队列中。然后求队列实际元素,使用头尾指针的关系式得出。入队和入栈没有太大区别,只是此时位置要用尾指针取长度的余数,否则赋值可能超出范围,elems[tail%MAXSIZE] = e;因为尾指针可以移动,最后将尾指针加1即可。出队和入队同理,由于是先进先出,所以直接是头指针出队,e=elems[head%MAXSIZE];然后对队列赋值,将队列s赋给队列,若有之前入队列的值,这些值将被覆盖。打印队列同样使用一个循环,输出队列的每一个元素,只是此时要注意队列的实际长度,而且第一个元素不一定是从0开始,因为head是移动的,而头指针可能在尾指针的后面,所以需要进行取模,和入队出队一样,那么循环元素从j=(head+i)%MAXSIZE开始,i的值从0开始增加(tail-head+MAXSIZE)%MAXSIZE;这是队列的实际长度的求法,最后将所有的元素打印出来即可。销毁队列即析构队列,之前使用new关键字,这里使用delete进行销毁。
详细设计
和之前栈的操作一样,这里给出一个例子直观的看到队列的特点先进先出:
队列还有一个重要的特点是如何判断队空和队满,这里给出一种方法,其实海投别的方法,比如设一个标志位,但这里这样使用最简单:
给出图如下:
解决了这三个最重
您可能关注的文档
- 合肥春季常见花卉.ppt
- 同济大学建筑学考研建筑构造笔记.doc
- 同济-高等数学-第三版(9.4) 第四节 三重积.ppt
- 非煤矿山企业技术创新项目管理暂行办法.doc
- 同济大学土木工程施工PPT第05章 砌筑工程.ppt
- 同济大学材料力学扭转课件.ppt
- 非洲、大洋洲、南美洲区域差异比较.ppt
- 同济大学材料力学扭转课件2.ppt
- 同济第三版-高数-(2.4) 第四节 高阶导数同济第三版-高数-.ppt
- 同源高速公路交安三标隔离栅施工组织技术方案.doc
- 2025-2026学年科普版七年级下册英语Unit7 Being a Smart Shopper素养测评卷(含答案).docx
- 2025-2026学年科普版七年级下册英语Unit10 Lending a Helping Hand素养测评卷(含答案).docx
- 2025-2026学年科普版七年级下册英语Unit11 Rules Matter素养测评卷(含答案).docx
- 2025-2026学年科普版七年级下册英语Unit12 Better Together素养测评卷(含答案).docx
- 2026年中考英语语法选择专题训练(含答案).docx
- 2026中考语文二轮学思并重,涵养君子之德论语十二章、虽有佳肴、大道之行也.docx
- 中考文言文常见文化常识梳理.docx
- 中考语文二轮:内修君子德外尽忠臣心诚子书出师表修身立德主题学习.docx
- 中考语文二轮:不一样的求学路一样的成长梦送东阳马生序劝学主题学习.docx
- 中考语文二轮:《陋室铭》《爱莲说》托物寓意主题学习.docx
最近下载
- [全]学生硬笔作品纸-古诗词书法比赛用A4纸打印模板.docx VIP
- 通风及防排烟施工方案.docx VIP
- T∕GAL 005-2025 医院免陪照护服务安全管理规范.docx
- BS EN 50121-3-2-2016+A1-2019 铁路应用-电磁兼容性 第3-2部分: 机车车辆-设备(中文版).pdf
- (2026年春新版)人教版八年级生物下册全册教案.doc
- 高压氧医学概述.ppt VIP
- 医学伦理学的形成和发展概述.pptx VIP
- 2025年杭州中考英语试卷及答案.doc VIP
- 2024年长沙商贸旅游职业技术学院单招综合素质考试题库 及参考答案解析.docx VIP
- 房建专项施工方案.docx VIP
原创力文档

文档评论(0)