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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

实验二之队列.docx

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;/队头指针指向下一

10、个队头元素,以让下一个人开始购票coutc = q-top;/这里用一个计数变量来保存队列,而不直接用 q-top,否则打印一次就相当于让一位购票人出队,而不是打印所有购票人信息int i = q-top+1;coutc = q-tail)coutc != q-tail)coutelemq-cc=(q-c+1)%q-n;coutfilename;/得到写入文件的文件名in.open(filename);/创建一个文件名,用于保存我们要写入的数据q-c = q-top;/这里用一个计数变量来保存队列,而不直接用 q-top,否则打印一次就相当于让一位购票人出队,而不是打印所有购票人信息int i

11、 = q-top+1;if(q-c = q-tail)coutc != q-tail)inelemq-cc=(q-c+1)%q-n;coutn;/输入队列的长度while(n = 0)system(“cls“);coutn;/输入队列的长度if(n!=0)break;InitQueue(p,n);/队列初始化,也就是将队头和队尾元素置空,并将输入的长度赋值给队列长度coutName;/输入要加入到队列中的购票人的姓名enQueue(p,Name);/调用排队函数16 / 17system(“cls“);/重新刷新,回到主菜单break;case 2:/售票子菜单system(“color C“

12、);dlQueue(p);/调用售票函数getch();system(“cls“);/重新刷新,回到主菜单break;case 3:system(“color D“);Putall_Queue(p);/调用输出所有购票人信息函数system(“cls“);/重新刷新,回到主菜单break;case 4:system(“color E“);cout“n 成功退出购票系统!n“;17 / 17exit(0);break;case 5:write_file(p);system(“cls“);/重新刷新,回到主菜单break;default:system(“color A“);system(“cls“);break;return 0;

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报