Xây dựng chương trình quản lý điểm và đoạn thẳng trong không gian. Chương trình sẽ cho phép người dùng nhập danh sách các đoạn thẳng, sau đó hiển thị danh sách đó ra màn hình. Ngoài ra, chương trình cũng sẽ xác định đoạn thẳng có độ dài lớn nhất và tính tổng độ dài của tất cả các đoạn thẳng đã nhập.
Xem thêm:
- Bài thực hành 6: Nhập xuất danh sách công nhân kiểu mảng
- Bài thực hành 8: quản lý tài khoản ngân hàng java
1. Bài toán
Bài 7: Cho lớp DIEM(điểm) để mô tả một điểm trong không gian gồm:
- Thuộc tính: x,y (toạ độ không gian)
- Phương thức: Khởi tạo (không có tham số – có tham số), nhập, xuất,…
Xây dựng lớp DOANTHANG (đoạn thẳng) gồm:
- Thuộc tính: A (Điểm đầu), B(điểm cuối).
- Phương thức: Khởi tạo (không có tham số – có tham số), nhập, xuất, tính chiều dài,…
Áp dụng:
- Nhập vào danh sách các DOANTHANG.
- In lại danh sách các DOANTHANG vừa nhập.
- Cho biết thông tin DOANTHANG có độ dài lớn nhất.
- Tính đổng độ dài tất cả các đoạn thẳng đã nhập.
Xem thêm:
- Bài thực hành 3: tính diện tích tam giác theo công thức Heron java
- Bài thực hành 5: tính chu vi diện tích hình chữ nhật java
2. Code
2.1 Lớp DIEM
package bai7; import java.util.Scanner; public class DIEM { int x,y; DIEM() { x=0; y=0; } DIEM(int xx, int yy){ x=xx; y=yy; } public int getX() { return x; } public void setX(int x) { this.x = x; } public int getY() { return y; } public void setY(int y) { this.y = y; } public void nhap(){ Scanner sc = new Scanner(System.in); System.out.print("Nhap X: "); x= sc.nextInt(); System.out.print("Nhap Y: "); y= sc.nextInt(); } public void xuat(){ System.out.println("X: "+x+" "+ "Y: "+y); } }
2.2 Lớp DOANTHANG
package bai7; import java.util.Scanner; public class DOANTHANG { DIEM A,B; DOANTHANG(){ this.A= new DIEM(); this.B= new DIEM(); } public DOANTHANG(int x1, int y1, int x2, int y2) { this.A = new DIEM(x1,y1); this.B = new DIEM(x2,y2); } public void nhapDT(){ Scanner sc = new Scanner(System.in); System.out.println("Nhap diem A: "); A.nhap(); System.out.println("Nhap diem B: "); B.nhap(); } public float ChieuDai(){ //Math.pow(): tinh binh phuong //Math.sqrt(): tính can bac hai return (float) (Math.sqrt(Math.pow(B.getX()-A.getX(), 2)+(Math.pow(B.getY()-A.getY(), 2)))); } public void xuatDT(){ System.out.println("A:"); A.xuat(); System.out.println("B:"); B.xuat(); System.out.println("Chieu dai: "+ChieuDai()); } }
2.3 Lớp DSDT
package bai7; import java.util.Scanner; public class DSDT { DOANTHANG ds[]; int i,n; public void nhapDSDT(){ Scanner sc = new Scanner(System.in); System.out.println("Nhap so luong doan thang:"); n=sc.nextInt(); ds= new DOANTHANG[n]; for(i=0;i<n;i++){ ds[i]= new DOANTHANG(); System.out.println("Nhap duong thang thu: "+(i+1)); ds[i].nhapDT(); } } public void xuatDSDT(){ System.out.println("Danh sach duong thang: "); for(i=0;i<n;i++){ System.out.println("\n Doan thang thu: "+(i+1)); ds[i].xuatDT(); } } public void maxDT(){ float max=ds[0].ChieuDai(); for(int i=1;i<n;i++){ if(max<ds[i].ChieuDai()){ max=ds[i].ChieuDai(); } } System.out.println("Thong tin doan thang co do dai lon nhat là: "); for(int i=0;i<n;i++){ if(max==ds[i].ChieuDai()){ ds[i].xuatDT(); } } } public void sumDT(){ float sum=0; for(int i=0;i<n;i++){ sum= sum+ ds[i].ChieuDai(); } System.out.println("Tong do dai tat ca cac doan thang da nhap la: "+sum); } }
2.4 Lớp main
package bai7; import com.sun.swing.internal.plaf.metal.resources.metal; import java.util.Scanner; public class Bai7 { static void menu(){ System.out.println("1. Nhap danh sach doan thang"); System.out.println("2. Xuat danh sach doan thang"); System.out.println("3. Thong tin doan thang co do dai lon nhat"); System.out.println("4. Tong do dai tat ca doan thang"); System.out.println("0. Thoat"); } public static void main(String[] args) { int chon; DSDT dsdt= new DSDT(); Scanner sc = new Scanner(System.in); do { menu(); System.out.println("Lua chon:"); chon= sc.nextInt(); switch(chon){ case 1: dsdt.nhapDSDT(); break; case 2: dsdt.xuatDSDT(); break; case 3: dsdt.maxDT(); break; case 4: dsdt.sumDT(); break; case 0: System.exit(0); break; default: break; } } while (chon!=0); } }
4. Kết quả
Trên đây là chương trình quản lý điểm và đường thẳng viết bằng ngôn ngữ lập trình java. Cảm ơn các bạn đã tham khảo trên ttnguyen.net.