Aptech Java 1 Practical Exam

Chú ý:
– Đặt tên file của Câu 1 là: DigitalClock.java
– Đặt tên file của Câu 2 là: Calculator.java

Question 1: [15]

Tạo một ứng dụng có chức năng giống như một đồng hồ báo thức đơn giản.

  • Ứng dụng sẽ form hiển thị chính như sau:
    The Clock

    The Clock

    Yêu cầu:
    – Định dạng ngày tháng phải hiển thị đúng như trong hình minh họa, thời gian của đồng hồ phải nhảy theo đúng thời gian thực.
    – Khi người dùng click vào nút Exit, chương trình sẽ hiển thị thông báo hỏi người dùng có thật sự muốn tắt chương trình hay không?

  • Khi người dùng click vào nút Set Alarm chương trình sẽ hiển thị 1 dialog như sau:
    Set Alarm

    Set Alarm

    Yêu cầu:
    – Người dùng có thể nhập ngày tháng năm ( định dạng mm/dd/yyyy), thời gian (ví dụ 09:20:40 AM) và lời nhắn.
    – Khi click vào nút Cancel, chương trình sẽ tắt form Set Alarm và trở về form chính.
    – Khi click vào nút Set Alarm, chương trình sẽ ghi nhớ toàn bộ những gì người dùng đã nhập và tắt form này. Khi đến mốc thời gian người dùng đã đặt thì sẽ hiển thị thông báo như sau:
    Ví dụ người dùng đã nhập lời nhắn là “Hello hello!!

    Alert Message

    Alert Message

  • Không yêu cầu kiểm tra tính hợp lệ của dữ liệu người dùng nhập. Tuy nhiên nếu bạn kiểm tra thì càng tốt.

Question 2: [10]
Tạo chương trình có chức năng giống như một máy tính điện tử với giao diện như sau:

Calculator form

Calculator form


Source: Aptech_Java_1_PExam.zip

Aptech SQL 2 Practical Exam 4

Create a database name: SqlExam4

  1. Create tables as following:
    Customer (Store Customers information):

    cID (int, Primary Key) cName (varchar(25)) cAge (tinyint)
    1 Tuan Anh 19
    2 Viet Hung 22
    3 Hoang Minh 40
    4 Ngoc Hai 14

    Product (Store Products information)

    pID (int, Primary Key) pName (varchar(25)) pPrice (int)
    1 Ban La 1000
    2 Quat Chay 500
    3 May Bom Hong 20
    4 Tivi 5000
    5 Tu Lanh 7000

    Order

    oID (int, Primary Key) cID (int, Foreign Key References Customer.cID) oDate (DateTime) oTotalPrice (int)
    1 1 09/15/2007 NULL
    2 3 09/20/2007 NULL
    3 1 09/23/2007 NULL

    OrderDetail

    oID (int, Foreign Key References Order.oID) pID (int, Foreign Key References Product.pID) odQTY (int, Order quantity)
    1 1 3
    1 3 5
    1 4 2
    2 5 1
    2 5 4
    2 3 5
    3 1 12
  2. Display Order as following (Result must be ordered by Date):
    oID cID cDate oTotalPrice
    3 1 2007-09-23 00:00:00.000 NULL
    2 3 2007-09-20 00:00:00.000 NULL
    1 1 2007-09-15 00:00:00.000 NULL
  3. Display the most expensive product:
    pName pPrice
    Tu Lanh 7000
  4. Show customer name with each item he bought like:
    cName pName
    Hoang Minh Tu Lanh
    Hoang Minh Tu Lanh
    Hoang Minh May Bom Hong
    Tuan Anh Ban La
    Tuan Anh May Bom Hong
    Tuan Anh Tivi
    Tuan Anh Ban La
  5. Show customers that didn’t buy any thing:
    cName
    Viet Hung
    Ngoc Hai
  6. Display sold items as following:
    oID oDate odQTY pName pPrice
    1 2007-09-15 00:00:00.000 3 Ba La 1000
    1 2007-09-15 00:00:00.000 5 May Bom Hong 20
    1 2007-09-15 00:00:00.000 2 Tivi 5000
    2 2007-09-20 00:00:00.000 1 Tu Lanh 7000
    2 2007-09-20 00:00:00.000 4 Tu Lanh 7000
    2 2007-09-20 00:00:00.000 5 May Bom Hong 20
    3 2007-09-23 00:00:00.000 12 Ba La 1000
  7. Show total cost in each Order:
    oID oDate Total
    1 2007-09-15 00:00:00.000 13100
    2 2007-09-20 00:00:00.000 35100
    3 2007-09-23 00:00:00.000 12000
  8. Create view name Sales show total cost of all Orders:
    60200
  9. Remove all constraints in all tables
  10. Create a trigger name: casUpdate on Customer table. This trigger will update cID in Order table when cID in Customer table changed
  11. Create a Store procedure name delCustomer with a parameter @name (Customer name). When input a customer name, this procedure will delete all the customer infomation in Customer table, Order table, OrdeDetail table.

Aptech SQL 2 Practical Exam 3 – Student Management

Tạo CSDL quản lý điểm học viên. CSDL gồm 3 bảng Student(RN,Name,Age,Gender), Subject(sID, sName), StudentSubject(RN,SID,Mark,Date).

  1. Tạo các bảng trên:
    1. Đặt khóa chính cho các bảng:Student khóa là RN
      Subject khóa là sID
      StudentSubject khóa là (RN,sID)
    2. Đặt ràng buộc để trường Mark chỉ nhận các giá trị trong khoảng [0->10]
    3. Đặt ràng buộc khóa chính khóa ngoại giữa 2 bảng Student(RN) và StudentSubject(RN).
  2. Nhập dữ liệu vào bảng để thể hiện thông tin sau
    1. Học viên Mỹ Linh đạt điểm 8 môn SQL vào ngày 7/28/2005
    2. Học viên Đàm Vĩnh Hưng đạt điểm 3 môn LGC vào ngày 7/29/2005
    3. Học viên Kim Tử Long đạt điểm 9 môn HTML vào ngày 7/31/2005
    4. Học viên Tài Linh đạt điểm 5 môn SQL vào ngày 7/30/2005
    5. Học viên Mỹ Lệ đạt điểm 10 môn CF vào ngày 7/19/2005
    6. Học viên Ngọc Oanh đạt điểm 9 môn SQL vào ngày 7/25/2005
  3. Cập nhật giới tính cho các học viên
    1. Mỹ Linh, Tài Linh, Mỹ Lệ là 0
    2. Kim Tử Long là 1
    3. Ngọc Oanh vẫn để Null
  4. Nhập thêm các môn học sau vào bảng Subject:
    1. Core Java
    2. VB.Net
  5. Hiển thị tất cả các môn học mà chưa có học viên nào nhận điểm.
  6. Hiển thị danh sách tất cả các môn học, với điểm cao nhất mà học viên đạt được với môn học đó, môn nào chưa có điểm thì để trống (Null) phần điểm.
  7. Hiển thị tên môn học mà có nhiều hơn một điểm
  8. Tạo một view tên là StudentInfo để xem đầy đủ các thông tin về học viên gồm (RN,sID,Name, Age, Gender, sName, Mark, Date).
    Đối với trường Gender hiển thị Male thay cho 0, Female thay cho 1 và Unknow thay cho Null.
  9. Tạo Index trên đối với view StudentInfo trên hai trường (RN,sID)
  10. Tạo một Trigger CasUpdate trên bảng Subject sao cho khi sửa dữ liệu trong cột sID của bảng Subject, dữ liệu trong cột sID của bảng StudentSubject sẽ được thay đổi tương ứng
  11. Tạo một Trigger casDel trên bảng Student, sao cho khi xoá một học viên trong bảng, thì các dòng tương ứng trong bảng StudentSubject sẽ bị xoá theo.
  12. Viết một Store Procedure nhận vào một 2 tham số, tham số thứ nhất là tên học viên, tham số thứ 2 là điểm. Procedure này sẽ xóa toàn bộ các thông tin liên quan đến học viên có tên được cung cấp nếu tất cả các điểm của học viên đó đều nhỏ hơn tham số thứ 2.
    Trường hợp tham số thứ nhất là dấu * thì procedure sẽ xóa tất cả các học viên.
  13. Hiển thị nội dung của view StudentInfo với danh sách sắp xếp theo tên(last Name)
  14. Tạo một bảng tên là Top3 với các cột (Rank,RN, Name, Mark, sName, Date) với dữ liệu gồm chỉ 3 dòng có điểm cao nhất, cột Rank sẽ chứa số thứ tự từ 1 đến 3(dòng đầu tiên là 1, dòng thứ 2 là 2 và dòng thứ 3 là 3), còn cột Date sẽ nhận giá trị là ngày cập nhật thông tin.
  15. Tạo một trigger tên là tgTop3 trên bảng StudentSubject để đảm bảo rằng dữ liệu trong bảng top3 luôn là dữ liệu của 3 bạn có điểm cao nhất.
  16. Hiển thị danh sách toàn bộ các học sinh giỏi (Học sinh giỏi là những người có điểm trung bình lớn hơn 8.0 và không có điểm nào dưới 5).
  17. Hiển thị danh sách toàn bộ các học sinh khá (Học sinh khá là những người có điểm trung bình lớn hơn 6.5 và chỉ có tối đa 1 điểm dưới 5, và điểm này không được dưới 3).
  18. Sửa Stored procedure ở câu 12 để stored prodcedure này không xóa những bạn có tên trong bảng Top3.
EXAMPLE SOURCE: Aptech-SQL-A01-StuSub.zip

Aptech SQL 2 Practical Exam 2

Use SQL Query Analyzer to work with BookStore database and create a SQL script file follow those steps:

  1. Create 4 tables and insert data as follows: Students (Student list)
    StudentID (int) Name (varchar (50)) Age (tinyint) Gender (bit)
    1 Nguyen Thi Huyen 19 0
    2 Mai Thanh Minh 33 1
    3 Dao Thien Hai 26 1
    4 Trinh Chan Tran 24 0
    5 Diem Diem Quynh 30 Null

    Books (Book list)

    BookID (int) Name (Varchar (50)) TotalPage (int) Type (Varchar(10)) Quantity (int)
    1 Word 50 Null 10
    2 Excel 60 Null 20
    3 Access 71 Null 7
    4 LGC 42 Null 1
    5 HTML 71 Null 2

    Borrows (Describe borrowing. Example: the first row of following table denote “Nguyen Thi Huyen has borrowed one Excel book on 10/29/2004)

    BorrowID (int) StudentID (int) BookID (int) BorrowDate (datetime)
    1 1 1 10/29/2004
    2 4 4 10/26/2004

    DropOuts (Describe DropOut list)

    DrpID (int) StudentID (int) Date (datetime)

    Constraints:
    – Apply the Not Null Constraint to the Name column of Books table.
    – Apply the Primary Key Constraint for the StudentID, BookID, BorrowID and DrpID columns of 4 above tables.
    – Apply the Identity(1,1) Constraint for the DrpID column of DropOuts table.

  2. Display the Books that have TotalPage more than 50, this list must order by TotalPage and then Name as following:
    BookID Name TotalPage Type Quantity
    2 Excel 60 NULL 20
    3 Access 71 NULL 7
    5 HTML 71 NULL 2
  3. Insert appropriate data to Borrows to represent following information:
    – One Access book was borrowed by Trinh Chan Tran on 10/30/04.
    – One HTML book was borrowed by Mai Thanh Minh on 10/31/04
    – 2 Word books were borrowed by Trinh Chan Tran on today (Hint: use GetDate())
  4. Display book names were borrowed and borrower name as following:
    Student Name Book Name
    Nguyen Thi Huyen Word
    Trinh Chan Tran LGC
    Trinh Chan Tran Access
    Mai Thanh Minh HTML
    Trinh Chan Tran Word
    Trinh Chan Tran Word
  5. Display all student names and total books were borrowed by them as following
    Student Name Total borrowed book
    Dao Thien Hai 0
    Diem Diem Quynh 0
    Mai Thanh Minh 1
    Nguyen Thi Huyen 1
    Trinh Chan Tran 4
  6. Display name of the students that are null in gender column.
  7. Display Name of the best borrowed book (the book that its total borrower is highest) and total borrower of this book as following:
    Book Name Total Borrower
    Word 3
  8. Display number of total available books on BookStore (Hint: Total available=Total Books – Total Borrowed Books)
  9. Create a view named ‘vwBookList’ that list all information of Books table as following:
    Book Name TotalPage Type Quantity
    Word 50 Normal 10
    Excel 60 Normal 20
    Access 71 Thick 7
    LGC 42 Thin 1
    HTML 71 Thick 2
  10. Modify the view named ‘vwBookList‘ such that you can create an index on it.
  11. Create an index named ‘indBookName’ on the [Book Name] and Type column of the ‘vwBookList’ view.
  12. Create an Insert Trigger named ‘tgNoInsertBook’ on the Borrows table. This trigger must check data inserting, if number of borrower greater than book’ quantity it will be rollback and display a message “Out of stock”.
    Example: if user insert a row (using: Insert into Borrows Values(10,1,4,getdate()) to Borrows table, no row will be inserted and message “Out of stock” will be displayed
  13. Create a stored procedure named ‘spDropOut’ that accept the Student Name as parameter. If the student name available on Students table and if he/she is not borrow any books it will drop all information of the student from BookStore database and add StudentID into DropOuts table.
    Example: if Nguyen Thi Huyen is dropped out, there is no change in database because she still is borrowing 1 book.
    If Dao Thien Hai is dropped out all his information in all tables will be deleted and a row will be added in DropOuts table as following:

    DrpID StudentID Date
    1 3 <Current Date time>

    Notes: You must ensure that this action will completely or rollback.

EXAMPLE SOURCE: Aptech-SQL-2-PE-2.zip

Aptech SQL 2 Practical Exam

Use SQL Query Analyzer to work with EventManagement database and create a SQL script file follow those steps:

  1. Create 3 tables and insert data as follows:
    Customer (Customer list)

    CusID (int) CusName (Varchar(50)) CusAge (Smallint) CusGender (Bit)
    1 Truong Gia Binh 45 1
    2 Vuong Vu Thang 22 Null
    3 Trieu Tran Duc 20 1
    4 Tran Ngoc Oanh 19 0

    Event (Event list)

    EvtID (int) EvtName (varchar(50) EvtType (tinyint) EvtDate (DateTime)
    1 Hacker VN 1 2005-01-13
    2 TTVN 2 2004-12-12
    3 SVHN 3 2005-01-01

    CustomerEvent (Describe attendance of Event. Example: the first row of following table denote “Truong Gia Binh has attended in Hacker VN event”)

    CusID (Int) EvtID (Int) cesClass (Int)
    1 1 1
    1 2 1
    2 1 2
    2 3 2
    3 1 1
    3 2 2
    3 3 3

    Constraints: (Student must use ‘Alter Table’ statement to Apply them)
    – Apply the Default Constraint to the EvtType column of Event table with value is 1.
    – Apply the Primary Key Constraint for CustID of Customer table, EvtID of Event table and the Composite Primary Key Constraint for the CusID and EvtID of the CustomerEvent table.
    – Create a References Constraint between Customer and CustomerEvent table on CusID named ‘Contr1’, and a References Constraint between Event and CustomerEvent table on EvtID named ‘Contr2’.

  2. Display total number of customers that has attended TTVN event.
  3. Display total number of attendance customer for each event as following:
    Event Name Total
    Hacker VN 3
    TTVN 2
    SVHN 2
  4. Display Customer list as following:
    Name Age Gender
    Truong Gia Binh 45 Male
    Vuong Vu Thang 22 Nil
    Trieu Tran Duc 20 Male
    Tran Ngoc Oanh 19 Female
  5. Create a view named ‘vwAttendanceList’ as following: (the list must sorted by Event Name, if not student will only get ½ total mark)
    Event Name Customer Name
    Hacker VN Truong Gia Binh
    Hacker VN Vuong Vu Thang
    Hacker VN Trieu Tran Duc
    SVHN Vuong Vu Thang
    SVHN Trieu Tran Duc
    TTVN Truong Gia Binh
    TTVN Trieu Tran Duc
  6. Modify the view named ‘vwAttendanceList’ such that you can create an index on it. (Hint: Add ‘With SchemaBinding’ option and remove some statement such as ‘Top’, ‘Order by’,…)
  7. Create an index named ‘indAttendanceList’ on the (‘Event Name’,’Customer Name’) column of the ‘vwAttendanceList’ view.
  8. Display name of the customer that has number of attendance in all events is greatest.
    (Notes: The correct result will be: ‘Trieu Tran Duc’).
  9. Drop References Constraint between Event and CustomerEvent table.
  10. Create an Delete Trigger named ‘tgDeleteAll’ on the Event table such that if you delete a event, all relative row on CustomerEvent table will be deleted.
  11. Create a stored procedure named ‘spDropCustomer’ that accept an integer number as parameter. The stored procedure will delete all customer who has the number of attendance in all events is less than the parameter.
    (Notes: You must ensure that this action will completely.)

Aptech Winforms Assignments (1)

Chapter 5 Assignment:

  1. Create the following form to accept customer information:
    Customer Information form

    Customer Information form

    – All fields are required.
    – Customer ID accepts maximum 5 characters, all chars must be entered in upper case.
    – Email must be in correct email format (hint: must have (@) and (.) in corrcet position).
    – Phone no. must be in format of (000)-000-0000 in which 0 represents a 0-9 number.
    – Extension must be numeric and accepts maximum 3 chars.
    – Country combo box contains some country options and only allows users to select the available options not input new country.
    – Postal code must be numeric and accepts maximum 3 chars.

  2. Create the following windows explorer – like application:
    This application should allow users to view the contents (subfolders and files) of C drive.
    Guides:
    – Use TreeView and ListView to display the drive contents. Use an imagelist to store the icons displayed in the treeview and listview. Use the following icons:

    • C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Graphics\icons\Win95\ CLSDFOLD.ICO
    • C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Graphics\icons\Win95\ OPENFOLD.ICO
    • C:\Program Files\Microsoft Visual Studio .NET 2003\Common7\Graphics\icons\Office\ CRDFLE07.ICO

    – Only display subfolders and files of a folder when it is selected. This is to avoid the long process of loading all drive contents at form load. Handle the event AfterSelect of the treeview to display the selected node content

    My Windows Explorer

    My Windows Explorer