题目内容 (请给出正确答案)
[主观题]

阅读以下说明和Visual Basic代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】 某绘图系统定

阅读以下说明和Visual Basic代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

某绘图系统定义了一个抽象类IShape,现有三个类CPoint、CLine和CCircle,它们都具有IShape界面。相应的类图关系如图7-1所示。

已知某第三方库已经提供了XCircle类,且完全满足CCircle图元显示时所需的功能。代码7-1是抽象类IShape的类模块内容,代码7-2实现了类CCircle的IShape界面,并使用了XCircle提供的显示功能。

XCimle提供的显示功能方法接口为displayIt。

阅读以下说明和Visual Basic代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】 某

【代码7-1】

Public Color As Long

Sub draw()

'方法体不包括可执行语句

End Sub

Sub move(stepx As Single,stepy As Smgle)

'方法体不包括可执行语句

End Sub

【代码7-2】

(1)

Private color As Long

… ‘其他定义省略

Private bridged As (2)

Private Sub Class_Initialize ()

Set bridged=(3)

End Sub

Private Property (4) ()As Long

IShape_Color = color

End Property

Private Property (5) (ByVal newColor As Long)

color=newColor

End Property

Private Sub IShape_draw () '使用XCirele提供的显示功能

(6)

End Sub

Private Sub IShape_move (stepx As Single, stepy As Single)

… '省略描述

End Sub

查看答案
如搜索结果不匹配,请 联系老师 获取答案
您可能会需要:
您的账号:,可能会需要:
您的账号:
发送账号密码至手机
发送
更多“阅读以下说明和Visual Basic代码,将应填入(n)处…”相关的问题

第1题

阅读以下说明和Java代码,将应填入(n)处的字句写在对应栏内。 [说明] 在一些大型系统中,大多数的

阅读以下说明和Java代码,将应填入(n)处的字句写在对应栏内。

[说明]

在一些大型系统中,大多数的功能在初始化时要花费很多时间,如果在启动的时候,所有功能(连不用的功能)都要全面初始化的话,会连带影响到应用软件要花很多时间才能启动。因此常将程序设计成到了实际要使用某种功能的阶段才初始化该功能。

以下示例展示了Proxy(代理)模式,PrinterProxy类执行一些比较“轻”的方法——设置名称和取得名称,需要真正执行“重”的方法——真正打印——时才初始Print类。图6-1显示了各个类间的关系。

[图6-1]

[Java代码]

//Printable.Java

publiC (1) Printable{

public abstract void setPrinterName(String name);

public abstract String getprinterName();

public abstract void print(String string);

}

//Printer.Java

public class Printer implements Printable{

private String name;

public Printer(){

System.out.println("正在产生Printer的对象实例");

}

public Printer(String name){

this.name=name;

heavyJob("正在产生Printer的对象实例("+name+")");

public void setPrinterName(String name){

this.name=name;

public String getPrinterName(){

return name;

public void print(String string){

System.out.println("===" +name+" ====");

System.out.println(string);

}

}

//PrinterProxy.Java

public class PrinterProxy (2) Printable{

private String name;

private Printer real;

public PrinterProxy(){}

public PrinterProxy(String name){

this.name=name;

}

public gynchronized void setPrinterName(String name){

if( (3) ){

real.setPrinterName(name);

}

this.name=name;

}

public String getprinterName(){

return name;

}

public void print(String string){

(4);

real.print(string);

}

private synchronized void realize(){//产生真正的Printer对象

if(real==null){

real=(5);

}

}

}

(1)

点击查看答案

第2题

阅读以下说明和程序流程图,将应填入(n)处的字句写在对应栏内。 [说明] 假定用一个整型数组表示

阅读以下说明和程序流程图,将应填入 (n) 处的字句写在对应栏内。

[说明]

假定用一个整型数组表示一个长整数,数组的每个元素存储长整数的一位数字,则实际的长整数m表示为:

m=a[k]×10k-2+a[k-1]×10k-3+…+a[3]×10+a[2]

其中a[1]保存该长整数的位数,a[0]保存该长整数的符号:0表示正数、1表示负数。注:数组下标从0开始。

流程图(图4-1)用于计算长整数的加(减)法。运算时先决定符号,再进行绝对值运算。对于绝对值相减情况,总是绝对值较大的减去绝对值较小的,以避免出现不够减情况。注,此处不考虑溢出情况,即数组足够大。这样在程序中引进两个指针pA和pB,分别指向绝对值较大者和较小者。而对绝对值相加,情况,让pA指向LA,pB指向LB,不区分绝对值大小。pA±pB可用通式pA+flag*pB来计算,flag为+1时即对应pA+pB,flag为-1时即对应pA-pB。需特别注意的是,对于相减,不够减时要进行借位,而当

最高位借位后正好为0时,结果的总位数应减1;对于加法,有最高进位时,结果的总位数应加1。

流程图中涉及的函数说明如下:

(1)cmp(int *LA,int *LB)函数,用于比较长整数LA与LB的绝对值大小,若LA绝对值大于LB绝对值则返回正值,LA绝对值小于LB绝对值返回负值,相等则返回0。

(2)max(int A,int B)函数,用于返回整数A与B中较大数。

另外,对流程图中的写法进行约定:(1)“:=”表示赋值,如“flag:=LA[0]+LB[0]”表示将“LA[0]+LB[0]”的结果赋给flag,相当于C中的赋值语句:“flag=LA[0]+LB[0];”;(2)“:”表示比较运算,如“flag:1”表示flag与1比较。

(1)

点击查看答案

第3题

阅读以下说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】 某绘图系统存在Point、L

阅读以下说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

某绘图系统存在Point、Line、Square三种图元,它们具有Shape接口,图元的类图关系如图5-1所示。现要将Circle图元加入此绘图系统以实现功能扩充。已知某第三方库已经提供了XCircle类,且完全满足系统新增的Circle图元所需的功能,但XCircle不是由Shape派生而来,它提供的接口不能被系统直接使用。代码5-1既使用了XCircle又遵循了Shape规定的接口,既避免了从头,开发一个新的Circle类,又可以不修改绘图系统中已经定义的接口。代码5-2根据用户指定的参数生成特定的图元实例,并对之进行显示操作。

绘图系统定义的接口与XCircle提供的显示接口及其功能如下表所示:

【代码5-1】

class Circle:public (1) {

pfivme:

(2) m_circle;

public:

void display(){

m_circle. (3);

}

};

【代码5-2】

class Factory{

public:

(4) getShapeInstance (int type){ //生成特定类实例

switch (type){

case 0:rcturn new Point;

Case l:return new Rectangle;

case 2: return new Line;

case 3: return new Circle;

default: return NULL;

} void main (int argo, char *argv[]) {

if (argc!=2) {

cout << "error parameters !" << endl; return; inttype=atoi (argv[1]) ;

Factory factory;

Shape *s;

s = factory. (5):

if (s==NULL) {

cout << "Error get the instance !" << endl;

return;

}

s->display () ;

(6);

return;

点击查看答案

第4题

阅读以下说明和流程图,从供选择的答案中选出应填入流程图(n)处的字句写在答题纸的对应栏内。【说明

阅读以下说明和流程图,从供选择的答案中选出应填入流程图(n)处的字句写在答题纸的对应栏内。

【说明】

一个印刷电路板的布线区域可分成n×m个方格,如图3-1(a)所示,现在需要确定电路板中给定的两个方格的中心点之间的最短布线方案。电路只能沿水平或垂直方向布线,如图3-1(b)中虚线所示。为了避免线路相交,应将已布过线的方格做封锁标记,其他线路不允许穿过被封锁的方格。

设给定印刷电路板的起始方格x与目的方格y尚未布线,求这两个方格间最短布线方案的基本思路是:从起始方格x开始,先考查距离起始方格距离为1的可达方格并用一个路径长度值标记,然后依次考查距离为2,3,…的可达方格,直到距离为k的某一个可达方格就是目标方格y时为止,或者由于不存在从x到y的布线方案而终止。布线区域中的每一个方格与其相邻的上、下、左、右四个方格之间的距离为1,依次沿下、右、上、左这四个方向考查,并用一个队列记录可达方格的位置。表3-1给出了沿这四个方向前进1步时相对于当前方格的相对偏移量。

例如,设印刷电路板的布线区域可划分为一个6×8的方格阵列,如图3-2(a)所示,其中阴影表示已封锁方格。从起始方格x(位置[3,2],标记为0)出发,按照下、右、上、左的方向依次考查,所标记的可达方格如图3-2(a)所示,目标方格为y(位置[4,7],标记为10),相应的最短布线路径如图3-2(b)虚线所示。

【图3-2】

图3-3和图3-4所示的流程图即利用上述思路,在电路板方格阵列中进行标记,图

中使用的主要符号如表3-2所示。在图3-4中,设置电路板初始格局即将可布线方格置为数值-1、已布线方格(即封锁方格)置为-9。设置方格阵列“围墙”的目的是省略方格位置的边界条件判定,方法是在四周附加方格,并将其标记为-9(与封锁标记相同)。

供选择的答案

A.Found≠true B.Found=true

C.T=EndPos D.Q.insert(T)

E.T←Q.delete() F.CurPos=EndPos

G.i≥4 H.CurPos←Q.delete()

I.Grid[T.row,T.col]=-1 J.Grid[T.row,T.col]≠-1

点击查看答案

第5题

阅读以下说明和数据流图,回答问题1~问题3。【说明】 学生住宿服务系统帮助学生在就学的缄市内找到所

阅读以下说明和数据流图,回答问题1~问题3。

【说明】

学生住宿服务系统帮助学生在就学的缄市内找到所需的住房,系统对出租的房屋信息、房主信息、需要租房的学生信息以及学生和房主的会面信息进行管理和维护。

房主信息包括姓名、地址、电话号码以及系统分配的唯一身份标识(D)和密码;房屋信息包括房屋地址、类型(单间/套间)、适合住宿的人数、房租、房主的ID以及现在是否可以出租(例如由于装修原因,需等到装修后才可出租或者房屋已被租出)。每当房屋信息发生变化时,房主必须通知系统,系统将更新房屋文件以便学生能够获得准确的可租用房屋信息。房主向系统中加入可租用的房屋信息时,须交纳一定的费用,由系统自动给出费用信息。房主可随时更新房屋的各种属性。

学生可通过系统查询现有的可租用的房屋,但必须先在系统中注册。学生信息包括姓名、现住址、电话号码、出生日期、性别以及系统分配的唯一身份标识(1D)和密码。若学生希望租用某房屋,则需要发出租房请求,请求中包含房屋的详细信息,系统将安排学生与房主会面的时间和地点,并将会面信息通知学生和房主,会面信息包括会面时间、地点以及会面双方的基本信息,系统将记录会面信息。

学生住宿服务系统的顶层图如图1-1所示;学生住宿服务系统的第0层DFD图如图 1-2所示,其中,加工3的细化图如图1-3所示。

(1)数据流图1-1缺少了一条数据流(在图1-2中也未给出该数据流),请给出此数据流的起点和终点,并采用说明中的词汇给出此数据流名。

(2)数据流图1-2中缺少了与“查询房屋”加工相关的数据流,请指出此数据流的起点和终点。

点击查看答案

第6题

试题六(共15分) 阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某咖啡

试题六(共15分)

阅读下列说明和Java代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如下表所示。

【Java代码】

import java.util.*;

(1) class Beverage { //饮料

String description = "Unknown Beverage";

public (2) (){return description;}

public (3) ;

}

abstract class CondimentDecorator extends Beverage { //配料

(4) ;

}

class Espresso extends Beverage { //蒸馏咖啡

private final int ESPRESSO_PRICE = 25;

public Espresso() { description="Espresso"; }

public int cost() { return ESPRESSO_PRICE; }

}

class DarkRoast extends Beverage { //深度烘焙咖啡

private finalint DARKROAST_PRICE = 20;

public DarkRoast() { description = "DarkRoast"; }

public int cost(){ rcturn DARKROAST PRICE; }

}

class Mocha extends CondimentDecorator { //摩卡

private final int MOCHA_PRICE = 10;

public Mocha(Beverage beverage) {

this.beverage = beverage;

}

public String getDescription() {

return beverage.getDescription0 + ", Mocha";

}

public int cost() {

return MOCHA_PRICE + beverage.cost();

}

}

class Whip extends CondimentDecorator { //奶泡

private finalint WHIP_PRICE = 8;

public Whip(Beverage beverage) { this.beverage = beverage; }

public String getDescription() {

return beverage.getDescription()+", Whip";

}

public int cost() { return WHIP_PRICE + beverage.cost(); }

}

public class Coffee {

public static void main(String args[]) {

Beverage beverage = new DarkRoast();

beverage=new Mocha( 5 );

beverage=new Whip ( 6 );

System.out.println(beverage.getDescription() +"¥" +beverage.cost());

}

}

编译运行上述程序,其输出结果为:

DarkRoast, Mocha, Whip ¥38

点击查看答案

第7题

阅读下列函数说明和c代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】 函数int Toplogical(

阅读下列函数说明和c代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

函数int Toplogical(Linded WDipaph G)的功能是对图G中的顶点进行拓扑排序,并返回关键路径的长度。其中图G表示一个具有n个顶点的AOE-网,图中顶点从1~n依次编号,图G的存储结构采用邻接表表示,其数据类型定义如下:

typedefstruct Gnode{ /* 邻接表的表结点类型*/

iht adjvex; /* 邻接顶点编号*/

iht weight; /* 弧上的权值*/

street Gnode *nextarc; /* 指示下一个弧的结点*/

}Gnode;

typedef struct Adjlist{ /* 邻接表的头结点类型*/

char vdata; /*顶点的数据信息*/

struct Gnode *Firstadj; /* 指向邻接表的第一个表结点*/

}Adjlist;

typedef street LinkedWDigraph{ /* 图的类型*/

int n, e; /* 图中顶点个数和边数*/

struct Adjlist *head; /*指向图中第一个顶点的邻接表的头结点 */

} LinkedWDigraph;

例如,某AOE-网如图5-1所示,其邻接表存储结构如图5-2所示。

【函数】

iht Toplogical(LinkedWDigraph G)

{ Gnode *p;

intj, w, top = 0;

iht *Stack, *ye, *indegree;

ye = (int *)malloe((G.n+1) * sizeof(int));

indegree = (int *)malloc((G.n+1)*sizeof(int)); /* 存储网中各顶点的入度*/

Stack = (int *)malloe((G.n+1)*sizeof(int)); /* 存储入度为0的顶点的编号*/

if(!ve||!indegree || !Stack) exit(0);

for (j = 1;j <= G.n;j++) {

ve[j] = 0; indegree[j]= 0;

}/*for*/

for(j= 1;j<=G.n;j++) { /* 求网中各顶点的入度*/

p = G.head[j].Firstadj;

while (p) {

(1); p = p→nextarc;

}/*while*/

}/*for*/

for (j = 1; j <= G.n; j++) /*求网中入度为0的顶点并保存其编号*/

if (!indegree[j]) Stack[++top] =j;

while (top > 0) {

w=(2);

printf("%e ", G.head[w].vdata);

p = G.head[w].Firstadj;

while (p) {

(3);

if ( !indegree [p→adjvex])

Staek[++top] = p→adjvex;

if( (4))

ve[p→adjvex] = ve[w] + p→weight;

p = p→nextarc;

}/* while */

}/* while */ return (5); }/*Toplogieal*/

点击查看答案

第8题

阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】 某指纹门禁系统的体系结

阅读下列说明和图,回答问题1至问题3,将解答填入答题纸的对应栏内。

【说明】

某指纹门禁系统的体系结构如图3-1所示,其主要部件有:主机(MainFrame)、锁控器(LockController)、指纹采集器(FingerReader)和电控锁(Lock)。

(1)系统中的每个电控锁都有一个惟一的编号。锁的状态有两种:“已锁住”和“未

锁住”。

(2)在主机上可以设置每把锁的安全级别以及用户的开锁权限。只有当用户的开锁权限大于或等于锁的安全级别并且锁处于“已锁住”状态时,才能将锁打开。

(3)用户的指纹信息、开锁权限以及锁的安全级别都保存在主机上的数据库中。

(4)用户开锁时,只需按一下指纹采集器。指纹采集器将发送一个中断事件给锁控器,锁控器从指纹采集器读取用户的指纹并将指纹信息发送到主机,主机根据数据库中存储的信息来判断用户是否具有开锁权限,若有且锁当前处于“已锁住”状态,则将锁打开;否则系统报警。

该系统采用面向对象方法开发,系统中的类以及类之间的关系用UML类图表示,图3-2是该系统类图的一部分;系统的动态行为采用UML序列图表示,图3-3是用户成功开锁的序列图。

图3-2是该系统类图的一部分,依据上述说明中给出的术语,给出类Lock的主要属性。

点击查看答案

第9题

试题二(共15分)阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。【说明】 某医院拟开发

试题二(共15分)

阅读下列说明,回答问题1至问题3,将解答填入答题纸的对应栏内。

【说明】

某医院拟开发一套住院病人信息管理系统,以方便对住院病人、医生、护士和手术等信息进行管理。

【需求分析】

(1)系统登记每个病人的住院信息,包括:病案号、病人的姓名、性别、地址、身份证号、电话号码、入院时问及病床婷信息,每个病床有唯一所属的病区及病房,如表2-1所示。其中病案号唯一标识病人本次住院的信息。

(2)在一个病人的一次住院期间,由一名医生对该病人的病情进行诊断,并填写一份诊断书,如表2-2所示。对于需要进行一次或多次手术的病人,系统记录手术名称、手术室、手术日期、手术时间、主刀医生及多名协助医生,每名医生在手术中的责任不同,如表2-3所示,其中手术室包含手术室号、楼层、地点和类型等信息。

(3)护士分为两类:病床护士和手术室护士。每个病床护士负责护理一个病区内的所有病人,每个病区由多名护士负责护理。手术室护士负责手术室的护理工作。每个手术室护士负责多个手术室,每个手术室由多名护士负责,每个护士在手术室中有不同的责任,并由系统记录其责任。

【概念模型设计】

根据需求阶段收集的信息,设计的实体联系图(不完整)如图2-1所示。

【逻辑结构设计】

根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整):

病床(病床号,病房,病房类型,所属病区)

护士(护士编号,姓名,类型,性别,级别)

病房护士( (1) )

手术室(手术室号,楼层,地点,类型)

手术室护士( (2) )

病人( (3),姓名,性别,地址,身份证号,电话号码,入院时间)

医生(医生编号,姓名,性别,职称,所属科室)

诊断书( (4),诊断,诊断时间)

手术安排(病案号,手术室号,手术时间,手术名称)

手术医生安排( (5) ,医生责任)

【问题1】(6分)

补充图2-1中的联系和联系的类型。

【问题2】(5分)

根据图2-1,将逻辑结构设计阶段生成的关系模式中的空(1)~(5)补充完整,并用下划线指出主键。

【问题3】(4分)

如果系统还需要记录医生给病人的用药情况,即记录医生给病人所开处方中药品的名称、用量、价格、药品的生产厂家等信息。请根据该要求,对图2-1进行修改,画出补充后的实体、实体间联系和联系的类型。

点击查看答案

第10题

试题五(共15分)阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。【说明】某咖啡店

试题五(共15分)

阅读下列说明和C++代码,将应填入(n)处的字句写在答题纸的对应栏内。

【说明】

某咖啡店当卖咖啡时,可以根据顾客的要求在其中加入各种配料,咖啡店会根据所加入的配料来计算费用。咖啡店所供应的咖啡及配料的种类和价格如下表所示。

【C++代码】

include <iostream>

include <string>

using namespace std;

const int ESPRESSO_PRICE = 25;

const int DRAKROAST_PRICE = 20;

const int MOCHA_PRICE = 10;

const int WHIP_PRICE = 8;

class Beverage { //饮料

(1) :string description;

public:

(2) (){ return description; }

(3) ;

};

class CondimentDecorator : public Beverage { //配料

protected:

(4) ;

};

class Espresso : public Beverage { //蒸馏咖啡

public:

Espresso () {description="Espresso"; }

int cost(){return ESPRESSO_PRICE; }

};

class DarkRoast : public Beverage { //深度烘焙咖啡

public:

DarkRoast(){ description = "DardRoast"; }

int cost(){ return DRAKROAST_PRICE; }

};

class Mocha : public CondimentDecorator { //摩卡

public:

Mocha(Beverage*beverage){ this->beverage=beverage; }

string getDescription(){ return beverage->getDescription()+",Mocha"; }

int cost(){ return MOCHA_PRICE+beverage->cost(); }

};

class Whip :public CondimentDecorator { //奶泡

public:

Whip(Beverage*beverage) { this->beverage=beverage; }

string getDescription() {return beverage->getDescription()+",Whip"; }

int cost() { return WHIP_PRICE+beverage->cost(); }

};

int main() {

Beverage* beverage = new DarkRoast();

beverage=new Mocha( (5) );

beverage=new Whip( (6) );

cout<<beverage->getDescription()<<"¥"<<beverage->cost() endl;

return 0;

}

编译运行上述程序,其输出结果为:

DarkRoast, Mocha, Whip ¥38

点击查看答案
热门考试 全部 >
相关试卷 全部 >
账号:
你好,尊敬的上学吧用户
发送账号至手机
密码将被重置
获取验证码
发送
温馨提示
该问题答案仅针对搜题卡用户开放,请点击购买搜题卡。
马上购买搜题卡
我已购买搜题卡, 登录账号 继续查看答案
重置密码
确认修改
谢谢您的反馈

您认为本题答案有误,我们将认真、仔细核查,
如果您知道正确答案,欢迎您来纠错

警告:系统检测到您的账号存在安全风险

为了保护您的账号安全,请在“上学吧”公众号进行验证,点击“官网服务”-“账号验证”后输入验证码“”完成验证,验证成功后方可继续查看答案!

微信搜一搜
上学吧
点击打开微信
警告:系统检测到您的账号存在安全风险
抱歉,您的账号因涉嫌违反上学吧购买须知被冻结。您可在“上学吧”微信公众号中的“官网服务”-“账号解封申请”申请解封,或联系客服
微信搜一搜
上学吧
点击打开微信