2022年上半年软件设计师案例分析试题模拟试题及答案(3)


  • 试题一:阅读下列说明和Java代码,将应填入 (n) 处的字句写在答题纸的对应栏内。
  • 【说明】
  • 某软件公司现欲开发一款飞机飞行模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征。需要模拟的飞机种类及其特征如表6-1所示。

  • 为支持将来模拟更多种类的飞机,采用策略设计模式(Strategy)设计的类图如图6-1所示。

  • 图6-1中,AirCraft为抽象类,描述了抽象的飞机,而类Helicopter、AirPlane、Fighter和Harrier分别描述具体的飞机种类,方法fly()和takeOff()分别表示不同飞机都具有飞行特征和起飞特征类FlyBehavior与TakeOffBehavior为抽象类,分别用于表示抽象的飞行为与起飞行为;类SubSonicFly与SuperSonicFly分别描述亚音速飞行和超音速飞行的行为;类VerticalTakeOff与LongDistanceTakeOff分别描述垂直起飞与长距离起飞的行为。
  • 【Java 代码】
  • interface FlyBehavior {
  • public void fly();
  • };
  • class SubSonicFly implements FlyBehavior{
  • public void fly(){ System.out.println("亚音速飞行!"); }
  • };
  • class SuperSonicFly implements FlyBehavior{
  • public void fly(){ System.out.println("超音速飞行!" ); }
  • };
  • interface TakeOffBehavior {
  • public void takeOff();
  • };
  • class VerticalTakeOff implements TakeOffBehavior {
  • public void takeOff (){ System.out.println("垂直起飞!" ); }
  • };
  • class LongDistanceTakeOff implements TakeOffBehavior {
  • public void takeOff(){ System.out.println("长距离起飞!"); }
  • };
  • abstract class AirCraft {
  • protected  (1)  ;
  • protected  (2)  ;
  • public void fly(){  (3)  ; }
  • public void takeOff() {   (4)   ; };
  • };
  • class Helicopter(5)AirCraft{
  • public Helicopter (){
  • flyBehavior = new  (6)  ;
  • takeOffBehavior = new  (7)  ;
  • }
  • };
  • //其它代码省略
    查看答案

  • 考友试题答案分享:

  • 2、阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。
  • 【说明】
  • 某大学拟开发一个用于管理学术出版物(Publication)的数字图书馆系统,用户可以从该系统查询或下载已发表的学术出版物。系统的主要功能如下:
  • 1.登录系统。系统的用户(User)仅限于该大学的学生(Student),教师(Faculty)和其它工作人员(Staff)。在访问系统之前,用户必须使用其校园账号和密码登录系统。
  • 2.查询某位作者(Author)的所有出版物。系统中保存了会议文章(ConfPaper),期刊文章(JournalArticle)和校内技术报告(TechReport)等学术出版物的信息,如题目,作者以及出版年份等。除此之外,系统还存储了不
  • 同类型出版物的一些特有信息;
  • (1)对于会议文章,系统还记录了会议名称,召开时间以及召开地点;
  • (2)对于期刊文章,系统还记录了期刊名称,出版月份,期号以及主办单位;
  • (3)对于校内技术报告,系统还记录了由学校分配的唯一ID。
  • 3.查询制定会议集(Proceedings)或某个期刊特定期(Edition)的所有文章。会议集包含了发表在该会议(在某个特定时间段,特定地点召开)上的所有文章。期刊的每一期在特定时间发行,其中包含若干篇文章。
  • 4.下载出版物。系统记录每个出版物被下载的次数。
  • 5.查询引用了某篇出版物的所有出版物。在学术出版物中引用他人或早期的文献作为相关工作或背景资料是很常见的现象。用户也可以在系统中为某篇出版物注册引用通知,若有新的出版物引用该出版物,系统将发送电子邮件通知该用户。
  • 现在采用面向对象方法对该系统进行开发,得到系统的初始设计类图如图3-1所示。
  • 【问题1】(9分)
  • 根据说明中的描述,给出图3-1中C1~C9所对应的类名。
  • 【问题2】(4分)
  • 根据说明中的描述,给出图3-1中类C6~C9的属性。
  • 【问题3】(2分)
  • 图3-1中包含了那种设计模式?实现的是该系统的哪个功能?
    查看答案

  • 考友试题答案分享:
    suhx:
  • 【问题1】: c1:登录,c2:用户,c3:学生,c4:教师,c5:工作人员,c6:出版物,c7:会议文章,c8:期刊文章,c9:技术报告, 【问题2】: c6:题目,作者,出版年份,下载次数 c7:题目,作者,出版年份,会议名称,召开时间以及召开地点, c8:题目,作者,出版年份,期刊名称,出版月份,期号以及主办单位, c9:题目,作者,出版年份,学校分配的唯一id。, 【问题3】: 包含了观察者设计模式,实现的是该系统的“查询引用某篇出版物的所有出版物”功能