软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷43

如果您发现本试卷没有包含本套题的全部小题,请尝试在页面顶部本站内搜索框搜索相关题目,一般都能找到。
5

阅读以下说明和C函数,将(1)~(5)空缺处的字句填写完整。

  [说明]

 计算机在处理算术表达式时,首先将其转换为后缀表达式。例如,表达式“46+5*120-37)”的后缀表达式形式为“46 5 120 37-*+”。

 计算后缀表达式时,从左至右扫描后缀表达式:若遇到运算对象,则压入栈中;遇到运算符,则从栈中弹出相关运算对象进行计算,并将运算结果压入栈中。重复以上过程,直到后缀表达式扫描结束。例如,后缀表达式“46 5 120 37-*+”的计算过程如下:

 a.依次将46、5、120、37压入栈中;

 b.遇到“-”,取出37、120,计算120-37=83,将其压入栈中;

 c.遇到“*”,取出83、5,计算5×83=415,将其压入栈中;

 d.遇到“+”,取出415、46,计算46+415=461,将其压入栈中;

 e.表达式结束,则计算过程完成。

 函数computing(char expr[],int*result)的功能是基于栈计算后缀形式的表达式(以串形式存入字符数组 expr)的值,并通过参数result返回该值。函数的返回值为-1/0,分别表示表达式有/无错误。假设表达式中仅包含数字、空格和算术运算符号,其中所有项均以空格分隔,且运算符仅包含加(“+”)、减(“-”)、乘(“*”)、除(“\”)。

 函数computing中所用栈的基本操作的函数原型说明如下。

 ● void InitStack(STACK*s):初始化栈。

 ● void Push(STACK*s,int e):将一个整数压栈,栈中元素数目增1。

 ● void Pop(STACK*s):栈顶元素出栈,栈中元素数目减1。

 ● int Top(STACK s):返回非空栈的栈顶元素值,栈中元素数目不变。

 ● int IsEmpty(STACKs):若s是空栈,则返回1;否则返回0。

 [C函数]

9

阅读以下某前台销售子系统的技术说明和UML图,根据要求回答问题1~问题4。

 [说明]

 某超市管理系统的前台销售子系统以最基本的方式处理销售业务。系统的功能需求如下:

 ①记录每种商品的编号、单价和现有数量;

 ②为顾客选购的商品计价、收费,并打印清单;

 ③帮助商家找出哪种商品将脱销,从而及时补充货源;

 ④随时按上级系统的要求报告当前的款货数量、增减商品的种类或修改商品定价;

 ⑤交接班时结算货款数目和商品数目。

 每台收款机可以处理任何数目的销售事件,但一个销售事件只能由一台收款机处理。每个销售事件从收款机响应收款人员的指令开始,先向商品发送检索请求消息来查找将被出售的商品。如果该商品的数量少于下限,则向供货员发送缺货登记消息。每名供货员可以提供一种或多种商品,同一品牌的商品只能由一位供货员来提供。接着收款机发送计价和入账消息请求售出操作,再由销售事件发送记账消息给相应的账册,并控制流程返回收款机等待下一次销售操作。每本销售账册可以记录任何数目的销售事件,但一个销售事件只能由一本销售账册记录。

 该销售子系统采用面向对象方法开发,系统中的类及类之间的关系用UML类图表示,图1-11是该系统类图中的一部分;系统的动态行为采用UML序列图表示,图1-12是销售事件部分的序列图。

根据题干的[说明]及图1-11、图1-12的相关信息,类商品除了售出和缺货登记操作之外,还应具有哪些主要操作? (请使用[说明]中给出的词语回答问题)

14

阅读以下关于项目工作管理系统的数据库设计说明,根据要求回答问题1~问题4。

 [说明]

 某软件开发公司,决定结合自身工作的需求开发设计本公司的项目工作管理系统,由郭工程师承担数据库的设计工作。公司项目管理的需求分析如下。

 1.组织机构。该公司有多个部门,每个部门有多个职员、多个办公室,每个办公室有一部电话。当部门变更时更换新的部门代码。职员辞职后,若再次被聘用仍使用辞职前的代码。被聘用职员担任某职务,职务用职务代码来标识。职务分为:工程师、高级工程师、经理助理、经理等。职员的工资根据等级区分,共分为S、A、B、C、D 5个等级。一个职务对应某个等级,一个等级对应多个职务。职员月工资等于职员月工作时间(小时)乘以小时工资。职员的人事变动及职位变更(升级、降级)在月初进行。

 2.项目管理。项目用项目代码标识,使用过的项目代码不能重复使用。一个部门可承担多个项目,但一个项目仅由一个部门承担。一个项目有一名项目主管和多个职员;一个职员可参加多个项目。项目代码由系统自动生成,一旦项目建立,项目名、部门代码及起始年月日不能再变更。

 3.项目的工作管理流程为:项目工作计划输入(初始计划)→工作业绩输入→业绩生成(每月一次)→计划修正(每月一次)。

 ①项目工作计划输入。项目主管使用如图1-9所示的计划输入界面,输入项目代码、职员代码、职员参加某个项目的月工作时间(计划)。图中空白区域为可输入项。

②工作业绩输入。输入职员每天参加各个项目的工作时间。如图1-10所示为工作业绩输入界面,图中空白区域为可输入项。其中,出勤时间由考勤系统管理,指定项目代码的顺序可以不同,并且一天可以输入多个项目代码,但同一个项目代码不能重复输入。

③业绩生成。月底汇总职员的当月工作业绩,生成月工作业绩表。

 ④计划修正。项目主管根据项目进度修改以后的工作计划。

 郭工程师根据公司的项目需求将数据库关系模式设计如下:

 部门(部门代码,部门名,起始年月,终止年月,办公室,办公电话);

 职务(职务代码,职务名);

 等级(等级代码,等级名,年月,小时工资);

 职员(职员代码,职员名,部门代码,职务代码,任职时间);

 项目(项目代码,项目名,部门代码,起始年月日,结束年月日,项目主管);

 工作计划(项目代码,职员代码,年月,工作时间)。

请使用“关系模式标记规则”(见本题附内容,全书同),给出“部门”、“等级”、“项目”和“工作计划”关系模式的主键和外键。