实验2 简易计算器
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验2
说明:从下列2个实验题目中任选一个。
1、简易计算器(栈)
(1)问题描述
通过模拟一个简单的计算器来进行+、-、*、/、%、^(乘方)等运算,从键盘上输入一算术表达式(一般为中缀表达式),计算出表达式的值。
(2)基本要求
编写程序,要求可对一实数算术表达式进行简单的数学运算。
可以识别带加减乘除等运算符及括号的中缀表达式。
a. 按照四则运算规则,求表达式的值。一般规则如下:
1)先括号内,再括号外。
2)先乘方,再乘除,后加减。
b. 同级运算从左到右顺序执行。
c.如表达式有误,应给出相应的提示信息。
(3)数据结构与算法分析
解决表达式求值问题的方法之一是:第一步将中缀表达式转换为后缀表达式,第二步按后缀表达式求值。解题时可以结合字符串的相关知识。
(4)测试
4.5+5+6.5*1.06=16.39
2、停车场
(1)问题描述
一个汽车厂要将生产的汽车停放到停车场,设停车场内只有一个可停放n辆汽车的狭长通道,且只有一个大门可供汽车进出。汽车在停车场内按车辆到达时间的先后顺序依次排序,若停车场内已停满n辆汽车,则后来的汽车只能在门外的便道上等候,一旦有车开走,则排在便道上的第一辆车即可开入;当停车场内某辆要离开时,在其之后开入的车辆必须先退出停车场让路,待该辆车开出大门外,其他车辆再按原次序进入停车场,每辆停放在停车场在其离开停车场时必须按其停留的时间长短交纳费用。按上述要求试编写一停车场管理模拟程序。
(2)具体要求
该程序要求能够记录车辆的基本信息(如:汽车编号)、车辆到达时间、车辆所在位置、车辆离开时间等。为了便于叙述车辆所在的位置,将狭长通道称“停车位”,将门外的便道称“便道”。具体要求如下:
a. 车辆进入停车场管理功能:记录进入停车场的车辆的汽车编号、进入的时间、进入的车位,并将结果显示在屏幕上。
b. 车辆离开停车场管理功能:记录离开停车场车辆的车牌号、离开时间,同时修改相关车辆的状态。
c. 查询停车场停车状态功能:在屏幕上显示停车位及便道上各位置的状态。
(3)数据结构与算法分析
使用一个顺序栈来描述停车位,为每个停车位分配一个固定的编号,如设置停车位1、停车位2、停车位3……。进入停车场的车要顺序停放。当
有车要进入停车位时,先判断栈中是否已满,即判断是否有空的停车位。如栈未满,则进行入栈操作,即车辆进入停车场;如果栈已满,则不能进行入栈操作,车辆进不了停车场,车辆必须进入便道等待。
a. 当某辆车要离开时,比它后进入的车要先退出,暂时离开停车位。
b.使用一个队列来描述便道,为便道上的每个位置分配一个固定编号,如可用便道1、便道2、便道3、……表示。当停车场已满时,再到来的车辆按先后次序顺序存放在便道上。当有车从停车位离开时,停在便道上的第一辆车进入停车位。
(4)测试