软件水平考试(中级)软件设计师下午(应用技术)试题模拟试卷14
-
【说明】
下面是一个Applet程序,其功能是建立2个文本区域,一个为编辑区,一个为只读区;建立2个按钮,一个实现将编辑区中被鼠标选定的文本内容拷贝到只读区中,一个实现将只读区的全部文本内容清空。
程序运行结果如图3所示。
import java.awt.*;
import java.applet.*;
/*
<applet code="ex3_6.class" width=800 height=400>
</applet>
*/
public class ex3_6 extends Applet{
private Button okBtn,clearBtn;
private String strMessage;
private TextArea tArea1,tArea2;
public void init(){
strMessage="Hello! Welcome to the test! \n"+"Wish you good luck!";
tArea1=new TextArea(10,25);
(1);
tArea2=new TextArea(10,25);
(2);
OkBtn;new Button("Copy");
dearBtn=(3);
add(tArea1);
add(tArea2);
add(okBtn);
add( clearBtn);
}
public boolean action( Event e,Object o){
if(e.target==okBtn)
tArea2,setText((4));
else if(e.target==clearBtn)
(5);
return true;
}
}
ex3_6.htm|
<HTML>
<HEAD>
<TITLE>ex3_6</TITLE>
</HEAD>
<BODY>
<appletcode="ex3_6.class" Width=800 height=400 >
</applet>
</BODY>
</HTML>
-
【说明】
①定义类Table的私有数据成员x和y,分别用于表示九九表中的两个乘数(x*y),它们都是int型的数据。
②完成类Table的成员函数print()的定义,该函数以“x*y=z”的格式打印出九九表中的一个乘法算式,请使用格式化输出函数printf实现。
③完成类Table9的成员函数print()的定义,该函数调用基类Table的print()函数,将九九表输出到屏幕。
④补充主函数,在屏幕上输出九九表,以便测试所定义的类的正确性。
源程序文件test8_3.cpp清单如下:
#include <iostream, h >
#include < stdio, h >
class Table
}
(1)
int z;
public:
void print (int x,int y,int z);
};
void Table::print (int x,int y,int z)
{
(2)
}
Class Table9:public Table
{
public:
void print();
};
void Table9::print()
{
(3)
int x,y,z;
for(i=1;i<10;i++)
{
for(j=1;j<i+1;j++)
{
x=i;
y=j;
z=i*j;
Table::print(y,x,z);
}
printf("\n");
}
}
main()
{
//* *4* *
return 0;
}
-
下列给定程序中,函数fun()的功能是:对N名学生的学习成绩,按从高到低的顺序找出前m(m≤10)名学生来,并将这些学生数据存放在一个动态分配的连续存储区中,此存储区的首地址作为函数值返回。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
#include<malloc.h>
#include<string.h>
#include<conio.h>
#define N 10
typedef struct ss
{
char num[10];
int order;
}STU;
STU*fun(STU a[],int m)
{
STU b[N],*tt;
int i,j,k;
(1);
for(i=0;i<N;i++)
b[i]=a[i];
for(k=0;k<m;k++)
{
for(i=j=0;i<N;i++)
if((2))
j=i;
tt[k]=b[j];
b[j].order=0;
}
return (3);
}
outresult(STU a[],FILE*pf)
{
int i;
for(i=0;i<N;i++)
fprintf(pf,"No=%s Mark=%d\n" ,a[i].num,a[i].order);
fprintf(pf,"\n\n");
}
main()
{
STU[N]={{"A01",80},{"A02",79},
{"A03",66},{"A04",82},{"A05",87},
{"A06",93},{"A07",78},{"A08",60},
{"A09",85},{"A10",73}};
STU * p_order;
int i,m;
clrscr();
printf("* * * The Origial data * * *\n");
outresult(a,stdout);
printf("\nGive the numeber of the students who have better score:");
scanf("%d",&m);
while(m>10)
{
printf("\nGive the number of the studets who have better score:");
scanf("%d",&m);
}
p_order=fun(a,m);
printf("* * *THE RESULT* * *\n");
printf("* * * The top students * * *\n");
for(i=0;i<m;i++)
printf("%s %d\n",p_order[i].num,p_order[i].order);
free(p_order);
}
-
根据题意回答以下问题:
设某商业集团数据库中有3个实体集:一是“商店”实体集,属性有商店编号,商店名,地址等;二是“商品”实体集,属性有商品号,商品名,规格,单价等;三是“职工”实体集,属性有职工编号,姓名,性别,业绩等。商店与商品间存在“销售”联系,每个商店可以销售多种商品,每种商品也可以在多个商店和职工间存在“聘用”联系,每个商店有许多职工,每个职工只能在一个商店工作,商店聘用职工有聘期和月薪。
问题:
1.请根据题意完善下面ER图。
2.将ER图转换成关系模型,并注明主键和外键。
3.请写出要查出员工“小李”在三月份的销售业绩的关系代数式。
-
阅读以下说明和流程图(如图3所示),回答问题1和问题2。
【说明】
本流程图实现从成绩文件生成学生成绩一览表。
某中学某年级的学生成绩数据(分数)登录在成绩文件10中,其记录格式见表2:
由该成绩文件生成见表3的学生成绩一览表。生成的学生成绩一览表按学号升序排列。表中的名次是指该生相应课程在年级中的名次。
流程图中的顺序文件F0是学生成绩文件,F0文件经处理1处理后产生顺序文件F,然后经过处理2至处理4对文件F进行处理和更新。在处理5中,仅对文件F的纪录进行学生成绩一览表的编排输出,不进行排序和增加名次等处理。
流程图中文件F的纪录格式设定为见表4形式:
其中的①、②应定义为何种数据项?
-
简述处理2、处理3和处理4作何种处理,若有排序处理则需指明排序的键及序(升序或降序)。
-
阅读下列说明、图1和图2,回答问题1、问题2和问题3。
【说明】
下面是某租车信息管理系统的介绍:该车库中备有若干车辆,每辆车有车号、车牌、车名、价格等属性。车库不定期地购买并注册新车供用户借用,也可将报废的旧车注销以停止租用。
车库可为众多用户提供服务。每个用户在借车之前需注册姓名、地址等内容。每个用户最多可同时借3辆车。每辆车借期7天;若有一辆车超期,则不可再借其他车。一辆车超期一天罚款250元。若一辆车超期3周不归还,则发布通告。若用户借的车丢失,在罚款处理之前不能借车,每辆报失的车罚款该车目前市价(包括折旧)的1.2倍。注册新用户不受限制;而注销用户之前,该用户必须归还所有借的车,或者报失并接受罚款。
分析车辆的状态和事件,指出图1中的(1)、(2)、(3)、(4)分别是什么?
-
指出UML中活动图的含义,并说明活动图和状态图的区别与联系。
-
分析用户的状态和事件,指出图2中的(5)、(6)、(7)、(8)分别是什么?(注意,用户与车辆在状态图中的关系)。