| 网站首页 | 自考 | 中考 | 高考 | MBA | 考研 | 成人高考 | 报关员 | 导游 | 司法 | 计算机 | 会计 | 英语 | 医学 | 小学 | 初中 | 高中 | 法律硕士 | 建筑工程 | 留言 | 
最新公告:     本站一直领先的专注于考试的网络媒体与服务平台,请大家互相支持!  [admin  2006年9月7日]        
 
您现在的位置: 试卷下载网 >> 计算机 >> 软件设计师 >> 文章正文
 
 
 
最新推荐 更多内容
 
 
相关文章
2004年11月(下半年)软件…
2004年下半年 软件设计师…
2004年下半年软件设计师…
2004下半年软件设计师级…
2004年下半年软件设计师…
2004年下半年 软件设计师…
2004下半年软件设计师级…
2005年上半年软件设计师…
2005年上半年软件设计师…
2005 年下半年软件设计师…
更多内容
2005年上半年软件设计师下午试卷           
2005年上半年软件设计师下午试卷
作者:佚名 文章来源:不详更新时间:2007-8-24 0:05:13


1、在答题纸的指定位置填写你所在的省、自治区、直辖市、计划

单列市的名称。

2、在答题纸的指定位置填写准考证号、出生年月日和姓名。

3、答题纸上除填写上述内容外只能写解答。

4、本试卷共7 道题,试题一至试题四是必答题,试题五至试题七

选答1 道。每题15 分,满分75 分。

5、解答时字迹务必清楚,字迹不清时,针不评分。

6、仿照下面例题,将解答写在答题纸的对应栏内。

例题

2005 年上半年全国计算机技术与软件专业技术资格(水平)考试

日期是(1)月(2)日。

因为正确的解答是“5 29 日”,故在答题纸的对应栏内写上“5

和“29”(参看下表)。


试题一(15 分)

阅读以下说明和数据流图,回答问题1 至问题3,将解答题纸

的对应栏内。

[说明]

学生住宿服务系统帮助学生在就学的城市内找以所需的住房,

系统对出租的房屋信息、房主信息、需要租房的学生信息以及学生和

房主的会面住处进行管理和维护。

房主信息包括姓名、地址、电话号码以及系统分配的唯一身份标

识(ID)和密码;房屋信息包括房屋地址、类型(单间/套间)、适合

住宿的人数、房租、房主的ID 以及现在是否可以出租(例如由于装

修原因,需等到装修后才可出租或者房屋已被租出)。每当房房屋信

息发生变化时,房主须通知系统,系统将更新房到文件以便学生能够

获得准确的可租用房屋信息,房主向系统中加入可租用的房屋信息

时,需交纳一定的费用,由系统自动给出费用信息。房主可随时更新

房屋的各种属性。

学生可通过系统查询现有的可租用的房屋,但必须先在系统中注

册。学生信息包括姓名、现住址、电话号码、出生日期、性别以及系

统分配的唯一身份标识(ID)和密码。若学生希望租用某房屋,则需

要发出租房请求,请求中包含房屋的详细信息,系统将安排学生与房

主会面的时间和地点,并将会面信息通知学生和房主,会面信息包括

会面时间、地点以及会面双方的基本信息,系统将记录会面信息。

学生住宿服务系统的顶层图如图1-1 所示;学生住宿服务系统的

0 DFD 图如图1-2 所示,其中,加工3 的细雨人图如图1-3

示。

[问题1]6 分)

1)数据流图1-1 缺少了一条数据流(在图1-2 中也未给出该数

据流),请给出此数据流的起点和终点,并采用说明中的词汇给出此

数据流名。

2)数据流图1-2 中缺少了与“查询房屋”加工相关的数据流,

请指出此数据流的起点和终点。

[问题2]4 分)

“安排会面”加工除需要写入会面文件外,还需要访问哪些文

件?

[问题3]5 分)

请补齐下列数据字典条目:

登录信息=学生ID+密码

注册信息=

[数据流图1-1]

 



 

试题二(15 分)

阅读以下说明和表,回答问题1 至问题4,将解答填入答题纸的

对应栏内。

[说明]

某公司信息管理系统的需求分析和部分关系模式的结果描述如

下:

1. 公司有多个部门,每个部门有一名负责人、一间办公室、

一部电话、多名职员,每个职员最多数一个部门,负责人

也是公司一名职员。

2. 公司职员的工资大于等于1000 元且最小等于8000

3. 数据库的部分关系模式设计如下:

职员(职员号,职工姓名,月工资。部门号、办公室,电话)

部门(部门号,部门名,负责人代码,任职时间)

4.“职员”和“部门”的关系示例分别如表2-1 和表2-2 所示

[2-1]

“职员”关系

[2-2]


[问题1]4 分)

根据上述说明,请给出

1)“职员”关系模式的主键和外键。

2)“部门”关系模式的主键和外键。

[问题2]4 分)

1) 用SQL 定义“职员”关系模式,请在空缺处填入正确的内

容。

Create Table 职员(职员号CHAR5) (a,

职员姓名 CHAR8),

月工资 NUMBER4),

部门号 CHAR1),

办公室 CHAR20

电话 CHAR8),

b) (部门号),

CHECK(月工资>=1000 AND 月工资<=8000));

2) 针对人数大于等于2 的部门创建视图D View(Dept, D

num,D Totals,D Avgpay),其中,Dept 为部门号,D num 为部门人数,

D_Totals 为部门人数,D_Avgpay 为平均工资,请在空缺处填入正确

的内容。

Create View D_View(Dept,D_num,D_Totals,D_AvgPay)As

(Select 部门号, (C

from职员

d count(*)>=2 WHERE 部门号IS NOT

NULL):

[问题3](3 分)

对于表2-1、表2-2 所示的“职员”和“部门”关系,请指出下

列各行是否可以插入“职员”关系,为什么?


[问题4](4 分)

原来的“职员”关系模式存在什么问题?在不增加新关系模式的前提

下,请给出修出改后的“职员”和“关系模式”。

试题三(15 分)

阅读以下说明和流程图,从供选择的答案中选出应填入流程图

(n) 处的字句写在答题纸的对应栏内。

[说明]

一个印刷电路板的布线区域可分成n×m 个方格,如图3-1(a)

所示,现在需要确定电路板中给定的两个方格的中心点之间的最短布

线方案。电路只能沿水平或垂直方向布线,如图3-1(b)中虚线所

示。为了避免线路相交,应将已布过线的方格作成封锁标记,其他线

路不允许穿过被封锁的方格。

[图3-1]


设给定印刷电路板的起始方格x 与目的方格y 尚未布线,求这两

个方格间最短布线方案的基本思路是:从起始方格x 开始,先考查距

离起始方格距离为k 的某一个可达方格就是目标方格y 时为止,或者

由于不存在从x 到y 的布线方案而终止。布线区域中的每一个方格与

其相邻的上、下、左、右四个方格之间的距离为1,依次沿下、右、

上、左这四个方向考查,并用一个队列记录可达方格的位置。表3-1

给出了沿这四个方向前进1 步时相对于当前方格的相对偏移量。

[表3-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(与封锁标记相同)。

[表3-2]


符号含义

Grid 全局二维数组Grid[N+2,M+2],表示电路板方

格阵列,初始时数组元素Grid[i,j]r 的值为

-1 表示当前方格可布线,为-9 表示前方格不

可布线。

Offset 一维数组offset[4]:offset[i](0≤i≤3)的

分量为r(行偏移量)和c(列偏移量),按照

表3-1 的内容设置其值。

Startpos、Endpos、

Curpos、T

分别表示起始方格、目标方格、当前方格和临

时方格,其位置用分量度row 和col 确定。

Q.insert(s) 将方格s 的位置信息加入队列。

Q.delete() 删除非空队列的队头元素,并返回该元素。

Q.empty() 若队列Q 为空,则返回 true;否则返回false。

[图3-3]

 




 

·供选择的答案

[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

试题四(15 分)

阅读以下说明和C 程序,将应填入 (n) 处的字句写在答题纸

对应栏内。

[说明]

假设需要将N 个任务分配给N 个工人同时去完成,每个人都能承

担这N 个任务,但费用不同。下面的程序用回溯法计算总费用最小的

一种工作分配方案,在该方案中,为每个人分配1 个不同的任务。

程序中,N 个任务从0 开始依次编号,N 个工人也从0 开始依次

编号,主要的变量说明如下:

c[i][j]:将任务i 分配给工人j 的费用;

task[i]:值为0 表示任务i 未分配,值为j 表示任务i 分配给工

人j;

worker[k]:值为0 表示工人k 未分配任务,值为1 表示工人k 已

分配任务;

mincost:最小总费用。

[C 程序]

#include<stdio.h>

#define N 8 /*N 表示任务数和工人数*/

int c[N];

unsigned int mincost = 65535 /*设置的初始值,大于可能的费用

*/

int task[N],temp[N],worker[N];

void plan(int k,unsigned int cost)

{int i;

if( (1) &&cost<mincost){

mincost = cost;

for(i=0;i<N;i++) temp[i]=task[i]; }

else{

for(i=0;i<N;i++) /*分配任务 k*/

if(worker[i]==0 && (2) ){

worker[i]=1;task[k]= (3) ;

Plan( (4) ,cost+c[k][i]);

(5) ; task[k] = 0;

}/*if*/

}

}/*Plan/*/

void main()

{int i,j;

for(i=o;i<N;i++){/*设置每个人任务由不同工人承担时的费用

及全局数组的初值*/

worker[i]=0;task[i]=0;temp[i]=0;

for(j=0;j<n;j++)

scanf(“%d”,&c[i][j]);

}

Plan(0.0); /*从任务0 开始分配*/

printf(“\n 最小差用=%d\n”,mincost);

for(i=0;i<N;i++)

printf(“task%disassigned to Worker%d\n”,i,temp[i]):

}//*main/*/

 

从下列的3 道试题(试题五至试题七)中任选1 道解答。

如果解答的试题数超过1 道,则题号小的1 道解答有效。

 

试题五(15 分)

阅读以下说明和C++码,将应填入 (n) 处的字名写在答题纸

的对应栏内。

[说明]

某绘图系统存在Point、Line、Square 三种图元,它们具有Shape

接口,图元的类图关系如图5-1 所示。现要将Circle 图元加入此绘

图系统以实现功能扩充。已知某第三方库已经提供了XCircle 不是由

Shape 派生而来,它提供了的接口不被系统直接使用。代码5-1 既使

用了XPircle 又遵循了Shape 规定的接口,即避免了从头开发一个新

的Circle 类,又可以不修改绘图系统中已经定义的接口。代码5-2

根据用户指定的参数生成特定的图元实例,并对之进行显示操作。

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

表所示:

Shape XCircle 功能

display() displayIt() 显示图元



[图5-1]

[代码5-1]

class Cirele:public (1) {

Private:

(2) m_circle:

public:

void display (3)

}

}:

[代码5-2]

class Factory{

public:

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

switch(type){

case 0:returnnewPoint;

case 1:return new Rectangle;

case2:return new Line;

default:return NULL;

}

}

};

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

if(argc !=2){

cout<<“error parameters”<<endl;

return;

}

int type=atoi(argv[1]):

Factory factory;

Shape *s;

S=factory. (5) ;

if(s==NULL){

cout<<“Error get the instance!”<<end;

return;

}

s->display();

(6)

return;

}

试题六(15 分)

阅读以下说明和Java 代码,将应填入 (n) 处的字名写在答题

纸的对应栏内。

[说明]

某绘图系统存在point、Line、Square 三种图元,它们具有Shape

接口,图元的类图关系如图6-1 所示。现要将Circle 图元加入此绘

图系统以实现功能扩充。已知某第三方库已经提供了XCircle 类,且

完全满足系统新增的Circle 图元所需的功能,但XCircle 又遵循了

Shape 规定的接口。既避免了从头开发一个新的Cicle 类,又可以不

修改绘图系统中已经定义的接口,代码6-2 根据用户指定的参数生成

特定的图元实例,并对之进行显示操作。

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

表所示:

Shape XCircle 功能

display() displayit() 显示图元

[图6-1]


public class Factory{

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

Switch(type){

case0:return new point():

case1:return new Rectangle():

case2:return new Line():

case3:return new Circle():

default:return null:

}

}

}:

public class App{

public static void main(String argv[]){

if(argv.length !=1){

System.out.println(“error parameters!”);

return;

}

int type=(new Integer(argv[0])).intValue();

Factory factory=new Factory();

if(s==null){

System.out.println(“Error get instance!”);

return;

}

s.display();

return;

}

}

试题七(15 分钟)

阅读以下说明和Visual Basic 代码,将应填入 (n) 处的字

名写在答题纸的对应栏内。

[说明]

某绘图系统定义了一个抽象类IShape, 现有三个类

CPoint,CLine 和CCircle,它们都具有IShape 界面。相应的类图关系

如图7-1 所示。


已知某第三方库已经提供了XCircle 类,且完全满足CPoint、

Cline 和CCircle,它们都具有IShape 的类模块内容,代码7-2 所示。

已知某第三方库已经提供了XCircle 类,且完全满足CCircle 图

示赤示时所需的功能。代码7-1 是抽象类IShape 的类模块内容,代

码7-2 实现了类CCircle 的IShape 界面,并使用了XCircle 提供的

显示功能。

XCircle 提供的显示功能方法接口为displayIt.

[代码7-1]

Public Color As Long

Sub drao()

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

End Sub

Sub move(stepx As Single,stepy As Single)

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

End Sub

[代码7-2]

(1)

Private color As Long

⋯ ′其他定义省略

Private ridged 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()′使用XCircle 提供的显示功能

6

End Sub

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

⋯′省略描述

End Sub


文章录入:admin    责任编辑:admin 
 
  • 上一篇文章:

  • 下一篇文章:
  • 【字体: 】【发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口

     
    | 设为首页 | 加入收藏 | 联系站长 | 友情链接 | 版权申明 | 管理登录 |