JAVA作业参考答案.docx

上传人:b****8 文档编号:9322221 上传时间:2023-05-18 格式:DOCX 页数:28 大小:21.02KB
下载 相关 举报
JAVA作业参考答案.docx_第1页
第1页 / 共28页
JAVA作业参考答案.docx_第2页
第2页 / 共28页
JAVA作业参考答案.docx_第3页
第3页 / 共28页
JAVA作业参考答案.docx_第4页
第4页 / 共28页
JAVA作业参考答案.docx_第5页
第5页 / 共28页
JAVA作业参考答案.docx_第6页
第6页 / 共28页
JAVA作业参考答案.docx_第7页
第7页 / 共28页
JAVA作业参考答案.docx_第8页
第8页 / 共28页
JAVA作业参考答案.docx_第9页
第9页 / 共28页
JAVA作业参考答案.docx_第10页
第10页 / 共28页
JAVA作业参考答案.docx_第11页
第11页 / 共28页
JAVA作业参考答案.docx_第12页
第12页 / 共28页
JAVA作业参考答案.docx_第13页
第13页 / 共28页
JAVA作业参考答案.docx_第14页
第14页 / 共28页
JAVA作业参考答案.docx_第15页
第15页 / 共28页
JAVA作业参考答案.docx_第16页
第16页 / 共28页
JAVA作业参考答案.docx_第17页
第17页 / 共28页
JAVA作业参考答案.docx_第18页
第18页 / 共28页
JAVA作业参考答案.docx_第19页
第19页 / 共28页
JAVA作业参考答案.docx_第20页
第20页 / 共28页
亲,该文档总共28页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

JAVA作业参考答案.docx

《JAVA作业参考答案.docx》由会员分享,可在线阅读,更多相关《JAVA作业参考答案.docx(28页珍藏版)》请在冰点文库上搜索。

JAVA作业参考答案.docx

JAVA作业参考答案

JAVA作业参考答案

5-12根据下面的要求编程实现复数类ComplexNumber.

(1)复数类ComplexNumber的属性

m_dRealPart:

实部,代表复数的实数部分。

m_dImaginPart:

虚部,代表复数的虚数部分。

(2)复数类ComplexNumber的方法

ComplexNumber():

构造函数,将实部,虚部都置为0。

ComplexNumber(doubler,doublei):

构造函数,创建复数对象的同时完成复数的初始化。

getRealPart():

获得复数对象的实部。

getImaginaryPart():

获得复数对象的虚部。

setRealPart(doubled):

把当前复数对象的实部设置为给定的形参的数字。

setImaginaryPart(doubled):

把当前复数对象的虚部设置为给定的形参的数字。

complexAdd(ComplexNumberc):

当前复数对象与形参复数对象相加,所得的结果也是复数值,返回给此方法的调动者。

complexAdd(doublec):

当前复数对象与形参实数对象相加,所得的结果仍是复数值,返回给此方法的调动者。

complexMinus(ComplexNumberc):

当前复数对象与形参复数对象相减,所得的结果也是复数值,返回给此方法的调动者。

complexMinus(doublec):

当前复数对象与形参实数对象相减,所得的结果仍是复数值,返回给此方法的调动者。

complexMulti(ComplexNumberc):

当前复数对象与形参复数对象相乘,所得的结果也是复数值,返回给此方法的调动者。

complexMulti(doublec):

当前复数对象与形参实数对象相乘,所得的结果仍是复数值,返回给此方法的调动者。

toString():

把当前复数对象的实部,虚部组合成a+bi的字符串形式,其中a和b分别为实部和虚部数据。

classComplexNumber

{privatedoublem_dRealPart;

privatedoublem_dImaginPart;

ComplexNumber()

{m_dRealPart=0;

m_dImaginPart=0;

}

ComplexNumber(doubler,doublei)

{m_dRealPart=r;

m_dImaginPart=i;

}

doublegetRealPart()

{returnm_dRealPart;}

doublegetImaginaryPart()

{returnm_dImaginPart;}

voidsetRealPart(doubled)

{m_dRealPart=d;}

voidsetImaginaryPart(doubled)

{m_dImaginPart=d;}

ComplexNumbercomplexAdd(ComplexNumberc)

{m_dRealPart+=c.m_dRealPart;

m_dImaginPart+=c.m_dImaginPart;

returnthis;

}

ComplexNumbercomplexAdd(doublec)

{m_dRealPart+=c;

returnthis;

}

ComplexNumbercomplexMinus(ComplexNumberc)

{m_dRealPart-=c.m_dRealPart;

m_dImaginPart-=c.m_dImaginPart;

returnthis;

}

ComplexNumbercomplexMinus(doublec)

{m_dRealPart-=c;

returnthis;

}

ComplexNumbercomplexMulti(ComplexNumberc)

{ComplexNumbertemp=newComplexNumber();

temp.m_dRealPart=m_dRealPart*c.m_dRealPart-_dImaginPart*c.m_dImaginPart;

temp.m_dImaginPart=m_dImaginPart*c.m_dRealPart+m_dRealPart*c.m_dImaginPart;

m_dRealPart=temp.m_dRealPart;

m_dImaginPart=temp.m_dImaginPart;

returnthis;

}

ComplexNumbercomplexMulti(doublec)

{m_dRealPart*=c;

m_dImaginPart*=c;

returnthis;

}

StringToString()

{if(m_dImaginPart>0)

return""+m_dRealPart+"+"+m_dImaginPart+"i";

else

{if(m_dImaginPart==0)

return""+m_dRealPart;

else

return""+m_dRealPart+m_dImaginPart+"i";

}

}

}

上面的补充中使用了面向对象中的哪些技术?

使用这样的技术有什么好处?

答:

使用了面向对象中的技术为多态和信息隐藏.使用多态的好处:

一个程序中同名的不同方法可以共存,是使用重载的方式来实现多态的.而使用信息隐藏的好处:

防止数据的非法访问.

6-8编写一个Applet程序,接受HTML文件传递的整数参数,根据该参数指定Applet中文本框的长度.编写对应的HTML文件运行这个Applet.

importjava.awt.*;

importjava.awt.event.*;

publicclassAcceptParaextendsApplet

{Strings="";

privateintx;

Labelresult=newLabel("pleaseinputainteger:

");

TextFieldinput;

publicvoidinit()

{s=getParameter("vstring");

x=Integer.parseInt(getParameter("s"));

input=newTextField(x);

add(input);

}

}

code="AcceptPara.class"

width="500"

height="300"

>

6-11编程求一个整数数组的最大值,最小值,平均值和所有数组元素的和.

importjava.io.*;

publicclassIntegerArray

{publicstaticvoidmain(Stringarg[])

{intmaxValue=0,minValue=0,sum=0;

inti,n=10;

doubleaverage=0;

System.out.print("Pleaseinputthenumberoftheintarray:

");

try

{do

{BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));

n=Integer.parseInt(br.readLine());

if(n<2)

System.out.print("error,pleaseinputagain:

");

}while(n<2);

}catch(IOExceptione){}

intarray[]=newint[n];

System.out.println("Pleaseinputthevaluesofarray:

");

for(intj=0;j

{try

{BufferedReaderbr=newBufferedReader(newInputStreamReader(System.in));

i=Integer.parseInt(br.readLine());

if(j==0)

{maxValue=i;

minValue=i;

sum=i;

}

else

{if(maxValue

maxValue=i;

if(minValue>i)

minValue=i;

sum+=i;

}

}catch(IOExceptione){}

}

average=(double)sum/n;

System.out.println("themaxvalueis"+maxValue);

System.out.println("theminvalueis"+minValue);

System.out.println("theaveragevalueis"+average);

System.out.println("thesumis"+sum);

}

}

6-13编写Applet程序创建200电话卡的对象.程序自动生成200电话卡的卡号,由用户输入密码(输入密码的文本框应用’*’字符屏蔽)和金额,接入号码和附加费固定为”200”和”0.1”.每创建200电话卡对象后,就输入它的有关信息.程序可以创建任意个数的对象,把他们按照金额升序排列在一个向量对象中.

importjava.applet.*;

importjava.awt.*;

importjava.awt.event.*;

importjava.util.*;

publicclassCreat200CardextendsAppletimplementsActionListener

{VectorD200CardVector;

Labelpromptpw,promptbalance;

TextFieldinput1,input2;

TextAreaoutput1,output2;

ButtonSureBtn;

inti=0;

intj=0;

intk=0;

publicvoidinit()

{D200CardVector=newVector(5,1);

promptpw=newLabel("密码:

");

promptbalance=newLabel("余额:

");

input1=newTextField(10);

input2=newTextField(6);

output1=newTextArea(20,30);

output2=newTextArea(20,30);

SureBtn=newButton("确定");

add(promptpw);

add(input1);

add(promptbalance);

add(input2);

add(SureBtn);

add(output1);

add(output2);

SureBtn.addActionListener(this);

}

publicvoidpaint(Graphicsg)

{longCardNum=20030423;

intpaword;

doublebalan;

StringconnectNum;

booleanconted;

paword=Integer.parseInt(input1.getText());

balan=Double.valueOf(input2.getText()).doubleValue();

D200_CardmyCard=newD200_Card(CardNum+i++,paword,balan,"200",0.1);

output1.append(myCard.toString());

if(j==1)

D200CardVector.insertElementAt(myCard,0);

for(k=0;k

{if(((D200_Card)D200CardVector.elementAt(k)).balance<=balan)

{D200CardVector.insertElementAt(myCard,k);

break;

}

}

if(k==j-1)

D200CardVector.insertElementAt(myCard,k);

output2.setText("");

for(k=0;k

{output2.append(((D200_Card)D200CardVector.elementAt(k)).toString());

}

}

publicvoidactionPerformed(ActionEvente)

{input1.setEchoChar('*');

input1.selectAll();

j++;

repaint();

}

}

abstractclassPhoneCard

{doublebalance;

abstractbooleanperformDial();

doublegetBalance()

{returnbalance;}

}

abstractclassNumber_PhoneCardextendsPhoneCard

{longcardNumber;

intpassword;

StringconnectNumber;

booleanconnected;

Number_PhoneCard()

{

}

Number_PhoneCard(longcn)

{this();

cardNumber=cn;

}

Number_PhoneCard(longcn,intpw)

{this(cn);

password=pw;

}

Number_PhoneCard(longcn,intpw,doubleb)

{this(cn,pw);

balance=b;

}

Number_PhoneCard(longcn,intpw,doubleb,Stringc)

{this(cn,pw,b);

connectNumber=c;

}

booleanperformConnection(longcn,intpw)

{if(cn==cardNumber&&pw==password)

{connected=true;

returntrue;

}

else

returnfalse;

}

}

classD200_CardextendsNumber_PhoneCard

{doubleadditoryFee;

D200_Card(longcn,intpw,doublea)

{super(cn,pw);

additoryFee=a;

}

D200_Card(longcn,intpw,doubleb,doublea)

{super(cn,pw,b);

additoryFee=a;

}

D200_Card(longcn,intpw,doubleb,Stringc,doublea)

{super(cn,pw,b,c);

additoryFee=a;

}

booleanperformDial()

{if(!

connected)

returnfalse;

if(balance>(0.5+additoryFee))

{balance-=(0.5+additoryFee);

returntrue;

}

else

returnfalse;

}

booleanperformDial(longcn,intpass)

{if(performConnection(cn,pass))

returnperformDial();

else

returnfalse;

}

doublegetBalance()

{if(connected)

returnbalance;

else

return-1;

}

publicStringtoString()

{return("电话卡接入号码:

"+connectNumber+"\n电话卡卡号:

"

+cardNumber+"\n电话卡密码:

"+password+"\n剩余金额:

"+balance

+"\n通话附加费:

"+additoryFee+"\n\n");

}

}

6-14在6-13题的基础上增加查找功能,用户输入一个卡号,程序输出对应电话卡的金额.如果找不到,则输出相应的提示信息.

importjava.applet.*;

importjava.awt.*;

importjava.awt.event.*;

importjava.util.*;

publicclassSelectCardextendsAppletimplementsActionListener

{VectorD200CardVector;

Labelpromptpw,promptbalance,promptCard;

TextFieldinput1,input2,input3;

TextAreaoutput1,output2;

ButtonSureBtn,SelectBtn;

inti=0;

intj=0;

intk=0;

publicvoidinit()

{D200CardVector=newVector(5,1);

promptpw=newLabel("密码:

");

promptbalance=newLabel("余额:

");

promptCard=newLabel("请输入卡号");

input1=newTextField(10);

input2=newTextField(6);

input3=newTextField(10);

output1=newTextArea(20,20);

output2=newTextArea(20,20);

SureBtn=newButton("确定");

SelectBtn=newButton("查找");

add(promptpw);

add(input1);

add(promptbalance);

add(input2);

add(SureBtn);

add(promptCard);

add(input3);

add(SelectBtn);

add(output1);

add(output2);

SureBtn.addActionListener(this);

SelectBtn.addActionListener(this);

}

publicvoidpaint(Graphicsg)

{longCardNum=20030423;

intpaword;

doublebalan;

StringconnectNum;

booleanconted;

paword=Integer.parseInt(input1.getText());

balan=Double.valueOf(input2.getText()).doubleValue();

D200_CardmyCard=newD200_Card(CardNum+i++,paword,balan,"200",0.1);

if(j==1)

D200CardVector.insertElementAt(myCard,0);

for(k=0;k

{if(((D200_Card)D200CardVector.elementAt(k)).balance>=balan)

{D200CardVector.insertElementAt(myCard,k);

break;

}

}

if(k==j-1)

D200CardVector.insertElementAt(myCard,k);

output2.setText("");

for(k=0;k

{output2.append(((D200_Card)D200CardVector.elementAt(k)).toString());

}

}

publicvoidactionPerformed(ActionEvente)

{if(e.getActionCommand()=="确定")

{input1.setEchoChar('*');

input1.selectAll();

j++;

repaint();

}

elseif(e.getActionCommand()=="查找")

{intcard=Integer.parseInt(input3.getText());

intt=0;

do

{if(((D200_Card)D200CardVector.elementAt(t)).cardNumber==card)

{output1.setText("存在\n"+((D200_Card)D200CardVector.elementAt(t)).toString());

br

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 初中教育 > 其它课程

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2