Java - Xây dựng chương trình vẽ hình đơn giản (câu hỏi 1)
Viết chương trình thực hiện các yêu cầu sau:
- Viết lớp
Shape, lớp này chỉ có một hàm làdraw()không có tham số và không trả về giá trị, chỉ xuất ra dòng chữ "Drawing a Shape". - Viết lớp
Rectanglekế thừa từ lớpShape. Thêm vào lớpRectanglehai thuộc tính là chiều dài và chiều rộng (số nguyên). Viết các hàm khởi tạo và các hàm getter/setter cho lớp này, chú ý giá trị gán cho 2 thuộc tính nằm trong [1,15]. Trong lớpRectangle, viết lại hàmdraw()của lớpShapeđể vẽ ra hình chữ nhật bởi các dấu *, với số lượng dấu * mỗi cạnh tùy thuộc vào các thuộc tính chiều dài và chiều rộng. Ví dụ thuộc tính chiều dài và chiều rộng lần lượt là 7 và 3 thì hàmdraw()vẽ được hình:
- Viết lớp
RightTrianglekế thừa tè lớpShape. Thêm vào lớpRightTrianglemột thuộc tính là cạnh vuông (số nguyên). Viết các hàm khởi tạo và các hàm getter/setter cho lớp này, chú ý giá trị gán cho thuộc tính nằm trong [1,20]. Trong lớpRightTriangleviết lại hàmdraw()của lớpShapeđể vẽ ra hình tam giác vuông bởi các dấu *, với số lượng dấu * mỗi cạnh tùy thuộc vào các thuộc tính cạnh vuông. Ví dụ thuộc tính cạnh vuông là 4 thì hàmdraw()vẽ được hình:
- Viết lớp
ArtistDemo, lớp này chứa hàmmain(): khai báo biếnrectanglecó kiểuRectanglevà biếnrightTrianglecó kiểuRightTriangle. Viết chương trình nhập vào chiều dài, chiều rộng của hình chữ nhật và cạnh vuông cho hình tam giác vuông, sau đó gọi hàmdraw()để vẽ hình tương ứng.
Bài giải
-------------------- ######## --------------------

Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
Shape.java
package baitapvehinh;
public class Shape {
public void draw() {
System.out.println("Drawing a Shape");
}
}
Rectangle.java
package baitapvehinh;
public class Rectangle extends Shape {
private int chieuDai, chieuRong;
public Rectangle() {
super();
}
public Rectangle(int chieuDai, int chieuRong) {
super();
if ((chieuDai < 1) || (chieuDai > 15)) {
System.out.println("Giá trị của chiều dài phải nằm trong khoảng [1...15]");
return;
}
if (chieuDai < chieuRong) {
System.out.println("Chiều dài phải lớn hơn chiều rộng");
return;
}
this.chieuDai = chieuDai;
this.chieuRong = chieuRong;
}
public int getChieuDai() {
return chieuDai;
}
public void setChieuDai(int chieuDai) {
this.chieuDai = chieuDai;
}
public int getChieuRong() {
return chieuRong;
}
public void setChieuRong(int chieuRong) {
if ((chieuRong) < 1 || (chieuRong > 15)) {
System.out.println("Giá trị của chiều rộng phải nằm trong khoảng [1...15]");
}
this.chieuRong = chieuRong;
}
public void draw() {
// vẽ chiều rộng
for (int i = 1; i <= chieuRong; i++) {
// vẽ chiều dài
for (int j = 1; j <= chieuDai; j++) {
if ((j == 1) || (j == chieuDai) || (i == 1) || (i == chieuRong)) {
System.out.print("*");
} else {
System.out.print(" ");
}
}
System.out.println("\n");
}
}
}
Bài viết này được đăng tại [free tuts .net]
RightTriangle.java
package baitapvehinh;
public class RightTriangle extends Shape {
private int canhVuong, n;
public RightTriangle() {
super();
}
public RightTriangle(int canhVuong) {
super();
if ((canhVuong < 1) || (canhVuong > 20)) {
System.out.println("Giá trị của cạnh phải nằm trong khoảng [1...20]");
return;
}
this.canhVuong = canhVuong;
}
public int getCanhVuong() {
return canhVuong;
}
public void setCanhVuong(int canhVuong) {
this.canhVuong = canhVuong;
}
public void draw() {
n = canhVuong;
for (int i = 1; i <= canhVuong; i++) {
for (int j = 1; j <= i; j++) {
System.out.print("*");
}
System.out.println();
}
}
}
ArtistDemo.java
package baitapvehinh;
import java.util.Scanner;
public class ArtistDemo {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.print("Nhập chiều dài hình chữ nhật: ");
int chieuDai = scanner.nextInt();
System.out.print("Nhập chiều rộng hình chữ nhật: ");
int chieuRong = scanner.nextInt();
Rectangle rectangle = new Rectangle(chieuDai,chieuRong);
//Artist artist = new Artist();
//artist.drawShape(shape);
rectangle.draw();
System.out.print("Nhập cạnh vuông: ");
int canhVuong = scanner.nextInt();
RightTriangle rightTriangle = new RightTriangle(canhVuong);
rightTriangle.draw();
}
}
Kết quả sau khi biên dịch chương trình:
Câu hỏi thường gặp liên quan:
- Java - Viết chương trình quản lý thông tin các chuyến xe.
- Java - Viết chương trình quản lý sách trong thư viện.
- Java - Viết chương trình quản lý giao dịch nhà đất.
- Java - Viết chương trình tính chu vi, diện tích hình vuông.
- Java - Xây dựng chương trình vẽ hình đơn giản (câu hỏi 1)

Các kiểu dữ liệu trong C ( int - float - double - char ...)
Thuật toán tìm ước chung lớn nhất trong C/C++
Cấu trúc lệnh switch case trong C++ (có bài tập thực hành)
ComboBox - ListBox trong lập trình C# winforms
Random trong Python: Tạo số random ngẫu nhiên
Lệnh cin và cout trong C++
Cách khai báo biến trong PHP, các loại biến thường gặp
Download và cài đặt Vertrigo Server
Thẻ li trong HTML
Thẻ article trong HTML5
Cấu trúc HTML5: Cách tạo template HTML5 đầu tiên
Cách dùng thẻ img trong HTML và các thuộc tính của img
Thẻ a trong HTML và các thuộc tính của thẻ a thường dùng