Bài tập Môn Công nghệ thông tin

You might also like

Download as docx, pdf, or txt
Download as docx, pdf, or txt
You are on page 1of 16

Thưa thầy cho em xin phép nộp bằng file word này với ạ.

Thầy thông cảm và châm chước cho em được


không thầy ạ. Em cảm ơn thầy ạ.
Câu 1

import java.io.BufferedReader;

import java.io.FileReader;

import java.io.IOException;

import java.util.ArrayList;

import java.util.List;

// Giao diện Shape

interface Shape {

void taoBanSao();

double getDienTich();

String getThongTin();

}
// Lớp HinhTron triển khai giao diện Shape

class HinhTron implements Shape {

private double bankinh;

public HinhTron(double bankinh) {

this.bankinh = bankinh;

@Override

public void taoBanSao() {

System.out.println("Sao chép thuộc tính của hình tròn");

@Override

public double getDienTich() {


return Math.PI * bankinh * bankinh;

@Override

public String getThongTin() {

return "Hình tròn có bán kính " + bankinh;

// Lớp HinhChuNhat triển khai giao diện Shape

class HinhChuNhat implements Shape {

private double chieuDai;

private double chieuRong;

public HinhChuNhat(double chieuDai, double chieuRong) {


this.chieuDai = chieuDai;

this.chieuRong = chieuRong;

@Override

public void taoBanSao() {

System.out.println("Sao chép thuộc tính của hình chữ nhật");

@Override

public double getDienTich() {

return chieuDai * chieuRong;

@Override
public String getThongTin() {

return "Hình chữ nhật có chiều dài " + chieuDai + " và chiều rộng " + chieuRong;

public class Main {

public static void main(String[] args) {

List<Shape> danhSachHinh = new ArrayList<>();

try (BufferedReader br = new BufferedReader(new FileReader("hinh.txt"))) {

String line;

while ((line = br.readLine()) != null) {

String[] tokens = line.split(" ");

String loaiHinh = tokens[0];

if (loaiHinh.equals("HinhTron")) {
double bankinh = Double.parseDouble(tokens[1]);

danhSachHinh.add(new HinhTron(bankinh));

} else if (loaiHinh.equals("HinhChuNhat")) {

double chieuDai = Double.parseDouble(tokens[1]);

double chieuRong = Double.parseDouble(tokens[2]);

danhSachHinh.add(new HinhChuNhat(chieuDai, chieuRong));

} catch (IOException e) {

e.printStackTrace();

// In thông tin các hình trong danh sách

for (Shape hinh : danhSachHinh) {

System.out.println(hinh.getThongTin());
System.out.println("Diện tích: " + hinh.getDienTich());

hinh.taoBanSao();

System.out.println();

CÂU 2

public class Main {

public static void main(String[] args) {

List<Shape> danhSachHinh = new ArrayList<>();

// Code để đọc dữ liệu từ tệp và thêm vào danh sách đã được triển khai ở câu 1

// In danh sách các hình học

System.out.println("Danh sách các hình học:");


System.out.println("========================");

for (int i = 0; i < danhSachHinh.size(); i++) {

Shape hinh = danhSachHinh.get(i);

System.out.println((i + 1));

System.out.println(hinh.getThongTin());

System.out.println("Dien tich: " + hinh.getDienTich());

System.out.println();

CÂU 3

import java.util.ArrayList;

import java.util.List;

// Giao diện Shape


interface Shape {

void taoBanSao();

double getDienTich();

String getThongTin();

// Lớp HinhTron triển khai giao diện Shape

class HinhTron implements Shape {

private double bankinh;

public HinhTron(double bankinh) {

this.bankinh = bankinh;

@Override
public void taoBanSao() {

System.out.println("Sao chép thuộc tính của hình tròn");

@Override

public double getDienTich() {

return Math.PI * bankinh * bankinh;

@Override

public String getThongTin() {

return "Hình tròn có bán kính " + bankinh;

}
// Lớp HinhChuNhat triển khai giao diện Shape

class HinhChuNhat implements Shape {

private double chieuDai;

private double chieuRong;

public HinhChuNhat(double chieuDai, double chieuRong) {

this.chieuDai = chieuDai;

this.chieuRong = chieuRong;

@Override

public void taoBanSao() {

System.out.println("Sao chép thuộc tính của hình chữ nhật");

}
@Override

public double getDienTich() {

return chieuDai * chieuRong;

@Override

public String getThongTin() {

return "Hình chữ nhật có chiều dài " + chieuDai + " và chiều rộng " + chieuRong;

public class Main {

public static void main(String[] args) {

List<Shape> Ist = new ArrayList<>();

// Thêm các đối tượng vào danh sách Ist


// ...

List<Shape> Ist2 = new ArrayList<>();

// Tạo danh sách Ist2 chứa bản sao của các đối tượng trong danh sách Ist

for (Shape hinh : Ist) {

Shape banSao = taoBanSao(hinh);

Ist2.add(banSao);

// Hàm tạo bản sao của một đối tượng Shape

private static Shape taoBanSao(Shape hinh) {

// Tạo bản sao của đối tượng hinh và trả về

return null; // Thay thế dòng này bằng mã để tạo bản sao của đối tượng hinh

}
}

CÂU 4

public class Main {

public static void main(String[] args) {

List<Shape> Ist2 = new ArrayList<>();

// Thêm các đối tượng vào danh sách Ist2

// ...

// Thực hiện thay đổi thuộc tính của các đối tượng trong danh sách Ist2

for (Shape hinh : Ist2) {

if (hinh instanceof HinhTron) {

// Nếu là hình tròn, tăng bán kính lên 1 đơn vị

((HinhTron) hinh).setBankinh(((HinhTron) hinh).getBankinh() + 1);

} else if (hinh instanceof HinhChuNhat) {

// Nếu là hình chữ nhật, tăng chiều dài và chiều rộng lên 2 đơn vị
((HinhChuNhat) hinh).setChieuDai(((HinhChuNhat) hinh).getChieuDai() + 2);

((HinhChuNhat) hinh).setChieuRong(((HinhChuNhat) hinh).getChieuRong() + 2);

// In danh sách các đối tượng đã thay đổi trong Ist2

System.out.println("Danh sách các đối tượng đã thay đổi trong Ist2:");

for (int i = 0; i < Ist2.size(); i++) {

Shape hinh = Ist2.get(i);

System.out.println((i + 1) + ". " + hinh.getThongTin());

// In danh sách các đối tượng trong Ist1 để so sánh

System.out.println("\nDanh sách các đối tượng trong Ist1:");

for (int i = 0; i < Ist1.size(); i++) {


Shape hinh = Ist1.get(i);

System.out.println((i + 1) + ". " + hinh.getThongTin());

You might also like