实验2 表达式求值或银行排队系统仿真


实验时间

6-8课时。

实验目的

1. 掌握栈和队列的基本算法。
2. 学习利用数据结构解决实际问题的方法。

问题描述

以下两个问题,任选其一。
1. 表达式求值:计算一个算术表达式的值。
2. 银行排队系统仿真:模拟一个银行排队系统一天的运行情况。

实验内容

1. 表达式求值
基本功能:计算一个语法正确的、仅有四则运算(带括号)且操作数全部为正数的算术表达式的值。
可选做的高级功能:(1)对表达式的语法进行分析,若语法错误则提示;(2)允许输入的操作数为负数;(3)增加更多的运算,如乘方、开方、三角函数、对数函数等;(4)计算多项式表达式的值,即“操作数”都是多项式的表达式,计算结果也是多项式。
2. 银行排队系统仿真
基本功能:模拟一个单队列、多窗口的银行排队系统一天的运行情况,随机生成顾客的到达时间和办理业务所需时间等数据。一天结束后,统计顾客的平均等待时间和窗口的平均占用率。
可选做的高级功能:(1)改变顾客办理业务所需时间或银行的窗口数,观察顾客平均等待时间和窗口平均占用率如何变化;(2)假设每位顾客有一个容忍时间,等待超过容忍时间之后顾客将离开,统计顾客的离开率;(3)假设银行有两个队列,其中一个是VIP队列,另一个是普通队列,窗口服务的规则改为:若VIP队列不空,则优先服务VIP,否则服务普通顾客,统计VIP和普通顾客的平均等待时间有多大的差别。