问答题[说明]建立一个分数类,使之具有下述功能:建立构造函数,它能防止分母为0,当分数不是最简形式时进行约分以及避免分母为负数。如经过类Num(3,-6)的处理,转换为;经过类Num(8,10)的处理后,转换为。[C++代码]#include<iostream.h>#include<math.h>classNumpublic:Num(inta,intb);private:intnum1;intnum2;:Num::Num(inta,intb)if((1))cout<<"ERROR"<<endl;return;intmin=fabs(a)<fabs(b)?fabs(a):fabs(b);intx=1;for(inti=1;i<=min;i++)if((2))x=i;a/=X;b/=x;if((3))a=-a;b=-b;(4)(5)
问答题
问答题 阅读以下说明,回答问题。
【说明】
某公司要开发一个销售管理系统,该系统的主要功能是:处理客户和销售员送来的订单;工厂是根据订货安排生产的,交出货物同时开出发票,收到客户付款后,根据发票存根进行应收款处理。每张订单由订单号,若干头信息和订单细节组成。一张订单可定购多种产品,工厂对大宗订货给予优惠。每种产品都规定了不同订货数量的折扣。
根据上述要求公司的销售部王经理写下了以下数据表结构: 客户:(客户号,客户名,地址,电话)
订单:(订单号,客户号,产品号,订货数,订货日期,交货日期,金额)
应收账款:(客户号,订单号,发票号,应收金额,支付日期,支付金额,当前余额)
产品描述:(产品号,产品名,单价,重量) 折扣规则:(产品号,订货量,折扣)
问答题某慈善机构欲开发一个募捐系统,已跟踪记录为事业或项目向目标群体进行募捐而组织的集体性活动。该系统的主要功能如下所述。(1)管理志愿者。根据募捐任务给志愿者发送加入邀请、邀请跟进、工作任务;管理志愿者提供的邀请响应、志愿者信息、工作时长、工作结果等。(2)确定募捐需求和收集所募捐赠(资金及物品)。根据需求提出募捐任务、将活动请求和捐赠请求,获取所募集的资金和物品。(3)组织募捐活动。根据活动请求,确定活动时间范围。根据活动时间,搜索场馆,即:想场馆发送场馆可用性请求,获得场馆可用性。然后根据活动时间和地点推广募捐活动,根据相应的活动信息举办活动,从募捐机构获取资金并向其发放赠品。获取和处理捐赠,根据捐赠请求,提供所募集的捐赠;处理与捐赠人之间的交互,即:录入捐赠人信息,处理后存入捐赠人信息表;从捐赠人信息表中查询捐赠人信息,向捐赠人发送募捐请求,并将已联系的捐赠人存入已联系的捐赠人表。根据捐赠请求进行募集,募得捐赠后,将捐赠记录存入捐赠表;对捐赠记录进行处理后,存入已处理捐赠表,向捐赠人发送致谢函,根据已联系的捐赠人和捐赠记录进行跟踪,将捐赠跟进情况发送给捐赠人。先采用结构化方法对募捐系统进行分析与设计,获得如图1、图2、和图3所示分层数据流图。
问答题【程序说明】
定义一个多边形结构:struct polygon实现以下内容:(1)建立该结构的链表:create函数是创建链表,每输入一个结点的数据,就把该结点加入到链表当中,它返回创建的链表的头指针。(2)显示链表的各个结点数据:结点数据包括:多边形顶点数、各顶点的纵横坐标、当多边形顶点数为0时,链表创建结束。(3)编写一个函数disp,删除链表中的所有结点。需要注意的是:要先释放结点数据内存,再删除结点,如果在释放结点数据内存单元之前删除结点,则无法找到结点数据内存单元的地址,也就无法释放数据的内存单元。
【程序】
#include "iostxeam. h"
#include "iomanip. h"
stmct polygon
{
int n;
int *x;
int *y;
polygon *next;
};
void Push(polygon*
newNode = new polygon;
newNode->next={{U}} (1) {{/U}};
newNode->x = new int[n];
newNode->y = new int[n];
newNode->n={{U}} (2) {{/U}};
for(int i=0; i<={{U}} (3) {{/U}}; i++) {
cout<<"请输入多边形各顶点x、y坐标, 坐标值之间用空格分隔: ";
cin>>newNode->x[i]>>newNode->y[i];
}
{{U}} (4) {{/U}}= head; //在head前不需要额外的*
head = newNode;
}
polygon *create()
{
polygon* head = NULL;
polygon* tail;
int n;
cout<<"请输入多边形顶点的个数(顶点个数为0时结束): ";
cin>>n;
if(n==O) return{{U}} (5) {{/U}};
Push(head,{{U}} (6) {{/U}});
tail = head;
cout<<"请输入多边形顶点的个数(顶点个数为0时结束): ";
cin>>n;
while(n!=0)
{
Push(tail->next,{{U}} (7) {{/U}}); // 在tail->next增加结点
tail = tail->next; //advance tail to point to last node
cout<<"请输入多边形顶点的个数(顶点个数为0时结束): ";
cin>>n;
}
remm head;
}
void disp(polygon *head)
{
inti, No=l;
eout<<setw( 10)<<"x"<<setw(6)<<"y"<<endl;
while(head !=NULL)
{
cout<<"第"<<No<<"结点: "<<endl;
for(i=0;i<=head->n-1;i++)
cout<<setw(10)<<head->x [i] <<setw(6)<<head->y[i]<<endl;
{{U}} (8) {{/U}};
he ad={{U}} (9) {{/U}};
}//Match while statement
}
void del(polygon *head)
{
polygon *p;
while(head!=NIILL
{
p={{U}} (10) {{/U}};
head=head->next;
delete p->x;
delete p->y;
delete p;
}//Match while statement
void main()
{
polygon *head;
head=create();
disp(head);
del(head);
}
问答题请补充函数fun(),该函数的功能是将字符串tt中的大写字母都改为对应的小写字母,其他字符不变。例如,若输入“Are you come from Sichuan?”,则输入“are you come from si- chuan?”。
注意:部分源程序给出如下。
请勿改动主函数main和其他函数中的任何内容,仅在函数fun()的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
#include<stnng.h>
#include<conlo.h>
char *fun(char tt[])
{
int i;
for(i=0; tt[i];i++)
{
if((tt[i]>='A')&&( {{U}}(1) {{/U}}))
{{U}} (2) {{/U}};
}
return({{U}} (3) {{/U}});
}
main()
{
charn[81];
printf("/nPlease enter a string:");
gets(tt);
printf("/nThe result string is:/n%s",fun(tt));
}
问答题[说明]研究生招生系统旨在用计算机对学校的研究生招生事务进行管理。研究生招生可分为报名阶段、考试阶段和录取阶段。招生报考前,招生处要进行考前准备工作,如统计招生导师、考试科目以及制定报考专业标准代码等。招生导师信息包括导师的姓名、性别、年龄、出生年月、所从事专业和研究方向以及所在系别。考试科目包含科目代码、科目的名称以及报考本科目的考试人数。在报名阶段,考生向招生处提交报名数据表,研究生系统根据考生的报考数据确定考生准考生号,并通知考生考试日期。在考试阶段,考试结束后,考生成绩录入研究生招生系统,考生可以从研究生招生系统中获取自己的考试成绩。在录取阶段,研究生招生系统根据考生的报考数据、考试成绩、外校调剂考生信息以及往年保留资格记录文件,确定录取数据,并形成录取文件。系统统计并记录相关招生信息,以供查询。对被录取的考生发放录取通知书,对需要保留资格的考生记录其信息,以供下年度招生使用。招生处可以从研究生招生系统中获得录取数据和招生情况的统计信息,以供咨询。数据流图11-1为研究生招生系统顶层图,数据流图11-2为研究生招生系统第0层DFD图,数据流图11-3为加工3的细化图。[数据流图11-1][数据流图11-2][数据流图11-3]1.[问题1]数据流图11-2中有3条数据流,请根据说明中的术语给出这三条数据流名称,并指出起点和终点。
问答题某电视台拟开发一套信息管理系统,以方便对全台的员工、栏目、广告和演播厅等进行管理。[需求分析]系统需要维护全台员工的详细信息、栏目信息、广告信息和演播厅信息等。员工的信息主要包括:工号、姓名、性别、出生日期、电话、住址等。栏目信息主要包括:栏目名称、播出时间、时长的呢过。广告信息主要包括:广告编号、价格等。演播厅信息包括:房间号、房间面积等。电视台分局调度单来协调各档栏目、演播厅和场务。一销售档栏目只会占用一个演播厅,但会使用多名场务来进行演出协调。演播厅和场务可以被多个栏目循环使用。电视台根据栏目来插播广告。每档栏目可以插播多条广告,每条广告也可以在多档栏目插播。一档栏目可以有多个主持人,但一名支持人只能支持一档栏目。一名编辑人员可以编辑多条广告,一条广告只能由一名编辑人员编辑。[概念模型设计]根据需求阶段收集的信息设计的实体联系图(不完整)如图所示。[逻辑结构设计]根据概念模型设计阶段完成的实体联系图,得出如下关系模式(不完整):演播厅(房间号,房间面积)栏目(栏目名称,播出时间,时长)广告(广告编号,销售价格,______)员工(工号,姓名,性别,出生日期,电话,住址)主持人(主持人工号,______)插播单(______,播出时间)调度单(______)
问答题[说明]已知某企业欲开发一家用电器遥控系统,即用户使用一个遥控器即可控制某些家用电器的开与关。遥控器面板如图1-18所示。该遥控器共有4个按钮,编号分别是0至3,按钮0和2能够遥控打开电器1和电器2,按钮1和3则能遥控关闭电器1和电器2。由于遥控系统需要支持形式多样的电器,因此,该系统的设计要求具有较高的扩展性。现假设需要控制客厅电视和卧室电灯,对该遥控系统进行设计所得类图如图1-19所示。在图1-19中,类RomoteController的方法onPressButton(intbutton)表示当遥控器按键按下时调用的方法,参数为按键的编号;Command接口中on和off方法分别用于控制电器的开与关;Light中turnLight(intdegree)方法用于调整电灯灯光的强弱,参数degree值为0时表示关灯,值为100时表示开灯并且将灯光亮度调整到最大;TV中setChannel(intchannel)方法表示设置电视播放的频道,参数channel值为0时表示关闭电视,为1时表示开机并将频道切换为第1频道。[Java代码]本试题应用命令模式能够有效让类{{U}}(5){{/U}}和类{{U}}(6){{/U}}、类{{U}}(7){{/U}}之间的耦合性降至最小。
问答题[说明]
以下C++代码使用虚函数实现了同一基类shape派生出来的Class rectangle、Class triangle、Class circle实现了计算矩形、圆形面积的计算。仔细阅读以下代码,将{{U}} (n) {{/U}}处语句补充完整。
[代码5-1]
#include<iostream.h>
#define PI 3.14159
class shape {//基类
protected:
{{U}}(1) {{/U}};
public:
{{U}} (2) {{/U}};
{{U}} (3) {{/U}};
};
[代码5-2]
class rectangle: public shape {
public:
rectangle (int x2,int y2,int r2): {{U}}(4) {{/U}}{};
double area ( ) {return x*y; };
};
class circle: public shape {
public:
circle (int x3,int y3,int r3): {{U}}(5) {{/U}}{};
double area ( ) {return r*r*PI; };
};
[代码5-3]
void main ( )
{
rectangle r (10,20,0);
circle c (0,0,30);
shape {{U}}(6) {{/U}};
cout<<"长方形面积="<<s1->area ( ) <<endl;
cout<<"圆形面积="<<s2->area ( ) <<endl;
}
[运行结果]
长方形面积=200
圆形面积=2827.43
问答题【说明】StringEditor类的功能是:已知一个字符串,返回将字符串中的非字母字符都删除后的字符串。 public (1) public static String removeNonLetters( (2) ) StringBuffer aBuffer= (3) ; char aCharacter; for(int i=0; i<original.length();i++) aCharacter= (4) ; if(Character.isLetter(aCharacter)) aBuffer.append( (5) ); return new String(aBuffer); public class StringEditorTester public static void main(String args[]) String original="Hi!, My Name is Mark, 234I think you are my classmate?!!"; System.out.println(StringEditor.removeNonLetters(original));
问答题【说明】下面是一个Applet程序,其功能是将完整的图像显示于Applet的区块中,然后可以通过拖动鼠标让图像随着鼠标拖动的轨迹而移动。程序运行结果如图5所示。importjava.applet.*;importjava.awt.*;/*<appletcode="ex4_7.class",width=800height=400></applet>*/publicclassex4_7extendsAppletprivate|mageilmg;privateintxPos,yPos;publicvoidinit()xPos=yPos=(1);ilmg=getlmage((2)"ex4_7.jpg");publicvoidpaint(Graphicsg)g.drawlmage(ilmg,xPos,yPos,(3));publicboolean(4)(Evente,intx,inty)xPos=x;yPos=y;(5);returntrue;ex4_7.html<HTML><HEAD><TITLE>ex4_7</TITLE></HEAD><BODY><appletcode="ex4_7.class"width=800height=400></applet></BODY></HTML>
问答题【说明】 关于一位花商有以下一些事实。 (1)销售在不同地区生长的花,这些地区一年的最低气温在一定范围内变化。 (2)想用编号来表示发货类型。 (3)要出售某些类型的花。 假定已经通过SQL语句建立了基本表: CREATE TABLE Zone(ID CHAR(2) PRIMARY KEY, LowerTemp NUMERIC(3), UpperTemp NUMERIC(3)); CREATE TABLE Delivery(ID CHAR (2) PRIMARY KEY, Category CHAR(5), DelSize NUMERIC(5,3)); CREATE TABLE FlowerInfo(ID CHAR (3), ComName CHAR(25), LatName CHAR(30), Czone NUMERIC(3), Hzone NUMERIC(3), Delivered NUMERIC(3), SunNeed CHAR(3), PRIMARY KEY(ID)); 地区(ID,最高温度,最低温度) 发货(ID,发货类型,发货规格) 花的信息(ID,普通名,拉丁名,花能够生长的最冷地区,花能够生长的最热地区,发货类型,日光需求)
问答题[说明] 某旅馆的电话服务如下:可以拨分机号和外线号码。分机号是从7201至7299。外线号码先拨9,然后是市话号码或长话号码。长话号码是以区号和市话号码组成。区号是从100到300中任意的数字串。市话号码是以局号和分局号组成。局号可以是455,466,888,552中任意一个号码。分局号是任意长度为4的数字串。要求:写出在数据字典中,电话号码的数据条目的定义(即组成)。
问答题
问答题【问题2】
不考虑数据确认处理(加工2),请指出数据流图中存在的错误。
问答题【问题2】 请从表10-2中选择方法,完成图10-5中的(7)~(10)。{{B}} 表10-2 可选消息列表{{/B}}
功 能 描 述
方 法 名
向促销订单中添加所选的商品
buyCommodities
向促销中添加要促销的商品
addCommodities
查找某个促销的所有促销订单信息列表
getPromotionOrders
生成商品信息
createCommodity
查找某个分类中某商家的所有商品信息列表
getCommodities
生成促销信息
createPromotion
生成促销订单信息
createPOrder
查找某个分类的所有促销信息列表
getCategoryPromotion
查找某商家所销售的所有分类列表
getCategories
查找某个促销所涉及的所有商品信息列表
getPromtionCommodities
问答题【说明】设有关于银行借贷管理系统的E-R图。图中矩形表示实体,圆表示属性,双圆表示关键字属性,菱形表示实体间的联系。为了答题的方便,图中的实体和属性同时给出了中英文说明,回答问题时只需写出英文名即可。1.【问题1】根据E-R图中给出的词汇,按照“有关模式名(属性1,属性2,…)”的格式,将此E-R图转换为关系模式,并指出每个关系模式中的主码和外码,其中模式名根据需要取实体名或联系名。要求其中的关系模式至少属于第三范式。
问答题[说明]下面是某公司开发的电梯管理系统,系统功能如下:1.响应用户召唤指令。当用户需要电梯时可以通过按楼层面板召唤。2.进入电梯后,乘客可以通过电梯面板选择目的楼层。3.当电梯到达调度楼层后,判断是否响应停止运行,开启电梯门,完成调度。4.当电梯到达非调度楼层时,不作响应,继续运行。5.乘客在电梯中能够知道电梯的运动状态,如运动方向、电梯运行到的楼层等。6.电梯超载报警。系统采用面向对象方法进行开发。在开发过程中某设计室设计的电梯管理系统用例如表9-4所示。电梯管理系统用例图如图9-4所示。表9-4系统用例说明{{/B}}用例名称描述 电梯召唤 当用户需要使用电梯时,通过按楼层面板通知电梯管理系统 目的地请求 进入电梯后,乘客可以通过电梯面板选择目的楼层 电梯到达调度楼层 当电梯到达调度楼层后,判断是否响应,如果响应则停止运行,开户电梯门,完成调度,否则继续运行 电梯到达非调度楼层 当电梯到达非调度楼层时,不作响应,继续运行 电梯就绪 电梯不处于忙状态,但符合运行要求,随时可以召唤 电梯超载 电梯所载重量超过额定载荷,给出报警信号,停止运行 电梯不超载 电梯所载重量没有超过额定载荷,可以正常运行根据说明,回答下面问题:1.[问题1]仔细分析系统的用例说明和用例图,从功能要求角度来看,该系统的用例并不完善。请根据功能要求补充至少两个用例,并作简单说明。
问答题[说明]已知某企业欲开发一家用电器遥控系统,即用户使用一个遥控器即可控制某些家用电器的开与关。遥控器面板如图1-16所示。该遥控器共有4个按钮,编号分别是0至3,按钮0和2能够遥控打开电器1和电器2,按钮1和3则能遥控关闭电器1和电器2。由于遥控系统需要支持形式多样的电器,因此,该系统的设计要求具有较高的扩展性。现假设需要控制客厅电视和卧室电灯,对该遥控系统进行设计所得类图如图1-17所示。在图1-17中,类RomoteController的方法onPressButton(intbutton)表示当遥控器按键按下时调用的方法,参数为按键的编号;Command接口中on和off方法分别用于控制电器的开与关;Light中turnLight(intdegree)方法用于调整电灯灯光的强弱,参数degree值为0时表示关灯,值为100时表示开灯并且将灯光亮度调整到最大;TV中setChannel(intchannel)方法表示设置电视播放的频道,参数channel值为0时表示关闭电视,为1时表示开机并将频道切换为第1频道。[C++代码]本试题应用命令模式能够有效让类{{U}}(5){{/U}}和类{{U}}(6){{/U}}、类{{U}}(7){{/U}}之间的耦合性降至最小。
