[计算机类试卷]2015年上半年软件水平考试(中级)软件设计师下午(应用技术)真题试卷及答案与解析.doc
《[计算机类试卷]2015年上半年软件水平考试(中级)软件设计师下午(应用技术)真题试卷及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]2015年上半年软件水平考试(中级)软件设计师下午(应用技术)真题试卷及答案与解析.doc(23页珍藏版)》请在麦多课文档分享上搜索。
1、2015年上半年软件水平考试(中级)软件设计师下午(应用技术)真题试卷及答案与解析 一、必答题(共 4道大题,每道大题 15分) 0 阅读下列说明和图,回答问题。【说明】 某大学为进一步推进无纸化考试,欲开发一考试系统。系统管理员能够创建包括专业方向、课程编号、任课教师等相关考试基础信息,教师和学生进行考试相关的工作。系统与考试有关的主要功能如下。(1)考试设置。教师制定试题 (题目和答案 ),制定考试说明、考试时间和提醒时间等考试信息,录入参加考试的学生信息,并分别进行存储。 (2)显示并接收解答。根据教师设 定的考试信息,在考试有效时间内向学生显示考试说明和题目,根据设定的考试提醒时间进行
2、提醒,并接收学生的解答。 (3)处理解答。根据答案对接收到的解答数据进行处理,然后将解答结果进行存储。 (4)生成成绩报告。根据解答结果生成学生个人成绩报告,供学生查看。 (5)生成成绩单。对解答结果进行核算后生成课程成绩单供教师查看。 (6)发送通知。根据成绩报告数据,创建通知数据并将通知发送给学生;根据成绩单数据,创建通知数据并将通知发送给教师。 现采用结构化方法对考试系统进行分析与设计,获得如图 1一 1所示的上下文数据流图和图 1一 2所示的 0层数据流图。1 使用说明中的词语,给出图 1一 1中的实体 E1 E2的名称。 2 使用说明中的词语,给出图 1一 2中的数据存储 D1 D4
3、的名称。 3 根据说明和图中词语,补充图 1一 2中缺失的数据流及其起点和终点。 4 在图 1一 2所示的数据流图中,功能 (6)发送通知包含创建通知并发送给学生或老师。请分解图 1一 2中加工 (6),将分解出的加工和数据流填入答题纸的对应栏内 (注:数据流的起点和终点需使用加工的名称描述 )。 4 阅读下列说明,回答问题。【说明】 某省针对每年举行的足球联赛,拟开 发一套信息管理系统,以方便管理球队、球员、主教练、主裁判、比赛等信息。【需求分析】 (1)系统需要维护球队、球员、主教练、主裁判、比赛等信息。 球队信息主要包括:球队编号、名称、成立时间、人数、主场地址、球队主教练。 球员信息主
4、要包括:姓名、身份证号、出生日期、身高、家庭住址。 主教练信息主要包括:姓名、身份证号、出生日期、资格证书号、级别。 主裁判信息主要包括:姓名、身份证号、出生日期、资格证书号、获取证书时间、级别。 (2)每支球队有一名主教练和若干名球员。一名主教练只能受聘于一支球队,一名球员只能效力于一 支球队。每支球队都有自己的唯一主场场地,且场地不能共用。 (3)足球联赛采用主客场循环制,一周进行一轮比赛,一轮的所有比赛同时进行。 (4)一场比赛有两支球队参加,一支球队作为主队身份、另一支作为客队身份参与比赛。一场比赛只能有一名主裁判,每场比赛有唯一的比赛编码,每场比赛都记录比分和日期。【概念结构设计】
5、根据需求分析阶段的信息,设计的实体联系图 (不完整 )如图 2一 1所示。【逻辑结构设计】 根据概念结构设计阶段完成的实体联系图,得出如下关系模式 (不完整 ): 球队 (球队编号,名称,成立时间,人数,主场地址 )球员 (姓名,身份证号,出生日期,身高,家庭住址, (1)主教练 (姓名,身份证号,出生日期,资格证书号,级别, (2)主裁判 (姓名,身份证号,出生日期,资格证书号,获取证书时间,级别 )比赛 (比赛编码,主队编号,客队编号,主裁判身份证号,比分,日期 ) 5 根据题意由 “一名球员只能效力于一支球队 ”可知球队和球员之间为 1: *联系。由 “一场比赛有两支球队参加,一支球队作
6、为主队身份、另一支作为客队身份参与比赛 ”可知球队分别按照 “主队 ”和 “客队 ”两种角色参与 “比赛 ”的 *: *联系。 “比赛 ”应具有的属性:比赛编码,比分和日 期。 6 根据问题 1分析可知球队和球员之间为 1: *联系,所以在球员关系里应该包括球队的主键,即 “球队编号 ”。根据 “每支球队有一名主教练,一名主教练只能受聘于一支球队 ”可知球队和教练之间为 1: 1联系,而球队关系已经给定,所以需要在主教练关系中包含球队的主键,即 “球队编号 ”。 7 根据题意由 “赞助商可以赞助某支球队,一支球队只能有一个赞助商,但赞助商可以赞助多支球队 ”可知赞助商和球队之间为 1: *联系
7、。由 “赞助商也可以单独赞助某些球员,一名球员可以为多个赞助商代言 ”可知赞助商和球员之间为 *: *联系。 7 阅读下列说明和图,回答问题。【说明】 某物品拍卖网站为参与者提供物品拍卖平台,组织拍卖过程,提供在线或线下交易服务。网站主要功能描述如下: (1)拍卖参与者分为个人参与者和团体参与者两种。不同的团体也可以组成新的团体参与拍卖活动。网站记录每个参与者的名称。 (2)一次拍卖中,参与者或者是买方,或者是卖方。 (3)一次拍卖只拍出来自一个卖方的一件拍卖品;多个买方可以出价;卖方接受其中一个出价作为成交价,拍卖过程结束。 (4)在拍卖结算阶段,买卖双方可以选择两种成交方式:线下成交,买卖
8、双方在事先约定好的成交地点,当面 完成物价款的支付和拍卖品的交付;在线成交,买方通过网上支付平台支付物价款,拍卖品由卖方通过快递邮寄给买方。一次拍卖过程的基本事件流描述如下: (1)卖方在网站上发起一次拍卖,并设置本次拍卖的起拍价。 (2)确定拍卖标的以及拍卖标的保留价 (若在拍卖时间结束时,所有出价均低于拍卖标的保留价,则本次拍卖失败 )。 (3)在网站上发布本次拍卖品的介绍。 (4)买方参与拍卖,给出竞拍价。 (5)卖方选择接受一个竞拍价作为成交价,结束拍卖。 (6)系统记录拍卖成交价,进入拍卖结算阶段。 (7)卖方和买方协商拍卖品成交方式,并完成成交。 现采用面向对象方法对系统进行分析与
9、设计,得到如表 3一 1所示的类列表以及如图 3一 1所示的类图,类中关键属性与方法如表 3一 2所示。8 根据说明中的描述,给出图 3一 1中 (1) (7)所对应的类名 (类名使用表 31中给出的序号 )。 9 根据说明中的描述,确定表 3一 2中的属性 /方法分别属于哪个类 (类名、方法 /属性名使用表 3一 1、表 3一 2中给出的序号 )。 10 在图 3一 1采用了何种设计模式?以 100字以内文字说明采用这种设计模式的原因。 二、选答题(共 3道大题,每道大题 15分) 从下列 3道试题中任选 1道解答,如果解答的试题数超过 1道,则仅题号小的 1道题解答有效。 10 阅读下列说
10、明和 C代码,回答问题。 【说明】 n一皇后问题是在 n行 n列的棋盘上放置 n个皇后,使得皇后彼此之间不受攻击,其规则是任意两个皇后不在同一行、同一列和相同的对角线上。 拟采用以下思路解决 n皇后问题:第 i个皇后放在第 i行。从第一个皇后开始,对每个皇后,从其对应行 (第 i个皇后对应第 i行 )的第一列开始尝试放置,若可以放置,确定该位置,考虑下一个皇后;若与之前的皇后冲突,则考虑下一列;若超出最后一列,则重新确定上一个 皇后的位置。重复该过程,直到找到所有的放置方案。 【 C代码】 下面是算法的 C语言实现。 (1)常量和变量说明 pos:一维数组, posi表示第 i个皇后放置在第
11、i行的具体位置 count:统计放置方案数 i, j, k:变量 N:皇后数 (2)C程序 #include stdio h #include math h #define N 4 /*判断第 k个皇后目前放置位置是否与前面的皇后冲突 */ int isplace(int pos, int k) int i; for(i=1; i k; i+) if( (1)一 | fabs(i一 k)=fabs(posiJ一 poslk) return 0; return 1; int main() int i, j, count=1; int posN+1; /初始化位置 for(i=1; i =N; i
12、+) posi =0; (2); while(j =1) pos j =pos j+1; /*尝试摆放第 j个皇后 */ while(pos j =N& (3) pos j=pos j+1; /*得到一个摆放方案 */ if(posj =N& j=N) printf(“方案 d: “, count+); for(i=1; i =N; i+) printf(“ d “, posi); printf(“ n“); /*考虑下一个皇后 */ if(posjl =N (4) j =j +1; else /返回考虑上一个皇后 pos j =0f (5); return 1; 11 根据以上说明和 C代码
13、,填充 C代码中的空 (1) (5)。 12 根据以上说明和 C代码,算法采用了 (6)设计策略。 13 上述 C代码的输出为: (7) 14 阅读下列说明和 C+代码,填入 (n)处的字句。【说明】 某图书管理系统中管理着两种类型的文献:图书和论文。现在要求统计所 有馆藏文献的总页码 (假设图书馆中有一本 540页的图书和两篇各 25页的论文,那么馆藏文献的总页码就是 590页 )。采用 Visitor(访问者 )模式实现该要求,得到如图 5一 1所示的类图。class LibraryVisitor; class Libraryltemlnterface t public: (1); ; c
14、lass Article:public Libraryltemlnterface private: string m tit1e; /论文名 string m author; /论文作 者 int m start_page; int m endpage; public: Article(string p_author, string p_tit1et int p_start_page, int p_end_page ); int getNumberOfPages(); void accept(LibraryVisitor* visitor); class Book: public Librar
15、yltemlnterface private: string m_tit1e; /书名 string m_author; /作者 int m_pages; /页数 public: Book(string p_author, string p_tit1c_, int p_pages); int getNumberOfPages(); void accept(LibraryVisitor* visitor); ; class LibraryVisitor public: (2); (3); virtual void printSum()= 0; ; class LibrarySumPrintVis
16、itor: public LibraryVisitor / fTEP总页数 private: int sum; public: LibrarySumPrintVisitor(); void visit(Book* p_book); void visit(Article* p_article); voicl printSum(); ; / visitor cpp int Article: getNumberOfPages() return m end_page一 m start_page; void Article: accept(LibraryVisitor* visitor) (4); N
17、Book: Book(string p_author, string p_tit1e, int p_pages ) m tit1e = p_tit1e; m author = p_author; m_pages = p_pages; int Book: getNumberOfPages() ret11rn m_pagesf voicl Book:accept(LibraryVisitor母 visitor) (5); 15 阅读下列说明和 Java代码,填入 (n)处的字句。【说明】某图书管理系统中管理着两种类型的文献:图书和论文。现在要求统计所有馆藏文献的总页码 (假设图书馆中有一本 540
18、页的图书和两篇各 25页的论文,那么馆藏文献的总页码就是 590页 )。采用 Visitor(访问者 )模式实现该要求,得到如图 6一 1所示的类图。【 Java代码】 import java util *; interface LibraryVisitor (1); (2)f void printSum(); class LibrarySumPrintVisitor implements LibraryVisitor /打 EP总页数 private int sum =0; public void visit(Book p_book) sum = sum + p_book getNumber
19、OfPages(); public voici visit(Article p_article) sum = sum + p_article getNumberOfPages(); public void printSum() System out print1n(“SUM = “ + sum); interface Libraryltemlnterface (3); class Article implements Libraryltemlnterface private String m_tit1e; /论文名 private String Lauthor; /论文作者 private i
20、nt m_start_page; private int m_end_page; public Article(String p_author, String p_tit1e, int p_start_page, int p_end_page ) m tit1e=p_tit1e; m author=p_author; m start_page= p_start_page; m_end_page= p_end_page; public int getNumberOfPages() return mend_page一 m_start_page; public void accept(Library
21、Visitor visitor)(4); class Book implements Libraryltemlnterface private String m_tit1e; /书名 private String m_author; /书作者 private int m_pages; /页数 public Book(String p_author, String p_tit1e, int p_pages) m tit1e=p_tit1e; m author=p_author; m_pages=p_pages; public int getNumberOfPages() return m_pag
22、es; public void accept(LibraryVisitor visitor)(5); 2015年上半年软件水平考试(中级)软件设计师下午(应用技术)真题试卷答案与解析 一、必答题(共 4道大题,每道大题 15分) 1 【正确答案】 E1:教师 E2:学生 【试题解析】 本题考查采用结构化方法进行系统分析与设计,主要考查数据流图(DFD)的应用, 是比较传统的题目,与往年考点类似,要求考生细心分析题目中所描述的内容。 DFD是一种便于用户理解、分析系统数据流程的图形化建模工具,是系统逻辑模型的重要组成部分。上下文 DFD(顶层 DFD)通常用来确定系统边界,将待开发系统本身看作一
23、个大的加工 (处理 ),然后根据谁为系统提供数据流,谁使用系统提供的数据流,来确定外部实体。建模出的上下文 DFD中只有唯一的一个加工和一些外部实体,以及这两者之间的输入输出数据流。在上下文确定的系统外部实体以及与外部实体的输入输出数据流的基础上,建模 O层 DFD,将上下文 DFD中的加工进一步分解成多个加工,识别这些加工的输入输出数据流,使得所有上下文 DFD中的输入数据流,经过这些加工之后变换成上下文 DFD的输出数据流。根据 O层 DFD中加工的复杂程度进一步建模加工的内容。 在建模分层 DFD时,根据需求情况可以将数据存储建模在不同层次的 DFD中,注意要在绘制下层数据流图时要保持父
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 2015 上半年 软件 水平 考试 中级 设计师 下午 应用技术 答案 解析 DOC

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