问答题

【说明】
某音像制品出租商店欲开发一个音像管理信息系统,管理音像制品的租借业务。需求如下:
1.系统中的客户信息文件保存了该商店的所有客户的用户名、密码等信息。对于首次来租借的客户,系统会为其生成用户名和初始密码。
2.系统中音像制品信息文件记录了商店中所有音像制品的详细信息及其库存数量。
3.根据客户所租借的音像制品的品种,会按天收取相应的费用。音像制品的最长租借周期为1周,每位客户每次最多只能租借6件音像制品。
4.客户租借某种音像制品的具体流程如下。
(1)根据客户提供的用户名和密码,验证客户身份。
(2)若该客户是合法客户,查询音像制品信息文件,查看商店中是否还有这种音像制品。
(3)若还有该音像制品,且客户所要租借的音像制品数小于等于6个,就可以将该音像制品租借给客户。这时,系统给出相应的租借确认信息,生成一条新的租借记录并将其保存在租借记录文件中。
(4)系统计算租借费用,将费用信息保存在租借记录文件中并告知客户。
(5)客户付清租借费用之后,系统接收客户付款信息,将音像制品租借给该客户。
5.当库存中某音像制品数量不能满足客户的租借请求数量时,系统可以接受客户网上预约租借某种音像制品。系统接收到预约请求后,检查库存信息,验证用户身份,创建相应的预约记录,生成预约流水号给该客户,并将信息保存在预约记录文件中。
6.客户归还到期的音像制品,系统修改租借记录文件,并查询预约记录文件和客户信息文件,判定是否有客户预约了这些音像制品。若有,则生成预约提示信息,通知系统履行预约服务,系统查询客户信息文件和预约记录文件,通知相关客户前来租借音像制品。


【问题2】
使用【说明】中的词语,给出图(b)中的数据存储D1~D4的名称。

【参考答案】

D1:客户信息文件 D2:音像制品信息文件
D3:租借记录文件 D4:预约记录文件
热门 试题

问答题
阅读下列函数说明,将应填入 (n) 处的字句写在答卷纸的对应栏内。 【函数1说明】 函数compare(SqList A,SqList B)的功能是:设A=(al,…,am)和B=(b1,…,bn)均为顺序表,“比较”两个顺序表A和B的大小。设A’和B’分别为A和B中除去最大共同前缀后的子表(例如,A=(y,X,X,Z,X,Z),B=(y,x,x,z,y,x,x,2),则两者中最大的共同前缀为(y,x,x,2),在两表中除去最大共同前缀后的子表分别为A’=(X,Z)和B’=(y,x,x,2))。若A’=B’=空表,则 A=B:若A’=空表,而B’≠空表,或者两者均不为空表,且A’的首元小于B,的首元,则A<B;否则A>B。 提示:算法的基本思想为:若相等,则j+1,之后继续比较后继元素:否则即可得山比较结果。显然,j的初值应为0,循环的条件是j不超出其中任何一个表的范围。若在循环内不能得出比较结果,则循环结束时有3种可能出现的情况需要区分。 【函数1】 int compare(SqList A,SqList B) 若A<B,则返回-1;若A=B,则返回o:若A>B,则返回1 j=0; while(j< (1) &&j<B.1ength) if( A.elem[j] < B.elem[j] ) return(-1); else if( A.elem[j] > B.elem[j] ) return(i); else (2) ff (A.length == B.length) return (0); else fi(A.length < B.length ) return(-1); else return(1); compare 函数1的时间复杂度是 (3) 【函数2说明】 函数 exchange_L( SLink &L, int m )的功能是:用尽可能少的辅助空间将单链表中前 m个结点和后 n 个结点的互换。即将单链表(a1,a2,...,am,b1,b2,...,bn) 改变成 (b1,b2,...,bn,a1,a2,…,am)。 【函数2】 void exchange_L( SLink &L, int m ) if( (4) && L->next) 链表不空且 m!=0 p = L->next; k = 1; while( k< m && p ) 查找am所在结点 p = (5) ; ++k; if( (6) &&p->next) n!=0 时才需要修改指针 ha = L->next; 以指针ha记a1 结点的位置 L->next = p->next; 将b1结点链接在头结点之后 p->next = NULL; 设am的后继为空 q: (7) ; 令q 指向b1结点 while(q->next)q= (8) ; 查的bn结点 q->next = (9) ; 将a1 结点链接到bn 结点之后 函数2的时间复杂度是 (10) 。