第一部分
(1) B (2) D (3) C (4) A
(1) × (2) × (3) √ (4) ×
(1) C (2) C (3) B (4) A (5)D
(6) C (7) B
(1) × (2) × (3) × (4) ×
(1) D (2) A (3) A (4) B
(1) × (2) √ (3) × (4) √
(1) B (2) D (3) B (4) C
(5) B (6) C (7) B (8) D
(1) √ (2) × (3) × (4) × (5)×
(6) √ (7) × (8) × (9) √ (10) ×
(11) √
(1)
顶层图:对于图书管理系统,外部用户有读者和管理工作人员。读者分为第一次借书的
读者和多次借书的读者,第一次借书的读者需要在借书文件上建立档案才能借书。工作人员
需要对借书文件、库存数目文件进行修改,也能查阅读者情况、图书借阅情况、库存情况。
系统顶层图如图 C-1 所示
图C-1 系统顶层图
2)查询 0 层图:工作人员通过借书文件查询读者情况。通过库存目录文件查询库存情况。
通过查询借书文件和库存目录文件查询图书借阅情况。最后打印统计表。查询 0 层图如图
C-2 所示
图C-2 查询0层图
3)借书 0 层图:读者将借书证输入借书台,借书台在系统中查询借书证是否有效,若有效,
通过借书文件查看借书次数。若第一次借书,则在借书文件中建立档案,办理借书,并将借
书信息登入借书文件,检查读者目录;若为多次借书,则从借书文件中检查所借图书是否超
过 10 本,若超过 10 本,拒借,并将信息反馈给读者,否则办理借书,并将借书信息登入借
书文件,检查读者目录。借书 0 层图如图 C-3 所示。
图C-3借书0层图
4)还书 0 层图:工作人员通过借书文件读取读者记录。通过读者记录查询所借日期。如果
借书超期,反馈读者罚款信息并收取罚款,并修改库存目录与借书文件。还书 0 层图如图
C-4 所示
图C-4 还书0层图
5)数据字典
A.顶层图数据字典:
首次借书读者 = {读者+借书证}
多次借书读者 = {读者+借书证}
借书证 = {姓名+学号}
读者 = {姓名+学号+班号}
工作人员 = {姓名+工作人员代号}
姓名: 2{汉字}4
学号: 8{数字}8
班号:4{数字}4
工作人员代号: 4{数字}4
读者情况 = {姓名+学号}
图书借阅情况 = {图书名+图书编号+读者+库存数量}
库存情况 = {图书名+图书编号+库存数量}
图书名: {汉字}
图书编号: 6{数字}6
B.借书 0 层图:
借书证 = {姓名+学号}
读者 ={ 姓名+学号+班号}
借书次数: 0..*
读者信息 = {姓名+学号}
借书情况 = {读者+图书名+图书编号+所借日期}
读者目录 = {读者+图书名+图书编号+所借日期} 姓名: 2{汉字}4
学号: 8{数字}8
班号: 4{数字}4
图书名: {汉字}
图书编号: 6{数字}6
所借日期: 8{数字}8
C.还书 0 层图:
工作人员 = {姓名+工作人员代号}
读者记录 = {读者+图书名+图书编号+所借日期}
读者 = {姓名+学号+班号}
罚款信息 = {读者+图书名+图书编号+罚金数额}
库存目录 = {图书名+图书编号+库存数量}
借书文件 = {读者+图书名+图书编号+所借日期}
姓名: 2{汉字}4
学号: 8{数字}8
班号: 4{数字}4
工作人员代号: 4{数字}4
图书名: {汉字}
图书编号: 6{数字}6
所借日期: 8{数字}8
罚金数额: 1{数字}2
D.查询 0 层图:
工作人员 = {姓名+工作人员代号}
库存目录 = {图书名+图书编号+库存数量}
借书文件 = {读者+图书名+图书编号+所借日期}
统计表 = {库存目录+读者记录}
读者记录 = {读者+图书名+图书编号+所借日期}
姓名: 2{汉字}4
学号: 8{数字}8
班号: 4{数字}4
工作人员代号: 4{数字}4
图书名: {汉字}
图书编号: 6{数字}6
所借日期: 8{数字}8
(2) 根据题目描述,活动由插入磁卡开始,输入密码后需对密码进行判断——若密码不正
确,则返回输入密码状态;若三次输入密码都不正确,则进入退出服务状态而结束;若密码
正确,进入服务类型选择状态。在服务类型选择状态中,需要再次判断,若用户选择存款,
则进入存款状态;用户选择取款,则进入取款状态。存款或取款状态结束后,继续进行判断,
若用户选择继续服务,则再次进入服务类型选择状态,否则进入退出服务状态而结束活动。
其状态转换图如图 C-6 所示。
图C-6 状态转换图
(3)根据题目中给出的一对多和多对多的关系,画出此 E-R 图,如图 C-7 所示
图C-7 某企业集团工厂的E-R图
(1) C (2)C (3)C (4)C (5)D
(1)× (2)√ (3)× (4)× (5)√
(6)× (7)×
(1)“查看书籍”的结构图如图 C-8 所示。
图C-8 “查看书籍”的结构图
(2)二维表格的 Jackson 图如图 C-9 所示。
图C-9 二维表格的Jackson图[l1]
(3) 在计算两个正整数的最小公倍数时,首先需要确定最小公倍数的查找范围。由数学相关
知识可知,最小公倍数的最小可能值为两个正整数中较大者,最大可能值为两个正整数的乘
积。 因此,在开始查找最小公倍数之前,首先要对这两个正整数进行比较并且计算二者乘
积。
在确定了查找范围之后,就可以对其中的数字进行逐一的判断,直至找到最小公倍数。
1)程序流程图如图 C-10 所示。
图 C-10 程序流程图
N-S 图如图 C-11 所示。
图 C-11 N-S 图
3)PAD 图如图 C-12 所示。
图 C-12 PAD 图
(1) C (2) D (3) B (4)D (5) D
(6) B (7) B (8) D (9)B (10) D
(11) C (12) B
(1) × (2) × (3) × (4) √ (
5)×
(6) × (7) × (
8)× (9) × (10) ×
(11) √
(1)本题中,对象主要包括考生、人事局和招聘单位三种,所以包括三条对象生命线。
招聘单位将招聘计划发送给人事局,再由人事局发布给考生。考生通过人事局进行考试
报名,报名信息由人事局传递给招聘单位。考生通过人事局进行考试。人事局向考生和招聘
单位发布考试成绩。招聘单位将录用信息发给人事局,再由人事局发布给考生。公务员招聘
考试管理系统的顺序图如图 C-13 所示。
图C-13 公务员招聘考试管理系统的顺序图
(2)
1)用例图
首先确定存在3 个 与 :学生班长、班主任、书库管理员。接着分析出 7 个用例:填
写领书单、学生班长领书、班主任签名、书库管理员审查领书单、给予领书并修改库存清单、
登记需订书信息、提供订书单。然后确定包含(include)关系:班主任签名前需要学生班长
填写领书单;学生班长领书前需要班主任签名;书库管理员审查领书单前需要学生班长去领
书;书库管理员给予领书并修改库存清单前需要审查领书单;书库管理员提供订书单前需要
登记需订书信息。最后,就可以通过分析出的一系列关系绘制出如图 C-14 所示的用例图。
图C-14 用例图
2)顺序图
学生班长填写领书单,提交给班主任签名。班主任将签名后的领书单交给学生班长,学
生班长拿着签名后的领书单去领书。书库管理员首先审查领书单,若填写正确则给予领书并
修改库存清单。如果某书的库存量低于临界值,书库管理员便登记需订书的信息,并为采购
部门提供订书单,顺序图如图 C-15 所示
图C-15 顺序图
3)活动图
学生班长填写领书单,提交给班主任签名。学生班长拿着签名后的领书单去领书。书库
管理员首先审查领书单,若有班主任签名且填写正确则给予领书并修改库存清单。书库管理
员检查库存,如果库存不足,书库管理员便登记需订书的信息,并为采购部门提供订书单,
活动图如图 C-16 所示。
图 C-16 活动图
(3)状态图
手机可以分为空闲、响铃、拨号与通话四种状态。根据题目叙述分别在各个状态之间添
加转移即可。如图 C-17 所示
图 C-17 手机的状态图
(1) A (2) D (3)B (4) C (5) A
(6) B (7) D (8)D
(1) √ (2) × (3)× (4)×
(1)环境控制器在被定义气候之前,处于闲置状态。 在被定义气候之后,开始温度控制:
当处于白天模式时,如果温度升高,则进行调温操作;如果出现日落,则转换为夜间模式。
当处于夜间模式时,如果温度降低,则进行调温操作;如果出现日出,则转换为白天模式。
当环境控制器被命令终止气候时,则重新处于限制状态。环境控制器的动态模型如图 C-18
所示
(2)图书馆所藏出版物拥有共同的基类:馆藏出版物类。馆藏出版物类的成员变量包括出
版物名称、出版者、获得日期、目录编号、借出状态、借出限制等,并包括借出和收回两项
操作。各种类型的出版物类继承于馆藏出版物类,并定义了各自的属性。图书馆馆藏出版物
的对象模型图 C-19 所示
图 C-19 图书馆馆藏出版物的对象模型
(3)从需求中可以看出,当病人进行预约时,需要提供姓名,预约日期。然后系统查询
预约登记表,查看该日期是否有效,若预约成功,则记录入预约记录表。然后病人提供名字,
必要时也可以预约下次就诊日期。诊所的职员可以查询预约登记表,删除预约。系统可以提
取每天的预约打印出来给牙医。
根据上述功能,可建立该系统功能模型,如图 C-20 所示。
图 C-20 牙科诊所管理系统的功能模型
(1) A (2) C (3) D (4) B (5)A
(1) × (2) √ (3) √ (4) √
(1) D (2) B (3) B (4) D (5)B (6) C
(1) √ (2) √ (3) × (4) √
(1)根据题意可以抽象出系统的实体类包括教师、习题、习题答案、作业题板、练习
题板以及学生。作业题板与练习题板可以泛化为题板抽象类。根据描述对各个类添加适当的
属性。在各个类之间按照文字描述建立关联关系。教师与习题之间构成 1 对多关系,教师与
作业题板构成 1 对多关系,习题与习题答案之间构成 1 对 1 关系,习题与题板之间构成多对
多关系且这一关联关系可以描述为聚合关系,学生与作业题板构成多对多关系,学生与练习
题板构成 1 对多关系。类图可参考下图。类图如 C-21 图所示。
图 C-21 类图
(1) B (2) C (3) C (4) A
(1) × (2) √ (3) √ (4) √ (5)×
(1)
for(i = 1; i < n; i++)
for(j =n-1;j >= i; j--){
if(a[j]
(2)在计算两个整数的最大公约数时,可以使用辗转相除的方法。由于相除取余的过程可
能会重复多次,所以可以使用递归的方式来简化代码。因此,可以通过设计一个递归函数来
对输入的整数进行计算,直至找到二者的最大公约数。程序如下。
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
namespace GreatestCommonDivisor
{
class Program
{
//辗转相除法
public static int calculate(int x, int y)
{
if (x < y)
{
return calculate1(y, x);
}
return calculate1(x, y);
}
// x is no less than y
private static int calculate1(int x, int y)
{
if (x % y != 0)
{
return y;
}
}
}
(1) B (2) D (3)B (4) A (5) B
(6) B (7) B (8)D (9)A (10) B
(11) C (12)D (13) A
(1) × (2) × (3) × (4) √ (5)√
(6) √ (7) × (8)√ (9) × (10) ×
(11) √
(1) 画出该问题的等价类表,并为每个等价类进行编号,如表 C-1 所示。
(2)
① 实现语句覆盖的测试方案如下:
覆盖 THEN 部分的语句,即使得条件(A>0)And(B>O)和条件(C>A)Or(D
输入:A=1,B=1,C=2,D=0。预期输出:X=2,Y=2。
覆盖 ELSE 部分的语句,即使得条件(A>O)And(B>O)和条件(C>A)Or(D
输入:A=0,B=-1,C=0,D=1。预期输出:X=1,Y=1。
② 实现路径覆盖的测试方案如下:
覆盖两个条件均为假的路径。输入:A=-1,B=-2,C=-3,D=3。预期输出:X=1,
Y=0。
覆盖第一个条件为假第二个条件为真的路径。输入:A=-1,B=-2,C=1,D=-3。
预期输出: X=1,Y=4。
覆盖第一个条件为真第二个条件为假的路径。输入:A=1,B=1,C=0,D=2。预
期输出:X=2,Y=2。
覆盖两个条件均为真的路径。输人:A=1,B=2,C=2,D=1。预期输出:X=3,
Y=1。
(1) B (2) B (3) A (4) A (5)D
(6) C (7) D (8) C (9) C (10)B
(11) C (12) A
(1) √ (2) √ (3) × (4) √ (5)√
(6) × (7) √ (8) × (9) √ (10)√
(11) √ (12) × (13) × (14) × (15)×