[Java] Quản lý danh sách tủ lạnh: nhập, sắp xếp, liệt kê

Viết chương trình quản lý danh sách tủ lạnh java với các tính năng như: nhập danh sách tủ lạnh, in danh sách, liệt kê theo hãng sản xuất và tính tổng giá trị.

Xem thêm:

1. Mô tả bài toán

Bài 10: Tạo các lớp quản lý dạnh sách tủ lạnh theo sơ đồ phân cấp sau:

Yêu cầu:

– Xây dựng mỗi lớp ở một file riêng biệt, ngoài các thành phần đã liệt kê, có thể bổ sung thêm các thuộc tính và phương thức cho phù hợp.

– Các lớp đều có phương thức khởi tạo không có tham số và không có tham số.

Áp dụng:

– Nhập danh sách các tủ lạnh.

– In danh sách các tủ lạnh đã nhập.

– Liệt kê danh sách tủ lạnh theo hãng sản xuất nào đó được nhập từ bàn phím.

– Tính tổng tiền các tủ lạnh có trong danh sách đã được nhập.

– Sản xuất danh sách tủ lạnh theo thứ tự giảm dần của số lượng.

2. Code quản lý danh sách tủ lạnh java

2.1 Class MATHANG

package bai10;

import java.util.Scanner;

public class MATHANG {
    String tenHang;
    int maHang;
    String nuocSX;

    public String getTenHang() {
        return tenHang;
    }

    public void setTenHang(String tenHang) {
        this.tenHang = tenHang;
    }

    public int getMaHang() {
        return maHang;
    }

    public void setMaHang(int maHang) {
        this.maHang = maHang;
    }

    public String getNuocSX() {
        return nuocSX;
    }

    public void setNuocSX(String nuocSX) {
        this.nuocSX = nuocSX;
    }
    
    public MATHANG(){
        
    }
    
    public MATHANG(String tenHang, int maHang, String nuocSX){
        this.tenHang=tenHang;
        this.maHang=maHang;
        this.nuocSX=nuocSX;
    }
    
    public void nhap(){
        Scanner sc= new Scanner(System.in);
        System.out.println("Nhap ten hang: ");
        tenHang=sc.nextLine();
        System.out.println("Nhap nuoc san xuat:");
        nuocSX=sc.nextLine();
        System.out.println("Nhap ma hang: ");
        maHang= sc.nextInt();
    }
    
    public void xuat(){
        System.out.printf("\n%-10s %-10d %-10s",tenHang,maHang,nuocSX);
    }
        
}

2.2 Class TULANH

package bai10;

import java.util.Scanner;

public class TULANH extends MATHANG{
    int dungTich, soLuong;
    String mauSac, hangSX;
    float donGia;
    
    public TULANH(){
        
    }
    
    public TULANH(int dungTich, int soLuong, String mauSac, String hangSX, float donGia){
        this.dungTich=dungTich;
        this.soLuong=soLuong;
        this.mauSac=mauSac;
        this.donGia=donGia;
        this.hangSX=hangSX;
    }

    public int getDungTich() {
        return dungTich;
    }

    public void setDungTich(int dungTich) {
        this.dungTich = dungTich;
    }

    public int getSoLuong() {
        return soLuong;
    }

    public void setSoLuong(int soLuong) {
        this.soLuong = soLuong;
    }

    public String getMauSac() {
        return mauSac;
    }

    public void setMauSac(String mauSac) {
        this.mauSac = mauSac;
    }

    public String getHangSX() {
        return hangSX;
    }

    public void setHangSX(String hangSX) {
        this.hangSX = hangSX;
    }

    public float getDonGia() {
        return donGia;
    }

    public void setDonGia(float donGia) {
        this.donGia = donGia;
    }
    
    public void nhapTL(){
        super.nhap();
        Scanner sc= new Scanner(System.in);
        System.out.println("Nhap dung tich: ");
        dungTich=sc.nextInt();
        System.out.println("Nhap so luong: ");
        soLuong=sc.nextInt();
        System.out.println("Nhap don gia: ");
        donGia=sc.nextFloat();
        sc.nextLine();
        System.out.println("Nhap mau sac: ");
        mauSac= sc.nextLine();
        System.out.println("Nhap hang san xuat: ");
        hangSX=sc.nextLine();
    }
    
    public void xuatTL(){
        super.xuat();
        System.out.printf("%-10d %-10s %-10s %-10d %-10f %-10f",dungTich,mauSac,hangSX,soLuong,donGia, thanhTien());
    }
    
    public Float thanhTien(){
        return soLuong*donGia;
    }
}

2.3 Class DanhSachTuLanh

package bai10;

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

public class DanhSachTuLanh {
    ArrayList<TULANH> list = new ArrayList<>();
    int n;
    public void nhapDSTL(){
        Scanner sc= new Scanner(System.in);
        System.out.println("Nhap so luong tu lanh: ");
        n=sc.nextInt();
        list= new ArrayList(n);
        for(int i=0;i<n;i++){
            TULANH tl = new TULANH();
            System.out.println("Nhap thong tin tu lanh thu "+(i+1));
            tl.nhapTL();
            list.add(tl);
        }
    }
    
    public void xuatDSTL(){
        System.out.println("Danh sach tu lanh:");
        System.out.printf("\n%-10s %-10s %-10s","Ten Hang","Ma Hang","NuocSX");
        System.out.printf("%-10s %-10s %-10s %-10s %-10s %-10s","Dung Tich","Mau Sac","HangSX","So Luong","Don Gia","Thanh Tien");
        for(int i=0;i<n;i++){
            list.get(i).xuatTL();
        }
        
        System.out.println("");
        System.out.println("");
    }
    
    public void lietkeHSX(){
        String hangsx;
        int dem=0;
        Scanner sc = new Scanner(System.in);
        System.out.println("Nhap hang san xuat can tim: ");
        hangsx= sc.nextLine();
        
        for(int i=0;i<n;i++){
            if(list.get(i).hangSX.equals(hangsx)){
                dem++;
            }
        }
        
        if(dem==0){
            System.out.println("Khong ton tai hang san xuat");
        }else{
            for(int i=0;i<n;i++){
                if(list.get(i).hangSX.equals(hangsx)){
                list.get(i).xuatTL();
                }
            }
        }
        System.out.println("");
    }
    
    public void tongTien(){
        float sum=0;
        for(int i=0;i<n;i++){
            sum+=list.get(i).thanhTien();
        }
        
        System.out.println("Tong tien cac tu lanh co trong danh sach la: "+ sum);
    }
    
    public void lietkeTL200(){
        int dem=0;
        for(int i=0;i<n;i++){
            if(list.get(i).dungTich>200){
                dem++;
            }
        }
        
        if(dem==0){
            System.out.println("Khong co tu lanh nao co dung tich tren 200");
        }else{
            for(int i=0;i<n;i++){
                if(list.get(i).dungTich>200){
                list.get(i).xuatTL();
                }
            }
        }
    }
    
    public void sapXep(){
        TULANH tg;
        tg= new TULANH();
        for(int i=0;i<n;i++){
            for(int j=i+1;j<n;j++){
                if(list.get(i).soLuong<list.get(j).soLuong){
                    tg=list.get(i);
                    list.set(i,list.get(j));
                    list.set(j, tg);
                }
            }
        }
    }
    
}

2.4 Class main

package bai10;

import java.util.Scanner;


public class Bai10 {

    static void menu(){
        System.out.println("==============MENU=============");
        System.out.println("1. Nhap thong tin");
        System.out.println("2. Hien thong tin");
        System.out.println("3. Liet ke theo hang san xuat");
        System.out.println("4. Tong tien");
        System.out.println("5. Danh sach cac tu lanh co dung tich tren 200");
        System.out.println("6. Sap xep giam dan");
        System.out.println("0. Thoat");
    }
    public static void main(String[] args) {
        DanhSachTuLanh ds = new DanhSachTuLanh();
        int chon;
        Scanner sc = new Scanner(System.in);
        do {            
            menu();
            
            System.out.println("Lua chon: ");
            chon = sc.nextInt();
            switch(chon){
                case 1: ds.nhapDSTL(); break;
                case 2: ds.xuatDSTL(); break;
                case 3: ds.lietkeHSX(); break;
                case 4: ds.tongTien(); break;
                case 5: ds.lietkeTL200(); break;
                case 6: ds.sapXep(); ds.xuatDSTL(); break;
                case 0: System.exit(0); break;
                default: break;
            }
                
        } while (chon!=0);
    }
    
}

3. Kết quả chạy chương trình

Danh sách tủ lạnh

Source code FULL:

Hy vọng qua bài viết này các bạn đã có thể xử lý các thao tác cơ bản trên danh sách java. Cảm ơn các bạn đã tham khảo bài tập lập trình hướng đối tượng java trên ttnguyen.net.

Bài viết liên quan:

Nguyễn Tiến Trường

Mình viết về những điều nhỏ nhặt trong cuộc sống, Viết về câu chuyện những ngày không có em