Java实验练习

Java编程实践
本文主要探讨了Java编程中的实践技巧和常见问题,包括类的设计、异常处理、IO流操作以及集合框架的使用。通过实例解析,帮助读者深入理解Java编程的核心概念和最佳实践。
3.12   【回文数】
import java.util.Scanner;
public class JavaApplication2 {
    public static void main(String []args){
        System.out.printf("Enter a three_digit integer");
        Scanner input=new Scanner(System.in);
        int num=input.nextInt();
        if(num%10==num/100)
        {
        System.out.println(num+"is a palindrome");
    }
        else
            System.out.println(num+"is not a palindrome");
    
}
}
4.16【显示一个随机的大写字母】

public class JavaApplication3 {
public static void main(String []args){
    char a=(char)(65+Math.random()*26);
    System.out.println(a);
} 
}
5.11【被5或者6整除】

public class JavaApplication3 {
public static void main(String []args){
    int i;
    int count;
    count=0;
    for(i=100;i<=200;i++){
        if(i%5==0^i%6==0){
            count++;
            System.out.print(i+" ");
             if(count==10){
            System.out.println("\n");
            count=0;
        }
        }
       
    }
} 
}
6.2【数字各位之和】
public class JavaApplication3 {
public static void main(String []args){
    Scanner input=new Scanner(System.in);
    long num=input.nextLong();
    System.out.println(sumDigits(num));
   
}
public static long sumDigits(long n){
     long sum=0;
    long k;
    while(n!=0){
        k=n%10;
        sum+=k;
        n=n/10;
    }
    return sum;
}
} 
6.10【求小于10000的素数的个数】
    public static void main(String[] args) {
        int num;
        int count=0;
        for(num=2;num<10000;num++) {
            if(isPrime(num)==1){
                count++;
            }
        }
        System.out.println(count);
        // TODO code application logic here
    }
    public static int isPrime(int n){
        int k=1;
        for(int i=2;i<n;i++){
            if(n%i==0){
                k=0;
                break;
            }
        }
        return k;
    }
    
}
7.1
      【】import java.util.Scanner;
public class JavaApplication5 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        int n=input.nextInt();
        int []arr=new int[n];//定义一个数组
        System.out.println("enter"+n+"scores:");
        for(int i=0;i<n;i++){
            arr[i]=input.nextInt();
        }
        int best=arr[0];
        for(int i=1;i<n;i++){
            if(best<arr[i]){
                best=arr[i];
            }
        }
        for(int i=0;i<n;i++){
            char g;
            if(arr[i]>=best-10)
                g='A';
            else if(arr[i]>=best-20)
                g='B';
            else if(arr[i]>=best-30)
                g='C';
            else if(arr[i]>=best-40)
                g='D';
             else
                g='F';
             System.out.println("student"+i+"score is"+arr[i]+"and grade is "+g);            
            }
        }
}
7.8
【】package javaapplication5;

/**
 *
 * @author 久颜
 */
import java.util.Scanner;
public class JavaApplication5 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        int []array1={21,2,90,40,78};
        double []array2={23.1,3.8,4.2,7.9};
        System.out.println("array1 average"+average(array1));
        System.out.println("array2 average"+average(array2));
    }
    public static int average(int []array){
        int i;
        int sum=0;
        for(i=0;i<array.length;i++){
        sum+=array[i];
    }
        return sum/i;
    }
     public static double average(double []array){
    
        int i;
        double sum=0;
        for(i=0;i<array.length;i++){
        sum+=array[i];
    }
        return sum*1.0/i;
    }
}

7.9

【】import java.util.Scanner;
public class JavaApplication5 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        double []arr=new double[10];
        for(int i=0;i<10;i++){
            arr[i]=input.nextDouble();
        }
        System.out.println("The minimum number is"+min(arr));
    }
    public static double min(double []arr){
        double m=arr[0];
        for(int i=1;i<10;i++){
            if(m>arr[i])
                m=arr[i];
        }
        return m;
    }
}
8.2【矩阵主对角线和】
      or 久颜
 */
import java.util.Scanner;
public class JavaApplication5 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        double [][]arr=new double[4][4];
        for(int i=0;i<4;i++){
            for(int j=0;j<4;j++){
                arr[i][j]=input.nextDouble();
            }
        }
        double sum=sumMajorDiagonal(arr);
        System.out.println("sum of the elements in the major diagonal is"+sum);
    }
    public static double sumMajorDiagonal(double [][]arr){
        double sum=0;
        for(int i=0;i<4;i++){
            for(int j=0;j<4;j++){
                if(i==j){
                    sum+=arr[i][j];
                }
            }
        }
        return sum;
    }
}
8.3【】
package javaapplication20;
import java.util.Scanner;
import static java.util.Arrays.sort;
/**
 *
 * @author 久颜
 */
public class JavaApplication20 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
  Scanner input=new Scanner(System.in)6  ;
      char [][]arr={
          {'A','B','D','C'},
          {'A','C','D','A'},
          {'A','B','A','B'}
      };
      char []key={'A','B','C','D'};
      int count=0;
      int []str=new int[3];
     for(int i=0;i<arr.length;i++){
         for(int j=0;j<arr[0].length;j++){
             if(arr[i][j]==key[j]){
                 count++;
             }
         }
             str[i]=count;
             count=0;
     }
     sort(str);
     for(int i=0;i<3;i++){
         System.out.println(str[i]);
     }
    }
}
9.7

package javaapplication7;
import java.util.Date;
/**
 *
 * @author 久颜
 */
class Account {
  private int id=0;
  private  double balance=0;
  private double annualInterestRate=0;
   private Date dateCreated;
    public  Account()  {
     dateCreated=new Date();
      }
    public Account(int id,double balance){
        this.id=id;
        this .balance=balance;
        dateCreated=new Date();
    }
    public double getBalance(){
        return this.balance;
    }
    public void setBalance(double balance){
        this.balance=balance;
    }
    public int getId(){
        return this.id;
    }
    public void setId(int id){
        this.id=id;
    }
    public double getAnnualInterestRate(){
        return this.annualInterestRate;
    }
    public void setAnnualInterestRate(double annualInterestRate){
        this.annualInterestRate=annualInterestRate;
    }
    public java.util.Date getdateCreated(){
        return this.dateCreated;
    }
    public double getMonthlyInterestRate(){//月利率
        return (this.annualInterestRate/12)/100;
    }
    public double withDraw(double money){//取钱
        this.balance=balance-money;
        return this.balance;
    }
    public double deposit(double money){//存钱
        this.balance=balance+money;
        return this.balance;
    }
}

 */
public class JavaApplication7 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Account a=new Account(1122,20000);
       a.setAnnualInterestRate(0.045);
        a.withDraw(2500);
        a.deposit(3000);
           System.out.println("余额"+a.getBalance()+"月利息"+a.getMonthlyInterestRate()+"开户日期"+a.getdateCreated());
    }
    
}
9.8
package javaapplication8;

/**
 *
 * @author 久颜
 */
public class Fan {
   public static final int  SLOW=1;
   public static final int MEDIUM=2;
   public static final  int FAST=3;
    private int speed=SLOW;
    private boolean on=false;
    private double radius=5;
    String color="blue";
    public int getSpeed(){
      return  speed;
    }
    public void setSpeed(int speed){
        this.speed=speed;
    }
    public boolean getOn(){
        return  on;
    }
    public void setOn(boolean on){
        this.on=on;
    }
    public double getRadius(){
        return this.radius;
    }
    public void setRadius(double radius){
        this.radius=radius;
    }
    public String getColor(){
        return color;
    }
    public void setColor(String color){
        this.color=color;
    }
    public Fan(){
        
    }
   @Override
    public String toString(){
        if(on){
            return "speed:"+speed+"color:"+color+"radius"+radius;
        }
        else
            return "fan is off"+color+radius; 
    }     
}

   public static void main(String[] args) {
        // TODO code application logic here
        Fan fan1=new Fan();
        fan1.setSpeed(Fan.FAST);
        fan1.setRadius(10);
        fan1.setColor("yellow");
        fan1.setOn(true);
        Fan fan2=new Fan();
        fan2.setSpeed(Fan.MEDIUM);
        fan2.setRadius(5);
        fan2.setColor("blue");
        fan2.setOn(false);
        System.out.println("fan1"+fan1.toString());
        System.out.println("fan2"+fan2.toString());
   
    } 
}

10.3
package javaapplication9;

/**
 *
 * @author 久颜
 */
public class MyInteger {
    int value;
    public  MyInteger(int value){
        this.value=value;
    }
    public int getValue(){
        return value;
    }
    public boolean isEven(){
        return value%2 ==0;
    }
    public boolean isOdd(){
         return value%2!=0;
    }
     public boolean isPrime(){
        for(int i=2;i<=value/2;i++){
            if(value%i==0)
                return false;
        }
        return true;
    }
     public static boolean isEven(int value){
         return value%2==0;
     }
     public  static boolean isOdd(int value){
         return  value%2!=0;
    }
      public static boolean isPrime(int value){
        for(int i=2;i<=value/2;i++){
            if(value%i==0)
                return false;
        }
        return true;
    }
      public static boolean isEven(MyInteger myinteger){
         return myinteger.getValue()%2==0;
     }
     public static  boolean isOdd(MyInteger myinteger){
         return myinteger.getValue()%2!=0;
    }
      public  static boolean isPrime(MyInteger myinteger){
        for(int i=2;i<=myinteger.getValue()/2;i++){
            if(myinteger.getValue()%i==0)
                return false;
        }
        return true;
    }
      public boolean equals(int value){
          return this.value==value;
      }
      public boolean equals(MyInteger myinteger){
          return this.value==myinteger.getValue();
      }
    public static int parseInt(char [] c){
        return Integer.valueOf(new String(c));
    }
    public static int parseInt(String s){
        return Integer.valueOf(s);
    }
}

  public static void main(String[] args) {
        // TODO code application logic here
        String s="123";
        char []a={'1','2'};
        MyInteger f1=new MyInteger(3);
        MyInteger f2=new MyInteger(4);
        System.out.println(f1.isEven());
         System.out.println(f1.isOdd());
          System.out.println(f1.isPrime());
           System.out.println( MyInteger.isEven(f2));
            System.out.println( MyInteger.isOdd(f2));
             System.out.println( MyInteger.isPrime(f2));
              System.out.println(f1.equals(5));
               System.out.println(f1.equals(f2));
                System.out.println( MyInteger.parseInt(a));
                System.out.println( MyInteger.parseInt(s));
    }
    
}
10.4public class MyPoint {
        double x;
    double y;
    public double getX(){
        return this.x;
    }
    public double getY(){
        return this.y;
    }
    public MyPoint(){
        this.x=0;
        this.y=0;
    }
    public MyPoint(double x,double y){
        this.x=x;
        this.y=y;
    }
    public double distance(MyPoint myPoint){
        double s;
        s=Math.sqrt((this.x-myPoint.getX())*(this.x-myPoint.getX())+(this.y-myPoint.getY())*(this.y-myPoint.getY()));      
        return s;
    }
    public double distance(int x,int y){
        double s;
        s=Math.sqrt((this.x-x)*(this.x-x))+((this.y-y)*(this.y-y));
        return s;
    }
}


import java.util.Scanner;
public class JavaApplication10 {

    /**
     * @param args the command line arguments
     */
    
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner input=new Scanner(System.in);
        MyPoint op1=new MyPoint();
        MyPoint op2=new MyPoint(input.nextDouble(),input.nextDouble());
        System.out.println(op1.distance(op2));
    }
    
}
11.1
public class Triangle extends GeometricObject {
    public double side1=1.0;
    public double side2=1.0;
   public  double side3=1.0;
    public Triangle(){
        
    }
    public Triangle(double side1,double side2,double side3){
        this.side1=side1;
        this.side2=side2;
        this.side3=side3;
    }
    public double getSide1(){
        return this.side1;
    }
    public double getSide2(){
        return this.side2;
    }
    public double getSide3(){
        return this.side3;
    }
    public double getArea(){
        double area;
        double s;
        s=(side1+side2+side3)/2;
        area=Math.sqrt(s*(s-side1)*(s-side2)*(s-side3));
        return area;
    }
    public double getPerimeter(){
        return side1+side2+side3;
    }
    @Override
    public String toString(){
        return  "Triangle: side1="+side1+"side2"+side2+"side3"+side3;
    }
}

public class GeometricObject {
    private String color="white";
    private boolean filled;
    private java.util.Date dateCreated;
    public GeometricObject(){
        dateCreated=new java.util.Date();
    }
    public GeometricObject(String color,boolean filled){
         dateCreated=new java.util.Date();
         this.color=color;
         this.filled=filled;
    }
    public String getColor(){
        return color;
    }
    public void setColor(String color){
        this.color=color;
    }
    public boolean isFilled(){
        return filled;
    }
    public void setFilled(boolean filled){
        this.filled=filled;
    }
    public java.util.Date getDateCreated(){
        return dateCreated;
    }
    @Override
    public String toString(){
        return "created on"+dateCreated+"\ncolor"+color+"and filled:"+filled;
    }
    
}

import java.util.Scanner;
/**
 *
 * @author 久颜
 */
public class JavaApplication11 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner input=new Scanner(System.in);
        Triangle triangle=new Triangle();
        System.out.println("side1:"+"\nside2"+"\nside3"+"\ncolor"+"\nfilled");
        triangle.setFilled(input.nextBoolean());
        triangle.setColor(input.next());
        triangle.side1=input.nextDouble();
        triangle.side2=input.nextDouble();
        triangle.side3=input.nextDouble();
        System.out.println("面积"+triangle.getArea()+"边长"+triangle.side1+triangle.side2+triangle.side3+"颜色"+triangle.getColor()+triangle.isFilled());
        
        
    }
    
}
11.2
/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package text_;

/**
 *
 * @author 隽永
 */
public class Employee extends Person{
    public String office;
    public String wage;
    public java.util.Date date=new java.util.Date();
    Employee(String name,String address,String tel,String e_mail,String office,String wage)
    {
        super(name,address,tel,e_mail);
        this.wage=wage;
        this.office=office;
    }
    @Override
    public String toString()
    {
        return super.toString()+" 办公室 "+office+" 工资:"+wage+" 受聘时间 "+date+" ";
    }
    
}

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package text_;

/**
 *
 * @author 隽永
 */
public class Faculty extends Employee{
    public int officeTime;
    public int level;

    Faculty(String name,String address,String tel,String e_mail,String office,String wage,int officeTime,int level)
    {
        super(name,address,tel,e_mail,office,wage);
        this.officeTime=officeTime;
        this.level=level;
    }
    @Override    
    public String toString()
    {
        return super.toString()+" 办公时间:"+officeTime+" 级别:"+level+" ";
    }
}

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package text_;

/**
 *
 * @author 隽永
 */
public class Person {
    public final String name;
    public final String address;
    public final String tel;
    public final String e_mail;
    Person(String name,String address,String tel,String e_mail)
    {
        this.address=address;
        this.e_mail=e_mail;
        this.name=name;
        this.tel=tel;
    }
    @Override
    public String toString()
    {
        return "姓名:"+name+" 地址:"+address+" 电话:"+tel+" 电子邮件:"+e_mail+" ";
    }
}

public class Staff extends Employee{
    public String Position;
    Staff(String name,String address,String tel,String e_mail,String office,String wage,String Position)
    {
        super(name,address,tel,e_mail,office,wage);
        this.Position=Position;
    }
    @Override
    public String toString()
    {
        return super.toString()+" 职务称号:"+Position+" ";
    }
}

public class Student extends Person {
    public final int grade;
    Student(String name,String address,String tel,String e_mail,int grade)
    {
        super(name,address,tel,e_mail);
        this.grade=grade;
    }
    @Override
    public String toString()
    {
        return super.toString()+"年级:"+grade+" ";
    }
}

    public static void main(String[] args) {
        // TODO code application logic here
        Scanner input=new Scanner(System.in);
        System.out.println("请输入姓名 地址 电话 邮箱:");
        Person s1=new Person(input.next(),input.next(),input.next(),input.next());
        System.out.println("请输入姓名 地址 电话 邮箱 年级:");
        Student s2=new Student(input.next(),input.next(),input.next(),input.next(),input.nextInt());
        System.out.println("请输入姓名 地址 电话 邮箱 办公室 工资:");
        Employee s3=new Employee(input.next(),input.next(),input.next(),input.next(),input.next(),input.next());
        System.out.println("请输入姓名 地址 电话 邮箱 办公室 工资 办公室时间  级别:");
        Faculty s4=new Faculty(input.next(),input.next(),input.next(),input.next(),input.next(),input.next(),input.nextInt(),input.nextInt());
        System.out.println("请输入姓名 地址 电话 邮箱 办公室 工资 职务称号:");
        Staff s5=new Staff(input.next(),input.next(),input.next(),input.next(),input.next(),input.next(),input.next());
        System.out.println(s1.toString());
        System.out.println(s2.toString());
        System.out.println(s3.toString());
        System.out.println(s4.toString());
        System.out.println(s5.toString());
    }
    
}
12.2
import java.util.Scanner;
/**
 *
 * @author 久颜
 */
public class JavaApplication14 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
        Scanner input=new Scanner(System.in);
       
        while(true){
        try{
            System.out.println("请输入两个整数");
             int a=input.nextInt();
        int b=input.nextInt();
            System.out.println("sum is"+(a+b));
            break;
        }
        catch(Exception e){
            input=new Scanner(System.in);
        }
    }
    }
}
12.15
@author 久颜
 */
public class JavaApplication15 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args)throws Exception {
        // TODO code application logic here
        java.io.File file=new java.io.File("exercise12_15.txt");
        if(!file.exists()){
            System.out.println("File already existts");
            
            file.createNewFile();
        }
       java.io. PrintWriter output =new java.io.PrintWriter(file);
        Scanner input=new Scanner(file);
        int n=100;
        int []a=new int[100];
        for(int i=0;i<100;i++){
           output.print((int)(Math.random()*100)+" ");
        }
        output.close();
        int k=0;
        while(input.hasNext())
        {
            a[k++]=input.nextInt();
        }
        sort(a);
        
       
        for(int i=0;i<100;i++){
            if(i%10==0)
                System.out.println();
            System.out.print(a[i]+" ");
        }
        
    }
    
}

13.6
    public static void main(String[] args) {
        // TODO code application logic here
        ComparableCircle c1=new ComparableCircle(3);
       ComparableCircle c2=new ComparableCircle(5);
       if(c1.compareTo(c2)==1)
           System.out.println("c1面积大");
       else if(c1.compareTo(c2)==-1)
           System.out.println("c2面积大");
       else
           System.out.println("面积一样大");
      System.out.println(c1.toString());
    }  
}


public class ComparableCircle extends Circle implements Comparable <ComparableCircle>{
    ComparableCircle(){
}
    ComparableCircle(double radius){
        super(radius);
    }
    @Override
    public int compareTo(ComparableCircle o)
    {
        if(getArea()>o.getArea())
            return 1;
        else if(getArea()<o.getArea())
            return -1;
        else
            return 0;
    }
    @Override
    public String toString()
    {
        return super.toString()+"area:"+getArea();
    }
}
public class Circle extends GeometricObject{
       private double radius=0;
    Circle()
    {
    }
    Circle(double r)
    {
        radius=r;
    }
    public void setRadius(double r)
    {
        radius=r;
    }
    @Override
    public double getArea()
    {
        return Math.PI*radius*radius;
    }
    @Override
    public double getPerimeter()
    {
        return 2*Math.PI*radius;
    }
}

public  abstract class GeometricObject {
    private String color="white";
    private boolean filled=false;
    private final java.util.Date dateCreated=new java.util.Date();
    protected GeometricObject()
    {
    }
    protected GeometricObject(String color,boolean filled)
    {
        this.color=color;
        this.filled=filled;
    }
    public String getColor()
    {
        return color;
    }
    public void setColor(String color)
    {
        this.color=color;
    }
    public boolean isFilled()
    {        
        return filled;
    }
    public void setFilled(boolean filled)
    {
        this.filled=filled;
    }
    public java.util.Date getDateCreated()
    {
        return dateCreated;
    }
    @Override
    public String toString()
    {
        return color+"  "+filled+"  "+dateCreated;
    }
    public abstract double getArea();
    
    public abstract double getPerimeter();
    
}


13.7 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package text;

/**
 *
 * @author 隽永
 */
public class Square extends GeometricObject implements Colorable{
    private final double width;
    private final double height;
    Square(double w,double h,String color,boolean falled)
    {
        super(color,falled);
        width=w;
        height=h;
    }
    @Override
    public void howToColor()
    {
        System.out.println("Color all four sides");
    }
    @Override
    public double getArea()
    {
        return width*height;
    }
    @Override
    public double getPerimeter()
    {
        return 2*(width+height);
    }
    @Override
    public String toString()
    {
        if(isFilled()==true)
        {
            howToColor();
        }
        return super.toString();
    }
}


/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */

package text;

import java.util.Scanner;

/**
 *
 * @author 隽永
 */
public class Text {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
        // TODO code application logic here
//       ComparableCircle c1=new ComparableCircle(3);
//       ComparableCircle c2=new ComparableCircle(5);
//       if(c1.compareTo(c2)==1)
//           System.out.println("c1面积大");
//       else if(c1.compareTo(c2)==-1)
//           System.out.println("c2面积大");
//       else
//           System.out.println("面积一样大");
//      System.out.println(c1.toString());
        
        Scanner input=new Scanner(System.in);
        GeometricObject[] arr=new Square[5];
        for(int i=0;i<5;i++)
        {
            double width,heigth;
            String color;
            boolean falled;
            width=input.nextDouble();
            heigth=input.nextDouble();
            color=input.next();
            falled=input.nextBoolean();
            arr[i]=new Square(width,heigth,color,falled);
            //input.nextLine();
        }
        for(int i=0;i<5;i++)
        {
            System.out.println(arr[i].toString());
        }
    } 
}


public interface Colorable{
public static void howToColor();}
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值