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

加入VIP,省得不是一点点
 

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

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

下载须知

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

版权提示 | 免责声明

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

实验二之队列.doc

1、 1 / 17数据结构实验报告学号:2015111898 姓名:许明华 专业:计算机科学与技术知识范畴:栈与队列 完成日期:2017 年 03 月 31 日实验题目:基于循环队列的排队买票模拟程序实验内容及要求:编程建立循环队列存储结构,对排队买票过程进行模拟。要求程序在控制台屏幕上显示字符菜单:1. 排队输入新到达的买票人姓名,加入买票队列中;2. 售票排队队列中最前面的人购票成功,显示信息并将其从队列中删除;3. 查看队列从队首到队尾依次列出所有正在排队买票人的姓名;4. 结束退出系统。“排队”时,若队满,应提示等待(排队不成功) ;“售票”时,若队空,应提示无人排队(售票失败) 。实验目

2、的:掌握循环队列的基本操作。数据结构设计简要描述:序言:这是本学期第二个实验,实验主要目的是让我们熟悉循环队列的创建,入队,出队等操作数据结构设计:整个实验可分为一个大的模块,其中包含八个函数模块:菜单显示函数(Menu),初始化队列(InitQueue) ,添加购票人到队列(enQueue) ,删除购票成功的人(dlQueue) ,输出队列中所有人的信息(Putall_Queue) ,读取到文件函数(write_file)以及判断队空和队满(Empty、Full)共八个函数模块,队列用结构体创建,其中包含整型(int)的队列容量n,队头指针 top,队尾指针 tail 和队列计数变量 c,以

3、及 string 类型的数组 elem;最后通过 c+语言 ofstream 将购票人信息保存到文件中和 c 语言 exit(0)退出系统,便完成了整个模拟买票系统的创建。评分满分5 分2 / 17算法设计简要描述:1,首先用结构体创建一个保存购票人的信息队列,为 string 类型;2,进行队列初始化,为 string 类型数组 new 一个动态内存,将队头和队尾置 0,并将从键盘输入的 n 值赋值给队列容量;3,判断队列为空或者为满,成立返回真,否则返回假;4,添加购票人信息,将新增的购票人信息添加到队列中去,为避免“假溢”以及搬动元素的操作,在入队时采用 r=(r+1)%n,则数组在逻辑

4、上成为圆环形,也即是采用循环队列;5,将购票成功的人信息显示出来并将其从队列中移除去,也是采用 r=(r+1)%n 循环队列来实现;6,输出显示所有正在购票人信息,先判断若没有人排队,则显示无人购票,否则采用循环队列输出所有人信息;7,采用 ofstream 将所有正在购票人信息读取到文件中去保存;输入/输出设计简要描述:1,排队:输入购票人“姓名” ,若队满,则输出“排队不成功,请等待!” ,否则输出“成功加入到购票队列中去” ;2,售票:调用售票函数时,直接输出排队队列中最前面的人购票成功,并输出其“编号和姓名” ,并显示将其从队列中删除;3,查看所有队列:调用查看所有队列函数,输出所有正

5、在排队的人的信息;4,写入到文件:输入文件名,若队为空,显示“无人购票,写入失败!” ,否则输出成功将其写入到文件中去;5,退出系统:调用退出函数,成功推出系统;编程语言说明:1, 编程软件,Code Blocks 16.0;2, 代码均用 C+语言实现;3, 输入输出采用 C+语言的 cout 和 cin 函数;4, 文件读写采用 ofstream 类型;5, 程序注释采用 C/C+规范;3 / 17主要函数说明:int Menu(void);/菜单显示函数void InitQueue(Queue,int);/初始化队列int enQueue(Queue, ElemTp);/在队列中添加新的

6、乘客int dlQueue(Queue);/将购票成功的人从队列中删除void Putall_Queue(Queue);/输出显示所有队列中的购票人的信息bool Empty(Queue);/判断队列是否为空bool Full(Queue);/判断队列是否满void write_file(Queue);/读取到文件中程序测试简要报告:见截图:1,2,4 / 173,4,5,5 / 176,7,8,6 / 179,源程序代码:#include#include#include#include#includeusing namespace std;typedef string ElemTp;/Ele

7、mTPy 一个 string 类型typedef struct nodeElemTp *elem;int n;/队列容量int top;/队头指针int tail;/队尾指针int c;/队列计数变量7 / 17*Queue;/函数声明int Menu(void);/菜单显示函数void InitQueue(Queue,int);/初始化队列int enQueue(Queue, ElemTp);/在队列中添加新的乘客int dlQueue(Queue);/将购票成功的人从队列中删除void Putall_Queue(Queue);/输出显示所有队列中的购票人的信息bool Empty(Queu

8、e);/判断队列是否为空bool Full(Queue);/判断队列是否满int write_file(Queue);/读取到文件中/队列初始化void InitQueue(Queue q,int n)q-elem = new ElemTp q-n;/先分配一个 M 大的内存空间q-top = q-tail = 0;/将队头和队尾置空q-n = n + 1;/从键盘输入一个队列的长度,并将其赋值给队列长度,这样就可以人为的控制队列的长度/队列为满bool Full(Queue q)8 / 17return (q-tail+1)%q-n = (q-top+q-n)%q-n;/判断队是否满/队为空

9、bool Empty(Queue q)if(q-top = q-tail)/若果队头等于队尾的话,就返回真,说明队空return true;return false;/添加购票人信息int enQueue(Queue q, ElemTp name)if(Full(q)coutelemq-tail = name;/添加排队人编号到队列中去q-tail = (q-tail+1)%q-n;/队尾指针进行加 1 扫描couttop+1;10 / 17name = q-elemq-top;/队头元素出队并保存在 Num1 中,以便打印显示couttop = (q-top+1)%q-n;/队头指针指向下一个队头元素,以让下一个人开始购票coutc = q-top;/这里用一个计数变量来保存队列,而不直接用 q-top,否则打印一次就相当于让一位购票人出队,而不是打印所有购票人信息int i = q-top+1;coutc = q-tail)cout“无人购票!“endl;/队头等于队尾,表示队为空,也就是无人排队购票else

Copyright © 2018-2021 Wenke99.com All rights reserved

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

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

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