沈师PTA|Java 四、五、六、九、十章习题集(代码简单版)

第四章习题集(1)

函数

jmu-Java-03面向对象基础-覆盖与toString

public String toString(){

    return super.toString()+"-"+company+"-"+salary;

}

重写父类方法equals

public boolean equals(Student s2){

    if(this.id==s2.id)

        return true;

    else return false;

}

编程

7-2 jmu-Java-01入门-取数字浮点数

import java.util.*;

public class Main{

    public static void main(String[] args){

        Scanner in=new Scanner(System.in);

        while(true){

            String s=in.nextLine();

            int sum=0;

            for(int i=0;i<s.length();i++){

                if(s.charAt(i)>='0'&&s.charAt(i)<='9')

                    sum+=s.charAt(i)-'0';

            }

            System.out.println(sum);

        }

    }

}

7-3 无聊的小明来数1

import java.util.Scanner;



public class Main{

    public static void main(String []args){

        Scanner in=new Scanner(System.in);

        int T=in.nextInt();

        int[] tArr = new int[T];

        for(int i = 0;i < T;i++){

            tArr[i] = getNum(in.nextInt());

            System.out.println(tArr[i]);

        }

    }

        public static int getNum(int num){

            int count=0;

            int number;

            while(num != 0){

                number = num % 2;

                if(number == 1)

                    count++;

                num/=2;

            }

            return count;

        }

}

7-5 教师类

import java.util.*;

public class Main{

    public static void main(String[] args){

        Scanner in=new Scanner(System.in);

        int no1=in.nextInt();

        String name1=in.next();

        int age1=in.nextInt();

        String seminary1=in.next();

        Teacher t1=new Teacher(no1,name1,age1,seminary1);

        int no2=in.nextInt();

        String name2=in.next();

        int age2=in.nextInt();

        String seminary2=in.next();

        Teacher t2=new Teacher(no2,name2,age2,seminary2);

        System.out.println(t1.toString());

        System.out.println(t2.toString());

        System.out.println(t1.equals(t2));

    }

}

class Teacher{

    private int no,age;

    private String name,seminary;

    public Teacher(int no,String name,int age,String seminary){

        this.no=no;

        this.name=name;

        this.age=age;

        this.seminary=seminary;

    }

    public boolean equals(Teacher t){

        if(this.no==t.no)

            return true;

        else return false;

    }

    public String toString(){

        return "no: "+no+", name:"+name+", age: "+age+", seminary: "+seminary;

    }

}

第四章习题集(2)

7-1 声明图书类,记录图书总册数,利用静态变量赋值

public class Main{

    public static void main(String[] args){

        Book b1=new Book("Java程序设计",34.5);

        b1.print();

        Book b2=new Book("数据结构",44.8);

        b2.print();

        Book b3=new Book("C++程序设计",35.0);

        b3.print();//注意打印顺序

        System.out.println("图书总册数为:"+b3.sum);

    }

}

class Book{

    private final String name;

    static int num=0;

    private final double price;

    static int sum=0;

    Book(String name,double price){

        this.name=name;

        this.price=price;

        num++;

        sum++;

    }

    void print(){

        System.out.println("书名:"+name+", 书号:"+num+", 书价:"+price);

    }

}

7-2 定义类2

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        double dd = RR.fun();

        System.out.printf("%.2f",dd);

    }

}

class RR{

    public static int fun(){

        Scanner in=new Scanner(System.in);

        int[] n = new int[5];

        for(int i=0;i<5;i++) n[i] = in.nextInt();

        return n[2];

    }

}

第四章习题集(3)

6-1 从抽象类shape类扩展出一个圆形类Circle

class Circle extends shape{

    private double radius;

    public Circle(double r){

        radius=r;

    }

    public double getArea(){

        return Math.PI*radius*radius;

    }

    public double getPerimeter(){

        return 2*Math.PI*radius;

    }

}

6-2 创建一个直角三角形类实现IShape接口

class RTriangle implements IShape{

    private double a,b;

    RTriangle(double a, double b){

        this.a=a;

        this.b=b;

    }

    public double getArea(){

        return a*b*0.5;

    }

    public double getPerimeter(){

        return a+b+Math.pow((Math.pow(a,2)+Math.pow(b,2)),0.5);

    }

}

7-1 jmu-Java-03面向对象基础-04-形状-继承

import java.util.*;

public class Main{

    public static void main(String[] args){

        Scanner in=new Scanner(System.in);

        int n=in.nextInt();

        in.nextLine();

        Shape []arr=new Shape[n];

        for(int i=0;i<n;i++){

            String s=in.next();

            in.nextLine();

            if(s.equals("rect")){

                int width=in.nextInt();

                int length=in.nextInt();

                in.nextLine();

                arr[i]=new Rectangle(width,length);

            }

            else if(s.equals("cir")){

                int radius=in.nextInt();

                in.nextLine();

                arr[i]=new Circle(radius);

            }

        }

        System.out.println(sumAllPerimete(arr));

        System.out.println(sumAllArea(arr));

        System.out.println(Arrays.toString(arr));

        for(int i=0;i<n;i++){

            System.out.println(arr[i].getClass()+","+arr[i].getClass().getSuperclass());

        }

    }

    public static double sumAllArea(Shape[] arr){

        double sumarea=0;

        for(int i=0;i<arr.length;i++){

            sumarea+=arr[i].getArea();

        }

        return sumarea;

    }

    public static double sumAllPerimete(Shape[] arr){

        double sumperimeter=0;

        for(int i=0;i<arr.length;i++){

            sumperimeter+=arr[i].getPerimeter();

        }

        return sumperimeter;

    }

}

abstract class Shape{

    final public double PI=3.14;

    public abstract double getPerimeter();

    public abstract double getArea();

}

class Rectangle extends Shape{

    private int width,length;

    public Rectangle(int width,int length){

        this.width=width;

        this.length=length;

    }

    public String toString(){

        return "Rectangle [width="+width+", length="+length+"]";

    }

    public double getPerimeter(){

        return 2*(width+length);

    }

    public double getArea(){

        return width*length;

    }

}

class Circle extends Shape{

    private int radius;

    public Circle(int radius){

        this.radius=radius;

    }

    public String toString(){

        return "Circle [radius="+radius+"]";

    }

    public double getPerimeter(){

        return 2*PI*radius;

    }

    public double getArea(){

        return PI*radius*radius;

    }

}

7-2 集体评分

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        int[] grade = new int[5];

        for(int i=0; i<grade.length; i++){

            grade[i] = in.nextInt();

        }



        RR rr = new RT(grade);

        double dd = rr.mark();

        System.out.printf("%.2f",dd);

    }

}

abstract class RR{

    int[] grade;

    public RR(int[] grade){

        this.grade = grade;

    }

    public abstract double mark();

}

class RT extends RR{

    private double sum=0;



    public RT(int[] grade) {

        super(grade);

    }



    public double mark(){

        for(int i=1;i<4;i++){

            sum+=grade[i];

        }

        return sum/3;

    }



}

7-3 定义ClassName接口,设计类Company,实现获取类名称的功能

interface ClassName{

    public abstract String getClassName();

}

class Company implements ClassName{

    public Company(){}

    public String getClassName(){

        return "Company";

    }

}

public class Main{

    public static void main(String[] args){

        Company c=new Company();

        System.out.println(c.getClassName());

    }

}

7-4 集体评分2

import java.util.Scanner;

public class Main {

    public static void main(String[] args) {

                Scanner in = new Scanner(System.in);

                int[] grade = new int[5];

                for(int i=0; i<grade.length; i++){

                      grade[i] = in.nextInt();

                 }



                RR rr = new RT(grade);

                double dd = rr.mark();

                System.out.printf("%.2f",dd);

    }

}

interface RR{

   double mark();

}

class RT implements RR{

   int[] grade;

    public double sum=0;

   public RT(int[] grade){

      this.grade = grade;

   }

    public double mark(){

        for(int i=1;i<4;i++){

            sum+=grade[i];

        }

        return sum/3;

    }

}

7-5 接口--四则计算器

import java.util.Scanner;

interface ICompute{

    public abstract int computer(int n,int m);

}

class Add implements ICompute{

    public Add(){}

    public int computer(int n,int m){

        return n+m;

    }

}

class Sub implements ICompute{

    public Sub(){}

    public int computer(int n,int m){

        return n-m;

    }

}

public class Main{

    public static void main(String[] args){

        Scanner in=new Scanner(System.in);

        int n=in.nextInt();

        int m=in.nextInt();

        Add a=new Add();

        Sub s=new Sub();

        System.out.println(a.computer(n,m));

        System.out.println(s.computer(n,m));

    }

}

7-6 USB接口的定义

interface USB{

    public abstract void work();

    public abstract void stop();

}

class Mouse implements USB{

    public Mouse(){}

    public void work(){

        System.out.println("我点点点");

    }

    public void stop(){

        System.out.println("我不能点了");

    }

}

class Upan implements USB{

    public Upan(){}

    public void work(){

        System.out.println("我存存存");

    }

    public void stop(){

        System.out.println("我走了");

    }

}

public class Main{

    public static void main(String[] args){

        USB usb1=new Mouse();

        usb1.work();

        usb1.stop();

        USB []usb2=new USB[2];

        usb2[0]=new Upan();

        usb2[1]=new Mouse();

        for(int i=0;i<2;i++){

            usb2[i].work();

            usb2[i].stop();

        }

    }

}

第五章习题集

6-1 jmu-Java-06异常-finally

System.out.println("resource open success");

}

catch(Exception e){

    System.out.println(e);

}

try{

    resource.close();

    System.out.println("resource release success");

}

catch(RuntimeException e){

    System.out.println(e);

}

6-2 jmu-Java-06异常-多种类型异常的捕获

分数 10

catch(NumberFormatException e){

    System.out.println("number format exception");

    System.out.println(e);

}

catch(IllegalArgumentException e){

    System.out.println("illegal argument exception");

    System.out.println(e);

}

catch(Exception e){

    System.out.println("other exception");

    System.out.println(e);

}

6-3 求圆面积自定义异常类

class Circle{

    private double r;

    Circle(double r){

        this.r=r;

    }

    public double area() throws CircleException{

        if(this.r<0){

            CircleException e=new CircleException(r);

            throw e;

        }

        return 3.14*r*r;

    }

}

class CircleException extends Exception{

    double radius;

    public CircleException(double r){

        this.radius=r;

    }

    public void print(){

        System.out.println("圆半径为"+radius+"不合理");

    }

}

7-1 jmu-Java-06异常-01-常见异常

import java.util.*;

public class Main{

    public static void main(String[] args){

        Scanner in=new Scanner(System.in);

        int []arr=new int[5];

        while(true){

            String s=in.next();

            try{

                if(s.equals("arr")){

                    int index=in.nextInt();

                    int x=arr[index];

                }

                else if(s.equals("null")){

                    throw new NullPointerException();

                }

                else if(s.equals("cast")){

                    Object obj=new String("hhh");

                    Integer num=(Integer)obj;//记不住啊啊啊啊//记住啦

                }

                else if(s.equals("num")){

                    String str=in.next();

                    int num1=Integer.parseInt(str);

                }

                else break;

            }

            catch(Exception e){

                System.out.println(e);

            }

        }

    }

}

7-2 jmu-Java-06异常-02-使用异常机制处理异常输入

import java.util.Scanner;

import java.util.Arrays;

public class Main{

    public static void main(String[] args){

        Scanner in=new Scanner(System.in);

        int n=in.nextInt();

        int a[]=new int[n];

        for(int i=0;i<n;i++){

            try{

                a[i]=Integer.parseInt(in.next());

            }

            catch(Exception e){

                System.out.println(e);

              i--;

            }

        }

        System.out.println(Arrays.toString(a));

    }

}

7-4 成绩录入时的及格与不及格人数统计

import java.util.Scanner;



public class Main{

    public static void main(String[] args){

        Scanner in=new Scanner(System.in);

        int n=in.nextInt();

        int pass=0,unpass=0;

        for(int i=0;i<n;){

            try{

                int score=in.nextInt();

                if(score>=60&&score<=100){

                    pass++;

                    i++;

                }

                else if(score<60&&score>=0){

                    unpass++;

                    i++;

                }

                else{

                    throw new ScoreOutOfRoundException(score);

                }

            }

            catch(ScoreOutOfRoundException e){

                System.out.println(e.toString());

            }

        }

        System.out.println(pass);

        System.out.println(unpass);

    }

}

class ScoreOutOfRoundException extends Exception{

    int score;

    public ScoreOutOfRoundException(int score){

        this.score=score;

    }

    public String toString(){

        return score+"invalid!";

    }

}

7-5 设计一个Tiangle异常类

import java.util.Scanner;



public class Main{

  public static void main(String[] args) {

      Scanner input = new Scanner(System.in);

      double s1 = input.nextDouble();

      double s2 = input.nextDouble();

      double s3 = input.nextDouble();

      try {

         Triangle t = new Triangle(s1,s2,s3);

         System.out.println(t);

      }

      catch (IllegalTriangleException ex) {

          System.out.println(ex.getMessage());

      }

  }

}

class Triangle{

    private double side1,side2,side3;

    public Triangle(double side1, double side2, double side3) throws IllegalTriangleException {

        this.side1=side1;

        this.side2=side2;

        this.side3=side3;

        if(side1+side2<=side3||side2+side3<=side1||side1+side3<=side2){

            IllegalTriangleException e=new IllegalTriangleException(side1,side2,side3);

            throw e;

        }

}

    public String toString(){

        return "Triangle [side1=" + side1 + ", side2=" + side2 + ", side3=" + side3 + "]";

    }

}

class IllegalTriangleException extends Exception{

    private double side1,side2,side3;

    public IllegalTriangleException(double side1,double side2,double side3){

        this.side1=side1;

        this.side2=side2;

        this.side3=side3;

    }

    public String getMessage(){

        return "Invalid: "+side1+","+side2+","+side3;

    }

}

7-5 自定义异常类:成绩异常(ScoreException)

import java.util.Scanner;



public class Main{

    public static void main(String[] args){

        Scanner in=new Scanner(System.in);

        Student zhangsan=new Student();

        double score=in.nextDouble();

        try{

            zhangsan.setScore(score);

            System.out.println("成绩为"+zhangsan.getScore());

        }

        catch(ScoreException e){

            e.show();

        }

        finally{

            System.out.println("程序结束");

        }

        }

}



class ScoreException extends Exception{

    private String message;

    public ScoreException(){

        message="您输入的成绩异常,请核实!";

    }

    public void show(){

        System.out.println(message);

    }

}

class Student{

    private double score;

    public Student(){}

    public void setScore(double s) throws ScoreException{

        this.score=s;

        if(score<0||score>100){

            ScoreException e=new ScoreException();

            throw e;

        }

    }

    public double getScore(){

        return score;

    }

}

第六章习题集

7-2 单词替换

import java.util.Scanner;



public class Main{

    public static void main(String[] args){

        Scanner in=new Scanner(System.in);

        String s=in.nextLine();

        String inquire=in.nextLine();

        String replace=in.nextLine();

        Replace r=new Replace();

        r.rep(s,inquire,replace);

    }

}

class Replace{

    public void rep(String s,String inquire,String replace){

        String[] m=s.split(" ");

        for(int i=0;i<m.length;i++){

            if(m[i].equals(inquire))

                m[i]=replace;

        }

        for(int i=0;i<m.length;i++){

            if(i!=m.length-1)

                System.out.print(m[i]+" ");

            else System.out.print(m[i]);

        }

    }

}

7-3 图书价格汇总

import java.util.*;

public class Main{

    static int sum=0;

    public static void main(String[] args){

        Scanner in=new Scanner(System.in);

        String s=in.nextLine();

        String []m=s.split(";");

        for(int i=0;i<m.length;i++){

            for(int j=0;j<m[i].length();j++){

                if(m[i].charAt(j)>='0'&&m[i].charAt(j)<='9'){

                    sum+=(m[i].charAt(j)-'0')*10+m[i].charAt(j+1)-‘0’;/*char类型运算与数形运算不同,char运算用到的是ACII码,两个字符相减实际上是ACII码对应的数相减,str.charAt(i)是一个char型,减去'0',就相当于把字符转成数字*/

                    break;

                }

            }

        }

        for(int i=0;i<m.length;i++){

            System.out.println(m[i]);

        }

        System.out.println("总价格为"+sum);

    }

}

7-4 通过键盘输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数。

import java.util.Scanner;

public class Main{

    public static void main(String[] args){

        Scanner in=new Scanner(System.in);

        String s=in.nextLine();

        int zimu=0,shuzi=0,kongge=0,other=0;

        for(int i=0;i<s.length();i++){

            if((s.charAt(i)>='a'&&s.charAt(i)<='z')||(s.charAt(i)>='A'&&s.charAt(i)<='Z'))

                zimu++;

            else if(s.charAt(i)>='0'&&s.charAt(i)<='9')

                shuzi++;

            else if(s.charAt(i)==' ')

                kongge++;

            else other++;

        }

        System.out.println("字母个数:"+zimu);

        System.out.println("数字个数:"+shuzi);

        System.out.println("空格个数:"+kongge);

        System.out.println("其他字符个数:"+other);

    }

}

7-6 判断登录信息是否正确--字符串比较

import java.util.Scanner;



public class Main{

    public static void main(String[] args){

        Scanner in=new Scanner(System.in);

        String usename=in.next();

        String password=in.next();

        if(usename.equals("SwpuIot")){

            if(password.equals("123456"))

                System.out.println("Welcome");

            else System.out.println("Mismatch");

        }

        else System.out.println("NotExist");

    }

}

7-8 伪随机数

import java.util.Scanner;

import java.util.Random;

public class Main{

    public static void main(String[] args){

        Scanner in=new Scanner(System.in);

        int n=in.nextInt();

        int m=in.nextInt();

        int k=in.nextInt();

        int count=0;

        Random r=new Random(k);

        while(true){

            int randomNum=r.nextInt(m);

            count++;

            if(count==n){

                System.out.println(randomNum);

                break;

            }

        }

    }

}

7-7 sdut-String-3 字符串字母大小写转换逆序输出

import java.util.Scanner;



public class Main{

    public static void main(String[] args){

        Scanner in=new Scanner(System.in);

        String s=in.nextLine();

        for(int i=s.length()-1;i>=0;i--){

            if(s.charAt(i)>='a'&&s.charAt(i)<='z'){

                System.out.print((char)(s.charAt(i)-32));

            }

            else if(s.charAt(i)>='A'&&s.charAt(i)<='Z'){

                System.out.print((char)(s.charAt(i)+32));

            }

            else System.out.print(s.charAt(i));

        }

    }

}

7-9 sdut-String-4 去除字符串中数字字符逆序输出

import java.util.*;

public class Main{



    public static void main(String[] args){

        Scanner in=new Scanner(System.in);

        String s=in.nextLine();

        for(int i=s.length()-1;i>=0;i--){

            if(!(s.charAt(i)>='0'&&s.charAt(i)<='9'))

                System.out.print(s.charAt(i));

        }

    }

}

当想对分开的字符串进行循环时,循环条件为s.length

当想对字符进行循环时,循环条件为s.length()

第九章习题集

7-3 计算正五边形的面积和周长

import java.util.*;

import java.text.*;

public class Main{

    public static void main(String[] args){

        Scanner in=new Scanner(System.in);

        double a=in.nextDouble();

        double perimeter=0,area=0;

        perimeter=a*5;

        area=a*a*Math.sqrt(25+10*Math.sqrt(5))/4;

        DecimalFormat df=new DecimalFormat("#.####");

        System.out.println(df.format(area));

        System.out.println(df.format(perimeter));

    }

}

第十章习题集

函数

6-1 jmu-Java-07多线程-Thread

class MyThread extends Thread{

    int n;

    public MyThread(int n){

        this.n=n;

    }

    public void run(){

        for(int i=0;i<n;i++){

            System.out.println(i);

        }

        System.out.println(Thread.currentThread().getName()+" "+isAlive());

    }

}

6-2 jmu-Java-07多线程-PrintTask

class PrintTask implements Runnable{

    int n;

    public PrintTask(int n){

        this.n=n;

    }

    public void run(){

        for(int i=0;i<n;i++){

            System.out.println(i);

        }

        System.out.println(Thread.currentThread().getName());

    }

}

编程

7-1 创建一个倒数计数线程

import java.util.Scanner;

class ReverseTime implements Runnable{

    int n;

    public ReverseTime(int n){

        this.n=n;

    }

    public void run(){

        for(int i=n;i>=0;i--){

            System.out.println(i);

        }

    }

}

public class Main{

    public static void main(String[] args){

        Scanner in=new Scanner(System.in);

        int n=in.nextInt();

        ReverseTime r=new ReverseTime(n);

        r.run();

    }

}

7-2 程序改错题4

import java.util.Scanner;



public class Main {

    public static void main(String[] args) {

        Scanner in = new Scanner(System.in);

        int x = in.nextInt();

        for(int i=0;i<x;i++){

        Thread t = new Thread(new RunHandler());

        t.start();

        }

    }

}



class RunHandler extends Thread {

    public void run() {

        

            System.out.println("run");

    }

}

7-3 试试多线程

class A extends Thread{

    int sum;

    public A(){

        sum=0;

    }

    public void run(){

        for(int i=1;i<=25;i++){

            sum+= i;

        }

    }

    public int getSum(){

        return sum;

    }

}

class B extends Thread{

    int sum;

    public B(){

        sum=0;

    }

    public void run(){

        for(int i=26;i<=50;i++){

            sum+= i;

        }

    }

    public int getSum(){

        return sum;

    }

}

class C extends Thread{

    int sum;

    public C(){

        sum=0;

    }

    public void run(){

        for(int i=51;i<=75;i++){

            sum+= i;

        }

    }

    public int getSum(){

        return sum;

    }

}

class D extends Thread{

    int sum;

    public D(){

        sum=0;

    }

    public void run(){

        for(int i=76;i<=100;i++){

            sum+= i;

        }

    }

    public int getSum(){

        return sum;

    }

}

public class Main{

    public static void main(String[] args){

        A a=new A();

        B b=new B();

        C c=new C();

        D d=new D();

        a.start();

        b.start();

        c.start();

        d.start();

        try {

    c.sleep(1000);

    }

    catch(Exception e1){

    }

        System.out.println(a.getSum()+b.getSum()+c.getSum()+d.getSum());

    }

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

有理想的上学人

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值