案例题
一、日报/返校审批系统
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();
}
}