求教c编程问题 十万火急 最好尽快给答案
1.电梯模拟
模拟某校九层教学楼的电梯系统。该楼有一个自动电梯,能在每层停留。九个楼曾由上向下依次称为地下层,第一层,第二层,……第八层,其中第一层是大楼的进出层,即是电梯的“本垒层”,电梯空闲时,将来该层侯命
乘客可随机的进出于任何层,对每个人来说,他有一个能容忍的最长等待时间,一旦等候电梯时间过长,他将放弃。
模拟时钟从0开始,时间单位0.1秒。人和电梯的各种动作均要消耗一定的时间单位(记为t),比如:有人进出时,电梯每隔40t测试一次,若无人进出,则关门;关门和开门各需要20t;每个人进出电梯均要25t;如果电梯在某层禁止时间超过300t,则驶回1层候命。
要求:按时序显示系统状态的变化过程,即发生的全部人和电梯的动作序列。
2 .计算命题演算公式的真值
所谓命题演算公式是由逻辑变量(值为0/1)和逻辑运算符&&(and与),||(or或),~(非not)按一定的规则组成的公式。公式的运算的先后顺序为 ~,&&,||,而()可以改变优先顺序。已知一个命题演算公式及各变量的值,要求一个程序来计算公式的真值。
要求:(1)利用二叉树来计算公式的真值。首先利用堆栈将中缀形式的公式变为后缀形式;然后根据后缀形式,从叶结点开始构造相应的二叉树;最后按后序遍历该树,求各子树之值,即没到达一个结点,其子树之值已经计算出来,当到达根结点时,求得的值就是公式之真值。
(2)逻辑变元的标识不限于单字母,而可以是任意长的字母数字串
(3)根据用户的要求显示表达式的真值表
谢谢各位 朋友