By GokiSoft.com| 15:35 21/06/2023|
Java Basic

Java Basic- OOP - Interface - Hình chữ nhật trong java BT995

Bài tập

------------------ Bài tập kế thừa - interface -------------------------

Câu 1 . Xây dựng một interface có tên là HCNInterface (được đặt trong gói HCNPackage) chứa một số phương thức sau:

- Phương thức dientichHCN() dùng để tính diện tích hình chữ nhật.

- Phương thức getChieuDai() và getChieuRong() dùng để lấy giá trị chiều dài và chiều rộng của của hình chữ nhật.

- Phương thức setDaiRong(cd, cr) dùng để cập nhật giá trị cd, cr cho hai cạnh của hình chữ nhật.

Câu 2. Sử dụng interface HCNInterface trên để xây dựng lớp Hinhchunhat chứa hai thuộc tính là: chieudai, chieurong và các phương thức dientichHCN(), getChieuDai(), getChieuRong(), setDaiRong(cd,cr) đã khai báo trong Interface HCNInterface trên? 

Câu 3. Xây dựng lớp HCNTest chứa phương thức main thực hiện các công việc sau:

a. Khai báo một mảng chứa n hình chữ nhật (với n là số nguyên dương bất kỳ được nhập từ bàn phím). Sau đó nhập chiều dài và chiều rộng cho n hình chữ nhật đó.

b. In ra màn hình thông tin: chiều dài, chiều rộng và diện tích của n hình chữ nhật trên.

c. In ra màn hình thông tin về hình chữ nhật có diện tích lớn nhất.

-----------Ends.

Liên kết rút gọn:

https://gokisoft.com/995

Bình luận

avatar
GokiSoft.com [Teacher]
2021-08-05 11:53:11


#Main.java


/*
 * 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 lesson13.bt995;

import java.util.Scanner;

/**
 *
 * @author Diep.Tran
 */
public class Main {
    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        System.out.println("Nhap vao N HCN: ");
        int n = Integer.parseInt(scan.nextLine());
        //Cau 1:
        Hinhchunhat[] hcnList = new Hinhchunhat[n];
        
        for (int i = 0; i < n; i++) {
            System.out.println("Nhap thong tin HCN thu " + (i + 1));
            System.out.println("Nhap chieu dai: ");
            double cd = Double.parseDouble(scan.nextLine());
            System.out.println("Nhap chieu rong: ");
            double cr = Double.parseDouble(scan.nextLine());
            
            hcnList[i] = new Hinhchunhat();
            hcnList[i].setDaiRong(cd, cr);
        }
        
        //Cau 2:
        System.out.println("Thong tin HCN");
        for (int i = 0; i < n; i++) {
            System.out.println(hcnList[i]);
        }
        
        //Cau 3
        int index = 0;
        double maxDientich = hcnList[0].dientichHCN();
        
        for (int i = 1; i < n; i++) {
            double currentDt = hcnList[i].dientichHCN();
            
            if(currentDt > maxDientich) {
                index = i;
                maxDientich = currentDt;
            }
        }
        
        System.out.println("Thong tin dien tich max:");
        System.out.println(hcnList[index]);
    }
}


#Hinhchunhat.java


/*
 * 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 lesson13.bt995;

/**
 *
 * @author Diep.Tran
 */
public class Hinhchunhat implements HCNInterface{
    double chieudai, chieurong;

    @Override
    public double dientichHCN() {
        return chieudai * chieurong;
    }

    @Override
    public double getChieuDai() {
        return chieudai;
    }

    @Override
    public double getChieuRong() {
        return chieurong;
    }

    @Override
    public void setDaiRong(double cd, double cr) {
        chieudai = cd;
        chieurong = cr;
    }
    
    @Override
    public String toString() {
        return "Chieu dai: " + chieudai + ", chieu rong: " + chieurong + ", dien tich: " + dientichHCN();
    }
}


#HCNInterface.java


/*
 * 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 lesson13.bt995;

/**
 *
 * @author Diep.Tran
 */
public interface HCNInterface {
    double dientichHCN();
    
    double getChieuDai();
    
    double getChieuRong();
    
    void setDaiRong(double cd, double cr);
}


avatar
Võ Như Việt [C2010L]
2021-08-04 19:27:21


#HCNInterface.java


/*
 * 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 BT995.HCNPackage;

/**
 *
 * @author ADMIN
 */
public interface HCNInterface{

    
    double dientichHCN();
    
    double getChieuDai();
    
    double getChieuRong();
    
    void setDaiRong(double cd, double cr);
}


#HCNTest.java


/*
 * 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 BT995.HCNPackage;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;

/**
 *
 * @author ADMIN
 */
public class HCNTest {
    static List<Hinhchunhat> HCNList = new ArrayList<>();
    static Scanner sc = new Scanner(System.in);
    
    public static void main(String args[]) {
        
        int choose;
        
        do {            
           showMenu();
           choose = Integer.parseInt(sc.nextLine());
           
           switch(choose){
               case 1 -> inputData();
               case 2 -> ShowAll();
               case 3 -> ShowMax();
               case 4 -> System.out.println("Thoat chuong trinh");
               default -> System.out.println("Chon sai!!!");
           }
            
        } while (choose != 4);
        
        
        
    }
    
    static void showMenu(){
        System.out.println("1.Khai bao mang chua n hinh chu nhat(Nhap chieu dai, nhap chieu rong)");
        System.out.println("2.In ra man hinh thong tin: Chieu Dai, Chieu rong va dien tich ");
        System.out.println("3.In ra thong tin ve hinh chu nhat co Dien tich lơn nhat");
        System.out.println("4.Thoat chuong trinh...");
        System.out.println("Chon: ");
    }

    private static void inputData() {
        System.out.println("Nhap n hinh chu nhat muon khoi tao:");
        int n = Integer.parseInt(sc.nextLine());
        for (int i = 0; i < n; i++) {
            Hinhchunhat h = new Hinhchunhat();
            System.out.println("===Nhap so lieu cho HCN thu : "+(i+1));
            h.input();    
            HCNList.add(h);
        }
        
        
       
    }

    private static void ShowAll() {
        for (Hinhchunhat hinhchunhat : HCNList) {
            hinhchunhat.display();
        }
    }

    private static void ShowMax() {
        Collections.sort(HCNList, new Comparator<Hinhchunhat>() {
            @Override
            public int compare(Hinhchunhat o1, Hinhchunhat o2) {
                if(o1.getChieuDai() * o1.getChieuRong() > o2.getChieuDai() * o2.getChieuRong() ){
                  return -1;
                } 
                return 1;
            }
        });
        System.out.println("");
        System.out.println("Hinh chu nhat co dien tich lon nhat la " + HCNList.get(0).dientichHCN() );
    }
}


#Hinhchunhat.java


/*
 * 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 BT995.HCNPackage;

import java.util.Scanner;

/**
 *
 * @author ADMIN
 */
public class Hinhchunhat implements HCNInterface{

    double chieudai,chieurong;
    static Scanner sc = new Scanner(System.in);
    
    @Override
    public double dientichHCN() {
        double DienTichHCN = chieurong * chieudai;
        return DienTichHCN ;
    }

    @Override
    public double getChieuDai() {
        return chieudai;
    }

    @Override
    public double getChieuRong() {
        return chieurong;
    }
    
    @Override
    public void setDaiRong(double cd, double cr) {
        this.chieudai = cd;
        this.chieurong = cr;
    }
    
    public void input(){
        System.out.println("Chieu dai : ");
            chieudai = sc.nextDouble();
            
        System.out.println("Chieu rong : ");
            chieurong = sc.nextDouble();
    }
    
    @Override
    public String toString() {
        return "Hinhchunhat{" + "chieudai=" + chieudai + ", chieurong=" + chieurong + '}';
    }

    public void display(){
        System.out.println(this);
        System.out.println("Dien tich = " + dientichHCN());
    }
}


avatar
Chu Quốc Việt [community,C2010L]
2021-08-03 15:02:05


#HCNInterface.java


/*
 * 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 HCNPackage;

/**
 *
 * @author quocviet
 */
public interface HCNInterface {

    float dientichHcn();

    float getchieudai();

    float getchieurong();

    void setchieudai();

    void setchieurong();

}


#HCNtest.java


/*
 * 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 HCNPackage;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;

/**
 *
 * @author quocviet
 */
public class HCNtest extends Hinhchunhat {

    public static Scanner scan = new Scanner(System.in);

    public static void main(String[] args) {
        ArrayList<Hinhchunhat> hcnList = new ArrayList<>();

        int choice;
        do {
            showMenu();
            choice = Integer.parseInt(scan.nextLine());
            switch (choice) {
                case 1:
                    inputHCN(hcnList);
                    break;
                case 2:
                    cdcrHCN(hcnList);
                    break;
                case 3:
                    showHCN(hcnList);
                    break;
                case 4:
                    System.out.println("Thoat!!");
                    break;
                default:
                    System.out.println("Nhap sai!!!");
                    break;
            }
        } while (choice != 4);
    }

    static void showMenu() {
        System.out.println("1 . Nhap so hinh chu nhat");
        System.out.println("2 . Hien thu thong so hinh chu nhat");
        System.out.println("3 . thong tin ve hinh chu nhat lon nhat");
        System.out.println("4 . Thoat!!");
    }

    static void inputHCN(ArrayList<Hinhchunhat> hcnList) {
        System.out.println("Nhap so luong hinh chu nhat:");
        int n = Integer.parseInt(scan.nextLine());
        for (int i = 0; i < n; i++) {
            Hinhchunhat hcn = new Hinhchunhat();
            System.out.println("Nhap so lieu cho hcn thu "+ (i + 1) );
            hcn.setchieudai();
            hcn.setchieurong();
            hcn.dientichHcn();
            hcnList.add(hcn);
        }
    }

    static void cdcrHCN(ArrayList<Hinhchunhat> hcnList) {
        for (Hinhchunhat hinhchunhat : hcnList) {
            hinhchunhat.display();
        }
    }

    static void showHCN(ArrayList<Hinhchunhat> hcnList) {

        Collections.sort(hcnList, new Comparator<Hinhchunhat>() {
            @Override
            public int compare(Hinhchunhat o1, Hinhchunhat o2) {
                if (o1.getchieudai() * o1.getchieurong() > o2.getchieudai() * o2.getchieurong()) {
                    return -1;
                }
                return 1;

            }
        });
        System.out.println("hinh chu nhat co dien tich lon nhat la :"+ hcnList.get(0).dienTich);
    }
}


#Hinhchunhat.java


/*
 * 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 HCNPackage;

import java.util.Scanner;

/**
 *
 * @author quocviet
 */
public class Hinhchunhat implements HCNInterface {
    float chieuDai,chieuRong,dienTich;
    @Override
    public float dientichHcn() {
        dienTich = chieuDai*chieuRong;
        return dienTich;
    }

    @Override
    public float getchieudai() {
        return chieuDai;
    }

    @Override
    public float getchieurong() {
        return chieuRong;
    }

    @Override
    public void setchieudai() {
        Scanner scan = new Scanner(System.in);
        System.out.println("Nhap chieu dai :");
        chieuDai = Float.parseFloat(scan.nextLine());
    }

    @Override
    public void setchieurong() {
        Scanner scan = new Scanner(System.in);
        int i = 0;
        System.out.println("Nhap chieu rong :");
        chieuRong = Float.parseFloat(scan.nextLine());
    }

    @Override
    public String toString() {
        return  "chieuDai=" + chieuDai + ", chieuRong=" + chieuRong + ", dienTich=" + dienTich  ;
    }
    public void display(){
        System.out.println(this);
    }
}


avatar
Do Trung Duc [T2008A]
2021-02-25 10:13:37



/*
 * 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 KeThuaInterFace;

import java.util.Scanner;

/**
 *
 * @author TrungDuc
 */
public class HinhChuNhat implements IHinhChuNhat {
   public float ChieuDai;
    public float ChieuRong;
    public float DienTich;

    @Override
    public float dientichHCN() {
        DienTich = ChieuDai*ChieuRong;
       return DienTich;
    }

    @Override
    public float getChieuDai() {
        return ChieuDai;
    }

    @Override
    public float getChieuRong() {
        return ChieuRong;
    }

    @Override
    public void setChieuDai() {
        Scanner scan = new Scanner(System.in);
        System.out.println("Nhap chieu Dai: ");
        ChieuDai = Float.parseFloat(scan.nextLine());
    }

    @Override
    public void setChieuRong() {
         Scanner scan = new Scanner(System.in);
         System.out.println("Nhap chieu Rong: ");
        ChieuRong = Float.parseFloat(scan.nextLine());
    }
}


avatar
Do Trung Duc [T2008A]
2021-02-25 10:13:24



/*
 * 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 KeThuaInterFace;

/**
 *
 * @author TrungDuc
 */
public interface IHinhChuNhat {
    
    
    float dientichHCN();
    
    float getChieuDai();
    
    float getChieuRong();
    
    void setChieuDai();
    
    void setChieuRong();
    

}


avatar
Do Trung Duc [T2008A]
2021-02-25 10:13:12



/*
 * 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 KeThuaInterFace;

import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.Scanner;

/**
 *
 * @author TrungDuc
 */
public class HCNTest extends HinhChuNhat  {
    public static void main(String[] agrc){
        
           Scanner scan = new Scanner(System.in);
           System.out.print("Nhap so nguyen duong N = ");
           int N = Integer.parseInt(scan.nextLine());
           
           ArrayList<HCNTest> listHCN = new ArrayList<>();
           for(int i = 0; i < N; i++){
               HCNTest hinhchunhat = new HCNTest();
               hinhchunhat.setChieuDai();
               hinhchunhat.setChieuRong();
               hinhchunhat.dientichHCN();
            
               listHCN.add(hinhchunhat);
           }
           
           for(HCNTest hinhchunhat : listHCN){
               System.out.format("\n Chieudai: %f, Chieurong: %f, Dientich: %f" , hinhchunhat.ChieuDai, hinhchunhat.ChieuRong, hinhchunhat.DienTich);
           }
           
           Collections.sort(listHCN, new Comparator<HCNTest>(){
                @Override
                public int compare(HCNTest o1, HCNTest o2){
                if (o1.getChieuDai()*o1.getChieuRong() > o2.getChieuDai()*o2.getChieuRong()){
                    return -1;
                }
                    return 1;
           }
    });
            System.out.println("");
           System.out.println("Hinh chu nhat co dien tich lon nhat = " + listHCN.get(0).DienTich);

        
    }
}


avatar
Trần Văn Lâm [T2008A]
2021-02-24 14:53:39



/*
 * 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 HCNPackage;

/**
 *
 * @author Administrator
 */
public interface HCNInterface {
    float dientichHCN();
    float getChieuDai();
    float getChieuRong();
    void setDaiRong(float cd,float cr);
}


avatar
Trần Văn Lâm [T2008A]
2021-02-24 14:53:23



/*
 * 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 HCNPackage;

/**
 *
 * @author Administrator
 */
public class Hinhchunhat {
    float chieudai;
    float chieurong;
    
    public void Hinchunhat(){
        
    }

    public Hinhchunhat(float chieudai, float chieurong) {
        this.chieudai = chieudai;
        this.chieurong = chieurong;
    }
    
    public float dientichHCN(){
        return chieudai * chieurong;
    }
    
    public float getChieudai() {
        return chieudai;
    }

    public float getChieurong() {
        return chieurong;
    }

    /**
     *
     * @param cd
     * @param cr
     */
    public void setDaiRong(float cd,float cr){
        chieudai = cd;
        chieurong = cr;
    }
}


avatar
Trần Văn Lâm [T2008A]
2021-02-24 14:53:08



/*
 * 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 HCNPackage;

import java.util.ArrayList;
import java.util.Scanner;

/**
 *
 * @author Administrator
 */
public class Test {
    public static void main(String[] agrs){
        ArrayList<HCNInterface> hcnList;
        hcnList = new ArrayList<>();
        System.out.println("Nhap n hcn:");
        Scanner input = new Scanner(System.in);
        int n;
        n = input.nextInt();
        for(int i = 0; i <= n ; i++){
            System.out.println("Nhap so lieu cho HCN thu" +i);
            Scanner hcn = new Scanner(System.in);
            System.out.println("Nhap chieu dai thu:");
            hcn.chieudai = Scan.nextFloat();
            System.out.println("Nhap chieu rong:");
            hcn.chieurong = Scan.nextFloat();
            hcnList.add(hcn);
        }
    }
}


avatar
vuong huu phu [T2008A]
2021-02-24 12:18:09



/*
 * 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 hcn;

/**
 *
 * @author Admin
 */
public interface IHCN {
    double Dien_tich();
    double get_chieu_dai();
    double get_chieu_rong();
    void set_dai_rong(double cd, double cr);
}