资源描述
Problem1
排序
将被排序记录数组R[1..n]垂直排列,每个记录R[i]看作是重量为R[i]气泡。依照轻气泡不能在重气泡之下原则,从下往上扫描数组 R:凡扫描到违背本原则轻气泡,就使其向上"飘浮"。如此重复进行,直到最后任何两个气泡都是轻者在上,重者在下为止。
1、请编写程序,实现其排序过程。规定:
a) 用以上算法,实现R[1..n]排序,数组中元素为整数;
b) 打印出所比较次数和所用互换次数(相邻2个气泡底下轻,上面重,底下向上漂浮时,计互换一次)
2、输入和输出
输入:data1.txt
data1.txt内容示例:
3 7 4 5 2 6 8 9 1
输出:36 15
3、程序提交后,运营时将动态输入命令行参数。输入参数个数不不大于等于2。
Problem2
停车场问题
设有一种可以停放N辆汽车狭长停车场,它只有一种大门运用供车辆进出,车辆按到达停车场时间早晚依次可以从停车场最里面向大门处停放(最先到达第一辆放在停车场最里面,最里面车位编号为N)。如果停车场已放满N辆车,则日后车辆无法进入,只能离开,不能在门口等待。一旦停车场有车开走,在它之后进入停车场车(已在停车位上车)必要先退出停车场为它让路,待其开出停车场后,这些车辆再依本来顺序进场,并且这些车辆向前移动弥补空出来位置。编制一程序,规定计算最后一辆离开车离开前停车位置和在停车场停留时长。
1、输入与输出
输入:data2.txt
假设N = 9;
data2.txt内容示例:
9 A0101 A0302 A0203 A0404 A0605 A0506 A0707 A0808 A0909 D0112 D0315 D0721
输入阐明:9表达有9个车位;A0101,A代表是到达,前面01代表是01号车,是两位数,背面01代表是01时刻到达,也是两位数; D0315,D代表离开,前面03代表是03号车,是两位数,背面15代表是15时刻离开,也是两位数;时间取值范畴为01-24。
输出示例:
075 14
输出阐明:07代表最后离开车车号,5代表07号车离开前原停留车位编号,14代表07号车在停车场停留时间。车位编号从1-9,最里面编号为9。
Problem3
控制程序
模仿一台仪器控制过程,对仪器输入命令,仪器发生规定动作和变化状态,程序将显示仪器状态变化和运营状况。
1、规则如下:
序号
命令内容
返回和显示内容
阐明
1
请运营
(start)
如果仪器正在运营,保持运营状态,返回客户端“正在运营”(running);
如果仪器处在停止状态,将停止状态变化为运营状态,返回客户端“开始运营”(starting);
初次运营时,运营速度为1。运营速度最高为100,最低为1,速度值为整数。仪器处在停止状态时,速度为0。
2
请停止
(stop)
如果仪器正在运营,将状态改为停止状态,返回客户端“开始停止”(stopping);
如果仪器已经停止,保持状态为停止状态,返回客户端“已经停止”(stopped);
3
请加速
(increase)
如果仪器处在运营状态,且速度加5后不大于或等于100,则将速度加5,并返回当前速度值,显示速度值,如6;
如果仪器处在运营状态,且速度加5后不不大于100,则保持原有速度,并返回信息“无法再加速”,显示当前速度值和“无法再加速” (canNotIncrease),如96canNotIncrease;
如果仪器处在停止状态,返回信息“已经停止”(stopped),显示“已经停止”(stopped);
“请加速”命令每次收到后加速度值5,在成果不超过100前提下。
4
请减速
(decrease)
如果仪器处在运营状态,且速度减5后不不大于或等于1,则将速度减5,并返回仪器当前速度值,仪器显示速度值,如11;
如果仪器处在运营状态,且速度减5后不大于1,则保持原有速度,并返回信息“无法再减速”,仪器显示当前速度值和“无法再减速”(canNotDecrease),如1 canNotDecrease(1与canNotDecrease之间没有空格);
如果仪器处在停止状态,返回信息“已经停止”,显示“已经停止”(stopped);
“请加速”命令每次收到后加5。 在成果不不大于1前提下。
5
关机
(powerOff)
仪器处在停止状态,返回信息“关机”,显示“关机”(powerOff),程序退出运营。
仪器处在运营状态,返回信息“请先停止,再关机”(stopFirstThenPowerOff),仪器仍处在运营状态。
2、输入和输出示例
输入:data3.txt
data3.txt内容示例:
start decrease increase stop powerOff
输出:starting 1canNotDecrease 6 stopping powerOff
(注:命令需顺序解决,每解决一种命令将相应输出缓存,待接受到关机命令后将缓存输出一次返回并输出。1canNotDecrease代表当前速度为1,且无法减速。)
Problem4
举重比赛
一次举重竞赛比赛规则是:
1、 选手成绩以成功举起总重量来排序,举起总重量多排在前面;当举起总重量相似时,按照体重来排序,体重轻排在前面;
2、 规定程序读取数据文献作为输入,并按照上述规则排序后,打印出选手编号;
数据文献阐明如下:
既有5名选手,其选手编号、成功举起总重量及其体重如数据文献data4.txt,样例内容为:
<p>
<no>1</no>
<lw>130</lw>
<bw>54</bw>
</p>
<p>
<no>2</no>
<lw>155</lw>
<bw>53</bw>
</p>
<p>
<no>3</no>
<lw>140</lw>
<bw>42</bw>
</p>
<p>
<no>4</no>
<lw>145</lw>
<bw>55</bw>
</p>
<p>
<no>5</no>
<lw>130</lw>
<bw>46</bw>
</p>
数据文献意义如下表所示:(选手编号、举起重量和体重都为整数。没有举起重量和体重都相似选手)
选手编号
成功举起总重量(公斤)
体重(公斤)
1
130
54
2
155
53.
3
140
42
4
145
55
5
130
46
3、 请设计和编写程序,
a) 输入:
data4.txt
(内容示例见上)
b) 输出:
打印出名次排序,每个数字之间用一空格分开:
2 4 3 5 1
c) 不能使用任何XML parser解析该数据文献,只能使用基本输入流读取数据文献。
4、在验证程序对的性时,服务器段将读取服务器端data4.txt数据后,并与对的答案比较。选手个数不不大于等于2,不限最高人数。
Problem5
电梯控制器
某酒店一栋楼有2部电梯,电梯A和电梯B,1至9楼共9层楼,2部电梯由一种控制程序控制运营。假设电梯从一层到另一层运营时间为1秒钟,电梯在每个楼层停留时间计为0秒。按下按钮时间以秒为单位计算。各个楼层走廊按钮称为上行和下行按钮,各个电梯内部按纽称为楼层按钮。
1、运营原则是:
a) 刚开始时,2部电梯都停在1楼,静止状态,电梯里面没有人,且电梯里没有任何楼层按钮按下,各楼层也没有任何上行和下行按钮按下;
b) 当任何一种按钮,涉及电梯内楼层按钮或楼层走廊上行、下行按钮,在开始状态后被按下时,一方面电梯A开始运营;
c) 没有同步按下按钮,按钮按下时间至少相差1秒;
d) 依照在楼层或电梯间按下按钮先后顺序,电梯在各楼层停留。但是,虽然是后按下上行或下行按钮,2部电梯依照运营方向,先通过那个楼层且方向符合时,将在那个楼层停留;后按下电梯内部楼层按钮,在运营至先按下楼层前,通过符合后按下按钮相应楼层时,将在那个楼层停留;某个电梯可在内部已没有按钮按下状况下,依照外部楼层上行和下行按钮按下状况,按照就近原则可以变化运营方向;
e) 任何一种在楼层上行和下行按钮按下后,只有符合上行或下行条件电梯,才会停在该楼层,且在有电梯停后按钮自动恢复为原始状态;电梯内部楼层按钮,在到达该楼层后自动恢复为原始状态;按纽在恢复为原始状态后才可以再次按下;
f) 任何一种在楼层上行和下行按钮按下后,在恢复为原始状态前,再次按下无效;
g) 任何一种电梯里楼层按钮按下后,在恢复为原始状态前,再次按下无效。
2、运营例子:
a) 如电梯A上行,在3层和4层之间,且在电梯A里面,已有人按下8层按钮;电梯B下行,在8层和7层之间,且在电梯B里面,已有人按下了1层按钮;如果此时3层走廊人按下了下行按钮,电梯B将在下行通过3层时停,并继续下行。
b) 如电梯A上行,在3层和4层之间,且在电梯A里面,已有人按下4层按钮,电梯内没有其她按钮按下;电梯B下行,在8层和7层之间,且在电梯B里面,已有人按下了1层按钮;如果此时3层人按下了下行按钮,电梯A将下行,并在通过3层时停,并继续依照其她按钮状况运营。
3、输入与输出
输入:data5.txt
data5.txt示例内容如下:
0S2 1A5 3S2
阐明:第一数字代表按钮按下时间,是一位数,从0-9;第二位字母代表按纽,S代表是走廊上行按钮,X代表走廊下行按纽,A代表电梯A楼层按钮,B代表电梯B楼层按钮;第三位是数字,是一位数,代表按纽楼层数,从1-9。0S2代表刚开始时(第0秒),有人在2层走廊按下了上行按钮;1A5代表在第1秒,电梯A里面人按下了5层楼层按钮;3S2代表在第3秒,有人在2层走廊按下了上行按钮。
输出格式如下:
1A2 4A5 4B2
阐明:输出表达哪个时刻(第几秒),哪部电梯(A或B),停在哪个楼层(1-9)。
输出按照电梯到达楼层时间先后顺序排列;时间相似时,按照按钮按下时间先后显示。
输出详细阐明如下:电梯开始都停留在1楼,这个不需要输出。如1A2代表第1秒时,A电梯在2楼停留(一楼到二楼需要1秒时间);4A5代表第4秒时,A电梯在5楼停留(A电梯 从1楼到2楼要1秒,在从2楼到5楼还要3秒,共4秒);4B2代表第4秒时,B电梯在2楼停留(第3秒时,有人按下2楼走廊上行按钮,此时A电梯从5楼再返回2楼要到第7秒才到达,而B电梯正在1楼,上来只需1秒,第3秒按下,加上1秒运营时间,第4秒即可到达。又由于A电梯内5楼按钮是第1秒时按下,2楼按钮是第3秒时按下,因此虽然在第4秒有两个停事件,A电梯5楼按钮先按下,因此A电梯停事件先输出)。
展开阅读全文