You are on page 1of 8

FRESHER ACADEMY

Java Basic General Assignment


Day 1- Day 10

 Assignment Day 1, Day2:

*Purpose: Students will cover the knowledges:


- Basic Java Syntax
- Array
- Parameter
- String basic
- Flow Control
- Algorithm
- File processing

1. Viết chương trình in ra cá c dấ u * theo cấ u trú c như sau (cho n là chiều cao
củ a thá p tam giá c, cầ n in ra n dò ng):
Ví dụ : n = 6

**

***

****

*****

******

xxe-BM/NS/HDCV/FSOFT v1/0 Confidential 1/8


2. Viết chương trình tính :
S=1+1/2+1/3+....+1/n

Số n đượ c nhậ p từ bà n phím

3. Viết chương trình tính :


S = 1+1/3!+1/5!+…..+1/(2n-1)!

Số n đượ c nhậ p từ bà n phím

4. Tính tổ ng và tích cá c chữ số củ a mộ t số m, m đượ c nhậ p từ bà n phím


(Ví dụ : m = 234 => S = 2 + 3 + 4 = 9, P = 2 * 3 * 4 = 24)

5. Nhậ p 2 số nguyên dương a và b. Sau đó in ra ướ c số chung lớ n nhấ t và bộ i


số chung nhỏ nhấ t củ a 2 số nguyên dương a và b đó .

6. Viết chương nhậ p và o mộ t số nguyên dương n. Sau đó quy đổ i n ra hệ nhị


phâ n.

7. Nhậ p và o mộ t String S, thự c hiện cô ng việc sau:


a. In ra mà n hình String đả o ngượ c củ a S
b. Đổ i toà n bộ kí tự củ a S sang chữ Hoa
c. Đổ i toà n bộ kí tự củ a S sang chữ thườ ng
d. Đưa ra bả ng tầ n số xuấ t hiện củ a cá c kí tự trong S
e. Trích ra chuỗ i con củ a từ kí tự thứ n đến thứ m củ a S (n, m nhậ p từ
bà n phím)

8. Viết chương trình thự c hiện cá c cô ng việc như sau :


a. Nhậ p mộ t mả ng a gồ m n phầ n tử kiểu nguyên int
b. Tính tổ ng số dương lẻ củ a mả ng a
c. Nhậ p và o phầ n tử k, tìm xem k có xuấ t hiện trong mả ng a khô ng.
Nếu có chỉ ra cá c vị trí củ a k trong mả ng.
d. Sắ p sếp mả ng a theo thứ tự tă ng dầ n.
e. Chèn mộ t số p và o mả ng a sao cho mả ng a vẫ n đả m bả o tă ng dầ n.

9. Viết chương trình thự c hiện cô ng việc sau:


a. Nhậ p ma trậ n A (m dò ng, n cộ t) gồ m cá c phầ n tử kiểu int
b. Tính tích cá c số là bộ i số củ a 3 nằ m trên dò ng đầ u tiên củ a ma trậ n
c. Tạ o ra mả ng mộ t chiều X vớ i X[i] là cá c giá trị lớ n nhấ t trên từ ng
dò ng i củ a ma trậ n A.

10. Viết chương trình đọ c mộ t file đầ u và o có định dạ ng *.csv:


Nộ i dung củ a file csv lưu thô ng tin củ a mộ t nhó m sinh viên, bao gồ m
cá c thô ng tin sau: StdNo, StdName, StdPhone, StdEmail, GradePoint.

Ví dụ file đầ u và o STD.csv:

xxe-BM/NS/HDCV/FSOFT v1/0 Confidential 2/8


a. Hã y viết function đọ c file csv, sau đó hiển thị toà n bộ thô ng tin củ a
cá c sinh viên lên mà n hình console.
b. Viết hà m kiểm tra dữ liệu củ a file csv, nếu sai định dạ ng phone
hoặ c email thì thô ng bá o lỗ i ra file error.txt.

Ví dụ file error.txt:

11. Là m mộ t ví dụ để phâ n biệt khá i niệm by pass value và by pass refference

12. Họ c viên hã y giả i thích khá c nhau giữ a Comments và JavaDoc, hã y thự c
hiện ví dụ trên code mà họ c viên đã viết

xxe-BM/NS/HDCV/FSOFT v1/0 Confidential 3/8


 Assignment Day 2 – Day 10.

*Purpose: Students will cover the knowledges:

- Principles of OOP : Encapsulation, Abstraction, Inheritance, Polymorphism

- Access Modifier

- Constructors

- Static, final

- Overload, Override

- Abstract class, Interface

- Is A, Has A relationship

- Super, this keyword

- Exception Handling

- Java Utilities classes

- Java Collection Framework

- JDBC Basics

- Debugging With Eclipse

- Using Log4J

Học viên hãy xây dựng ứng dụng như sau:


A. Mô tả nghiệp vụ:
Phầ n mềm quả n lý ứ ng viên củ a bộ phậ n tuyển dụ ng củ a FPT software đượ c mô tả
nghiệp vụ như sau:
Ứ ng viên (Candidate) khi nộ p hồ sơ và o cô ng ty đượ c phầ n mềm phâ n thà nh 3 loạ i
như sau: Ứ ng viên có kinh nghiệm (Experience), Ứ ng viên mớ i tố t nghiệp (Fresher)
, Sinh viên thự c tậ p (Intern)

xxe-BM/NS/HDCV/FSOFT v1/0 Confidential 4/8


Tấ t cả cá c Candidate đều có cá c thuộ c tính là : CandidateID, FullName,
BirthDay,Phone, Email, Candidate_type, Canidate_count và phương thứ c là ShowInfo
để hiển thị thô ng tin củ a ứ ng viên đó (hiển thị thô ng tin ứ ng viên ra mà n hình console).

Trong đó :

* Candidate_type có giá trị tương ứ ng là 0: Experience, 1: Fresher , 2: Intern


(tù y và o ngườ i dù ng nhậ p và o ứ ng viên loạ i nà o)

* Candidate_count dù ng để ngườ i dù ng đếm số lượ ng candidate trong mộ t


đợ t ngườ i dù ng nhậ p mớ i ứ ng viên và o cơ sở dữ liệu. (mỗi lần người dùng nhập thêm
mới ứng viên thì thuộc tính Candidate_count của class Candidate sẽ tăng lên 1)

Ngoài ra :

Đố i vớ i ứ ng viên Experience có thêm thuộ c tính: Số nă m kinh nghiệm (ExpInYear),


Kỹ nă ng chuyên mô n (ProSkill)

Đố i vớ i ứ ng viên Fresher có thêm thuộ c tính: Thờ i gian tố t


nghiệp(Graduation_date), Xếp loạ i tố t nghiệp (Graduation_rank) , Trườ ng tố t nghiệp
(Education)

Đố i vớ i ứ ng viên Intern có thêm thuộ c tính: Chuyên ngà nh đang họ c (Majors), Họ c


kì đang họ c (Semester), Tên trườ ng đang họ c (University_name)

Lưu ý: Tù y mỗ i loạ i ứ ng viên, phương thứ c showMe sẽ đượ c bổ sung thêm cá c thuộ c tính
củ a riêng loạ i ứ ng viên đó .

** Ngoà i ra mỗ i ứ ng viên khi tham gia ứ ng tuyển cầ n phả i nộ p bằ ng cấ p nghề nghiệp


đi kèm, bộ phậ n tuyển dụ ng cầ n quả n lý cá c bằ ng cấ p nà y. Một ứng viên có thể có nhiều
bằng cấp.

Mỗ i bằ ng cấ p có cá c thô ng tin bao gồ m : CertificatedID, CertificateName,


CertificateRank, CertificatedDate.

B. Yêu cầu của Học viên:

I. Yêu cầu 1 (Day 2, Day 3):

xxe-BM/NS/HDCV/FSOFT v1/0 Confidential 5/8


1. Họ c viên hã y thiết kế và viết code củ a chương trình trên là m sao để tuâ n thủ theo
đú ng mô hình OOP đã họ c, á p dụ ng đầ y đủ 4 tính chấ t : bao đó ng (encapsulation) , kế thừ a
(inheritance) , đa hình (polymorphism) , trừ u tượ ng (abstraction).

2. Xá c định và viết code constructor cho tấ t cả cá c class.

3. Xá c định và viết code cho cá c abstract method, abstract class,


override/overload method, static field.

4. Xá c định Is A, Has A relationship trong phầ n thiết kế code đã viết ở trên.

5. Sử dụ ng và giả i thích đượ c ý nghĩa củ a 2 keyword: super, this trong phầ n thiết kế
code ở trên.

6. Họ c viên hã y giả i thích ý nghĩa củ a toá n tử instanceof, hã y ứ ng dụ ng instanceof để


downcasting 1 object Candidate trở thành các object Experience, Fresher hoặc intern
trong cá c yêu cầ u 2, yêu cầ u 3, yêu cầ u 4 bên dướ i ( yêu cầ u nà y họ c viên có thể thự c hiện
trong cá c Day 4,5,6)

II. Yêu cầu 2 (Day 4, Day 5):

1. Họ c viên hã y viết chương trình cho phép nhậ p thô ng tin cho cá c ứ ng viên, cá c
thô ng tin nà y đượ c lưu và o DataBase (Họ c viên tự thiết kế DataBase).

2. Sau khi nhậ p xong cá c ứ ng viên và o DataBase, hã y hiển thị số lượ ng ứ ng viên
vừ a đượ c ngườ i dù ng nhậ p và o (chú ý: hãy sử dụng thuộc tính
Candidate_count mô tả ở trên, lưu ý thuộ c tính nà y khô ng cầ n lưu trữ ở
DataBase).

3. Yêu cầ u chương trình phả i kiểm tra đượ c hợ p lệ củ a cá c thuộ c tính: BirthDay,
Email trướ c khi nhậ p và o DataBase.

Trong đó Birthday là hợ p lệ nếu nằ m trong khoả ng 1900... nă m hiện tạ i.

Yêu cầu bắt buộc: Họ c viên hã y tạ o mớ i 2 User exception là : BirthDayException


và EmailException để throw ra mà n hình trong trườ ng hợ p dữ liệu củ a mộ t trong hai khô ng
hợ p lệ (nộ i dung lỗ i do thi sinh tự quyết định). Ngoà i ra, nếu có bấ t cứ mộ t exception nà o
khá c trong quá trình nhậ p liệu Họ c viên phả i catch đượ c và thô ng bá o nộ i dung lỗ i ra mà n
hình như sau: "The system has encountered an unexpected problem, sincerely sorry !!!”

4. Họ c viên hã y phâ n biệt giố ng và khá c nhau giữ a String và StringBuffer. Hã y ứ ng


dụ ng đặ c tính củ a String và StringBuffer để tổ ng hợ p hợ p cá c FullName củ a tấ t cả
cá c Candidate (ngă n cá ch giữ a cá c tên là mộ t dấ u “,”) và hiển thị ra mà n hình.

xxe-BM/NS/HDCV/FSOFT v1/0 Confidential 6/8


5. Sau khi nhậ p xong cá c ứ ng viên, chương trình cho phép hiển thị danh sá ch ứ ng
viên vớ i đầ y đủ thô ng tin đã có trong dataBase (Họ c viên lưu ý hã y sử dụ ng
phương thứ c showMe đã viết code ở trên).

III. Yêu Cầu 3 (Day 5, Day 6):

1. Họ c viên hã y phâ n biệt cá c đặ c tính củ a List, Set, Map

2. Giả sử sau khi truy vấ n danh sá ch ứ ng viên từ DataBase, có nhữ ng record bị


trù ng CandidateID. Họ c viên hã y loạ i bỏ đi cá c record thứ 2 trở đi mà đã trù ng
CandidateID vớ i record trướ c đó (Họ c viên hã y sử dụ ng kiểu dữ liệu có cấ u trú c
(List, Set, Map) phù hợ p trong topic Collection đã họ c để xử lý yêu cầ u nà y)

3. Họ c viên hã y sử dụ ng hà m sort đượ c định nghĩa trong Collection để sắ p xếp


danh sá ch ứ ng viên tă ng dầ n theo thuộ c tính Candidate_type, nếu Candidate_type
giố ng nhau thì ứ ng viên nà o có nă m sinh lớ n hơn đượ c đứ ng trướ c và hiển thị
danh sá ch sau khi đã sắ p xếp ra mà n hình.

IV. Yêu Cầu 4 (Day 7, Day 8):

1. Họ c viên viết chứ c nă ng update thô ng tin củ a mộ t ứ ng viên, yêu cầ u họ c viên phả i sử
dụ ng thuộ c tính CONCUR_UPDATABLE của ResultSet để update data thô ng qua
resultSet (khô ng đượ c viết câ u lệnh Update bằ ng SQL)

2. Họ c viên viết chứ c nă ng insert mớ i thô ng tin củ a mộ t ứ ng viên, yêu cầ u họ c viên phả i
sử dụ ng thuộ c tính CONCUR_UPDATABLE của ResultSet để update data thô ng qua
resultSet (khô ng đượ c viết câ u lệnh Insert bằ ng SQL)

3. Họ c viên hã y phâ n biệt giố ng và khá c nhau giữ a Statement và PreparedStatement.


Hã y sử dụ ng PreparedStatement thay thế cho toà n bộ Statement cho phầ n code mà
họ c viên đã viết.

4. Họ c viên hã y giả i thích ý nghĩa củ a cơ chế quả n lý củ a Connection Pool. Họ c viên hã y


viết mộ t sample function để quả n lý connection pool cho ứ ng dụ ng nà y. (việc viết
sample function là yêu cầ u nâ ng cao, khô ng bắ t buộ c đố i vớ i họ c viên)

V. Yêu cầu 5 (Day 11): (Học viên hoàn thành trong khó sort course)
1. Họ c viên hã y thự c hà nh thành thạo Debugging vớ i Eclipse, bao gồ m cá c thao tá c
sau:
a. Debugging feature
b. Breakpoint

xxe-BM/NS/HDCV/FSOFT v1/0 Confidential 7/8


c. Debug Step into, Step over Step return
d. Watcher
Sau phầ n thự c hà nh nà y, từ hô m nay trở đi họ c viên mỗ i khi debug code hã y
sử dụ ng cá c thao tá c ở trên, nhớ không được sử dụng lệnh
system.out.println

2. Họ c viên hã y thự c hà nh theo hướ ng dẫ n trong giá o trình, sử dụ ng thư viện log4j
để thự c hiện tính nă ng ghi ra log file cho ứ ng dụ ng ở trên, vớ i yêu cầ u:
- Ghi ra file InfoLog trong cá c lầ n user có connect và query đến DataBase (nô i
dung củ a file log bao gồ m: Ngà y giờ ghi ra file, nộ i dung củ a câ u lệnh truy vấ n
- Ghi ra file ErrorLog khi có xả y ra exception (nộ i dung củ a file log bao gồ m:
Ngà y giờ ghi ra file log, nộ i dung củ a exception)

VI. Yêu cầu7


Họ c viên hã y tuâ n thủ đượ c đầ y đủ coding convention củ a Java đã họ c.

- THE END -

xxe-BM/NS/HDCV/FSOFT v1/0 Confidential 8/8

You might also like