考试总分:7分
考试类型:模拟试题
作答时间:60分钟
已答人数:967
试卷答案:有
试卷介绍: 2006年下半年软件设计师下午试卷
A(1)一个房间有多个床位,同一房间内的床位具有相同的收费标准。不同房间的床位收费标准可能不同。
B(2)每个房间有房间号(如201、202等)、收费标准、床位数目等信息。
C(3)每位客人有身份证号码、姓名、性别、出生日期和地址等信息。
D(4)对每位客人的每次住宿,应该记录其入住日期、退房日期和预付款额信息。
E(5)管理系统可查询出客人所住房间号。根据以上的需求分析结果,设计一种关系模型如图2-1所示:图2-1住房管理系统的实体联系图[问题1](1分)根据上述说明和实体-联系图,得到该住房管理系统的关系模式如下所示,请补充住宿关系。房间(房间号,收费标准,床位数目)客人(身份证号,姓名,性别,出生日期,地址)住宿((1),入住日期,退房日期,预付款额)[问题2](4分)请给出问题1中住宿关系的主键和外键。[问题3](4分)若将上述各关系直接实现为对应的物理表,现需查询在2005年1月1日到2005年12月31日期间,在该宾馆住宿次数大于5次的客人身份证号,并且按照入住次数进行降序排列。下面是实现该功能的SQL语句,请填补语句中的空缺。SELECT住宿.身份证号,count(入住日期)FROM住宿,客人WHERE入住日期>=‘20050101’AND入住日期5(4)[问题4](6分)为加快SQL语句的执行效率,可在相应的表上创建索引。根据问题3中的SQL语句,除主键和外键外,还需要在哪个表的哪些属性上创建索引,应该创建什么类型的索引,请说明原因。[15分]
A(1)~(6)。[问题2](4分)请从表3-1中选择方法,完成图3-2中的(7)~(10)。表3-1可选消息列表功能描述方法名向促销订单中添加所选的商品buyCommodities向促销中添加要促销的商品addCommodities查找某个促销的所有促销订单信息列表getPromotionOrders生成商品信息createCommodity查找某个分类中某商家的所有商品信息列表getCommodities生成促销信息createPromotion生成促销订单信息createPOrder查找某个分类的所有促销信息列表getCategoryPromotion查找某商家所销售的所有分类列表getCategories查找某个促销所涉及的所有商品信息列表getPromotionCommodities[问题3](5分)关联(Association)和聚集(Aggregation)是UML中两种非常重要的关系。请说明关联和聚集的关系,并说明其不同点。[15分]
A(1);brotherptr=root->nextbrother;while(brotherptr){EnQueue(&tempQ,brotherptr);
B(2);}/*end-while*/while(
C(3)){
D(4);printf("%c\t",ptr->data);if(
E(5))continue;
F(6);brotherptr=ptr->firstchild->nextbrother;while(brotherptr){EnQueue(&tempQ,brotherptr);
G(7);}/*end-while*/}/*end-while*/returnOK;}/*LevelTraverse*/[15分]
A(1)e0和e1表示底盘分别进入装配线0和装配线1所需要的时间。
B(2)每条装配线有n个工位,第一条装配线的工位为S0,0,S0,1,…,S0,n-1,第二条装配线的工位为S1,0,S1,1,…,S1,n-1。其中S0,k和S1,k(0≤k≤n-1)完成相同的任务,但所需时间可能不同。
C(3)ai,j表示在工位Si,j处的装配时间,其中i表示装配线(i=0或i=1),j表示工位号(0≤j≤n-1)。
D(4)ti,j表示从Si,j处装配完成后转移到另一条装配线下一个工位的时间。
E(5)x0和x1表示装配结束后,汽车分别从装配线0和装配线1下线所需要的时间。
F(6)在同一条装配线上,底盘从一个工位转移到其下一个工位的时间可以忽略不计。图4-2所示的流程图描述了求最短装配时间的算法,该算法的输入为:n:表示装配线上的工位数;e[i]:表示e1和e2,i取值为0或1;a[i][j]:表示ai,j,i的取值为0或1,j的取值范围为0~n-1;t[i][j]:表示ti,j,i的取值为0或1,j的取值范围为0~n-1;x[i]:表示x0和x1,i取值为0或1。算法的输出为:fi:最短的装配时间;li:获得最短装配时间的下线装配线号(0或者1)。算法中使用的f[i][j]表示从开始点到Si,j处的最短装配时间。图4-2求最短装配时间算法[15分]