[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)历年真题试卷汇编5及答案与解析.doc
《[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)历年真题试卷汇编5及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]软件水平考试(中级)软件设计师下午(应用技术)历年真题试卷汇编5及答案与解析.doc(14页珍藏版)》请在麦多课文档分享上搜索。
1、软件水平考试(中级)软件设计师下午(应用技术)历年真题试卷汇编 5及答案与解析 一、必答题(共 4道大题,每道大题 15分) 1 阅读下列说明和 c+代码,将应填入 (n)处的字句写在答题纸的对应栏内。【说明】现要求实现一个能够自动生成求职简历的程序,简历的基本内容包括求职者的姓名、性别、年龄及工作经历。希望每份简历中的工作经历有所不同,并尽量减少程序中的重复代码。现采用原型模式 (Prototype)来实现上述要求,得到如图 16 1所示的类图。 【 C+代码】 #includeUsing namespace std; ClasS Cloneablepublic: (1) ; ; Class
2、 workExperience: public Cloneable 工作经历 Private: String workDate; Str ing company; PubliC: CloneableClone()(2); Obj一 workDate=this一 workDate; Obj一 company=this一 company; Return obj;其余代码省略 ; Class Resume: public Cloneable /简历 Private: String name; string sex; string age;WorkExperience。 work; Resume(Wo
3、rkExperi ence*work)(This-work: (3) ; PubliC: Resume(string name)( *实现省略 * )Void SetPersonalInfo(string sex, string age)( *实现省略 * )Void setworkExperience(string workDate, string company)( *实现省略 * )Cloneable*Clone()( 4); Obj一 name: this一 name; Obj一 sex=this一 sex; Obj一 age=this一 age; Return obj; ; Int
4、main()Resume*a=new Resume(”张三 ”); A一 SetPersonalInfo(”男 ”, ”29”); A一 setworkExperience(”1998 2000”, “XXX公司 ”); Resume*b=(5); B一 SetWorkExperience(“20012006”, “YYY公司 ”); Return 0; 2 阅读以下说明和 C+代码,将应填入 (n)处的字句写在对应栏内。【说明】欲开发一个绘图软件,要求使用不同的绘图程序绘制不同的图形。以绘制直线和圆形为例,对应的绘图程序如表 162所示。该绘图软件的扩展性要求,将不断扩充新的图形和新的绘图程
5、序。为了避免出现类爆炸的情况,现采用桥接 (Bridge)模式来实现上述要求,得到如图 162所示的类图。【 C+代码】 Class DPIpubl ic: static void draw_aline(double xl, double yl, double x2, double y2) *代码省略 * )static void drawacircle(double x, double y,double r)( *代码省略 * ); C1ass DP2(publ ic: static void drawline(double xl,double x2, double yl, double y
6、2)( *代码省略 * )static void drawcircle(double X,double Y, double r)( *代 码省略 * ); class Drawing(public: (1) ; (2) ; ;class vodrawing: publ ic Drawing(publ ic: void drawLine(double x1, double y1, double x2, double y2)( *代码省略 * )void drawCircle(double X, double Y, double r)( (3) ; ); Class vidrawing: publ
7、ic Drawingpubl ic: void drawLine(double xl,double yl, double x2, double y2)( *代码省略 * )void drawCircle(double X, double Y, double r)(4) ); C1ass Shapepubl ic: (5); Shape(Drawing*dp)(_dp=dp; )void drawLine(double x1, double yl, double x2, double y2)dp一 drawLine(x1, y1,x2, y2); )void drawCircle(double
8、X, double Y, double r)(一 dp一 drawCircle(X,Y, r); private: Drawing。 dp; ; class Rectangle: public Shapepubl ic: void draw()( *代码省略 * 其余代码省略 ; class circle: public Shapeprivate:double X, y,一 r;public: Circle(Drawing*dp, double x, double y, double r):(6)(x=x; _y=y; _r=r;)void draw()drawCircle(mX, _y, _
9、r); ); 3 阅读下列说明和 C+代码,将应填入 (n)处的字句写在答题纸的对应栏内。【说明】现欲开发一个软件系统,要求能够同时支持多种不同的数据库,为此采用抽象工厂模式设计该系统。以 SQL Server和 Access两种数据库以及系统中的数据库表Department为例,其类图如图 163所示。【 C+代码】 #includeUS ing namespace std; class Department( *代码省略 * );Class IDepartment(publ ic: (1) =0; (2) =0; Class SqlserverDepartment: (3) public:
10、 void Insert(Department*department)(cout 4 阅读下列说明 C+代码,将应填入 (n)处的字句写在答题纸的对应栏内。【说明】某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如表 16 3所示。现采用装饰器 (Decorator)模式来实现计算费用的功能,得到如 图 165所示的类图。【 C+代码】 #includeincludeUSing namespace std; const int ESPRESSO_PRICE=25; const int DRAKROAST_PRIC
11、E=2 0; const int MOCHAPRICE=1 0; const int WHIP_PRICE=8; class Beverage(饮料 (1): string description; public: (2) ()(return description; )(23) ; ; class CondimentDecorator:public Beverage(配料 protected: (4);; class Espresso: public Beverage(蒸馏咖啡 publ ic: EspresSO()description: ”Espresso”; int cost()(re
12、turn ESPRESSO_PRICE; ; class DarkRoast: public Beverage(深度烘焙咖啡public: DarkRoast()(descript ion=”DardRoast”; ) int cost()(return DRAKROAST_PRICE; ); class Mocha: publ ic CondimentDecorator /摩卡public: Mocha(Beveragebeverage)(thi S一 beverage=beverage; ) string getDescription()( return beverage一 getDesc
13、ript ion()+”, Mocha”; ) int cost()( return MOCHA-pRICE+beverage一 cost(); ); class Whip: publ ic CondimentDecorator奶泡 public: Whip(Beveragebeverage) (thi S一 beverage=beverage;) string getDescription() (return beverage一 getDescription()+”, Whip”; ) int cost()(return WHIP_PRICE+beverage一 cost(); ); int
14、 main() Beverage*beverage=new DarkRoast(); beVerage=new Mocha(15); beVerage=new Whip(6); coutgetDescription()cost() 5 阅读下列说明 SDC+代码,将应填入 (n)处的字句写在答题纸的对应栏内。 【说明】 某大型商场内安装了多个简易的纸巾售卖机,自动售出 2元钱一包的纸巾,且每次仅售出一包纸巾。纸巾售卖机的状态如图 16 6所示。采用状态 (State)模式来实现该纸巾售卖机,得到如图 167所示的类图。其中类State为抽象类,定义了投币、退币、出纸巾等方法接口。类 SoldS
15、tate、SoldOutState、 NoQuarterState和 HasQuarterState分别对应图 164中纸巾售卖机的4中状态:售出纸巾、纸巾售完、没有投币、有 2元钱。【 C+代码】 #includeUSing namespace Std;以下为类的定义部分 Class TissueMachine; 类的提前引用 C1ass Statepubl iC: virtual void insertQuar七er()=0; 投币 virtual void ejectQuarter()=0; 退币 virtual void turnCrank()=0; 按下 “出纸巾 ”按钮 virtu
16、al void dispense()=0; 出纸巾 ); *类 SoldOutState、 NoQuarterState、 HasQuarterState、 SoldState的定义省略,每个类中均定义了私有数据成员 TissueMachine*tissueMachine* ClasS TiSsueMachine(private: 1*soldOutState, *noQuarterState, *hasQuartersta七 e,*soldState, *state; int count; 纸巾数 publ ic: Ti S sueMachine(int number); void setS
17、tate(State*state); State* getHasQuarterState(); State*getNoQuarterState(); State*getSoidState(); State*getS01dOurState(); int getCount(); 其余 代码省略 ; 以下为类的实现部分 void NoQuarterState:inserQuarter()( tissureMachine-setState(2) ; void HasQuarterstate: ej ectQuarter() tissureMachine-setState(3) ; void SoldS
18、tate: dispense()( i f(ti SsueMachine一 getCount()0)( tissureMachine-setState(4); e1Se tissureMachine-setState(5); /其余代码省略 6 阅读下列说明和 C+代码,将应填入 (n)处的字句写在答题纸的对应栏内。 【说明】 某公司的组织结构图如图 16 10所示,现采用组合 (Composition)设计模式来构造该公司的组织结构,得到如图 16一 11所示的类图。其 eOCompany为抽象类,定义了在组织结构图上添加 (Add)和删除 (Delete)分公司办事处或者部门的方法接口。类
19、 ConcreteCompany表示具体的分公司或者办事处,分公司或办事 处下可以设置不同的部门。类 HRDepartment和FinanceDepartment分别表示人力资源部和财务部。 【 C+代码】 #include #include #include US ing namespace std; class Company(抽象类 protected: String name; public: Company(string name)(1)=name; ) (2) ;增加子公司、办事处或部门 (3) ;删除子公司、办事处或部门 ; clasS ConcreteCompany: publ
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 软件 水平 考试 中级 设计师 下午 应用技术 历年 汇编 答案 解析 DOC
