2023下半年软件设计师真题

案例题

一、日报/返校审批系统

1)补充实体  E1 - E5

2)补充存储名称   3个表

3)用结构化语言描述审批流程

4)补充缺失的数据流图

二、酒店预约系统

(图大概是这样的)

1)补充CU1 - CU5

2)补充C1-C5 

3)说明关键字含义 :包含(include)、扩展(extend)和泛化(generalization)

三、快递包裹  (2020软考数据库系统下午真题里有)

 某小区快递驿站代为收发各家快递公司的包裹,为规范包裹收发流程,提升效率,需要开发一个信息系统。请根据下述需求描述完成该系统的数据库设计。

【需求描述】

(1)记录快递公司和快递员的信息。快递公司信息包括:公司名称、地址和一个电话;快递员信息包括:姓名、手机号码和所属公司名称。一个快递公司可以有若干快递员,一个快递员只能属于一家快递公司。

(2)记录客户信息,客户信息包括:姓名、手机号码和客户等级。驿站对客户进行等级评定,等级高的客户在驿站投递包裹有相应的优惠。

(3)记录包裹信息,便于快速查找和管理。包裹信息包括:包裹编号,包裹到达驿站时间、客户手机号码和快递员手机号码。快递驿站每个月根据收发的包裹数量,与各快递公司结算代收发的费用。

问题1(6分)

1)根据需求阶段收集的信息,设计实体联系图

如图

问题2(4 分)
补充下列逻辑结构设计中的(a)、(b)两处空缺,并描述完整性约束关系。

[逻辑结构设计]
根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整):

快递公司(公司名称,地址,电话)
快递员(姓名,快递员手机号码,( a))
客户(姓名,客户手机号码,客户等级)
包裹(编号,到达时间,( b ) ,快递员手机号码)

(a) 所属公司名称。外键:公司名称  主键:快递员手机号

(b) 客户手机号码。外键:快递员手机号 、客户手机号    主键:编号,

问题3(5 分)
若快递驿站还兼有代缴水电费业务,请增加新的“水电费缴费记录”实体,并给出客户和水电费缴费记录之间的“缴纳”联系,对图 1-1 进行补充。“水电费缴费记录”实体包括:编号、客户手机号码、缴费类型、金额和时间,请给出“水电费缴费记录”的关系模式,并说明其完整性约束。

如图

水电费缴费记录(编号,客户手机号码,缴费类型,金额,时间)

主键:编号,外键:客户手机号

四、给了一个序列,类似{23,15,16,-1,-5-3}

分治法

O(nlogn)

六、JAVA题命令模式 (与此代码类似不过也有些不同仅供参考)


abstract class Command {

    public  abstract void execute();
}

class ConcreteCommand1 extends Command {
    private  Receiver receiver;

    public ConcreteCommand1() {
        this.receiver = new ConcreteReceiver1();
    }

    public void setReceiver(Receiver receiver) {
        this.receiver = receiver;
    }

    public void execute() {
        if(receiver!=null){
            receiver.doSomething();
        }
    }
}

abstract  class Receiver {
    public abstract void doSomething();
}

class ConcreteReceiver1 extends Receiver {
    @Override
    public void doSomething() {
        System.out.println("ConcreteReceiver1 do...");
    }


}
 class Invoker {
    private Command command;


    public void setCommand(Command command) {
        this.command = command;
    }


    public void action() {
        this.command.execute();
    }
}

class Test {
    public static void main(String args[]) {
        Invoker invoker = new Invoker();
        Receiver receiver = new ConcreteReceiver1();

        //这个位置真题循环的是List 
        //List<Invoker> invokerList = new ArrayList<>();
        //类似于invokerList.get(i).action();

        Command command = new ConcreteCommand1();
        invoker.setCommand(command);
        invoker.action();
    }
}

  • 5
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值