Home   Diễn đàn   Thi trực tuyến   Ngọai ngữ   Sách   Giải trí   Đăng ký   Đăng nhập   Mật khẩu   About us   Contact us   Invite friends
    Tìm kiếm: trong:  
 
Home >> Lập Trình >> Java >>

Một số bài tập mẫu của java - phần 2 - Nâng cao
Bài tập java nâng cao. <i>Đại học Howell là một trường đại học danh tiếng của Châu Âu với nhiều chuyên ngành khác nhau. Howell cố gắng cung cấp cho sinh viên những điều kiện và nội dung tốt nhất. Hiện nay, đại học Howell giới thiệu một hệ thống kiểm tra IQ cho sinh viên MBA bên cạnh hệ thống thi truyền thống. Hệ thống kiểm tra IQ kiểm tra trên bốn chủ đề sau: khả năng tự nhiên, Tiếng Anh, Toán, kiến thức tổng quát.</i>
Giả sử bạn là một programmer của phòng phát triển phần mềm được giao viết chương trình này bằng java. Trước tiên chương trình hỏi sinh viên số lần làm thử, nếu nhập vào số lớn hơn 1 thì chương trình kết thúc và hiển thị thông báo.

Khi chương trình chạy, menu của chương trình hiển thị như sau:

1. Aptitude (Đầu vào)

2. English (Tiếng Anh)

3. Math (Toán)

4. GK (Kiến thức tổng hợp)

5. Exit (Thoát)

Khi nhập giá trị tương ứng từ 1 đến 4, chương trình sẽ hiển thị câu hỏi tương ứng với phần thi đó. Sinh viên chỉ có thể thi 1 lần duy nhất cho một chủ đề. Khi sinh viên làm đúng, số điểm sẽ tăng lên 10. Sau khi làm xong 4 phần của bài thi, sinh viên kết thúc chương trình bằng cách chọn Exit. Khi chương trình kết thúc, chương trình sẽ hiển thị tổng điểm của sinh viên đó làm được.Tổng điểm được tính bằng cách cộng dồn các môn lại.

Chương trình hiển thị điểm của sinh viên như định dạng dưới đây:

Điểm thưởng:

Tổng điểm / 50:

Mức IQ của bạn:

Điểm thưởng của sinh viên được tính như điều kiện sau:

1. Không có điểm nào khi tổng điểm bằng 10

2. 2 điểm cho tổng điểm bằng 20

3. 5 điểm cho tổng điểm bằng 30

4. 10 điểm khi tổng điểm bằng 40

Mức IQ được tính như sau:

1. Nếu tổng điểm bằng 10, mức IQ là: "IQ của bạn dưới trung bình"

2. Nếu tổng điểm bằng 22, mức IQ là: "IQ của bạn trung bình"

3. Nếu tổng điểm bằng 35, mức IQ là: "IQ của bạn thông minh"

4. Nếu tổng điểm bằng 40, mức IQ là: "IQ của bạn thiên tài"

5. Nếu điểm tổng bằng 0, thì thông báo của chương trình là: "bạn phải kiểm tra lại".


Xin lưu ý , ở đây bài này có rất nhiều cách giải quyết và hướng giải , tôi xin post hướng giải ngắn , ai cần hướng khác xin liên lạc thông tin Admin

--(*)\\ Class Question:

public class Question {
String Content; //noi dung cau hoi
int ans; //dap an
int mark; //diem IQ
boolean check;
}

--(*)\\ Class TestIq:

import java.util.Scanner;
public class TestIQ {

Question q1, q2, q3, q4;

public TestIQ(){
// Khoi tao cau hoi ve ki nang
q1 = new Question();
q1.Content = "\nJava la ngon ngu lap trinh huong doi tuong ?";
q1.Content += "\n\t1. Dung\n\t2. Sai";
q1.ans = 1;

// Khoi tao cao hoi ve tieng anh
q2 = new Question();
q2.Content = "\nY nghia cua tu 'Table':";
q2.Content += "\n\t1. Cay viet chi\n\t2. Cai ban\n\t3. Cai ghe";
q2.ans = 2;

// Khoi tao cau hoi ve tinh toan
q3 = new Question();
q3.Content = "\nCa lau kieng + Ca la han = ?";
q3.Content += "\n\t1. Ca con\n\t2. Ca lau\n\t3. Ca bi";
q3.ans = 3;

// Khoi tao cau hoi ve kien thuc tong quat
q4 = new Question();
q4.Content = "\nTrung ga co truoc hay con ga co truoc:";
q4.Content += "\n\t1. Con ga\n\t2. Trung ga\n\t3. Ca 2 dieu sai\n\t4. Ca 2 dieu dung\n\t5. bi";
q4.ans = 5;
}

public void menu(){
System.out.println("\nChuong trinh test IQ:");
System.out.println("1. Ki nang");
System.out.println("2. Tieng anh");
System.out.println("3. Toan");
System.out.println("4. Kien thuc tong quat");
System.out.println("5. Thoat");
System.out.print("Chon chuc nang (1 - 5): ");
}

public void result(){
int kq= q1.mark+q2.mark+q3.mark+q4.mark;
switch(kq){
case 40:
kq+=10;
System.out.printf("Kqua : %d. Right! You to get 40 points.\n",kq);
break;
case 30:
kq += 5;
System.out.printf("Ket qua: %d. Right! You to get 30 points.\n", kq);
break;
case 20:
kq += 2;
System.out.printf("Ket qua: %d. Right! You to get 20 points.\n", kq);
break;
case 10:
System.out.printf("Ket qua: %d. Right! You to get 10 points.\n", kq);
break;
default:
System.out.println("Chuc ban may man lan sau\n");
}
}

public static void main(String[] args) {
TestIQ o = new TestIQ(); // Ham dá»±ng dc thi hanh
int opt = 1;
Scanner in = new Scanner(System.in);

do{
o.menu();
opt = in.nextInt();
switch(opt){
case 1:
if(o.q1.check == false){
System.out.printf("%s", o.q1.Content);
System.out.print("\nChon dap an: ");
int dapan = in.nextInt();
if(dapan == o.q1.ans){
o.q1.mark = 10;
}
o.q1.check = true;
}
else{
System.out.println("\nCau hoi nay da dc tra loi roi !!!\n");
}
break;

case 2:
if(o.q2.check == false){
System.out.printf("%s", o.q2.Content);
System.out.print("\nChon dap an: ");
int dapan = in.nextInt();
if(dapan == o.q2.ans){
o.q2.mark = 10;
}
o.q2.check = true;
}
else{
System.out.println("\nCau hoi nay da dc tra loi roi !!!\n");
}
break;

case 3:
if(o.q3.check == false){
System.out.printf("%s", o.q3.Content);
System.out.print("\nChon dap an: ");
int dapan = in.nextInt();
if(dapan == o.q3.ans){
o.q3.mark = 10;
}
o.q3.check = true;
}
else{
System.out.println("\nCau hoi nay da dc tra loi roi !!!\n");
}
break;
case 4:
if(o.q4.check == false){
System.out.printf("%s", o.q4.Content);
System.out.print("\nChon dap an: ");
int dapan = in.nextInt();
if(dapan == o.q4.ans){
o.q4.mark = 10;
}
o.q4.check = true;
}
else{
System.out.println("\nCau hoi nay da dc tra loi roi !!!\n");
}
break;
case 5:
if(o.q1.check&&o.q2.check&&o.q3.check&&o.q4.check){
o.result();
}
else{
System.out.println("Ban chua hoan tat bai thi.Chua the ket thuc.");
opt = 6;
}
break;
}
}
while(opt != 5);
}

}
}
}
}
      [Đọc: 4851-Ngày đăng: 18-09-2010]
[Huỳnh Hoài Thanh (sưu tầm và soạn)]

Chia sẻ trên Facebook Google Boomarks Google Buzz
Bạn có biết:

Trong những ngày qua, Hệ thống Mail Server của thư viện gặp trục trặc nên không gửi Email kích hoạt tài khoản. Chúng tôi thành thật xin lỗi bạn đọc vì sự bất tiện này.

Nếu bạn không nhận được Email kích hoạt, Click vào đây để được gửi lại:

Kiến thức vững chắc,
Hành trang vững vàng,

Vào đời sẵn sàng,
Đối đầu thử thách.
  • Ảnh minh họa
    Trong quá trình thao tác với CSDL, chúng ta sẽ gặp phải vấn đề chuyển đổi giữa kiểu dữ liệu trong CSDL sang kiểu dữ liệu Java hỗ trợ và ngược lai. Việc chuyển đổi này được thực hiện như trong 2 bảng sau :
  • Ảnh minh họa
    Hầu hết các chương trình máy tính hiện này đếu ít nhiều liên quan đến việc truy xuất thông tin trong các cơ sở dữ liệu. Chính vì thế nên các thao tác hỗ trợ lập trình cơ sở dữ liệu là chức năng không thể thiếu của các ngôn ngữ lập trình hiện đại, trong đó có Java. JDBC API là thư viện chứa các lớp và giao diện hỗ trợ lập trình viên Java kết nối và truy cập đến các hệ cơ sở dữ liệu.
  • Ảnh minh họa
    Trong ngôn ngữ java, bên cạnh việc dùng System.out để xuất dữ liệu ra Console (thường dùng để debug chương trình), chúng ta có thể dùng luồng PrintWriter đối với các chương trình "chuyên nghiệp". PrintWriter là một trong những lớp luồng ký tự. Việc dùng các lớp luồng ký tự để xuất dữ liệu ra Console thường được "ưa chuộng" hơn.
  • Ảnh minh họa
    Bên cạnh việc xử lý xuất nhập trên file theo kiểu tuần tự thông qua các luồng, java cũng hỗ trợ truy cập ngẫu nhiên nội dung của một file nào đó dùng RandomAccessFile. RandomAccessFile không dẫn xuất từ InputStream hay OutputStream mà nó hiện thực các interface DataInput, DataOutput (có định nghĩa các phương thức I/O cơ bản). RandomAccessFile hỗ trợ vấn đề định vị con trỏ file bên trong một file dùng phương thức seek(long newPos).
  • Ảnh minh họa
    Tạo một luồng Byte gắn với file chỉ định dùng FileInputStream và FileOutputStream. Để mở một file, đơn giản chỉ cần tạo một đối tượng của những lớp này, tên file cần mở là thông số trong constructor. Khi file mở, việc đọc và ghi dữ liệu trên file được thực hiện một cách bình thường thông qua các phương thức cung cấp trong luồng.
  • Ảnh minh họa
    Việc lưu trữ dữ liệu trong các biến chương trình, các mảng có tính chất tạm thời và dữ liệu sẽ mất đi khi biến ra khỏi tầm ảnh hưởng của nó hoặc khi chương trình kết thúc. Files giúp cho các chương trình có thể lưu trữ một lượng lớn dữ liệu, cũng như có thể lưu trữ dữ liệu trong một thời gian dài ngay cả khi chương trình kết thúc. Trong bài này chúng ta sẽ tìm hiểu làm thế nào các chương trình java có thể tạo, đọc, ghi và xử lý các files tuần tự và các file truy cập ngẫu nhiên thông qua một số ví dụ minh họa.
  • Ảnh minh họa
    Java cung cấp hai intefaces lắng nghe (bộ lắng nghe sự kiện chuột) là MouseListener và MouseMotionListener để quản lý và xử lý các sự kiện liên quan đến thiết bị chuột. Những sự kiện chuột có thể "bẫy" cho bất kỳ component nào trên GUI mà dẫn xuất từ java.awt.component.
  • Ảnh minh họa
    Một khung chứa được trình bày theo kiểu Null Layout có nghĩa là người lập trình phải tự làm tất cả từ việc qui định kích thước của khung chứa, cũng như kích thước và vị trí của từng đối tượng component trong khung chứa.
  • Ảnh minh họa
    Như chúng ta đã biết khung chứa container nhận các đối tượng từ bên ngoài đưa vào và nó phải biết làm thế nào để tổ chức sắp xếp "chỗ ở" cho các đối tượng đó. Mỗi đối tượng khung chứa đều có một bộ quản lý chịu trách nhiệm thực hiện công việc đấy đó là bộ quản lý trình bày (Layout Manager).
  • Ảnh minh họa
    Trong khuôn khổ giáo trình lập trình java căn bản này chúng tôi trình bày việc thiết kế GUI dùng thư viện awt (abstract windows toolkit). Việc thiết kết GUI sẽ trực quan, uyển chuyển hơn khi chúng ta sử dụng thư viện JFC (Java Foundation Class) sẽ giới được giới thiệu trong chuyên đề java nâng cao.
  • Ảnh minh họa
    Như trong bài kiểu dữ liệu chúng ta đã làm quen với kiểu dữ liệu mảng, trong phần này chúng ta tiếp tục tìm hiểu các khai báo, truy cập và tương tác với tập tin từ mảng một chiều, hai chiều.
  • Ảnh minh họa
    PHP là kịch bản được xem là tốt nhất cho xử lý chuỗi, bằng cách sử dụng các hàm xử lý chuỗi, bạn có thể thực hiện các ý định của mình khi tương tác cơ sở dữ liệu, tập tin hay dữ liệu khác.
  • Ảnh minh họa
    Khi bạn gọi trang chèn này một mình ví dụ tom.htm, nếu bên trong có mã PHP thì mã đó không được thông dịch. Nếu những trang chèn này có nhu cầu gọi một mình thì bạn có thể chuyển chúng thành trang PHP thay vì htm như đã trình bày.
  • Ảnh minh họa
    Tuỳ thuộc vào ý tưởng thiết kế mỗi phần như trên bao gồm các thuộc tính mà nhà thiết kế cần trình bày sao cho phù hợp. Tuy nhiên, phần body là phần trình bày nội dung chính của mỗi trang web.
  • Ảnh minh họa
    Khi bạn muốn thống nhất nội dung trong những thẻ khác của một trang web thì khai báo một định dạng trong thẻ style. Tuy nhiên, khi đặt tên trùng với thẻ HTML, mọi thẻ đó trong trang sẽ cùng chung một định dạng.
  • Ảnh minh họa
    Trong trường hợp loại bỏ tất các session đang tồn tại thì sử dụng hàm session_unset(). Ví dụ dùng hàm này để lạoi bỏ session và dùng hàm sessin_destroy để huỷ tất cả session đó khai báo trong trang unset.php.
  • Ảnh minh họa
    Trong PHP4.0 đối tượng Session được xem như một đối tượng cho phép bạn truyền giá trị từ trang PHP này sang PHP khác. Để sử dụng Session, bạn khai báo thư mục được lưu trữ dữ liệu do đối tượng nay ghi ra.
  • Ảnh minh họa
    Trong bài học này chúng tôi giới thiệu đến cho các bạn các phép gán, các toán tử, đồng thời giúp cho các bạn hiểu thêm vào các phát biểu có điều kiện như while, for, switch, ….
  • Ảnh minh họa
    Khi bạn lập trình trên PHP là sử dụng cú pháp của ngôn ngữ C, C++. Tương tự như những ngôn ngữ lập trình khác, toán tử giúp cho bạn thực hiện những phép toán như số học hay trên chuỗi.
  • Ảnh minh họa
    Khi sử dụng biến form bạn tránh trường hợp khai báo biến cục bộ hay toàn cục trong tang PHP cùng tên với thẻ nhập liệu của form trước đó submit đến hay tham số trên querystring.
Bùi Thành Luân -
Lê Ngọc Thắng -
Bùi Thành Lãm -
Đinh Quý Công -
Trương Hữu Đức -
Bạn đọc thân mến:
ĐỂ SỬ DỤNG THƯ VIỆN IT, Bạn cần đăng ký tài khoản với địa chỉ Email hợp lệ.
ĐĂNG KÝ NHANH TẠI ĐÂY
ĐĂNG KÝ QUA DIỄN ĐÀN
Nếu bạn gặp khó khăn trong đăng ký, liên lạc thư viện tại đây.
Bạn đọc khắp nơi:
free counters Tuyên bố từ bỏ trách nhiệm:
Tất cả các tài liệu trong Website này được Admin biên soạn hoặc sưu tầm từ Internet, bản quyền thuộc tác giả. Thư viện IT chỉ lưu trữ để học tập và tham khảo. Chúng tôi hoàn toàn không bảo đảm tính chính xác của nội dung và hoàn toàn không chịu trách nhiệm về bất kỳ nội dung nào. Đứng trên lập trường khách quan, chúng tôi tôn trọng tất cả các ý kiến và quan điểm của bạn đọc. Chúng tôi chỉ xóa nội dung được cho là vi phạm bản quyền khi có yêu cầu từ phía tác giả.