java程序设计案例教程课后答案北京邮电大学出版社(java语言程序
java的参考文献
[1].张桂珠 刘丽 陈爱国 Java面向对象程序设计(第2版)北京邮电大学出版社[2]毕广吉.Java程序设计实例教程[M]. 北京:冶金工业出版社,2007年[3].王保罗.Java面向对象程序设计[M]. 北京:清华大学出版社,2003年[4].高林,周海燕.Jsp网上书店系统与案例分析[M]. 北京:人民邮电出版社,2004年[5].刘腾红,孙细明.信息系统分析与设计[M]. 北京:科学出版社,2003年[6].林邦杰,彻底研究java.北京:电子工业出版社,2002年
java语言程序设计课后答案 郞波 第二版 清华大学出版社
我有
Java面向对象程序设计
清华大学出版社
(编著 耿祥义 张跃平)
习题解答
建议使用文档结构图
(选择Word菜单→视图→文档结构图)
习题1
1.James Gosling
2.
(1)使用一个文本编辑器编写源文件。
(2)使用Java编译器(javac.exe)编译Java源程序,得到字节码文件。
(3)使用Java解释器(java.exe)运行Java程序
3.Java的源文件是由若干个书写形式互相独立的类组成的。
应用程序中可以没有public类,若有的话至多可以有一个public类。
4.系统环境path D\jdk\bin;
系统环境classpath D\jdk\jre\lib\rt.jar;.;
5. B
6. Java源文件的扩展名是.java。Java字节码的扩展名是.class。
7. D
8.(1)Speak.java
(2)生成两个字节码文件,这些字节码文件的名字Speak.class 和 Xiti8.class
(3)java Xiti8
(4)执行java Speak的错误提示
Exception in thread "main" java.lang.NoSuchMethodError: main
执行java xiti8得到的错误提示
Exception in thread "main" java.lang.NoClassDefFoundError: xiti8 (wrong name: Xiti8)
执行java Xiti8.class得到的错误提示
Exception in thread "main" java.lang.NoClassDefFoundError: Xiti8/class
执行java Xiti8得到的输出结果
I'm glad to meet you
9.属于操作题,解答略。
习题2
1. D
2.【代码1】 【代码2】 错误 //【代码3】更正为 float z=6.89F;
3.float型常量后面必须要有后缀“f”或“F”。
对于double常量,后面可以有后缀“d”或“D”,但允许省略该后缀。
4.public class Xiti4{
public static void main (String args[ ]){
char ch1='你',ch2='我',ch3='他';
System.out.println("\""+ch1+"\"的位置:"+(int)ch1);
System.out.println("\""+ch2+"\"的位置:"+(int)ch2);
System.out.println("\""+ch3+"\"的位置:"+(int)ch3);
}
}
5.数组名字.length
6.数组名字.length
7. 【代码1】A,65
【代码2】-127
【代码3】 123456.783,123456.78312
8.
【代码1】false
【代码2】true
【代码3】false
【代码4】3
【代码5】4.4
【代码6】8.8
习题3
输出110
if-else语句书写的不够规范,复合语句缺少大括号“{}”,代码不够清晰。
2.你好好酷!!
3.
public class Xiti3_3
{
public static void main (String args[ ]){
int startPosition=0,endPosition=0;
char cStart='а',cEnd='я';
startPosition=(int)cStart; //cStart做int型转换据运算,并将结果赋值给startPosition
endPosition=(int)cEnd ; //cEnd做int型转换运算,并将结果赋值给endPosition
System.out.println("俄文字母表:");
for(int i=startPosition;i=endPosition;i++){
char c='\0';
c=(char)i; //i做char型转换运算,并将结果赋值给c
System.out.print(" "+c);
if((i-startPosition+1)%10==0)
System.out.println("");
}
}
}
4.
public class Xiti4
{ public static void main(String args[])
{ double sum=0,a=1;
int i=1;
while(i=20)
{ sum=sum+a;
i++;
a=a*i;
}
System.out.println("sum="+sum);
}
}
5.
class Xiti5
{ public static void main(String args[])
{ int i,j;
for(j=2;j=100;j++)
{ for(i=2;i=j/2;i++)
{ if(j%i==0)
break;
}
if(ij/2)
{ System.out.print(" "+j);
}
}
}
}
6.
class Xiti6
{ public static void main(String args[])
{ double sum=0,a=1,i=1;
while(i=20)
{ sum=sum+a;
i++;
a=(1.0/i)*a;
}
System.out.println("使用while循环计算的sum="+sum);
for(sum=0,i=1,a=1;i=20;i++)
{ a=a*(1.0/i);
sum=sum+a;
}
System.out.println("使用for循环计算的sum="+sum);
}
}
7.
public class Xiti7
{ public static void main(String args[])
{ int sum=0,i,j;
for(i=1;i=1000;i++)
{ for(j=1,sum=0;ji;j++)
{ if(i%j==0)
sum=sum+j;
}
if(sum==i)
System.out.println("完数:"+i);
}
}
}
8.方法之一
import java.util.Scanner;
public class Xiti8
{ public static void main (String args[ ]){
System.out.println("请输入两个非零正整数,每输入一个数回车确认");
Scanner reader=new Scanner(System.in);
int m=0,n=0,temp=0,gy=0,gb=0,a,b;
a=m = reader.nextInt();
b=n = reader.nextInt();
if(mn)
{ temp=m;
m=n;
n=temp;
}
int r=m%n;
while(r!=0)
{ n=m;
m=r;
r=m%n;
}
gy=n;
gb=a*b/gy;
System.out.println("最大公约数 :"+gy);
System.out.println("最小公倍数 :"+gb);
}
}
8.方法之二
import java.util.Scanner;
public class Xiti8 {
public static void main (String args[ ]){
System.out.println("请输入两个非零正整数,每输入一个数回车确认");
Scanner reader=new Scanner(System.in);
int m=0,n=0,t=0,gy=0,gb=0;
m = reader.nextInt();
n = reader.nextInt();
if(mn){
t=m;
m=n;
n=t;
}
for(int i=1;i=m;i++){
if(m%i==0 n%i==0){
gy=i;
}
}
gb=m*n/gy;
System.out.println(m+","+n+"的最大公约数为 "+gy);
System.out.println(m+","+n+"的最小公倍数为 "+gb);
}
}
9.
public class Xiti9
{ public static void main(String args[])
{ int n=1;
long sum=0,t=1;
t=n*t;
while(true)
{ sum=sum+t;
if(sum9999)
break;
n++;
t=n*t;
}
System.out.println("满足条件的最大整数:"+(n-1));
}
}// 1至7的阶乘和是sum=5913.0 // 1至8的阶乘和是sum=46233.0
习题4
1.用该类创建对象时。
2.所谓方法重载是在一个类中可以有多个方法具有相同的名字,但这些方法的参数必须不同,即或者是参数的个数不同,或者是参数的类型不同。构造方法可以重载。
3. 可以。不可以。
4.不可以。
5.成员变量又分为实例变量和类变量,用static修饰的变量是类变量。那么类变量和实例变量有什么区别呢?一个类通过使用new运算符可以创建多个不同的对象,不同的对象的实例变量将被分配不同的内存空间;如果类中的成员变量有类变量,那么所有对象的这个类变量都分配给相同的一处内存,改变其中一个对象的这个类变量会影响其它对象的这个类变量。也就是说对象共享类变量。
6.C,D
7.【代码1】,【代码4】
8.sum=-100
9.27
10. **20
##100
习题5
1. 如果子类和父类在同一个包中,那么子类自然地继承了其父类中不是private的成员变量作为自己的成员变量,并且也自然地继承了父类中不是private的方法作为自己的方法。继承的成员或方法的访问权限保持不变。如果子类和父类不在同一个包中,那么子类继承了父类的protected、public成员变量做为子类的成员变量,并且继承了父类的protected、public方法为子类的方法,继承的成员或方法的访问权限保持不变。如果子类和父类不在同一个包里,子类不能继承父类的友好变量和友好方法。
只要子类中声明的成员变量和父类中的成员变量同名时,子类就隐藏了继承的成员变量。
子类中定义一个方法,这个方法的类型和父类的方法的类型一致或者是父类的方法的类型的子类型,并且这个方法的名字、参数个数、参数的类型和父类的方法完全相同,子类如此定义的方法称作子类重写的方法。子类通过方法的重写可以隐藏继承的方法。
2.不可以。
3.abstract类。
4.假设B类是A类子类或间接子类,当我们用子类B创建一个对象,并把这个对象的引用放到A类的对象中时,称这个A类对象是子类对象的上转型对象。
5.可以把实现某一接口的类创建的对象的引用赋给该接口声明的接口变量中。那么该接口变量就可以调用被类实现的接口中的方法。
6.A,C,D
7.15.0
8.0
8.98.0
12
9.
class A
{ public final void f()
{ char cStart='a',cEnd='z';
for(char c=cStart;c=cEnd;c++)
{ System.out.print(" "+c);
}
}
}
class B extends A
{ public void g()
{ char cStart='α',cEnd='ω';
for(char c=cStart;c=cEnd;c++)
{ System.out.print(" "+c);
}
}
}
public class Xiti9
{ public static void main (String args[ ])
{ B b=new B();
b.f();
b.g();
}
}
10.
class A
{ public int f(int a,int b){
if(ba)
{ int temp=0;
temp=a;
a=b;
b=temp;
}
int r=b%a;
while(r!=0)
{ b=a;
a=r;
r=b%a;
}
return a;
}
}
class B extends A
{ public int f(int a,int b)
{ int division=super.f(a,b);
return (a*b)/division;
}
}
public class Xiti10
{ public static void main (String args[ ])
{ A a=new A();
B b=new B();
System.out.println("最大公约数 :"+a.f(36,24));
System.out.println("最小公倍数 :"+b.f(36,24));
}
}
习题6
1.仍然有效。
2.可以。
3.不可以。
4.大家好,祝工作顺利!
5. 96
乘数超过99
习题7
1.
(1)Strategy是接口。
(2)Army不是抽象类。
(3)Army和Strategy是关联关系。
(4)StrategyA, StrategyB、StrategyC与Strategy是实现关系。
2.
3.
4.例子13的设计符合开-闭原则。
5.例子17的设计符合开-闭原则。
习题8
采用新增的策略为选手计算得分。
增加新的具体策略StrategyFour。StrategyFour类将double computeScore(double [] a)方法实现为去掉数组a的元素中的一个最大值和一个最小值,然后计算剩余元素的几何平均值。
import java.util.Arrays;
public class StrategyFour implements ComputableStrategy {
public double computeScore(double [] a) {
if(a.length=2)
return 0;
double score=0,multi=1;
Arrays.sort(a);
int n=a.length-2;
for(int i=1;ia.length-1;i++) {
multi=multi*a[i];
}
score=Math.pow(multi,1.0/n);
return score;
}
}
2.
(1)策略(Strategy)PrintCharacter.java
public interface PrintCharacter{
public abstract void printTable(char [] a,char[] b);
}
(2) 具体策略
PrintStrategyOne.java
public class PrintStrategyOne implements PrintCharacter {
public void printTable(char [] a,char[] b) {
for(int i=0;ia.length;i++) {
System.out.print(a[i]+",");
}
for(int i=0;ib.length;i++) {
System.out.print(b[i]+",");
}
System.out.println("");
}
}
PrintStrategyTwo.java
public class PrintStrategyTwo implements PrintCharacter {
public void printTable(char [] a,char[] b) {
for(int i=0;ia.length;i++) {
System.out.print(b[i]+","+a[i]+",");
}
}
}
(3)上下文 PrintGame.java
public class PrintGame {
PrintCharacter strategy;
public void setStrategy(PrintCharacter strategy) {
this.strategy=strategy;
}
public void getPersonScore(char[] a,char[] b){
if(strategy==null)
System.out.println("sorry!");
else
strategy.printTable(a,b);
}
}
应用以上策略:
public class Application {
public static void main(String args[]) {
char [] a=new char[26];
char [] b=new char[26];
for(int i=0;i=25;i++){
a[i]=(char)('a'+i);
}
for(int i=0;i=25;i++){
b[i]=(char)('A'+i);
}
PrintGame game=new PrintGame(); //上下文对象
game.setStrategy(new PrintStrategyOne()); //上下文对象使用策略一
System.out.println("方案1:");
game.getPersonScore(a,b);
game.setStrategy(new PrintStrategyTwo()); //上下文对象使用策略二
System.out.println("方案2:");
game.getPersonScore(a,b);
}
}
3.参照本章8.3.3自主完成。
习题9
1.A,B,D
2. Love:Game
3.13
abc夏日
4.13579
5.9javaHello
6.
public class Xiti6 {
public static void main (String args[ ]) {
String s1,s2,s3,t1="ABCDabcd";
System.out.println("字符串原来是这个样子: "+t1);
s1=t1.toUpperCase();
System.out.println("字符串中的小写字母变成大写是这个样子: "+s1);
s2=t1.toLowerCase();
System.out.println("字符串中的大写字母变成小写是这个样子: "+s2);
s3=s1.concat(s2);
System.out.println("大写字符串连接小写字符串是这个样子: "+s3);
}
}
7.
class Xiti7
{ public static void main(String args[ ])
{ String s ="中华人民共和国";
char a=s.charAt(0);
char b=s.charAt(6);
System.out.println("第一个字符: "+a);
System.out.println("最后一个字符: "+b);
}
}
8.
import java.util.*;
class Xiti8
{ public static void main(String args[]){
int year,month;
System.out.println("请输入年份和月份,每输入一个数回车确认");
Scanner reader=new Scanner(System.in);
year= reader.nextInt();
month= reader.nextInt();
String [] day=new String[42];
System.out.println(" 日 一 二 三 四 五 六");
Calendar rili=Calendar.getInstance();
rili.set(year,month-1,1);//将日历翻到year年month月1日,注意0表示一月...11表示十二月
int 星期几=rili.get(Calendar.DAY_OF_WEEK)-1;
int dayAmount=0;
if(month==1||month==3||month==5||month==7||month==8||month==10||month==12)
dayAmount=31;
if(month==4||month==6||month==9||month==11)
dayAmount=30;
if(month==2)
if(((year%4==0)(year%100!=0))||(year%400==0))
dayAmount=29;
else
dayAmount=28;
for(int i=0;i星期几;i++)
day[i]="";
for(int i=星期几,n=1;i星期几+dayAmount;i++){
if(n=9)
day[i]=String.valueOf(n)+" " ;
else
day[i]=String.valueOf(n);
n++;
}
for(int i=星期几+dayAmount;i42;i++)
day[i]="";
for(int i=0;i星期几;i++)
{ day[i]="**";
}
for(int i=0;iday.length;i++)
{ if(i%7==0)
{ System.out.println("");
}
System.out.print(" "+day[i]);
}
}
}
9.
import java.util.*;
class Xiti9
{ public static void main(String args[]){
int year1,month1,day1,year2,month2,day2;
Scanner reader=new Scanner(System.in);
System.out.println("请输入第一个日期的年份 月份 日期 ,每输入一个数回车确认");
year1= reader.nextInt();
month1= reader.nextInt();
day1= reader.nextInt();
System.out.println("请输入第二个日期的年份 月份 日期 ,每输入一个数回车确认");
year2= reader.nextInt();
month2= reader.nextInt();
day2= reader.nextInt();
Calendar calendar=Calendar.getInstance();
calendar.set(year1,month1,day1);
long timeYear1=calendar.getTimeInMillis();
calendar.set(year2,month2,day2);
long timeYear2=calendar.getTimeInMillis();
long 相隔天数=Math.abs((timeYear1-timeYear2)/(1000*60*60*24));
System.out.println(""+year1+"年"+month1+"月"+day1+"日和"+
year2+"年"+month2+"月"+day2+"日相隔"+相隔天数+"天");
}
}
全部都给你
希望那个可以帮助到你 祝你学习成功
某班级有50个学生,针对每一个学生的《java程序设计》 成绩x,输出其相应的等级
解析:学生成绩的三个等级由是否小于等于60分和是否小于等于79分这两个条件控制,因此可以将其分为两部分来设计框图,即判断框的选择问题,还应注意将全部学生的相应成绩等级全部显示.? 答案:依题意设计以下程序框图: ? 点评:该题也可以先用判断条件“是否小于等于79分”先行判断,再根据“是否小于等于60分”,从而将成绩分成三个等级
VB程序设计教程 第五版 蒋加伏 北京邮电大学出版社 习题答案
在窗体上输入100~200之间(包括100和200)不能被3整除的奇数及这些数的和
大学计算机第四版习题答案,北京邮电大学出版社,主编蒋加伏,沈岳
作为大学生,这个要靠自己独立思考,自己独立完成。
根据一些同学的提问,我归纳了一下。新生入学报到时主要要准备如下东西、要注意如下事项:
1.相关证件。包括:身份证、录取通知书(入学通知书)、户口迁移证、党团组织关系证明(介绍信)、一寸登记照若干张(可以多带几张,以备它用),等等。这些很重要,一定不要忘记。另外,把父母、爷爷奶奶即各个近亲的姓名、出生年月、工作单位、职业和职务搞清楚,填下来,到学校要填各种表格,有的表格需要这些信息。
2.钱和卡。上学要交学费和住宿费(分别为每年4500-500元与1000元左右),合计要6000左右(个别专业可能要高些,如艺术类专业)。因为新生出门较少,没有什么旅途安全经验,建议少带现金(但千把块钱还是要带的,以备一些不时之需)。可以在家中先办一张信用卡或储值卡用于交学杂费等。有的学校会给你寄一张卡,让学生把钱存在其中,你可以用这张卡,也可以不用。如果家庭条件还可以,办一张信用卡,把它关联到父母亲的储值卡(如工资卡),每月刷卡后直接从父母亲的卡中扣款,这样的好处是方便、安全。但如果你不想让父母亲知道你的消费情况,可以自己在老家办一张储值卡(让父母亲往里冲钱),然后办一张信用卡与之关联。也可以到学校再办储值卡与信用卡,但这样你父母亲异地往你的储值卡打钱时要付手续费。
3.一般情况下,各个学校都要配发一些学习和日常生活用品,这些东西不是无偿给你的,都要你花钱购买。学校发的物品质量都很次而且贵,建议学校发的东西如果可以不要就尽量不要,能自己买的就别买学校发的,有些生活必需品则可以在离开家时先配好,免得到学校后由于人生地不熟不好买。
4.衣服被褥。你平常穿的衣服,春夏秋冬各季的,都要带,除非学校距你家乡很近或者父母亲有机会出差来学校给你带东西。内衣和袜子至少要两三套,各季的外衣至少也要两套。如果你现在生活的地方和要去上学的城市的地理气象与生活环境是否相似,那么准备的东西和在老家差不多;如果相差太大,就要带些那个城市需要的衣服(例如,如果你生活在北方,但上学的城市在南方,那么太厚的保暖内衣裤就可以不带了)。被褥也是这样,夏天去学校,可以带一床薄被(如毛巾被),厚被子可以自己带,也可以到学校后再买。席子可以到学校根据床宽购买合适的,床单和枕头(枕套)可以自己带也可以到学校再买。
5.洗漱生活用品。要带牙膏牙刷、毛巾、漱口杯、香皂肥皂、洗发水、梳子、手机(看家庭条件)等,以便在途中和到校后就能使用。男生要带剃须刀、女生要带各种女性用品和洗面奶等。至于洗脸盆、晒衣架、拖鞋、雨伞、水瓶、指甲剪、剪刀、小刀、台灯之类的东西就不一定要带了,有的学校会发,就算不发自己买也不贵(这些生活用品到了学校买也很方便,而且到时候和舍友一起去买还能快速缩短距离)。条件可以时,可以带个照相机,为自己和同学照照相,也是人际交流的一种很好方式。
6.学习用品。可以带几支水笔、本子、字典、词典(英汉汉英词典等,包括功能强大的电子词典)、书包(背包)。如果学校没有不允许,你家庭条件许可的话,可以带笔记本。但最好不要带,尤其是当你迷恋上网或者玩游戏的时候,带笔记本会影响你的学习和生活以及和同学的正常交往。另外,还可以预备一些生活中用到的药或创可贴之类,虽然不一定会用到它们,不过等需要的时候随手可以找到也很方便。
7.旅行箱。如果家庭条件不是特别好得钱花不了,不需要买太贵的,毕业后可以买更好的。箱子可以大一些,能装下自己的衣服及平常不是常用的生活用品和学习用品即可。但不要过分大,免得不好携带,到学校在宿舍也不好放。一般以80公分左右长、50-60公分宽为佳。
8. 如果可以的话,带点家乡的特产,不是一定要去给老师,而是给舍友或班上同学吃,毕竟你有四年的时间和他们在一起,越早熟悉越好。
10.如果坐火车的话,可以凭录取通知书(入学通知书)享受学生票优惠。
11.一点小建议:大学学习勇攀高峰,加入社团量力而行,大学社会实践多多益善,尊敬老师有难必问,同学相处宽容大度,大学恋爱不鼓励也不反对。
12.入学测试和体检。有的大学在新生报到后一段时间内,要组织几门文化课的新生入学测试,对考试成绩和高考成绩有较大出入者要进行重点核查。如果你考试没有作弊,不要有任何担心。考试范围和难度不会超过高考,考得好坏无所谓。体检也很容易过,除非你有不符合入学要求的重大疾病而且在高考体检时又使了花招,一般是不要紧的。只要你高考时正常体检、正常考试,这两项都没有问题,现在可以放心玩!
当然还有另一种入学考试,那是为各种分班做做准备的,比如英语成绩好的学生分到英语快班。
13.新生军训。大学新生要进行军训,军训一般只有两个星期。按照《国防教育法》的规定,组织学生进行军训,这是贯彻国防教育法的具体行动,是推进素质教育、为国家和军队培养造就高素质国防后备力量的重大举措。参加军训可以增进同学友情,应该积极参加。如果身体条件不许可,应该尽早跟辅导员或班主任讲清楚,以免发生意外。
14.宿舍是在你去之前就安排好的,这个不用担心。住宿条件有好有坏,不要太拘泥于这个,主要是要和同舍同学友好相处。不要以为住宿条件差就不能适应,人的适应性是非常强的,而且不太好的生活条件对你以后的成长和工作、生活很有好处,不管你的家庭是多么富有!
15.专业不理想,调换专业。一般学校进校一年后都可以调换专业。调换专业有两种情况,一种是因为在原专业很难学下去,学校会帮助你换一个好学一点的专业(但一般不是很好的专业,也不是热门专业);另一种是你想换一个你心仪的其它专业,这种时候一般都要由你要转入的专业所在院系进行资格考试,考试合格才能转入,有的学校还要交一笔费用。