软件设计师2014年11月下午题(附答案)

合集下载

2014年下半年 软件设计师 考试试题答案解析

2014年下半年 软件设计师 考试试题答案解析

三总线结构的计算机总线系统由(1)组成。

(1)A.CPU总线、内存总线和IO总线 B.数据总线、地址总线和控制总线C.系统总线、内部总线和外部总线D.串行总线、并行总线和PCI总线【答案】B【解析】本题考查计算机系统基础知识。

总线上传输的信息类型分为数据、地址和控制,因此总线由数据总线、地址总线和控制总线组成。

计算机采用分级存储体系的主要目的是为了解决(2)问题。

(2)A.主存容量不足 B.存储器读写可靠性C.外设访问效率D.存储容量、成本和速度之间的矛盾【答案】D【解析】本题考查计算机系统基础知识。

计算机系统中,高速缓存一般用SRAM,内存一般用DRAM,外存一般采用磁存储器。

SRAM 的集成度低、速度快、成本高。

DRAM的集成度高,但是需要动态刷新。

磁存储器速度慢、容量大、价格便宜。

因此,不同的存储设备组成分级存储体系,来解决速度、存储容量和成本之间的矛盾。

属于CPU中算术逻辑单元的部件是(3)。

(3)A.程序计数器 B.加法器 C.指令寄存器 D.指令译码器【答案】B【解析】本题考查计算机系统基础知识。

程序计数器、指令寄存器和指令译码器都是CPU中控制单元的部件,加法器是算术逻辑运算单元的部件。

内存按字节编址从A5000H到DCFFFH的区域其存储容量为(4)。

(4)A.123KB B.180KB C.223KB D.224KB【答案】D【解析】本题考查计算机系统基础知识。

从地址A5000H到DCFFFH,存储单元数目为37FFFH (即224*1024)个,由于是字节编址,从而得到的存储容景为224KB。

以下关于RISC和CISC的叙述中,不正确的是(5)。

(5)A.RISC通常比CISC的指令系统更复杂B.RISC通常会比CISC配置更多的寄存器C.RISC编译器的子程序库通常要比CISC编译器的子程序库大得多D.RISC比CISC更加适合VLSI工艺的规整性要求【答案】A【解析】本题考查计算机系统基础知识。

2014年下半年下午 程序员 试题及答案与解析-软考考试真题-案例分析

2014年下半年下午 程序员 试题及答案与解析-软考考试真题-案例分析

2014年下半年下午程序员考试试题-案例分析-答案与解析试题一(共15分)阅读以下说明和流程图,填补流程图中的空缺(1)〜(5),将解答填入答题纸的对应栏内。

【说明】本流程图旨在统计一本电子书中各个关键词出现的次数。

假设已经对该书从头到尾依次分离出各个关键词{A(i)|i=1,…,n}(n>1) },其中包含了很多重复项,经下面的流程处理后,从中挑选出所有不同的关键词共m个{K(j)lj=l,…,m},而每个关键词K(j)出现的次数为K(j),j=1,…,m。

【流程图】【参考答案】(1)、1(2)、K(j)(3)、NK(j)+1->NK(j) 或NK(j)++ 或等价表示(4)、m+1->m 或m++ 或等价表示(5)、A(i)【答案解析】流程图中的第1框显然是初始化。

A (1) ->K(1)意味着将本书的第1个关键词作为选出的第1个关键词。

1->NK (1)意味着此时该关键词的个数置为1。

m是动态选出的关键词数目,此时应该为1,因此(1)处应填1。

本题的算法是对每个关键词与已选出的关键词进行逐个比较。

凡是遇到相同的,相应的计数就增加1;如果始终没有遇到相同关键词的,则作为新选出的关键词。

流程图第2框开始对i=2,n循环,就是对书中其他关键词逐个进行处理。

流程图第3 框开始j=l,m循环,就是按已选出的关键词依次进行处理。

接着就是将关键词A(I)与选出的关键词K(j)进行比较。

因此(2)处应填K(j)。

如果A(i)=K(j),则需要对计数器NK(j)增1,即执行NK(j)+1->NK(j)。

因此(3)处应填NK(j)+1->NK(j)。

执行后,需要跳出j循环,继续进行i循环,即根据书中的下一个关键词进行处理。

如果A(i)不等于NK(j),则需要继续与下个NK(j)进行比较,即继续执行j循环。

如果直到j循环结束仍没有找到匹配的关键词,则要将该A(i)作为新的已选出的关键词。

2014年上半年软件设计师考试下午真题(标准参考答案)

2014年上半年软件设计师考试下午真题(标准参考答案)

//归并排序#include<stdio.h>#include<stdlib.h>#define MAX 65536void merge(int arr[],int p,int q,int r)//合并[p~q]与[q+1~r]{ int *left,*right; //左右各一个临时数组int n1,n2,i,j,k;n1=q-p+1; //两个子数组长度n2=r-q;if((left=(int*)malloc((n1+1)*sizeof(int)))=NULL)//分配空间{ perror("malloc error");exit(1);}for(i=0;i<n1;i++) //左半边临时数组初始化{ left[i]=arr[p+i];}left[i]=MAX; //最后一个元素为最大值for(i=0;i<n2;i++) //右半边临时数组初始化{ right[i]=arr[q+i+1];}right[i]=MAX; //最后一个元素为最大值i=0;j=0;for(k=p;(1);k++){ if(left[i]>right[j] //递增排序{ (2); //装小数j++;}else{ arr[k]=left[i];i++;}}}void mergeSort(int arr[], int begin, int end)//排序[begin~end]{ int mid;if(3) //[begin~end]{ mid=(begin+end)/2; //分两部分mergeSort(arr,begin,mid);//两部分分别进行归并排序(4);merge(arr,begin,mid,end);//两部分合并}}#include<iostream>#include<vector>using namespace std;class Observer{ //观察者,抽象类public: virtual void update(float temp,float humidity, float cleanness)=0;//更新,纯虚函数};class Subject{ //目标,抽象类public: virtual void registerObserver(Observer *o)=0; //注册,纯虚函数virtual void removeObserver(Observer *o)=0; //删除,纯虚函数virtual void notifyObserver()=0; //通知,纯虚函数};class EnvironentData: public(1){ //子类private: vector<Observer*> observers; //多名观察者float temperature,humidity,cleanness; //温度,湿度,清洁度public: void registerObserver(Observer*o){observer.push_back(o);}//注册,重定义void removeObserver(Observer*o){/*...*/} //删除,重定义void notifyObserver(){ //通知,重定义for(vector<Observer*>::const_iterator it=observer.begin());//迭代器it!=observers.end();it++){(2);}} //更新全部观察者void measurementsChanged(){(3);} //测量有变化,必须通知void setMeasurements(float temperature, float humidity,float cleanness){//设置参数this->temperature=temperature; //设置温度this->humidity=humidity; //设置湿度this->cleaness=cleaness; //设置清洁度(4);} //设置完,说明测量有变化};class CurrentConditionsDisplay:public (5){ //子类private: float temperature,humidity,cleanness; //私有数据Subject * envData; //目标对象,环境数据public: CurrentConditionsDisplay(Subject *envData){ //构造函数,单参数this->envData=envData; //环境数据获取(6);} //加入环境数据void update(float temperature, float humidity,float cleanness){//更新,重定义this->temperature=temperature; //更新温度this->humidity=humidity; //更新湿度this->cleanness=cleanness; //更新清洁度display();} //调用显示函数void display(){/*...*/} //显示函数定义};int main(){ //主函数EnvironmentData * envData=new EnvironmentData(); //构造函数,新目标CurrentConditionsDisplay*currentDisplay=new CurrentConditionsDisplay (envData);//构造函数,新观察者envdata->setmeasurements(80,65,30.4f); //获取环境数据return 0; //返回,调用析构函数}。

2014软件水平考试(中级) 软件设计师真题及答案综合

2014软件水平考试(中级) 软件设计师真题及答案综合

2014软件水平考试(中级) 软件设计师真题及答案综合说明:答案和解析在试卷最后第1部分:单项选择题,共69题,每题只有一个正确答案,多选或少选均不得分。

1.[单选题]下图所示为(46)设计模式,适用于(47)。

A)一个系统要由多个产品系列中的一个来配置时B)当一个类希望由它的子类来指定它所创建的对象时C)当创建复杂对象的算法应该独立于该对象的组成部分及其装配方式时D)当一个系统应该独立于它的产品创建、构成和表示时2.[单选题]在如下所示的进程资源图中,(27);该进程资源图是(28)。

A)P1、P2、P3都是阻塞节点B)P1是阻塞节点,P2、P3是非阻塞节点C)P1、P2是阻塞节点,P3是非阻塞节点D)P1、P2是非阻塞节点,P3是阻塞节点3.[单选题]A)π1,2,7(σ2=‘信息’,∧3=5∧4=6∧7’北京’(R×S))B)π1,2,7(σ3==5∧4=6(σ2=‘信息’(R)×σ5=‘北京’(S)))C)π1,2,7(σ3==5∧4=6∧2=‘’(R×σ7=’’(S)))D)π1,2,7(σ3==5∧4=6∧7=‘北京’(σ2=‘信息’(R)×(S)))4.[单选题]DHCP客户端可以从DHCP服务器获得(69)。

A)DHCP服务器的地址和Web服务器的地址B)DNS服务器的地址和DHCP服务器的地址C)客户端地址和邮件服务器地址D)默认网关的地址和邮件服务器地址5.[单选题]Flynn分类法基于信息流特征将计算机分成4类,其中(6)只有理论意义而无实例。

A)SISDB)MISDC)SIMDD)MIMD6.[单选题]ICMP协议属于因特网中的(67)协议,ICMP协议数据单元封装在(68)中传送。

A)以太帧B)TCP段C)UDP数据报D)IP数据报7.[单选题]PPP中的安全认证协议是(66),它使用三次握手的会话过程传送密文。

A.MDSB.PA)PB)CHC)PD)NCP8.[单选题]Teams are required for most engineering projects. Although some small hardware or software products can be developed by individuals, the scale and complexity of modem systems is such, and the demand for short schedules so great, that it is no longer ___71___ for one person to do most engineering jobs. Systems development is a team ___72___, and the effectiveness of the team largely determines the ___73___ of the engineering.Development teams often behave much like baseball or basketball teams. Even though they may have multiple specialties, all the members work toward ___74___. However, on systems maintenance and enhancement teams, the engineers often work relatively independently, much likewrestling and track teams.A team is ___75__ just a group of people who happen to work together. Teamwork takes practice and it involves special skills. Teams require common processes; they need agreed-upon goals; and they need effective guidance and leadership. The methods for guiding and leading such teams are well known,but they are not obvious.A)activityB)jobC)processD)application9.[单选题]Teams are required for most engineering projects. Although some small hardware or software products can be developed by individuals, the scale and complexity of modem systems is such, and the demand for short schedules so great, that it is no longer ___71___ for one person to do most engineering jobs. Systems development is a team ___72___, and the effectiveness of the team largely determines the ___73___ of the engineering.Development teams often behave much like baseball or basketball teams. Even though they may have multiple specialties, all the members work toward ___74___. However, on systems maintenance and enhancement teams, the engineers often work relatively independently, much likewrestling and track teams.A team is ___75__ just a group of people who happen to work together. Teamwork takes practice and it involves special skills. Teams require common processes; they need agreed-upon goals; and they need effective guidance and leadership. The methods for guiding and leading such teams are well known,but they are not obvious.A)multiple objectivesB)different objectivesC)a single objectiveD)independent objectives10.[单选题]Teams are required for most engineering projects. Although some small hardware or software products can be developed by individuals, the scale and complexity of modem systems is such, and the demand for short schedules so great, that it is no longer ___71___ for one person to do most engineering jobs. Systems development is a team ___72___, and the effectiveness of the team largely determines the ___73___ of the engineering.Development teams often behave much like baseball or basketball teams. Even though they may have multiple specialties, all the members work toward ___74___. However, on systems maintenance and enhancement teams, the engineers often work relatively independently, much likewrestling and track teams.A team is ___75__ just a group of people who happen to work together. Teamwork takes practice and it involves special skills. Teams require common processes; they need agreed-upon goals; and they need effective guidance and leadership. The methods for guiding and leading such teams are well known,but they are not obvious.A)sizeB)qualityC)scaleD)complexity11.[单选题]UML图中,一张交互图显示一个交互,由一组对象及其之间的关系组成,包含它们之间可能传递的消息。

2014年下半年软件水平考试(中级)电子商务设计师下午(应用技术

2014年下半年软件水平考试(中级)电子商务设计师下午(应用技术

2014年下半年软件水平考试(中级)电子商务设计师下午(应用技术)真题试卷(题后含答案及解析)题型有:1. 试题一 2. 试题二 3. 试题三 4. 试题四 5. 试题五试题一(15分)1.阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。

【说明】某集团公司在全国不同城市拥有多个大型超市,为了有效管理各个超市的业务工作,需要构建一个超市信息管理系统。

【需求分析结果】(1)超市信息包括:超市名称、地址、经理和电话,其中超市名称唯一确定超市关系的每一个元组。

每个超市只有一名经理。

(2)超市设有计划部、财务部、销售部等多个部门,每个部门只有一名部门经理,有多名员工,每个员工只属于一个部门。

部门信息包括:超市名称、部门名称、部门经理和联系电话。

超市名称、部门名称唯一确定部门关系的每一个元组。

(3)员工信息包括:员工号、姓名、超市名称、部门名称、职位、联系方式和工资。

其中,职位信息包括:经理、部门经理、业务员等。

员工号唯一确定员工关系的每一个元组。

(4)商品信息包括:商品号、商品名称、型号、单价和数量。

商品号唯一确定商品关系的每一个元组。

一名业务员可以负责超市内多种商品的配给,一种商品可以由多名业务员配给。

【概念模型设计】根据需求分析阶段收集的信息,设计的实体联系图和关系模式(不完整)如下:【关系模式设计】超市(超市名称,经理,地址,电话) 部门( (a) ,部门经理,联系电话) 员工( (b) ,姓名,联系方式,职位,工资) 商品(商品号,商品名称,型号,单价,数量) 配给( (c) ,配给时间,配给数量,业务员)【问题1】根据问题描述,补充四个联系,完善图1-1的实体联系图。

联系名可用联系1、联系2、联系3和联系4代替,联系的类型分为1:1、1:n和m:n(或1:1、1:*和*:*)。

【问题2】(1)根据实体联系图,将关系模式中的空(a)~(c)补充完整;(2)给出部门和配给关系模式的主键和外键。

2014年下半年下午 程序员 试题及答案与解析-软考考试真题-案例分析

2014年下半年下午 程序员 试题及答案与解析-软考考试真题-案例分析

2014年下半年下午程序员考试试题-案例分析-答案与解析试题一(共15分)阅读以下说明和流程图,填补流程图中的空缺(1)〜(5),将解答填入答题纸的对应栏内。

【说明】本流程图旨在统计一本电子书中各个关键词出现的次数。

假设已经对该书从头到尾依次分离出各个关键词{A(i)|i=1,…,n}(n>1) },其中包含了很多重复项,经下面的流程处理后,从中挑选出所有不同的关键词共m个{K(j)lj=l,…,m},而每个关键词K(j)出现的次数为K(j),j=1,…,m。

【流程图】【参考答案】(1)、1(2)、K(j)(3)、NK(j)+1->NK(j) 或NK(j)++ 或等价表示(4)、m+1->m 或m++ 或等价表示(5)、A(i)【答案解析】流程图中的第1框显然是初始化。

A (1) ->K(1)意味着将本书的第1个关键词作为选出的第1个关键词。

1->NK (1)意味着此时该关键词的个数置为1。

m是动态选出的关键词数目,此时应该为1,因此(1)处应填1。

本题的算法是对每个关键词与已选出的关键词进行逐个比较。

凡是遇到相同的,相应的计数就增加1;如果始终没有遇到相同关键词的,则作为新选出的关键词。

流程图第2框开始对i=2,n循环,就是对书中其他关键词逐个进行处理。

流程图第3 框开始j=l,m循环,就是按已选出的关键词依次进行处理。

接着就是将关键词A(I)与选出的关键词K(j)进行比较。

因此(2)处应填K(j)。

如果A(i)=K(j),则需要对计数器NK(j)增1,即执行NK(j)+1->NK(j)。

因此(3)处应填NK(j)+1->NK(j)。

执行后,需要跳出j循环,继续进行i循环,即根据书中的下一个关键词进行处理。

如果A(i)不等于NK(j),则需要继续与下个NK(j)进行比较,即继续执行j循环。

如果直到j循环结束仍没有找到匹配的关键词,则要将该A(i)作为新的已选出的关键词。

2014年上半年软件设计师考试下午真题(标准参考答案)

2014年上半年软件设计师考试下午真题(标准参考答案)
推导递归式: 假设 n 个元素进行归并排序需要 T(n),可以将其分割成两个分别有 n/2 个元素的数组分别进行归并,也 就是 2T(n/2),在将这两个合并,需要 O(n)的时间复杂度。 则推导公式为 T(n) = 2T(n/2)+o(n). 谢谢 请问,有哪些时间复杂度是 logN 的呀? 如果对 N 个数字的序列,进行二分查找,时间复杂度就是 LogN。 5. 参考答案: (1)Subject (2)(*it)‐>update(temperature,humidity,cleanness) (3)notifyObservers() (4)measurementsChanged() (5)Observer() (6)this‐>envData‐>registerObserver(this) 试题分析: EnvironmentData 是环境数据,也就是我们要监测的对象,即主题(Subject),因此(1)处为 Subject。 (2)处为通知观察者,因此遍历观察者容器,遍历到一个观察者对象,则更新该观察者的数据,即调 用观察者的 update()方法。 当环境数据变化时,需要通知观察者,因此(4)处是调用环境变化方法 measurementsChanged(),通过此 方法通知观察者更新数据,因此(3)处为 notifyObservers()。 根据 CurrentConditionsDisplay 类中的 update()方法可知:CurrentConditionsDisplay 是个观察者,因此(5) 处为 Observer (6)是将观察者添加到主题中去。 类图中的 update 和 register interest 怎么反应到具体的程序中呢? 你好 当主题中的环境发生变化,也就是调用 measurementsChanged(),会通知观察者,即调用 notifyObservers() 在 notifyObservers()方法中,观察 者会调用自身的 update(float temperature, float humidity, float cleanness) 。 在主题的 registerObserver(Observer* o)中会注册对主题感兴趣的观察者。 6. 参考答案: (1)Subject (2)observer.update(temperature,humidity,cleanness) (3)notifyObservers() (4)measurementsChanged() (5)Observer() (6)envData.registerObserver(this) 试题分析: EnvironmentData 是环境数据,也就是我们要监测的对象,即主题(Subject),因此(1)处为 Subject。 (2)处为通知观察者,因此遍历观察者容器,遍历到一个观察者对象,则更新该观察者的数据,即调 用观察者的 update()方法。

2014年下半年下午 软件测评师 试题及答案与解析-全国软考真题

2014年下半年下午 软件测评师 试题及答案与解析-全国软考真题

2014年下半年下午软件测评师考试试题-案例分析-答案与解析试题一(共15分)【说明】阅读下列C程序,回答问题1至问题3,将解答填入答题纸的对应栏内。

【C程序】int GetMaxDay( int year, int month){int maxday=0; //1if( month>=1&&month<=12){ //2,3if(month==2){ //4if( year%4==0){ //5if(year%100==0){ //6if(year%400==0) //7maxday= 29; //8else //9maxday= 28;}else //10maxday= 29;}elsemaxday = 28; //11}else{ //12if (month==4||month==6||month==9||month==11) //13, 14,15,16maxday = 30; //17else //18maxday = 31;}}return maxday; //19}【问题1】请针对上述C程序给出满足100%DC(判定覆盖)所需的逻辑条件。

【答案解析】试题分析】判定覆盖指设计足够的测试用例,使得被测程序中每个判定表达式至少获得一次“真”值和“假”值,从而使程序的每一个分支至少都通过一次。

本题中程序有6个判定,所以满足判定覆盖一共需要12个逻辑条件。

【问题2】请画出上述程序的控制流图,并计算其环路复杂度V(G)。

【答案解析】【试题分析】涉及到的知识点包括根据代码绘制控制流图、计算环路复杂度。

控制流图是描述程序控制流的一种图示方式,它由节点和定向边构成。

控制流图的节点代表一个基本块,定向边代表控制流的方向。

其中要特别注意的是,如果判断中的条件表达式是复合条件,即条件表达式是由一个或多个逻辑运算符连接的逻辑表达式,则需要改变复合条件的判断为一系列之单个条件的嵌套判断。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
[需求分析结果]
(1)超市信息包括:超市名称、地址、经理和电话,其中超市名称唯一确定超市关系的每一个元组。每个超市只有一名经理。
(2)超市设有计划部、账务部、销售部等多个部门,每个部门只有一名部门经理,有多名员工,每个员工只属于一个部门。部门信息包括:超市名称、部门名称、部门经理和联系电话。超市名称、部门名称唯一确定部门关系的每一个元组。
Light* light;
Public:
LightOffCommand(Light* light){this->light = light;}
Void execute(){(3);}
};
Class RemoteControl(//遥控器
Priavte:
Command* onCommands[7];
Command* offCommands[7];
(2)假设超市需要增设一个经理的职位,那么超市与经理之间的联系类型应修改为(d),超市关系应修改为(e)。
试题三
阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
[说明]
某公司欲开发一个管理选民信息的软件系统。系统的基本需求描述如下;
(1)每个人(Person)可以是一个合法选民(Eligible)或者无效的选民(Ineligible)。
}
(1);
For(I= 1;I< n; i++){
For(j = 0; len = 0;(2); j++){
If((3)&& len < b[j])
Len = b[j];
}
(4);
}
Printf(“len: %d\n”, maxL(b,n) );
Printf(“\n”);
}
[问题1]
根据说明和C代码,填充C代码中空(1)~(4)。
(2)对手满足(1)的选民,需要划定其“主要居住地”,以确定他们应该在哪个选区进行投票。
为了满足上述需要,需要对图1-1所示的类图进行哪些修改?请用100字以内文字说明。
试题四
阅读下列说明和C代码,回答问题1至问题3,将解答写在答题纸的对应栏内。
[说明]
计算一个整数数组a的最长递增序列长度的方法描述如下:
(3)员工信息包括:员工号、姓名、超市名称、部门名称、职位、联系方式和工资。其中,职位信息包括:经理、部门经理、业务员等。员工号唯一确定员工关系的每一个元组。
(4)商品信息包括:商品号、商品名称、型号、单价和数量。商品号唯一确定商品关系的每一个元组。一名业务员可以负责超市内多种商品的配给,一种商品可以由多名业务员配给。
LightOnCommand* kitchenLightOn = new LightOnCommand(kitchenLight);
LightOnCommand* kitchenLihgtOff = new LightOffCommand(kitchenLight);
remoteControl->setCommand(0, livingRoomLightOn, livingRoomLightOff);
b:长度为n的数组,b[i]记录以a[i](0<= i < n)为结尾元素的最长递增子序列的长度,其中0<= i < n
len:最长递增子序列的长度
i, j:循环变量
temp:临时变量
(2)C程序
#include<stdio.h>
Int maxL(int *b, int n){
IntI, temp = 0;
现采用面向对象方法对该系统进行分析与设计,得到如图3-1所示的初始类图。
[问题1]
根据说明中的描述,给出图3-1中C1~C4所对应的类名(类名使用说明中给出的英文词汇)。
[问题2]
根据说明中的描述,给出图3-1中M1~M6处的多重度。
[问题3]
现对该系统提出了以下新需求:
(1)某些人拥有多个选区投票的权利,因此需要注册多个选区;
[问题1]
根据说明中的词语,给出图1-1中实体E1~E2的名称。
[问题2]
根据说明中的词语,给出图1-2中的数据存储D1~D5的名称。
[问题3]
根据说明和图中词语,补充图1-2中缺失的数据流及其起点和终点。
试题二
阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
[说明]
某集团公司在全国不同城市拥有多个大型城市,为了有效管理各个超市的业务工作,需要构建一个超市信息管理系统。
remoteControl->setCommand(1, kitchenLightOn, kitchenLightOff);
remoteConrol->onButtonWasPushed(0);
remoteControl->offButtonWasPushed(0);
remoteControl->onButtonWasPushed(1);
软件设计师2014年11月下午题(附答案)
试题一
阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。
[说明]
某大型披萨加工和销售商为了有效管理生产和销售情况,欲开发披萨信息系统,其这一切功能如下:
(1)销售。处理客户的订单信息,生成销售订单,并将其记录在销售订单表中。销售订单记录了订购者、所订购的披萨、期望的交付日期等信息。
Public:
RemoteContorl(){/*代码省略*/}
Void setCommand(int slot, Command* onCommand, Command* offCommand){
(4)= onCommand;
(5)= offCommand;
}
Void onButtonWasPushed(int slot){(6);}
Public LightOffCommand(Light light){ this.light = light;}
[概念模型设计]
根据需求分析阶段收集的信息,设计的实体联系图和关系模式(不完整)如下:
[关系模式设计]
超市(超市名称,经理,地址,电话)
部门((a),部门经理,联系电话)
员工((b),姓名,联系方式,职位,工资)
商品(商品号,商品名称,型号,单价,数量)
配给((c),配给时间,配给数量,业务员)
[问题1]
根据问题描述,补充四个联系,完善图1-1的实体联系图。联系名可用联系1、联系2、联系3和联系4代替,联系的类型分为1:1:、1:n、和m:n(或1:1、1:*和*:*)。
[问题2]
(1)根据实体联系图,将关系模式中的空(a)~(c)补充完整;
(2)给出部门和配给关系模式的主键和外键。
[问题3]
(1)超市关系的地址可进一步分为邮编、省、市、街道,那么该属性属于简单属性还是复合属性?请用100字以内文字说明。
Void offButtonWasPushed(int slot){(7);}
};
Int main(){
RemoteControl* remoteControl = new RemoteControl();
Light* livingRoomLight = new Light(“Living Room”);
Class Light(
Public Light(String name){/*代码省略*/}
Public void on(){/*代码省略*/}//开灯
Public void off(){/*代码省略*/}//关灯
//其余代码省略
}
(1){
public void execute();
}
Class LightOnCommand implement Command{//开灯命令
(2)每个合法选民必须通过该系统对其投票所在区域(即选区,Riding)进行注册(Registration)。每个合法选民仅能注册一个选区。
(3)选民所属选区由其居住地址(Address)决定。假设每个人只有一个地址,地址可以是镇(Town)或者城市(City)。
(4)某些选区可能包含多个镇;而某些较大的城市也可能包含多个选区。
[问题2]
根据说明和C代码,算法采用了(5)设计策略,时间复杂度为(6)(用O符号表示)。
[问题3]
已知数组a = {3, 10, 5, 15, 6, 8},根据说明和C代码,给出数组b的元素值。
试题五
阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。
[说明]
某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都有开关按钮,对应着一个不同的灯。利用该遥控器能够统一控制房间中该厂商所有品牌灯具的开关,现用Command(命令)模式实现该遥控器的软件部分。Command模式的类图如图1-1所示。
remoteControl->offButtonWasPushed(1);
/*其余代码省略*/
Return 0;
}
试题六
阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。
[说明]
某灯具厂商欲生产一个灯具遥控器,该遥控器具有7个可编程的插槽,每个插槽都有开关灯具的开关,现采用Command(命令)模式实现该遥控器的软件部分。Command模式的类图如图6-1所示。
For(I= 0;I< n; i++){
If(b[i] > temp)
Temp = b[i];
}
}
Return temp;
}
Int main(){
Int n, a[100], b[100],I, j, len;
相关文档
最新文档