5-4 美国美国某大学共有200名教师,校方与教师工会刚刚签订一项协议。按照协议,所有年工资超过$26 000(含$26 000)的教师工资将保持不变,年工资少于$26 000的教师将增加工资,所增加的工资数按下述方法计算:给每个由此教师所赡养的人(包括教师本人)每年补助$100,此外,教师有一年工龄每年再多补助$50,但是,增加后的年工资总额不能多于$26 000。

教师的工资档案储存在行政办公室的磁带上,档案中有目前的年工资、赡养的人数、雇用日期等信息。需要写一个程序计算并印出每名教师的原有工资和调整后的新工资。要求:

(1) 画出此系统的数据流图;

(2) 写出需求说明;

(3) 设计上述的工资调整程序(要求用HIPO图描绘设计结果),设计时请分别采用下述两种算法,并比较这两种算法的优缺点:

(a) 搜索工资档案数据,找出年工资少于$26 000的人,计算新工资,校核是否超过$26 000,储存新工资,印出新旧工资对照表;

(b) 把工资档案数据按工资从最低到最高的次序排序,当工资数额超过$26 000时即停止排序,计算新工资,校核是否超过限额,储存新工资,印出结果。

(4) 你所画出的数据流图适用于哪种算法?

 

解答:

(1) 系统的数据流图

 

 

 

分解后:

 

 

 

2)需求说明:

1.功能需求:可以输入调资的标准,输入教师档案,经调资给出新的教师档案,需要存储档案
2.性能需求:软件的响应时间小于0.5s,更新处理要快
3.灵活需求:当需求发生某些变化时,该软件应该能够适应这些变化
4.故障处理要求:出现错误时,应给予警告或提示

3)

A

 

 

 

B

 

 

 

(a)比较耗时,因为它要检索所有的档案
(b)从速度上看比较块,但是(b)需要排序算法
比较复杂,(a)对于设计来讲比较简单

 

4)画出的数据流图比较适合(A)的算法

 

5-5 下面将给出两个人玩的扑克牌游戏的一种玩法,请你设计一个模拟程序,它的基本功能是: (1)发两手牌(利用随机数产生器) (2)确定赢者和赢牌的类型; (3)模拟N次游戏,计算每种类型牌赢或平局的概率。要求用HIPO图描绘设计结果并且画出高层控制流程图。

扑克牌游戏规则如下:

(1) 有两个人玩,分别称为A和B;

(2) 一副扑克牌有52张牌,4 种花色(方块、梅花、红桃和黑桃),每种花色的牌的点数按升序排列有2,3,4,…,10,J,Q,K,A等13种;

(3) 给每个人发3张牌,牌面向上(即,亮牌),赢者立即可以确定;

(4) 最高等级的一手牌称为同花,即3张牌均为同一种花色,最大的同花牌是同一种花色的Q、K、A;

(5) 第二等级的牌称为顺子,即点数连续的3张牌,最大的顺子是花色不同的Q、K、A;

(6) 第三等级的牌是同点,即点数相同的3张牌,最大的同点是A、A、A;

(7) 第四等级的牌是对子,即3张牌中有两张点数相同,最大的对子是A、A、K;

(8) 第五等级的牌是杂牌,即除去上列四等之外的任何一手牌,最大的杂牌是不同花色的A、K、J;

(9) 若两人的牌类型不同,则等级高者胜;若等级相同,则点数高者胜;若点数也相同,则为平局。