Bài Tập Java Tuần 6 Tổng Hợp
Bài Kham Khảo
a) Lớp Cha ( Tên chuyến xe (tuỳ người đặt, thích j đặt đó) ).
/*
*Code by: Hoàng Minh Tuấn
*Edit Code: Vy Nguyễn
*/
import java.util.Scanner;
public class ChuyenXe {
// protected thì con có thể truy cập nếu không phải con sẽ không truy cập được
protected String Name, Code, SoXe;
protected double DoanhThu;
// Phương thức set, get dùng để nhận và lấy giá trị
public String getName() {
return Name;
}
protected void setName(String name) {
Name = name;
}
protected String getCode() {
return Code;
}
protected void setCode(String code) {
Code = code;
}
protected String getSoXe() {
return SoXe;
}
protected void setSoXe(String soXe) {
SoXe = soXe;
}
protected double getDoanhThu() {
return DoanhThu;
}
protected void setDoanhThu(double doanhThu) {
DoanhThu = doanhThu;
}
// Constructor khỏi tạo không tham số truyền vào
public ChuyenXe() {
super();
this.setName("");
this.setCode("");
this.setSoXe("");
this.setDoanhThu(0);
}
// Constructor khỏi tạo có tham số truyền vào
public ChuyenXe(String name, String code, String soxe, double doanhthu) {
super();
this.setName(name);
this.setCode(code);
this.setSoXe(soxe);
this.setDoanhThu(doanhthu);
}
// Phương thức nhập giá trị từ bàn phím
public void inPutDisPlay() {
Scanner sc = new Scanner(System.in);
String n, ms, sx; double dt;
System.out.print("Nhập Tên: ");
n = sc.nextLine(); this.setName(n);
System.out.print("Nhập Mã Số: ");
ms = sc.nextLine(); this.setCode(ms);
System.out.print("Nhập Số Xe: ");
sx = sc.nextLine(); this.setSoXe(sx);
System.out.print("Nhập Doanh Thu: ");
dt = sc.nextDouble(); this.setDoanhThu(dt);
}
// phương thức xuất giá trị ra màn hình
public String outPutDisPlay() {
return "\n=========== Xuất Thông Tin ==========="+"\nTên: " + this.getName() + "\nMã Số: " + this.getCode() + "\nSố Xe: " + this.getSoXe() + "\nDoanh Thu: " + this.getDoanhThu();
}
}
b) Lớp con (Tên ngoại div> thành)
/*
*Code by: Hoàng Minh Tuấn
*Edit Code: Vy Nguyễn
*/
import java.util.Scanner;
public class NgoaiThanh extends ChuyenXe{
// Thuộc tính
private String NoiDen;
private int NgayDiDuoc;
// Phương thức nhận và lấy giá trị (get,set)
public String getNoiDen() {
return NoiDen;
}
public void setNoiDen(String noiDen) {
NoiDen = noiDen;
}
public int getNgayDiDuoc() {
return NgayDiDuoc;
}
public void setNgayDiDuoc(int ngayDiDuoc) {
NgayDiDuoc = ngayDiDuoc;
}
// Constructor khỏi tạo không tham số truyền vào
public NgoaiThanh() {
super();
}
// Constructor khỏi tạo có tham số truyền vào
public NgoaiThanh(String name, String code, String soxe, double doanhthu, String noiden, int ngay) {
super(name, code, soxe, doanhthu);
this.setName(noiden);
this.setNgayDiDuoc(ngay);
}
// Phương thức nhập giá trị từ bàn phím
public void inPutDisPlay() {
super.inPutDisPlay(); // do cha có sẳn nên xài ké vậy thôi
// viết lại làm gì cho dai dòng
// super.inPutDisPlay() nó có nghĩa là hàm đó từ cha
Scanner sc = new Scanner(System.in);
String noi; int ngay;
System.out.print("Nhập Nơi Đến: ");
noi = sc.nextLine(); this.setNoiDen(noi);
System.out.print("Nhập Số Ngày: ");
ngay = sc.nextInt(); this.setNgayDiDuoc(ngay);
}
// phương thức xuất giá trị ra màn hình
public String outPutDisPlay() {
return super.outPutDisPlay() + "\nNơi Đến: " + this.getNoiDen() + "\nSố Ngày: " + this.getNgayDiDuoc(); // nối chuỗi thôi
}
}
c) Lớp con (Tên nội thành tương tự ngoại thành)
/*
*Code by: Hoàng Minh Tuấn
*Edit Code: Vy Nguyễn
*/
import java.util.Scanner;
public class NoiThanh extends ChuyenXe{
private float QuangDuong;
private int SoTuyen;
public float getQuangDuong() {
return QuangDuong;
}
public void setQuangDuong(float quangDuong) {
QuangDuong = quangDuong;
}
public int getSoTuyen() {
return SoTuyen;
}
public void setSoTuyen(int soTuyen) {
SoTuyen = soTuyen;
}
public NoiThanh() {
super();
}
public NoiThanh(String name, String code, String soxe, double doanhthu, float duong, int sotuyen) {
super(name,code,soxe,doanhthu);
this.setQuangDuong(duong);
this.setSoTuyen(sotuyen);
}
public void inPutDisPlay() {
super.inPutDisPlay();
Scanner sc = new Scanner(System.in);
float duong; int tuyen;
System.out.print("Nhập Quãng Đường: ");
duong = sc.nextFloat(); this.setQuangDuong(duong);
System.out.print("Nhập Số Tuyến: ");
tuyen = sc.nextInt(); this.setSoTuyen(tuyen);
}
public String outPutDisPlay() {
return super.outPutDisPlay() + "\nQuãng Đường: " + this.getQuangDuong() + "\nSố Tuyến: " + this.getSoTuyen();
}
}
d) Lớp danh sách xe
/*
*Code by: Hoàng Minh Tuấn
*Edit Code: Vy Nguyễn
*/
public class ListChuyenXe {
private double sum1 = 0, sum2 = 0;
private int coutList = 0;
ChuyenXe[] CX = new ChuyenXe[100]; // tạo mảng xủa chuyến xe
public void List() { // hàm dùng khỏi tạo giá trị cho mảng
for(int i=0; i<100; i++)
CX[i]= new ChuyenXe() {
};
}
public void kiemTra(int chon) { // hàm kiểm tra xem người dùng chọn gì
if(coutList > 100)
System.out.println("Không Thể Thêm Dữ Liệu!!!");
else {
if(chon == 1) {
CX[coutList] = new NoiThanh();
NoiThanh noithanh = new NoiThanh();
noithanh.inPutDisPlay();
CX[coutList] = noithanh;
sum1 += noithanh.getDoanhThu();
}
else {
CX[coutList] = new NgoaiThanh();
NgoaiThanh ngoaithanh = new NgoaiThanh();
ngoaithanh.inPutDisPlay();
CX[coutList] = ngoaithanh;
sum2 += ngoaithanh.getDoanhThu();
}
coutList++;
}
}
// xuất thông tin
public void OUTPUTDISPLAY() {
for(int i=0; i< coutList; i++) {
System.out.println("\n=================================================\n");
System.out.println(CX[i].outPutDisPlay());
System.out.println("\n============== Doanh Thu ======================\n");
System.out.println("Chuyến Xe Nội Thành: "+ sum1+"\nChuyến Xe Ngoại Thành: "+sum2);
}
}
}
e) Hàm test (hay nói cách khác hàm chạy chương trình )
/*
*Code by: Hoàng Minh Tuấn
*Edit Code: Vy Nguyễn
*/
import java.util.Scanner;
import javax.print.DocFlavor.INPUT_STREAM;
public class TestChuyenXe {
public static void main(String[] args) {
int a;
Scanner sc = new Scanner(System.in);
ListChuyenXe chuyenxe = new ListChuyenXe();
do {
System.out.println("================================ MENU ============================\n");
System.out.println("|| 0. Thoát ||");
System.out.println("|| 1. Xe Nội Thành ||");
System.out.println("|| 2. Xe Ngoại Thành ||");
System.out.println("|| 3. Xuất Danh Sách ||");
System.out.println("=====================================================================");
System.out.print("Bạn Muốn Chọn: "); a = sc.nextInt();
switch(a) {
case 1: chuyenxe.kiemTra(1); break;
case 2: chuyenxe.kiemTra(2); break;
case 3: chuyenxe.OUTPUTDISPLAY(); break;
}
}while(a != 0);
}
}
Có thể xem thêm tại: Java Programming
No Comment to " Bài Tập Java Tuần 6 Tổng Hợp "