填空题[说明]已知某企业的采购审批是分级进行的,即根据采购金额的不同由不同层次的主管人员来审批,主任可以审批5万元以下(不包括5万元)的采购单,副董事长可以审批5万元至10万元(不包括10万元)的采购单,董事长可以审批10万元至50万元(不包括50万元)的采购单,50万元及以上的采购单就需要开会讨论决定。采用责任链设计模式(ChainofResponsibility)对上述过程进行设计后得到的类图如图5-1所示。[C++代码]#include<string>#include<ioStream>USingnamespacestd;ClassPurchaseRequestpublic:doubleAmount;//一个采购的金额intNumber;//采购单编号stringPurpose;//采购目的;classApprover//审批者类public:Approver()successor=NULL;virtualvoidProcessRequest(PurchaseRequestaRequest)if(successor!=NULL)(successor->(1);)voidSetSuccessor(Approver*aSuccessor)successor=aSuccessor;)private:(2)successor;;classCongress:publicApproverpublic:voidProcessRequest(purchaseRequestaRequest)if(aRequest.Amount>=500000)/*决定是否审批的代码省略*/)else(3)ProcessRequest(aRequest);;ClassDirector:publicApproverpublic:voidProcessRequest(purchaseRequestaRequest)/*此处代码省略*/);ClassPresident:publicApproverpublic:voidProcessRequest(PurchaseRequestaRequest)/*此处代码省略*/;ClassVicePresident:publicApproverpublic:voidProcessRequest(PurchaseRequestaRequest)/*此处代码省略*/);VOidmain()CongresSMeeting;vicePresidentSam;DirectorLarry;PresidentTammy;//构造责任链Meeting.SetSuccessor(NULL);Sam.SetSuccessor((4));Tammy.SetSuccessor((5));Larry.SetSuccessor((6));PurchaseRequestaRequest;//构造一采购审批请求Cin>>aRequest.Amount;//输入采购请求的金额(7).ProcessRequest(aRequest);//开始审批return;
填空题[说明]以下函数完成求表达式的值,请填空使之完成此功能。floatsum(floatx){floats=0.0;intsign=1;{{U}}(1){{/U}};for(inti=1;{{U}}(2){{/U}};i++){t=t*x;s=s+{{U}}(3){{/U}};sign=-sign;{{U}}(4){{/U}};}
填空题[问题2] 如果将关系模式R分解为: R1(A#,B#,E) R2(B#,C,D) 指出关系模式R2的键,并说明该关系模式最高满足第几范式(在1NF~BCNF之内)
填空题[说明] 编写程序,把从键盘上输入的一批整数(以-1作为终止输入的标志)保存到文本文件“a: xxk1. dat”中。 (1) # include <fstream. h > # include < stdlib. h > void main ( ) (2) if ( ! four) cerr < <“文件没有找开!” < <end1; exit (1); int x; cin > >x; while( (3) ) (4) cin> >x; (5)
填空题
阅读下列函数说明和C代码,将应填入{{U}} (n) {{/U}}处的字句写上。 [说明]
若要在N个城市之间建立通信网络,只需要N-1条线路即可。如何以最低的经济代价建设这个网络,是一个网的最小生成树的问题。现要在8个城市间建立通信网络,其问拓扑结构如图5-1所示,边表示城市间通信线路,边上标示的是建立该线路的代价。
[图5-1]
无向图用邻接矩阵存储,元素的值为对应的权值。考虑到邻接矩阵是对称的且对角线上元素均为0,故压缩存储,只存储上三角元素(不包括对角线)。
现用Prim算法生成网络的最小生成树。由网络G=(V,E)构造最小生成树T=(U,TE)的Prim算法的基本思想是:首先从集合V中任取一顶点放入集合U中,然后把所有一个顶点在集合U里、另一个顶点在集合V-U里的边中,找出权值最小的边(u,v),将边加入TE,并将顶点v加入集合U,重复上述操作直到U=V为止。
函数中使用的预定义符号如下: #define MAX 32768
/*无穷大权,表示顶点间不连通*/ #define MAXVEX 30 /*图中顶点数目的最大值*/
typedef struct{ int startVex,stopVex;
/*边的起点和终点*/ float weight;
/*边的权*/ }Edge; typedef struct{
char vexs[MAXVEX]; /*顶点信息*/
float arcs[MAXVEX*(MAXVEX-1)/2];
/*邻接矩阵信息,压缩存储*/ int n;
/*图的顶点个数*/ }Graph; [函数]
void PrimMST(Graph*pGraph, Edge mst[]) {
int i,j,k,min,vx,vy;
float weight,minWeight;
Edge edge;
for(i=0; i<pGraph->n-1;i++){
mst[i].StartVex=0;
mst[i].StopVex=i+1;
mst[i].weight=pGraph->arcs[i];
}
for(i=0;i<{{U}}(1){{/U}};i++){/*共n-1条边*/
minWeight=(float)MAX;
min=i;
/*从所有边(vx,vy)中选出最短的边*/
for(j=i; j<pGraph->n-1; j++){
if(mst[j].weight<minWeight){
minWeight={{U}}(2){{/U}};
min=j;
}
}
/*mst[minl是最短的边(vx,vy),将mst[min]加入最小生成树*/
edge=mst[min];
mst[min]=mst[i];
mst[i]=edge;
vx={{U}} (3) {{/U}};/*vx为刚加入最小生成树的顶点下标*/
/*调整mst[i+1]到mst[n-1]*/
for(j=i+1;j<pGraph->n-1;j++){
vy=mst[j].StopVex;
if({{U}} (4) {{/U}}){/*计算(vx,vy)对应的边在压缩矩阵中的下标*/
k=pGraph->n*vy-vy*(vy+1)/2+vx-vy-1;
}else{
k=pGraph->n*vx-vx*(vx+1)/2+vy-vx-1;
}
weight={{U}} (5) {{/U}};
if(weight<mst[j].weight){
mst[j].weight=weight;
mst[j].StartVex=vx;
}
}
} }
填空题
阅读以下说明和C++代码,将应填入{{U}} (n) {{/U}}处的字句写上。 [说明]
现有一个显示系统,要显示的图形有线Line、矩形Square,抽象出一个Shape类(接口),有方法显不display()。
需要新增图形Circle,又已知有类XXCircle实现了所需要实现的功能:显示displayIt()。为了继承自shape以提供统一接口,又不希望从头开发代码,希望使用XXCircle。这样将XXcircle作为Circle的一个属性,即Circle的对象包含一个XXCircle对象。当一个Circle对象被实例化时,它必须实例化一个相应的XXCircle对象:
Circle对象收到的做任何事的请求都将转发给这个XXCircle对象。通过这种称为Adapter模式,Circle对象就可以通过“让XXCircle做实际工作”来表现自己的行为了。图6-1显示了各个类间的关系。以下是C++语言实现,能够正确编译通过。
[图6-1] [C++代码]
class Shape{ public: {{U}}
(1) {{/U}}void display()=0; }; class Line:public
Shape{//省略具体实现 }; class Square:public
Shape{//省略具体实现 }; class XXCircle{
public: void displayIt(){
//省略具体实现 }
//省略其余方法和属性 }; class Circle:public
Shape{ private: XXCircle *pxc;
public: Circle();
void display(); };
Circle::Circle(){ pxc={{U}} (2) {{/U}};
} void Circle::display() {
pxc->{{U}} (3) {{/U}}; }
class Factory{ public: {{U}}
(4) {{/U}}getshapeInstance(int type){//生成特定类实例
switch(type){
case 1:return new Square;
case 2:return new Line;
case 3 :return new Circle;
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=factory.{{U}} (5) {{/U}};
if(s==NULL){ cout<<"Error get
the instance!"<<endl; return;
} s->display();
delete s; return;
}
填空题[说明]某游戏公司现欲开发一款面向儿童的模拟游戏,该游戏主要模拟现实世界中各种鸭子的发声特征、飞行特征和外观特征。游戏需要模拟的鸭子种类及其特征如表下表所示。为支持将来能够模拟更多种类鸭子的特征,采用策略设计模式(strategy)设计的类图如图5-1所示。其中,Duck为抽象类,描述了抽象的鸭子,而类RubberDuck、MallardDuck、CottonDuck和RedHeadDuck分别描述具体的鸭子种类,方法fly()、quack()和display()分别表示不同种类的鸭子都具有飞行特征、发声特征和外观特征;类FlyBehavior与QuackBehavior为抽象类,分别用于表示抽象的飞行行为与发声行为;类FlyNoWay与FlyWithWings分别描述不能飞行的行为和用翅膀飞行的行为;类Quack、Squeak与QuackNoWay分别描述发出“嘎嘎”声的行为、发出橡皮与空气摩擦声的行为与不发声的行为。请填补以下代码中的空缺。[C++代码]#include<iostream>usingnamespace(1);classFlyBehaviorpublic:(2)fly()=0;;classQuackBehaviorpublic:(3)quack()=0;ClassFlyWithWings:publicF1yBehaviorpublic:voidfly()cout<<"使用翅膀飞行!"<<endl;;classFlyNoWay:publicFlyBehaviorpublic:voidfly()cout<<"不能飞行!">>endl;;classQuack:publicQuackBehaviorpublic:voidquack()cout<<"发出\'嘎嘎'\声!"<<endl;;classSqueak:publicQuackBehaviorpublic:voidquack()cout<<"发出空气与橡皮摩擦声!"<<endl;;classQuackNOWay:publicQuackBehaViorpublic:voidquack()cout<<"不能发声!"<<endl;;C1assDuckprotected:FlyBehavior*(4);QuackBehaVior*(5);public:VOidfly()(6);VOidquack()(7);;virtualvoiddisplay()=0;;classRubberDuck:publicDuckpublic:RubberDuck()flyBehavior=new(8);quackBehavior=new(9);~RubberDuck()if(!flyBehavior)deleteflyBehaVior;if(!quackBehavior)deletequackBehavior;Voiddisplay()/*此处省略显示橡皮鸭的代码*///其他代码省略
填空题阅读以下函数说明和Java代码,[说明]现要编写一个画矩形的程序,目前有两个画图程序:DP1和DP2,DP1用函数draw_a_line(x1,y1,x2,y2)画一条直线,DP2则用drawline(x1,x2,y1,y2)画一条直线。当实例化矩形时,确定使用DPI还是DP2。为了适应变化,包括“不同类型的形状”和“不同类型的画图程序”,将抽象部分与实现部分分离,使它们可以独立地变化。这里,“抽象部分”对应“形状”,“实现部分”对应“画图”,与一般的接口(抽象方法)与具体实现不同。这种应用称为Bridge(桥接)模式。图7-1显示了各个类间的关系。[图7-1]这样,系统始终只处理3个对象:Shape对象、Drawing对象、DP1或DP2对象。以下是JAvA语言实现,能够正确编译通过。[Java代码]//DP1.Java文件publicclassDPIstaticpublicvoiddraw_a_line(doublex1,doubley1,doublex2,doubley2)//省略具体实现//DP2.java文件publicclassDP2staticpublicvoiddrawline(doublex1,doubley1,doublex2,doubley2)//省略具体实现//Drawing.java文件(1)publicclassDrawingabstractpublicvoiddrawLine(doublex1,doubley1,doublex2,doubley2);//V1Drawing.java文件publicclassV1DrawingextendsDrawingpublicvoiddrawLine(doublex1,doubley1,doublex2,doubley2)DP1.draw_a_line(x1,y1,x2,y2);//V2Drawing.java文件publicclassV2DrawingextendsDrawingpublicvoiddrawLine(doublex1,doubley1,doublex2,doubley2)//画一条直线(2);//Shape.java文件abstractpublicclassShapeabstractpublicvoiddraw();private(3)dp;Shape(Drawingdp)_dp=dp;protectedvoiddrawLine(doublex1,doubley1,doublex2,doubley2)(4);//Rectangle.java文件publicclassRectangleextendsShapeprivatedouble_x1,_x2,_y1,_y2;publicRectangle(Drawingdp,doublex1,doubley1,doublex2,doubley2)(5);_x1=x1;_x2=x2;_y1=y1;_y2=y2;publicvoiddraw()//省略具体实现
填空题
若另有表Teach(CName,TName)存储教师任课情况,Tname表示教师名。用SQL创建一个含有学号、姓名、课程名、成绩、任课教师名的“主修专业为计算机CS”的学生成绩视图,并要求进行修改、插入操作时保证该视图只有计算机系的学生。请在SQL语句空缺处填入正确的内容。
CREATE VIEW SG {{U}}(1) {{/U}} SELECT
Student.SNo,SName,Grade,Course.CName,TName FROM
Student,Grade,Teach, WHERE {{U}} (2) {{/U}}
AND {{U}}(3) {{/U}} AND Major='cs',
{{U}} (4) {{/U}};
填空题[问题3] 画出上一问中使用的图书馆程序的层次结构图。
填空题[说明] 编写一个完整的JavaApplet 程序使用复数类Complex 验证两个复数1+2i 和3+4i 相加产生一个新的复数4+6i。 复数类Complex 必须满足如下要求: (1) 复数类Complex 的属性有: RealPart: int 型,代表复数的实数部分 ImaginPart: int 型,代表复数的虚数部分 (2) 复数类Complex 的方法有: Complex():构造函数,将复数的实部和虚部都置0 Complex (intr,inti):构造函数,形参r为实部的初值,i为虚部的初值。 ComplexeomplexAdd (Complexa):将当前复数对象与形参复数对象相加,所得的结果仍是一个复数值,返回给此方法的调用者 String ToString():把当前复数对象的实部、虚部组合成s+ bi 的字符串形式,其中a和b分别为实部和虚部的数据。 importjava. applet. * ; importjava. awt. * ; publicclassabcextends Applet Complex a, b, c; publi cvoid init( ) a = newComplex(1,2); b = newComplex(3,4); c = newComplex(); publievoidpaint (Graphicsg) (1) g. drawstring( “第一个复数:” +a. toString(), 10,50);g. drawstring( “第二个复数:” +b. toString( ), 10,70 );g. drawstring( “两复之和:” +c. toString( ), 10,90); class Complex int RealPart; int ImaginPart; Complex( ) (2) Complex( intr , inti) (3) ComplexeomplexAdd (Complexa) Complextemp = newComplex( ); temp. BealPart = RealPart +a. BealPart; (4) returntemp; public StringtoString( ) return( RealPart + " + " + ImaginPart + " i ");
填空题阅读下列函数说明和C代码,将应填入(n)处的字句写上。[说明]若要在N个城市之间建立通信网络,只需要N-1条线路即可。如何以最低的经济代价建设这个网络,是一个网的最小生成树的问题。现要在8个城市间建立通信网络,其问拓扑结构如图5-1所示,边表示城市间通信线路,边上标示的是建立该线路的代价。[图5-1]无向图用邻接矩阵存储,元素的值为对应的权值。考虑到邻接矩阵是对称的且对角线上元素均为0,故压缩存储,只存储上三角元素(不包括对角线)。现用Prim算法生成网络的最小生成树。由网络G=(V,E)构造最小生成树T=(U,TE)的Prim算法的基本思想是:首先从集合V中任取一顶点放入集合U中,然后把所有一个顶点在集合U里、另一个顶点在集合V-U里的边中,找出权值最小的边(u,v),将边加入TE,并将顶点v加入集合U,重复上述操作直到U=V为止。函数中使用的预定义符号如下:#defineMAX32768/*无穷大权,表示顶点间不连通*/#defineMAXVEX30/*图中顶点数目的最大值*/typedefstructintstartVex,stopVex;/*边的起点和终点*/floatweight;/*边的权*/Edge;typedefstructcharvexs[MAXVEX];/*顶点信息*/floatarcs[MAXVEX*(MAXVEX-1)/2];/*邻接矩阵信息,压缩存储*/intn;/*图的顶点个数*/Graph;[函数]voidPrimMST(Graph*pGraph,Edgemst[])inti,j,k,min,vx,vy;floatweight,minWeight;Edgeedge;for(i=0;i<pGraph->n-1;i++)mst[i].StartVex=0;mst[i].StopVex=i+1;mst[i].weight=pGraph->arcs[i];for(i=0;i<(1);i++)/*共n-1条边*/minWeight=(float)MAX;min=i;/*从所有边(vx,vy)中选出最短的边*/for(j=i;j<pGraph->n-1;j++)if(mst[j].weight<minWeight)minWeight=(2);min=j;/*mst[minl是最短的边(vx,vy),将mst[min]加入最小生成树*/edge=mst[min];mst[min]=mst[i];mst[i]=edge;vx=(3);/*vx为刚加入最小生成树的顶点下标*//*调整mst[i+1]到mst[n-1]*/for(j=i+1;j<pGraph->n-1;j++)vy=mst[j].StopVex;if((4))/*计算(vx,vy)对应的边在压缩矩阵中的下标*/k=pGraph->n*vy-vy*(vy+1)/2+vx-vy-1;elsek=pGraph->n*vx-vx*(vx+1)/2+vy-vx-1;weight=(5);if(weight<mst[j].weight)mst[j].weight=weight;mst[j].StartVex=vx;
填空题 阅读下列说明和E-R图,回答问题1至问题3,将解答填入对应栏内。
[说明] 某学校的教学系统描述如下:
学生信息包括:学号(SNo)、姓名(Sname)、性别(Sex)、年龄(Age)、入学年份(Year)、主修专业(Major),其中学号是入学时唯一编定的。
课程信息包括:课程号(CNo)、课程名称(CName)、学时(Period)、学分(Credit),其中课程号是唯一编定的。
一个学生可选多门课,每个学生选每门课有一个成绩。图2-1是经分析得到的E-R图。
[图2-1]
设基本表:Student(SNo,SName,Sex,Age,Year,Major),Course(CNo,Cname,Period,Credit),Grade(SNo,CNo,Grade)通过如下SQL语句建立,请在SQL语句空缺处填入正确的内容。
CREATE TABLE Student(SNO CHAR(6)NOT NULL,
SName CHAR(20), Sex CHAR(1), Age
INTEGER, Year CHAR(4), Major CHAR(20),
{{U}} (1) {{/U}}); CREATE TABLE
Course(CNo CHAR(6)NOT NULL, CName CHAR(20),
Period INTEGER, Credit INTEGER, {{U}}
(2) {{/U}}); CREATE TABLE Grade(SNo CHAR(6)NOT NULL,
CNo CHAR(6)NOT NULL, Grade REAL,
{{U}} (3) {{/U}}, {{U}} (4) {{/U}},
{{U}} (5) {{/U}});
填空题简述Belady异常。
填空题[说明] 设计一个普通函数distance (Point public: Point(int i, int j) (1) int getx( ) return x; int gety( ) return y; void disp( ) (2) ; float distance( Point (3) return d; void main( ) (4) p1. disp ( ); cout < <“与”; p2. diap( ); cout< <“之间距离=” < <distance (p1,p2) < <end1;
填空题
阅读下列函数说明和C++代码,将应填入{{U}} (n) {{/U}}处的字句写在对应栏内。
[说明]
在一些大型系统中,大多数的功能在初始化时要花费很多时间,如果在启动的时候,所有功能(包括不用的功能)都要全面初始化的话,会导致应用软件要花很多时间才能启动。因此常将程序设计成到了实际要使用某种功能的阶段才初始化该功能。
以下示例展示了Proxy(代理)模式,PrinterProxy类执行一些比较“轻”的方法,需要真正执行“重”的方法时才初始化Print类。图5-1显示了各个类间的关系。
[图5-1] [C++代码]
class Printable{ public: virtual void
setPrinterName(string name)=0; virtual string
getprinterName()=0; virtual void print(string name)=0;
}; class Printer:public Printable{
private: string name; public:
Printer(string name){ cout<<"正在产生Printer的对象实例"<<endl;
this->name=name; } void
setPrinterName(string name){ this->name=name;
} string getPrinterName(){ return name;
} void print(string msg){
cout<<"======="<<name<<"==========="<<endl;
cout<<msg<<endl; } };
class printerproxy :public{{U}} (1) {{/U}}{
private: String name; Printer *real;
public: PrinterProxy(string name){
{{U}} (2) {{/U}}=NULL; this->name=name;
} void setPrinterName(string name){
if({{U}} (3) {{/U}})real->setPrinterName(name);
this->name=name; } string
getPrinterName(){ return name; }
void print(string msg){ {{U}} (4) {{/U}};
real->print(msg); } void
realize(){ if(real==NULL)real={{U}} (5) {{/U}};
} };
填空题[说明]现有一个显示系统,要显示的图形有线Line、矩形Square,抽象出一个Shape类(接口),有方法显示display()。需要新增图形Circle,又已知有类XXCircle实现了所需要实现的功能:显示displayIt()。为了继承自Shape以提供统一接品,又不希望从头开发代码,希望使用XXCircle。这样将XXCircle作为Circle的一个属性,即Circle的对象包含一个XXCircle对象。当一个Circle对象被实例化时,它必须实例化一个相应的XXCircle对象;当Circle对象收到的做任何事的请求都将转发给这个XXCircle对象。通过这种称为Adapter模式,Circle对象就可以通过“让XXCircle做实际工作”来表现自己的行为了。图显示了各个类间的关系。以下是C++语言实现,能够正确编译通过。[C++代码]classShapepublic:______voiddisplay()=0;;classLine:publicShape//省略具体实现;classSquare:publicShape//省略具体实现;classXXCirclepublic:voiddisplayIt()//省略具体实现//省略其余方法和属性;classCircle:publicShapeprivate:XXCircle*pxc;public:Circle();voiddisplay();;Circle∷Circle()pxc=______;voidCircle∷display()pxc->______;classFactorypublic:______getShapeInstance(inttype)//生成特定实例switch(type)case1:returnnewSquare;case2:returnnewLine;case3:returnnewCircle;default:returnNULL;;voidmain(intargc,char*argv[])if(argc!=2)cout<<"errorparameters!"<<end1;return;inttype=atoi(argv[1]);Factoryfactory;Shape*s=factory.______;if(s==NULL)cout<<"Errorgettheinstance!"<<end1;return;s->display();deletes;return;
填空题阅读下列函数说明和C++代码,将应填入(n)处的字句写在对应栏内。[说明]在一些大型系统中,大多数的功能在初始化时要花费很多时间,如果在启动的时候,所有功能(包括不用的功能)都要全面初始化的话,会导致应用软件要花很多时间才能启动。因此常将程序设计成到了实际要使用某种功能的阶段才初始化该功能。以下示例展示了Proxy(代理)模式,PrinterProxy类执行一些比较“轻”的方法,需要真正执行“重”的方法时才初始化Print类。图5-1显示了各个类间的关系。[图5-1][C++代码]classPrintablepublic:virtualvoidsetPrinterName(stringname)=0;virtualstringgetprinterName()=0;virtualvoidprint(stringname)=0;;classPrinter:publicPrintableprivate:stringname;public:Printer(stringname)cout<<"正在产生Printer的对象实例"<<endl;this->name=name;voidsetPrinterName(stringname)this->name=name;stringgetPrinterName()returnname;voidprint(stringmsg)cout<<"======="<<name<<"==========="<<endl;cout<<msg<<endl;;classprinterproxy:public(1)private:Stringname;Printer*real;public:PrinterProxy(stringname)(2)=NULL;this->name=name;voidsetPrinterName(stringname)if((3))real->setPrinterName(name);this->name=name;stringgetPrinterName()returnname;voidprint(stringmsg)(4);real->print(msg);voidrealize()if(real==NULL)real=(5);;
填空题[问题1] 把上面用关系表示的实体,实体与实体之间的联系,用E-R图表示出来,要求在图中表示联系的类型(1:1,L:N,M:N)。
填空题
阅读以下函数说明和Java代码,将应填入{{U}} (n) {{/U}}处的字句写在对应栏内。
[说明]
很多时候,希望某些类只有一个或有限的几个实例,典型解决方案是所谓单身(Singleton)模式。但在多线程情况下,Singleton模式有可能出现问题,需要进行同步检查。如果对“检查singleton对象是否已经创建”进行同步,则存在严重的瓶颈,所有的线程都必须等待检查对象是否存在。解决方式是一种称为Double-Checked-Locking模式,其意图是将非必须的锁定优化掉,同步检查最多只发生一次,因此不会成为瓶颈。以下是Java语言实现,能够正确编译通过。
[Java代码] public class USTax {
private static USTax instance=null; {{U}} (1)
{{/U}}USTax(){} private{{U}} (2) {{/U}}static void
doSync(){ if(instance==null){
System.out.println("实例不存在,创建实例.."); instance={{U}}
(3) {{/U}}; System.out.println("实例创建成功");
}else{ System.out.println("实例已被创建了"); }
} public static USTax getInstance(){
if(instance==null){
System.out.println("实例暂时不存在"); {{U}} (4)
{{/U}};//同步控制 }else{
System.out.println("实例已经存在"); }
return{{U}} (5) {{/U}}; }
}
