作业帮 > 综合 > 作业

插队买票本实验假设售票大厅有多个售票窗口,无论到哪个窗口买票都必须排队,但是新来的人不一定排在队尾,允许插队(即直接排在

来源:学生作业帮 编辑:灵鹊做题网作业帮 分类:综合作业 时间:2024/05/26 18:42:41
插队买票
本实验假设售票大厅有多个售票窗口,无论到哪个窗口买票都必须排队,但是新来的人不一定排在队尾,允许插队(即直接排在朋友的后面).
假设已经在排队的人不会离开,也不会移到其他队伍去.买到票的人依次出队.每个人仅买一次票,买完票就离开.每个人都有名字.
每个来买票的人先进行观察判断:
1. 如果所有的队伍中都没有发现朋友,则选择最短的队伍排在其队尾;
2. 如果所有的队伍中仅发现一个朋友,则可以(不是必须)插在此朋友的后面;但是,插队前应考查是否合算,插入此位置离窗口的距离(即队伍前面的人数)必须小于其他队伍的长度,否则应选择最短的队伍排在其队尾;
3. 如果所有的队伍中发现多个朋友,这种情况就比较复杂:
(1) 如果多个朋友是集中在一个队伍里,则可以插在最后那个朋友的后面;
(2) 如果多个朋友是分散在多个队伍里,则插队的原则是离售票窗口最近;
4. 如果朋友排在队伍的第一位(即队首),则不允许插队;
本实验要求编写程序模拟这种排队买票时允许插队的情形.要求程序中应用散列表来存放和查找数据,应用求余法构造合理的散列函数,应用平方探测法来解决Hash映射的冲突现象.程序可能需要四个文本文件:
(1) 初始化文件input.txt,包含售票窗口及其购票队伍的初始设置
(2) 朋友组文件friend.txt,同一个名字也可能出现在不同的组
(3) 来购票的人的完整名单people.txt,其中包含出现在friend.txt中的名字;文件中名字的顺序表示不同的到来顺序;文件中每行有一个名字,如果某行有多个名字则表示他们同时到达售票厅(这是比较复杂的情形)
(4) 售票结果文件output.txt(按售票窗口分组显示),可以考虑各窗口卖票的节奏(即售票员的售票速度)
插队买票本实验假设售票大厅有多个售票窗口,无论到哪个窗口买票都必须排队,但是新来的人不一定排在队尾,允许插队(即直接排在
实验项目:插队买票
实验目的:
(1)掌握存放大量数据的方法(主要是姓名);
(2)掌握查找大量数据的方法(主要是姓名);
(3)掌握队列的定义及操作.;
涉及的知识点:
(1)用散列表来存放和查找数据的方法;
(2)散列表的各种冲突解决方法;
(3)队列的定义及操作.
实验内容:
在每个队伍允许插队的情况下,若你在排队,有一个以上的朋友要求插队,你可以安排他们的顺序,每次一个人入队,并且如果这个入队的人发现队伍中有自己的朋友,则可以插入到这个朋友的后面,当队伍中的朋友不止一个时,这个人会排在最后一个朋友的后面.若队伍中没有朋友,则排在队伍的最后面.每一个入队的人都先进行上述判断.当队伍前面的人买到票后,依次出队.
//grouppos.cpp
#include
#include
#include
#include
#define TabSize 2000003 /*散列表大小TabSize 是大于表最大空间的素数*/
#define Max 1000001 /*队列空间最大值*/
class hashtab /*散列表数据结构*/
{public:
char name[5]; /*名字*/
int group; /*属于哪个朋友组*/
char info; /*标志位,该单元是否被占用*/
};
class PtrToHash:public hashtab{};
class Que /*队列数据结构*/
{public:
long int HashVal; /*散列值*/
long int Index; /*在中的队列序号*/
};
class PtrToQue:public Que{};
int hashedx=0; /*标记元素是否已经在散列表里*/
long int Find(PtrToHash *hash,char *c) /*查找在散列表中的位置*/
{
char *key;
long int CurrentPos,CollisionNum;
key=c;
for(CurrentPos=0;*key;++key) /*散列函数,计算散列值*/
CurrentPos=(CurrentPos
插队买票本实验假设售票大厅有多个售票窗口,无论到哪个窗口买票都必须排队,但是新来的人不一定排在队尾,允许插队(即直接排在 李华正在售票窗口排队买票,他数了数,排在他前面的人数是总人数的三分之二,排在他后面的人数是总人数的 1\38数学运算售票窗口8点开始售票,8点以前就有人来排队.假如每分钟来排队的人一样多,开始售票后,如果开3个窗口售票, 某火车站售票大厅的6号窗口向旅客出售火车票,此窗口在处于“暂停服务”的状态,已有20为旅客在这排队.8:00AM此窗口开 南京火车站的售票窗口7点30分开始售票,但7点30分以前就有人来排队.假如每分钟来排队的人数同样多,开始售票后,如果开3 英语翻译前文讲的是:我们考虑了数种插队买票的方法:雇人排队、从黄牛手里买票,或者直接从,比如说,航空公司或者游乐园处购买 办税大厅上班时,交税的人已经排了好长的队伍,假设人员以均匀的速度在增加啬.如果大厅只有5个窗口办公,需10小时才能办完, 任何火车站的售票窗口都卖异地的火车票吧?如果我在B站买A地的火车票,到时候可以可以在B地上车吗? 火车站售票时间表,晚上有买火车票的窗口吗? 火车站售票厅内,人头涌动,每一个售票窗口都排着长长的队伍. 下列属于维护社会秩序的文明表现是 1、买票时排队不插队 2、开车时不闯红灯 3、上课时不说一句话 英语翻译1食堂供应窗口太少(人很多,排队都排半天)2新的宿舍施工太吵(再修新的宿舍楼,没日没夜的施工,睡眠质量不好)解决