[计算机类试卷]2011年上半年软件水平考试(中级)软件设计师下午(应用技术)试题真题试卷及答案与解析.doc
《[计算机类试卷]2011年上半年软件水平考试(中级)软件设计师下午(应用技术)试题真题试卷及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]2011年上半年软件水平考试(中级)软件设计师下午(应用技术)试题真题试卷及答案与解析.doc(20页珍藏版)》请在麦多课文档分享上搜索。
1、2011年上半年软件水平考试(中级)软件设计师下午(应用技术)试题真题试卷及答案与解析 一、必答题(共 4道大题,每道大题 15分) 0 阅读下列说明和图,回答问题 1至问题 4,将解答填入对应栏内。 说明 某医院欲开发病人监控系统。该系统通过各种设备监控病人的生命特征,并在生命特征异常时向医生和护理人员报警。该系统的主要功能如下: (1)本地监控:定期获取病人的生命特征,如体温、血压、心率等数据。 (2)格式化生命特征:对病人的各项重要生命特征数据进行格式化,然后存入日志文件并检查生命特征。 (3)检查生 命特征:将格式化后的生命特征与生命特征范围文件中预设的正常范围进行比较。如果超出了预设
2、范围,系统就发送一条警告信息给医生和护理人员。 (4)维护生命特征范围:医生在必要时 (如,新的研究结果出现时 )添加或更新生命特征值的正常范围。 (5)提取报告:在医生或护理人员请求病人生命特征报告时,从日志文件中获取病人生命特征生成特征报告,并返回给请求者。 (6)生成病历:根据日志文件中的生命特征,医生对病人的病情进行描述,形成病历存入病历文件。 (7)查询病历:根据医生的病历查询请求,查询病历文件,给医生返回病历报告。 (8)生成治疗意见:根据日志文件中的生命特征和病历,医生给出治疗意见,如处方等,并存入治疗意见文件。 (9)查询治疗意见:医生和护理人员查询治疗意见,据此对病人进行治疗
3、。 现采用结构化方法对病人监控系统进行分析与设计,获得如图 1-1所示的顶层数据流图和图 1-2所示的 0层数据流图。1 使用说明中的词语,给出图 1-1中的实体 E1 E3的名称。 2 使用说明中的词语,给出图 1-2中的数据存储 D1 D4的名称。 3 图 1-2中缺失了 4条数据流,使用说明、图 1-1和图 1-2中的术语,给出数据流的名称 及其起点和终点。 4 说明实体 E1和 E3之间可否有数据流,并解释其原因。 4 阅读下列说明,回答问题 1至问题 3,将解答填入对应栏内。 说明 某服装销售公司拟开发一套服装采购管理系统,以方便对服装采购和库存进行管理。 需求分析 (1)采购系统需
4、要维护服装信息及服装在仓库中的存放情况。服装信息主要包括:服装编码、服装描述、服装类型、销售价格、尺码和面料,其中,服装类型为销售分类,服装按销售分类编码。仓库信息包括:仓库编码、仓库位置、仓库容量和库管员。系统记录库管员的库管员编码、姓名和级别。一个库管 员可以管理多个仓库,每个仓库有一名库管员。一个仓库中可以存放多类服装,一类服装可能存放在多个仓库中。 (2)当库管员发现有一类或者多类服装缺货时,需要生成采购订单。一个采购订单可以包含多类服装。每类服装可由多个不同的供应商供应,但具有相同的服装编码。采购订单主要记录订单编码、订货日期和应到货日期,并详细记录所采购的每类服装的数量、采购价格和
5、对应的多个供应商。 (3)系统需记录每类服装的各个供应商信息和供应商生产服装的情况。供应商信息包括:供应商编码、供应商名称、地址、企业法人和联系电话。一个供应商可以供应多 类服装,一类服装可由多个供应商供应。库管员根据入库时的服装质量情况,设定每个供应商所供应的每类服装的服装质量等级,作为后续采购服装时,选择供应商的参考标准。 概念模型设计 根据需求阶段收集的信息,设计的实体联系图 (不完整 )如图 2-1所示。 逻辑结构设计 根据概念模型设计阶段完成的实体联系图,得出如下关系模式 (不完整 ): 库管员 (库管员编码,姓名,级别 ) 仓库信息 (1),仓库位置,仓库容量 ) 服装 (服装编码
6、,服装描述,服装类型,尺码,面料,销售价格 ) 供应商 (供应商编码,供应商名称,地址,联系电话, 企业法人 ) 供应情况 (2),服装质量等级 ) 采购订单 (3) 采购订单明细 (4) 5 根据需求分析的描述,补充图 21中的联系和联系的类型。根据需求分析的描述,补充图 21中的联系和联系的类型。 6 根据补充完整的图 2-1,将逻辑结构设计阶段生成的关系模式中的空 (1) (4)补充完整,并给出其主键 (用下划线指出 )。 7 如果库管员定期需要轮流对所有仓库中的服装质量进行抽查,对每个仓库中的每一类被抽查服装需要记录一条检查结果,并且需要记录抽查的时间和负责抽查的库管员。请根据该要求,
7、对图 2-1进行修改,画出修改后的实体间联系和联系的类型。 7 阅读下列说明和图,回答问题 1至问题 3,将解答填入对应栏内。 说明 一个简单的图形编辑器提供给用户的基本操作包括:创建图形、创建元素、选择元素以及删除图形。图形编辑器的组成及其基本功能描述如下: (1)图形由文本元素和图元元素构成,图元元素包括线条、矩形和椭圆。 (2)图形显示在工作空间中,一次只能显示一张图形 (即当前图形, current)。 (3)编辑器提供了两种操作图形的工具:选择工具和创建工具。对图形进行操作时,一次只能使用一种工具 (即当前活动 工具, accive)。 创建工具用于创建文本元素和图元元素。 对于显示
8、在工作空间中的图形,使用选择工具能够选定其中所包含的元素,可以选择一个元素,也可以同时选择多个元素。被选择的元素称为当前选中元素 (selected)。 每种元素都具有对应的控制点。拖拽选定元素的控制点,可以移动元素或者调整元素的大小。 现采用面向对象方法开发该图形编辑器,使用 UML进行建模。构建出的用例图和类图分别如图 3-1和图 3-2所示。8 根据说明中的描述,给出图 3-1中 U1和 U2所对应的用例,以及 (1)和 (2)处所对应的关系。 9 根据说明中的描述,给出图 3-2中缺少的 C1至 C8所对应的类名以及 (3)至 (6)处所对应的多重度。 10 图 3-2中的类图设计采用
9、了桥接 (Bridge)设计模式,请说明该模式的内涵。 10 阅读下列说明和 c代码,回答问题 1至问题 3,将解答写在对应栏内。 说明 某应用中需要对 100000个整数元素进行排序,每个元素的取值在 0 5之间。排序算法的基本思想是:对每一个元素 x,确定小于等于 x的元素个数 (记为 m),将x放在输出元素序列的第 m个位置。对于元素值重复的情况,依次放 入第 m-1、 m-2、 个位置。例如,如果元素值小于等于 4的元素个数有 10个,其中元素值等于4的元素个数有 3个,则 4应该在输出元素序列的第 10个位置、第 9个位置和第 8个位置上。 算法具体的步骤为: 步骤 1:统计每个元素
10、值的个数。 步骤 2:统计小于等于每个元素值的个数。 步骤 3:将输入元素序列中的每个元素放入有序的输出元素序列。 C代码 下面是该排序算法的 C语言实现。 (1)常量和变量说明 R:常量,定义元素取值范围中的取值个数,如上述应用中 R值应取 6。 i:循环变量。 n:待排序元素个数。 a:输入数组,长度为 n。 b:输出数组,长度为 n。 c:辅助数组,长度为 R,其中每个元素表示小于等于下标所对应的元素值的个数。 (2)函数 sort 1 void sort(int n, int a, int b) 2 int cR, i; 3 for(i=0; i (1) ; i+) 4 ci=0; 5
11、 6 for(i=0; i n; i+) 7 cai= (2) ; 8 9 for(i=1; i R; i+) 10 ci= (3) ; 11 12 for(i=0; i n; i+) 13 bcai-1= (4) ; 14 cai=cai-1; 15 16 11 根据说明和 C代码,填充 C代码中的空缺 (1) (4)。 12 根 据 C代码,函数的时间复杂度和空间复杂度分别为 (5)和 (6)(用 O符号表示 )。 13 根据以上 C代码,分析该排序算法是否稳定。若稳定,请简要说明 (不超过 100字 );若不稳定,请修改其中代码使其稳定 (给出要修改的行号和修改后的代码 )。 13 阅读
12、下列说明和 C+代码,将应填入 (n)处的字句写在对应栏内。 说明 某饭店在不同的时段提供多种不同的餐饮,其菜单的结构图如图 5-1所示。现在采用组合 (Composition)模式来构造该饭店的菜单,使得饭店可以方便地在其中增加新的餐饮形式,得到如图 5-2所 示的类图。其中 MenuComponent为抽象类,定义了添加 (add)新菜单和打印饭店所有菜单信息 (print)的方法接口。类 Menu表示饭店提供的每种餐饮形式的菜单,如煎饼屋菜单、咖啡屋菜单等。每种菜单中都可以添加子菜单,例如图 5-1中的甜点菜单。类 MenuItem表示菜单中的菜式。C+代码 #include iostr
13、eam #include list #include string using namespace std; clas s MenuComponent protected: string name; public: MenuComponent(string name) this- name=name; String getName()return name; (1) : /添加新菜单 virtual void print()=0; /打印菜单信息 ; clasS MenuItem: public MenuComponent private: double price; public: Menu
14、ltem(string name, double price): MenuComponent(name)this- price=price; double getPrice()return price; void add(MenuComponent* menuComponent) return; /添加新菜单 void print() cout “ “ getName() “, “ getPrice() end1; ; clasS Menu: public MenuComponent private: list (2) menuComponents; pubiic: Menu(string n
15、ame): MenuC0mponent(name) void add(MenuComponent* menuComponent) /添加新菜单 (3) ; void print() cout “n“ getName() “n-“end1; std:list MenuC0mponent* :iterator iter; for(iter=menuComponents.begin(); iter!=menuComponents. end(); iter+) (4) - print(); ; void main() MenuComponent* allMenus=new Menu(“ALL MENU
16、S“); MenuComponent* dinerMenu=new Menu(“DINER MENU“); / 创建更多的 Menu对象,此处代码省略 allMenus- add(dinerMenu); /将 dinerMenu添加到餐厅菜单中 / 为餐厅增加更 多的菜单,此处代码省略 (5) - print(); /打印饭店所有菜单的信息 14 (1) 15 (2) 16 (3) 17 (4) 18 (5) 18 阅读下列说明和 Java代码,将应填入 (n) 处的字句写在对应栏内。 说明 某饭店在不同的时段提供多种不同的餐饮,其菜单的结构图如图 6-1所示。现在采用组合 (Composit
17、ion)模式来构造该饭店的菜单,使得饭店可以方便地在其中增加新的餐饮形式,得到如图 6-2所示的类图。其中 MenuComponent为抽象类,定义了添 加 (add)新菜单和打印饭店所有菜单信息 (print)的方法接口。类 Menu表示饭店提供的每种餐饮形式的菜单,如煎饼屋菜单、咖啡屋菜单等。每种菜单中都可以添加子菜单,例如图 6-1中的甜点菜单。类 MenuItem表示菜单中的菜式。Java代码 import Java.util.*; (1) MenuComponent protected String name; (2) ;/添加新菜单 public abstract void pri
18、nt(); /打印菜单信息 public String getName()return name; class MenuItem extends MenuComponent private double price; public Menultem(String name, double price) this.name=name; this.price=price; public double getPrice() return price; public void add(MenuComponent menuComponent)return;/添加新菜单 public void print
19、() System.out.print(“+getName(); System.out.println(“,“+getPrice(); class Menu extends MenuComponent private List MenuComponentmenuComponents=new ArrayList MenuComponent (); public Menu(String name)this.name=name; public void add(MenuComponent menuComponent) /添加新菜单 menuComponents. (3) ; publiC void
20、print() System.out.print(“n“+getName(); System.out.println(“,“+“-“); Iterator iterator=menuComponents.iterator(); while(iterator.hasNext() MenuComponent menuC0mponent=(MenuComponent)iterator.next(); (4) ; Class MenuTestDrive public static void main(String args) MenuComponent allMenus=new Menu(“ALL M
21、ENUS“); MenuComponent dinerMenu=new Menu(“DINER MENU“); / 创建更多的 Menu对象,此处代码省略 allMenus. add(dinerMenu); /将dinerMenu添加到餐厅菜单中 / 为餐厅增加更多的菜单,此处代码省略 (5) ; /打印饭店所有菜单的信息 19 (1) 20 (2) 21 (3) 22 (4) 23 (5) 2011年上半年软件水平考试(中级)软件设计师下午(应用技术)试题真题试卷答案与解析 一、必答题(共 4道大题,每道大题 15分) 1 【正确答案】 使用说明中的词语,给出图 1-1中的实体 E1 E3的
22、名称。 【试题解析】 本题考查数据流图 (DFD)应用于采用结构化方法进行系统分析与设计,是比较传统的题目,要求考生细心分析题目中所描述的内容。 DFD是一种便于用户理解、分析系统数据流程的图形化建模工具,是系统逻辑模型的重要组成部分。 本问题考查顶层 DFD。顶层 DFD一般用来确定系统边界,将待开发系统看作一个加工,因此图中只有唯一的一个处理和一些外部实体,以及这两者之间的输入输出数据流。题目要求根据描述来确定图中的外部实体。分析题目中的描述,并结合已经在顶层数据流图中给出的数据流进行分析。从中可以看出,与系统的交互者包括病人、医生和护理人员。 其中,本地监控定期获取病人的生命特征,病人是
23、生命特征数据来源,医生和护理人员提出相关请求,并得到相关报告结果,如请求病人生命特征报告,并获得相关报告。医生还需要在必要时添加或更新生命特征范围。对应图 1-1中数据流和实体的对应关系,可知 E1为病人, E2为护理人员, E3为医生。 2 【正确答案】 D1:生命特征范围文件 D2:日志文件 D3:病历文件 D4:治疗意见文件 【试题解析】 本问题考查 0层 DFD中数据存储的确定。根据说明中描述: (2)格式化生命特征:对病人的各项重要生命特征 数据进行格式化,然后存入日志文件并检查生命特征; (4)维护生命特征范围:医生在必要时 (如新的研究结果出现时 )添加或更新生命特征值的正常范围
24、; (6)生成病历:根据日志文件中的生命特征,医生对病人的病情进行描述,形成病历存入病历文件; (8)生成治疗意见:根据日志文件中的生命特征和病历,医生给出治疗意见,如处方等,并存入治疗意见文件。因此, D1为生命特征范围文件, D2为日志文件, D3为病例文件, D4为治疗意见文件。 3 【正确答案】 【试题解析】 本问题考查 0层 DFD中缺失的处理和数据流。从说明中的描 述及图 1-2可知,本地监控之后要对重要生命特征存储日志文件并进行格式化,所以在本地监控和格式化生命特征之间缺少了数据流重要生命特征;检查生命特征是对格式化后的生命特征进行检查,所以在格式化生命特征和检查生命特征之间缺少
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 2011 上半年 软件 水平 考试 中级 设计师 下午 应用技术 试题 答案 解析 DOC

链接地址:http://www.mydoc123.com/p-492975.html