Java语言程序设计(第3版)沈泽刚主编第6,7,8章课后习题答案
Posted nuist__NJUPT
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Java语言程序设计(第3版)沈泽刚主编第6,7,8章课后习题答案相关的知识,希望对你有一定的参考价值。
Java语言程序设计(第3版)沈泽刚主编第6,7,8章课后习题答案
第6章 字符串
6.1 编写程序,提示用户输入一个字符串,显示它的长度,第一个字符和最后一个字符。
import java.util.Scanner;
public class StringDemo {
public static void main(String[] args){
Scanner input = new Scanner(System.in) ;
System.out.print("请输入一个字符串:") ;
String s = input.next() ;
System.out.println("字符串的长度为:" + s.length()) ;
System.out.println("第1个字符:" + s.charAt(0)) ;
System.out.println("最后一个字符:" + s.charAt(s.length()-1)) ;
}
}
6.2 编写程序,提示用户输入两个字符串,检测第二个字符串是否是第一个字符串的子串。
import java.util.Scanner;
public class SubStringDemo {
public static void main(String[] args){
Scanner input = new Scanner(System.in) ;
System.out.print("请输入第1个字符串:") ;
String s1 = input.nextLine() ;
System.out.print("请输入第2个字符串:") ;
String s2 = input.nextLine() ;
System.out.println("字符串" + s2 + (s1.indexOf(s2) >= 0 ? "是" : "不是")+ "字符串" + s1 + "的子串") ;
}
}
6.4 使用下面方法签名编写一个方法,统计字符串中包含字母的个数。
public class CountLetters {
public static int countLetters(String s){
int count = 0 ;
for(int i=0; i<s.length(); i++){
if(Character.isLetter(s.charAt(i))){
count ++ ;
}
}
return count ;
}
public static void main(String[] args){
String s = "1adAA24e%$#@R" ;
System.out.println("字符串" + s + "含有" + countLetters(s) + "个字母") ;
}
}
6.5 编写方法将10进制整数转换为2进制整数。
import java.util.Scanner;
public class ToBinary {
public static String toBinary(int value){
StringBuilder s = new StringBuilder("") ;
while(value > 0){
s.append(value % 2) ;
value /= 2 ;
}
s.reverse() ;
return new String(s) ;
}
public static void main(String[] args){
Scanner input = new Scanner(System.in) ;
System.out.print("请输入一个正整数:") ;
int num = input.nextInt() ;
System.out.println("十进制数" + num + "对应的二进制数为:" + toBinary(num)) ;
}
}
6.6 使用方法签名,返回排好序的字符串。
import java.util.Arrays;
public class Sort {
public static String sort(String s){
char [] c = s.toCharArray() ;
Arrays.sort(c) ;
return String.valueOf(c) ;
}
public static void main(String[] args){
String s = "morning" ;
System.out.println(sort(s)) ;
}
}
6.7 编写一个加密程序,要求键盘输入一个字符串,输出加密的字符串。
import java.util.Scanner;
public class Encrypt {
public static String encrypt(String s){
StringBuilder ss = new StringBuilder(s) ;
for(int i=0; i<ss.length(); i++){
char c = ss.charAt(i) ;
if(s.charAt(i) == 'Z' || s.charAt(i) == 'z'){
c = (char)(c - 25) ;
}else{
c = (char)(c + 1) ;
}
ss.setCharAt(i,c) ;
}
return new String(ss) ;
}
public static void main(String[] args){
Scanner input = new Scanner(System.in) ;
System.out.print("请输入一个待加密的字符串:") ;
String s = input.nextLine() ;
System.out.println("加密后的字符串:" + encrypt(s)) ;
}
}
6.8 为上一题编写一个解密程序,输入密文,输出明文。
import java.util.Scanner;
public class Encrypt1 {
public static void main(String[] args){
Scanner input = new Scanner(System.in) ;
System.out.print("请输入已经加密的字符串:") ;
String s = input.nextLine() ;
StringBuilder ss = new StringBuilder(s) ;
for(int i=0; i<ss.length(); i++){
char c = ss.charAt(i) ;
if(ss.charAt(i) == 'A' || ss.charAt(i) == 'a'){
c = (char) (c + 25) ;
}else{
c = (char) (c - 1) ;
}
ss.setCharAt(i,c) ;
}
System.out.println("解密后的明文为:" + ss) ;
}
}
6.9 将字符串“no pains,no gains.“解析成含有4个单词的字符串数组。
public class SplitDemo {
public static void main(String[] args){
String s = new String("no pains,no gins.") ;
String [] array = s.split("[ ,.]") ;
for(int i=0; i<array.length; i++){
System.out.print(array[i] + " ") ;
}
}
}
第7章 继承与多态
7.1 根据Animal类及其子类的继承关系,编写方法实现这些类。
class Bird extends Animal{
public int numberOfWings ;
public void fly(){
System.out.println("I can fly") ;
}
}
class Fish extends Animal{
public int numberOfFins ;
public void swim(){
System.out.println("I can swim") ;
}
}
class Dog extends Animal{
public int numberOfLegs ;
public void walk(){
System.out.println("I can walk") ;
}
}
public class Animal {
public double weight ;
public void eat(){
System.out.println("I can eat anything") ;
}
public static void main(String[] args){
Animal animal = new Animal() ;
animal.eat() ;
Bird bird = new Bird() ;
bird.fly();
bird.eat() ;
}
}
7.2 定义一个名为Cylinder的圆柱类,继承Circle类,求圆柱的表面积和体积。
import java.util.Scanner;
class Circle{
double centerX ;
double centerY ;
public double radius ;
public Circle(double radius){
this.radius = radius ;
}
public void setRadius(double radius){
this.radius = radius ;
}
public double getRadius(){
return radius ;
}
public double getArea(){
return Math.PI * radius * radius ;
}
public double getPerimeter(){
return 2 * Math.PI * radius ;
}
}
public class Cylinder extends Circle {
double height ;
public Cylinder(double radius, double height) {
super(radius);
this.height = height ;
}
@Override
public double getArea(){
return getPerimeter() * height ;
}
public double getVolume(){
return getArea() * height ;
}
public static void main(String[] args){
Scanner input = new Scanner(System.in) ;
System.out.print("请输入圆柱的底面的半径:") ;
double radius = input.nextDouble() ;
System.out.print("请输入圆柱的高:") ;
double height = input.nextDouble() ;
Cylinder cylinder = new Cylinder(radius, height) ;
System.out.println("圆柱的表面积:" + cylinder.getArea()) ;
System.out.println("圆柱的体积:" + cylinder.getVolume()) ;
}
}
7.3 定义一个汽车类Auto,定义一个Auto的子类Bus,编写程序测试Bus类的使用。
class Bus extends Auto{
public int passenger ;
public void gotOn(int passenger){
this.passenger += passenger ;
System.out.println("车上上了" + passenger + "名乘客," + "现在车上有" + this.passenger + "名乘客") ;
}
public void getOff(int passenger){
this.passenger -= passenger ;
System.out.println("车上下了" + passenger + "名乘客," + "现在车上有" + this.passenger + "名乘客") ;
}
}
public class Auto {
public double speed ;
public void start(){
System.out.println("汽车启动了") ;
}
public void speedUp(double speed){
this.speed = speed ;
System.out.println("汽车加速到" + speed) ;
}
public void stop(){
this.speed = 0 ;
System.out.println("汽车停止运行") ;
}
public static void main(String[] args){
Bus bus = new Bus() ;
bus.start() ;
bus.speedUp(60.0) ;
bus.gotOn(20) ;
bus.getOff(10) ;
bus.stop() ;
}
}
7.4 定义一个名为Square类表示正方形,使其继承Shape抽象类,覆盖Shape中的抽象方法。
abstract class Shape{
public String name ;
public Shape(){}
public Shape(String name){
this.name = name ;
}
public abstract double getPerimeter() ;
public abstract double getArea() ;
}
public class Square extends Shape{
double side ;
public Square(double side){
this.side = side ;
}
@Override
public double getPerimeter() {
return side * 4 ;
}
@Override
public double getArea() {
return side * side ;
}
public static void main(String[] args){
Square square = new Square(2.0) ;
square.name = "正方形" ;
System.out.println(square.name + "的周长:" + square.getPerimeter()) ;
System.out.println(square.name + "的面积:" + square.getArea()) ;
}
}
以上是关于Java语言程序设计(第3版)沈泽刚主编第6,7,8章课后习题答案的主要内容,如果未能解决你的问题,请参考以下文章
Java语言程序设计(沈泽刚主编)第3版 第1~3章编程练习答案
求数据结构(用面向对象方法与C++语言描述)第二版 殷人昆主编 课后答案