问答题
试题三 (共15分) 阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。 【说明 】 某银行计划开发一个自动存提款机模拟系统(ATM System)。系统通过读卡器(CardReader)读取 ATM 卡;系统与客户(Customer)的交互由客户控制台(CustomerConsole)实现;银行操作员(Operator)可控制系统的启动(System Startup)和停止(System Shutdown);系统通过网络和银行系统(Bank)实现通信。 当读卡器判断用户已将ATM卡插入后,创建会话(Session)。会话开始后,读卡器进行读卡,并要求客户输入个人验证码(PIN)。系统将卡号和个人验证码信息送到银行系统进行验证。验证通过后,客户可从菜单选择如下事务(Transaction): 1. 从ATM卡账户取款(Withdraw); 2. 向ATM卡账户存款(Deposit); 3. 进行转账(Transfer); 4. 查询(Inquire)ATM卡账户信息。 一次会话可以包含多个事务,每个事务处理也会将卡号和个人验证码信息送到银行系统进行验证。若个人验证码错误,则转个人验证码错误处理(Invalid PIN Process)。每个事务完成后,客户可选择继续上述事务或退卡。选择退卡时,系统弹出 ATM 卡,会话结束。 系统采用面向对象方法开发,使用 UML 进行建模。系统的顶层用例图如图3-1所示,一次会话的序列图(不考虑验证)如图3-2所示。消息名称参见表3-1。
【问题 2】(6 分 ) 根据【说明 】中的描述,使用表3-1中的英文名称,给出图3-2中6~9对应的消息。
【参考答案】
点击查看答案&解析
<上一题
目录
下一题>
热门
试题
问答题
【问题 2】 (6 分)根据实体联系图,将关系模式中的空(a)~(c)补充完整,并分别给出部门、员工和经理关系模式的主键和外键。
点击查看答案&解析
问答题
试题五(共 15 分)阅读下列说明和C 函数代码,将应填入 (n) 处的字句写在答题纸的对应栏内。【说明】对二叉树进行遍历是二叉树的一个基本运算。遍历是指按某种策略访问二叉树的每个结点,且每个结点仅访问一次的过程。函数InOrder()借助栈实现二叉树的非递归中序遍历运算。设二叉树采用二叉链表存储,结点类型定义如下:typedef struct BtNode{ElemType data; *结点的数据域,ElemType的具体定义省略* struct BtNode *lchild,*rchild; *结点的左、右孩子指针域* }BtNode, *BTree;在函数InOrder()中,用栈暂存二叉树中各个结点的指针,并将栈表示为不含头结点的单向链表(简称链栈),其结点类型定义如下:typedef struct StNode{ *链栈的结点类型* BTree elem; *栈中的元素是指向二叉链表结点的指针* struct StNode *link;}StNode;假设从栈顶到栈底的元素为 en、en-1、…、e1,则不含头结点的链栈示意图如图5-1所示。【C函数】int InOrder(BTree root) * 实现二叉树的非递归中序遍历 * {BTree ptr; * ptr用于指向二叉树中的结点 * StNode *q; * q暂存链栈中新创建或待删除的结点指针* StNode *stacktop = NULL; * 初始化空栈的栈顶指针stacktop * ptr = root; * ptr指向二叉树的根结点 * while ( (1) || stacktop != NULL) {while (ptr != NULL) {q = (StNode *)malloc(sizeof(StNode));if (q == NULL)return -1;q->elem = ptr;(2) ;stacktop = q; *stacktop指向新的栈顶* ptr = (3) ; *进入左子树* }q = stacktop;(4) ; *栈顶元素出栈* visit(q); *visit是访问结点的函数,其具体定义省略* ptr = (5) ; *进入右子树* free(q); *释放原栈顶元素的结点空间* }return 0;} *InOrder*
点击查看答案&解析
相关试题
【问题 3】 (3 分)为了使商场有紧急...
【问题 3】(2 分 ) 解释图3-1中...
【问题2】(3 分)【问题】中伪代码的时...