高级程序设计JAVA离线作业选Word格式文档下载.docx
《高级程序设计JAVA离线作业选Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《高级程序设计JAVA离线作业选Word格式文档下载.docx(14页珍藏版)》请在冰点文库上搜索。
"
);
}endofmainmethod
}endofclass
2.编写一个JavaApplet,使之能够在浏览器中显示“WelcometoJavaAppletWorld!
”的串信息。
HTML文件名为ZYAppletInclude.html内容为:
<
HTML>
BODY>
APPLETCODE=”MyJavaZYApplet.class”HEIGHT=200WIDTH=300>
/APPLET>
/BODY>
/HTML>
3.Java语言有哪些主要特点?
–完全面向对象:
所有设计都必须在类中实现,一个Java程序就是多个类的集合。
–可靠性:
提供严密的语法规则,在编译和运行时严格检查错误;
自动资源回收机制,减小了内存出错的可能性。
–安全性:
良好的安全模型;
摈弃了其它语言的不安全成份。
–分布式:
直接支持分布式的网络应用,可实现高效的网络编程
–多线程:
提供环境级和语言级的多线程支持,提高了程序执行的并发度,提高系统执行效率。
–平台无关性:
借助虚拟机,程序不经修改即可在不同硬件或软件平台上运行。
第三章
习题:
1.编写程序输出用户指定数据的所有素数因子
packagetest;
publicclassPrimeNumber{
privatestaticStringisPrime(intnumber){
Stringprime="
;
inti=2;
for(;
i<
number/2+1;
i++){
booleanisT=true;
for(intm=2;
m<
i/2+1;
m++){
if(i%m==0){
isT=false;
}
}
if(number%i==0&
&
isT){
prime=prime+i+"
"
}
returnprime;
}
publicstaticvoidmain(String[]args){
System.out.println("
用户指定30的所有素数因子为:
+isPrime(30));
}
2.编写一个Java程序,接受用户输入的一个1――12之间的整数(如果输入的数据不满足这个条件,则要求用户重新输入),利用switch语句输出对应的月份的天数。
publicclassTest{
publicstaticvoidmain(String[]args){
System.out.print("
请输入一个1-12之间的数字:
intnum=0;
try{
BufferedReaderbr=newBufferedReader(
newInputStreamReader(System.in));
num=Integer.parseInt(br.readLine());
catch(java.lang.NumberFormatExceptionnfe){
System.out.println("
输入的不是数字!
catch(Exceptionex){
ex.printStackTrace();
if(num<
0||num>
12){
对不起你输入的不合法,请重新输入:
switch(num){
case1:
System.out.println(num+"
月份有"
+31+"
天"
break;
case2:
+29+"
case3:
case4:
+30+"
case5:
case6:
case7:
case8:
case9:
case10:
case11:
case12:
3.Java对标识符命名有什么规定,下面这些标识符哪些是对的?
哪些是错的,错在哪里?
(1)MyGame
(2)_isHers(3)2JavaProgram(4)Java-Visual-Machine(5)_$abc
Java对标识符的定义有以下规定:
(1)标识符可以由字母、数字和两个特殊字符下划线(_)、美元符号($)组合而成。
(2)标识符必须以字母、下划线或美元符号开头。
(3)标识符中区分大小写字母。
(4)应该使标识符能一定程度上反映它所表示的变量、常量、对象或类的意义。
(1)正确的:
(1)、MyGame
(2)、_isHers(5)_$abc
错误的:
(3)2JavaProgram,不能以数字开头、(4)Java-Visual-Machine,标识符中不能使用符号“—”。
第四章
1.有哪些访问控制符?
哪些可以用于修饰类,哪些用来修饰域和方法,试述不同访问控制符的作用。
类的访问控制符有一个:
public
域和方法的访问控制符有四个:
public,private,protected,privateprotected,另外还有一种没有定义专门访问控制符的缺省情况
●public:
不同包之间可用public类;
主类必须是public类
●缺省访问控制符:
该类只能被同一个包内的类访问,又称包访问性
●private:
域和方法只能被该类自身访问
●protected:
域和方法能被三种类访问:
自身,同一包中的其他类,其它包中的该类的子类
privateprotected:
域和方法能被二种类访问:
自身,该类的所有子类(同一包或其它包)
2.改写本节例子UsePhoneCard成为图形界面的Applet程序,接受用户输入的卡号,密码,金额和接入号码,创建PhoneCard类的对象并输出这张电话卡的有关信息。
publicclassUsePhoneCard
{
publicstaticvoidmain(Stringargs[])
PhoneCardmyCard=newPhoneCard(12345678,1234,50.0,"
300"
System.out.println(myCard.toString());
classPhoneCard
longcardNumber;
privateintpassword;
doublebalance;
StringconnectNumber;
booleanconnected;
PhoneCard(longcn,intpw,doubleb,Strings)
cardNumber=cn;
password=pw;
if(b>
0)
balance=b;
else
System.exit
(1);
connectNumber=s;
connected=false;
booleanperformConnection(longcn,intpw)
if(cn==cardNumber&
pw==password)
connected=true;
returntrue;
else
connected=false;
returnfalse;
doublegetBalance()
if(connected)
returnbalance;
return-1;
voidperformDial()
balance-=0.5;
publicStringtoString()
Strings="
ConnectedPhoneNumber:
"
+connectNumber+
"
\nCardNumber:
+cardNumber+
\nCardPassword:
+password+
\nThebalance:
+balance;
return(s+"
\nThephoneisconnected"
return(s+"
\nThephoneisdisconnected"
第五章
1.什么是多态,多态有哪些方式?
多态性:
有封装性和继承所引出来的面向对象程序设计的另一特性
方法覆盖实现多态,方法重载实现多态,对象引用的多态
多态方式:
●子类对父类方法的覆盖
●利用重载在同一个类中定义多个同名的不同方法
2.什么是接口?
接口是用来组织应用中的各类并调用它们的相互关系的一种结构,是实现类间多重继承功能的结构
将完成特定功能的若干属性组织成相对独立的属性集合,该属性集合就是接口,接口是用来实现类间多重继承的功能的,接口定义的仅仅是实现某一特定功能 的一组功能的对外接口和规范,而并没有真正实现这个功能,真正实现在继承这个接口的各个类中完成,因而通常把接口功能的继承称为“实现”。
3.根据下面的要求编程实现复数类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的字符串形式
classComplexNumber
doublem_dRealPart;
doublem_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;
ComplexNubercomplexAdd(ComplexNuberc)
c.m_dRealPart+=m_dRealPart;
c.m_dImaginPart+=m_dImaginPart;
returnc;
ComplexNubercomplexAdd(doublec)
m_dRealPart+=c;
returnthis;
ComplexNubercomplexMinus(ComplexNuberc)
c.m_dRealPart-=m_dRealPart;
c.m_dImaginPart-=m_dImaginPart;
ComplexNubercomplexMinus(doublec)
m_dRealPart-=c;
ComplexNubercomplexMulti(ComplexNuberc)
c.m_dRealPart=c.m_dRealPart*this.m_dRealPart-c.m_dImaginPart*this.m_dImaginPart;
c.m_dImaginPart=this.m_dImaginPart*c.m_dRealPart+this.m_dRealPart*c.m_dImaginPart;
ComplexNubercomplexMulti(doublec)
m_dRealPart=c.m_dRealPart*this.m_dRealPart;
m_dImaginPart=this.m_dRealPart*c.m_dImaginPart;
voidtoString()
return(m_dRealPart+”+”+m_dImaginPart+”i”);
第六章
1.编写一个程序,要求能完成排序和查找,分别使用链表,数组和二叉树等数据结构,比较各种方法的优缺点。
根放在0位置,以后假定当前位置是i,那么左子结点在2i+1,右子结点在2i+2。
比如根的左子结点在1,右子结点在2。
结点1的左子结点在3,右子结点在4。
定义一种空值表示没有子结点,比如empty。
假定一个结点由3个成员组成:
value,left,right
数组假定是全局的,如果不是可以作为参数传送。
递归实现比较简单:
voidbtree2array(node,index)
if(node==NULL)
array[index]=empty;
array[index]=node->
value;
btree2array(node->
left,index*2+1);
right,index*2+2);
开始调用:
btree2array(root,0);