试题一

某大学为进一步推进无纸化考试,欲开发一考试系统。系统管理员能够创建包括专业方向、课程编号、任课教师等相关考试基础信息,教师和学生进行考试相关的工作。系统与考试有关的主要功能如下。

  1. 考试设置。教师制定试题(题目和答案),制定考试说明、考试时间和提醒时间等考试信息,录入参加考试的学生信息,并分别进行存储。
  2. 显示并接收解答。根据教师设定的考试信息,在考试有效时间内向学生显示考试说明和题目,根据设定的考试提醒时间进行提醒,并接收学生的解答。
  3. 处理解答。根据答案对接收到的解答数据进行处理,然后将解答结果进行存储。
  4. 生成成绩报告。根据解答结果生成学生个人成绩报告,供学生查看。
  5. 生成成绩单。对解答结果进行核算后生成课程成绩单供教师查看。
  6. 发送通知。根据成绩报告数据,创建通知数据并将通知发送给学生;根据成绩单数据,创建通知数据并将通知发送给教师。

现采用结构化方法对考试系统进行分析与设计,获得如图1-1所示的上下文数据流图和图1-2所示的0层数据流图。

【问题1】(2分)
使用说明中的词语,给出图1-1中的实体E1~E2的名称。

【问题2】(4分)
使用说明中的词语,给出图1-2中的数据存储D1~D4的名称。

【问题3】(4分)
根据说明和图中词语,补充图1-2中缺失的数据流及其起点和终点。

【问题4】(5分)
图1-2所示的数据流图中,功能(6)发送通知包含创建通知并发送给学生或老师。请分解图1-2中加工(6),将分解出的加工和数据流填入答题纸的对应栏内。(注:数据流的起点和终点须使用加工的名称描述)


试题二

某省针对每年举行的足球联赛,拟开发一套信息管理系统,以方便管理球队、球员、主教练、主裁判、比赛等信息。
【需求分析】
(1)系统需要维护球队、球员、主教练、主裁判、比赛等信息。
球队信息主要包括:球队编号、名称、成立时间、人数、主场地址、球队主教练。
球员信息主要包括:姓名、身份证号、出生日期、身高、家庭住址。
主教练信息主要包括:姓名、身份证号、出生日期、资格证书号、级别。
主裁判信息主要包括:姓名、身份证号、出生日期、资格证书号、获取证书时间、级别。
(2)每支球队有一名主教练和若干名球员。一名主教练只能受聘于一支球队,一名
球员只能效力于一支球队。每支球队都有自己的唯一主场场地,且场地不能共用。
(3)足球联赛采用主客场循环制,一周进行一轮比赛,一轮的所有比赛同时进行。
(4) 一场比赛有两支球队参加,一支球队作为主队身份、另一支作为客队身份参与
比赛。一场比赛只能有一名主裁判,每场比赛有唯一的比赛编码,每场比赛都记录比分和日期。
【概念结构设计】
根据需求分析阶段的信息,设计的实体联系图(不完整)如图2-1所示。

【逻辑结构设计】
根据概念结构设计阶段完成的实体联系图,得出如下关系模式(不完整):
球队(球队编号,名称,成立时间,人数,主场地址)
球员(姓名,身份证号,出生日期,身高,家庭住址, (1) )
主教练(姓名,身份证号,出生日期,资格证书号,级别, (2) )
主裁判(姓名,身份证号,出生日期,资格证书号,获取证书时间,级别)
比赛(比赛编码,主队编号,客队编号,主裁判身份证号,比分,日期)

【问题1】(6分)
补充图2-1中的联系和联系的类型。图2-1中的联系“比赛”应具有的属性是哪些?

【问题2】(4分)
根据图2-1,将逻辑结构设计阶段生成的关系模式中的空(1)~(2)补充完整。

【问题3】(5分)
现在系统要增加赞助商信息,赞助商信息主要包括赞助商名称和赞助商编号。赞助商可以赞助某支球队,一支球队只能有一个赞助商,但赞助商可以赞助多支球队。赞助商也可以单独赞助某些球员,一名球员可以为多个赞助商代言。请根据该要求,对图2-1进行修改,画出修改后的实体间联系和联系的类型。


试题三

某物品拍卖网站为参与者提供物品拍卖平台,组织拍卖过程,提供在线或线下交易服务。网站主要功能描述如下:

  1. 拍卖参与者分为个人参与者和团体参与者两种。不同的团体也可以组成新的团体参与拍卖活动。网站记录每个参与者的名称。
  2. 一次拍卖中,参与者或者是买方,或者是卖方。
  3. 一次拍卖只拍出来自一个卖方的一件拍卖品;多个买方可以出价:卖方接受其中一个出价作为成交价,拍卖过程结束。
  4. 在拍卖结算阶段,买卖双方可以选择两种成交方式:线下成交,买卖双方在事

先约定好的成交地点,当面完成物价款的支付和拍卖品的交付;在线成交,买方通过网上支付平台支付物价款,拍卖品由卖方通过快递邮寄给买方。
一次拍卖过程的基本事件流描述如下:

  1. 卖方在网站上发起一次拍卖,并设置本次拍卖的起拍价。
  2. 确定拍卖标的以及拍卖标的保留价(若在拍卖时间结束时,所有出价均低于拍卖标的保留价,则本次拍卖失败)。
  3. 在网站上发布本次拍卖品的介绍。
  4. 买方参与拍卖,给出竟拍价。
  5. 卖方选择接受一个竟拍价作为成交价,结束拍卖。
  6. 系统记录拍卖成交价,进入拍卖结算阶段。
  7. 卖方和买方协商拍卖品成交方式,并完成成交。

现采用面向对象方法对系统进行分析与设计,得到如表3-1所示的类列表以及如图3-1所示的类图,类中关键属性与方法如表3-2所示。

【问题1】(7分)
根据说明中的描述,给出图3-1中(1)~(7)所对应的类名(类名使用表3-1中给出的序号)。

【问题2】(5分)
根据说明中的描述,确定表3-2中的属性/方法分别属于哪个类(类名、方法/属性名使用表3-1、3-2中给出的序号)。

【问题3】(3分)
在图3-1采用了何种设计模式?以100字以内文字说明采用这种设计模式的原因。


试题四

n-皇后问题是在n行n列的棋盘上放置n个皇后,使得皇后彼此之间不受攻击,其规则是任意两个皇后不在同一行、同一列和相同的对角线上。
拟采用以下思路解决n-皇后问题:第i个皇后放在第i行。从第一个皇后开始,对每个皇后,从其对应行(第i个皇后对应第i行)的第一列开始尝试放置,若可以放置,确定该位置,考虑下一个皇后;若与之前的皇后冲突,则考虑下一列;若超出最后一列,则重新确定上一个皇后的位置。重复该过程,直到找到所有的放置方案。
【C代码】
下面是算法的C语言实现。
(1)常量和变量说明

pos:一维数组,pos[i]表示第i个皇后放置在第i行的具体位置
count:统计放置方案数
i,j,k:变量
N:皇后数

(2)C程序

#include < stdio.h >
#include < math.h >
#define N 4
/*判断第k个皇后目前放置位置是否与前面的皇后冲突*/
in isplace(int pos[], int k) {int i;for (i = 1; i < k; i++) {if ((1) || fabs(i - k) == fabs(pos[i] - pos[k])) {return ();}}return 1;
}int main() {int i,j,count = 1;int pos[N + 1];//初始化位置for (i = 1; i <= N; i++) {pos[i] = 0;}(2);while (j >= 1) {pos[j] = pos[j] + 1;/*尝试摆放第i个皇后*/while (pos[j] <= N && (3)_) {pos[j] = pos[j] + 1;}/*得到一个摆放方案*/if (pos[j] <= N && j == N) {printf("方案%d: ", count++);for (i = 1; i <= N; i++) {printf("%d ", pos[i]);}printf("\n");}/*考虑下一个皇后*/if (pos[j] <= N && (4)) {j = j + 1;} else { //返回考虑上一个皇后pos[j] = 0;(5);}}return 1;
}

【问题1】(10分)
根据以上说明和C代码,填充C代码中的空(1)~(5)。

【问题2】(2分)
根据以上说明和C代码,算法采用了 (6) 设计策略。

【问题3】(3分)
上述C代码的输出为:(7) 。


从下列的 2 道试题(试题五至试题六)中任选 1 道解答。
如果解答的试题数超过 1 道,则题号小的 1 道解答有效。


试题五

某图书管理系统中管理着两种类型的文献:图书和论文。现在要求统计所有馆藏文献的总页码(假设图书馆中有一本540页的图书和两篇各25页的论文,那么馆藏文献的总页码就是590页)。采用Visitor(访问者)模式实现该要求,得到如图5-1所示的类图。

【C++代码】

class LibraryVisitor;
class LibraryItemInterface {public: (1):
};class Article: public LibraryItemInterface {private: string m_title; //论文名string m_author; //论文作者int m_start_page;int m_end_page;public: Article(string p_author, string p_title, int p_start_page, int p_end_page);int getNumber() fPages();void accept(Library Visitor * visitor);
};class Book: public LibraryItemInterface {private: string m_title; //书名string m_author; //作者int m_pages; //页数public: Book(string p_author, string p_title, int p_pages);int getNumber() fPages();void accept(LibraryVisitor * visitor);
};class LibraryVisitor {public: (2); (3);virtual void printSum() = 0;
};class LibrarySumPrintVisitor: public LibraryVisitor { //打印总页数private: int sum;public: LibrarySumPrintVisitor();void visit(Book * p_book);void visit(Article * p_article);void printSum();
};// visitor.cpp
int Article: :getNumber() fPages() {retum m_end_page - m_start_page;
}void Article: :accept(LibraryVisitor * visitor) { (4);
}
Book: :Book(string p_author, string p_title, int p_pages) {m_title = p_title;m_author = p_author;m_pages = p_pages;
}int Book: :getNumberOfPages() {return m_pages;
}
void Book: :accept(LibraryVisitor * visitor) { (5);
}
//其余代码省略
}

【问题1】(15分)
阅读上述说明和C++代码,将应填入 (n) 处的字句写在答题纸的对应栏内。


试题六

某图书管理系统中管理着两种类型的文献:图书和论文。现在要求统计所有馆藏文献的总页码(假设图书馆中有一本540页的图书和两篇各25页的论文,那么馆藏文献的总页码就是590页)。采用Visitor(访问者)模式实现该要求,得到如图6-1所示的类图。

【Java 代码】

import java.util. * ;
interface LibraryVisitor { (1) :  (2) : void printSum();
}class LibrarySumPrintVisitor implements LibraryVisitor { //打印总页数private int sum = 0;public void visit(Book p_book) {sum = sum + p_book.getNumberOfPages();}public void visit(Article p_article) {sum = sum + p_article.getNumberOfPages0;}public void printSum() {System.out.println("SUM = " + sum);}
}
interface LibraryItemInterface { (3);
}
class Article implements LibraryItemInterface {private String m_title; //价论文名 。private String m_author; //论文作者private int m_start_page;private int m_end_page;public Article(String p_author, String p_title, int p_start_page, int p_end_page) {m_title = p_title;m_author = p_author;m_end_page = p_end_page;}public int getNumbelOfPages() {rctum m_end_page - m_start_page;}public void acccpt(LibraryVisitor Visitor) { (4):}
}class Book implements LibraryItemInterface {private String m_title; //书名private String m_author; //书作者private int m_pages; //页教public Book(String p_author, String p_title, int p_ pages) {m_title = p_title;m_author = p_author;m_pages = p_pages;}public int getNumberOfPages() {return m_pages;}public void accept(LibraryVisitor visitor) { (5);}
}

【问题1】(15分)
阅读上述说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。

软考 | 2015年上半年 软件设计师 下午试卷相关推荐

  1. 软考 | 2019年上半年 软件设计师 下午试卷

    试题一 阅读下列说明和图,回答问题 1 至问题 4,将解答填入答题纸的对应栏内. [说明] 某学校欲开发一学生跟踪系统,以便更自动化.更全面地对学生在校情况(到课情况和健康状态等)进行管理和追踪,使家 ...

  2. 软考 | 2018年上半年 软件设计师 下午试卷

    试题一 阅读下列说明,将解答填入题纸的对应栏内. [说明] 某医疗护理机构为老年人或有护理需求者提供专业护理,现欲开发一基于web的医疗管理系统,以改善医疗护理效率,该系统的主要要功能如下: (1)通 ...

  3. 软考 | 2017年上半年 软件设计师 下午试卷

    试题一 阅读下列说明,回答问题 1 至问题 4, 将解答填入答题纸的对应栏内. [说明] 某医疗器械公司作为复杂医疗产品的集成商,必须保持高质量部件的及时供应.为了实现这一目标,该公司欲开发一采购系统 ...

  4. 软考 | 2009年下半年 软件设计师 下午试卷

    试题一 现准备为某银行开发一个信用卡管理系统CCMS,该系统的基本功能为: 信用卡申请.非信用卡客户填写信用卡申请表,说明所要申请的信用卡类型及申请者的基本信息,提交CCMS.如果信用卡申请被银行接受 ...

  5. 软考 | 2018年下半年 软件设计师 下午试卷

    试题一 [说明] 某房产中介连锁企业欲开发一个基于Web的房屋中介信息系统,以有效管理房源和客户,提高成交率.该系统的主要功能是: 房源采集与管理.系统自动采集外部网站的潜在房源信息,保存为潜在房源. ...

  6. 软考 | 2019年下半年 软件设计师 下午试卷

    试题一 阅读下列说明和图,回答问题 1 至问题 4. [说明] 某公司欲开发一款二手车物流系统,以有效提升物流成交效率.该系统的主要功能是: (1)订单管理:系统抓取线索,将车辆交易系统的交易信息抓取 ...

  7. 软考 | 2016年下半年 软件设计师 下午试卷

    试题一 [说明] 某证券交易所为了方便提供证券交易服务,欲开发一证券交易平台,该平台的主要功能如下: (1)开户.根据客户服务助理提交的开户信息,进行开户,并将客户信息存入客户记录中,账户信息(余额等 ...

  8. 2015年上半年 软件设计师 上午试卷 综合知识-2

    2015年上半年 软件设计师 上午试卷 综合知识-2 与算术表达式"(a+(b-c))*d" 对应的树是(21). 答案: B 本题考查程序语言与数据结构基础知识. 对算术表达式& ...

  9. 六、软考2015年下半年软件设计师易错题整理

    文章目录 错题1 错题2 错题3 错题4 错题5 错题6 错题7 错题8 错题8 错题9 错题10 错题11 错题12 错题13 错题14 错题15 错题16 错题17 错题18 错题19 错题20 ...

  10. 【软考】2019 下半年软件设计师 下午真题及答案

最新文章

  1. Cannot unwrap to requested type [javax.sql.DataSource]
  2. 阶段1 语言基础+高级_1-3-Java语言高级_02-继承与多态_第1节 继承_2_继承的格式
  3. head first java ( 16章 )
  4. 极简单的方式序列化sqlalchemy结果集为JSON
  5. Struts学习之手动验证
  6. LightGBM最强解析,从算法原理到代码实现~
  7. 【响应式编程的思维艺术】 (1)Rxjs专题学习计划
  8. 应用安全测试的发展趋势
  9. 步骤条与Tab栏的联动 ~ 不要错过
  10. SadpTool 海康设备网络搜索工具
  11. vue实现div高度可拖拽
  12. c语言运算符的三大特性,逻辑运算符及其优先级,C语言逻辑运算符及其优先级详解...
  13. 【Java实现】南京地铁导航系统的简单实现(一)—— 存储站点信息
  14. mysql提交数据时会丢失一部分_技术|MYSQL数据丢失讨论
  15. Linux常用命令——pstack命令
  16. 什么是xmlhttp
  17. Review of Software Construction
  18. SOTA到底是什么算法
  19. Mac中的番茄钟Just Focus——保持专注就对了
  20. U-Mail反垃圾邮件网关过滤Locky勒索邮件

热门文章

  1. 上证50基金有哪些_“50”指数基金有哪些?
  2. 清明节html网页,清明节
  3. 关于Mysql的mysql.sock文件
  4. 阿里巴巴的安全能力究竟是什么水平?
  5. 数字逻辑课程设计--数字钟的设计(quartus ii)(内附源代码和实习报告以及6篇实习日志)
  6. 基于单片机的数字钟设计
  7. 非线性微分方程的线性化
  8. 智慧CAD手机精准看图隐私
  9. 微信接入验证 php,php版微信公共平台开发者认证实例
  10. Eplan PLC连接点-两两相连接方法