bÀi tẬp rÈn luyỆn kỸ nĂng lẬp trÌnh .net v10.12.07

7
BÀI TẬP RÈN LUYỆN KỸ NĂNG LẬP TRÌNH .NET (Quarter 7 Software) version: 10.12.07 I. Giới thiệu Phần bài tập sẽ được được cập nhật thường xuyên với nhiều phần khác nhau với nhiều cấp độ khác nhau giúp sinh viên rèn luyện kỹ năng lập trình. Các bài tập không có (*), (**) là phần bài tập bắt buộc thực hiện. Các bài (**) là bài tập khó, khi hoàn tất phần này sinh viên cần hiểu rõ về chương trình của mình thay vì copy code rồi nộp. Đánh giá : Tiêu chí : đúng, code đẹp, giao diện trình bày phù hợp. Tất cả các bài tập bắt buộc sẽ được tính vào điểm project 1 với tỉ lệ điểm là 50%, đây không phải là điểm cộng thêm. Các bài (*) sẽ được tính điểm cộng 1% vào điểm cuối cùng. Các bài (*) sẽ được tính điểm cộng 5% vào điểm cuối cùng. Thời hạn: Các bài tập có thể nộp được dần dần, hạn cuối là ngày báo cáo project 1. Ràng buộc: Khuyến khích trao đổi làm việc nhóm tuy nhiên kết quả code không được giống nhau (copy 100%). Tất cả các bài tập đều được yêu cầu làm bằng hai ngôn ngữ VB.NET và C#. Sinh viên có lựa chọn giữa ứng dụng console hoặc winform đối với các bài không yêu cầu giao diện. Nếu sinh viên không nộp bài tập (hoàn tất 80% bài tập) vào trước buổi báo cáo project, phần báo cáo xem như không được tính. II. Phần cơ bản 1 . 1. Viết chương trình dạng console nhận vào điểm toán, lý, hoá từ bàn phím sau đó xuất ra xếp loại.

Upload: vbook

Post on 08-Jun-2015

2.069 views

Category:

Documents


5 download

TRANSCRIPT

BÀI TẬP RÈN LUYỆN KỸ NĂNG LẬP TRÌNH .NET

(Quarter 7 Software)

version: 10.12.07I. Giới thiệu

Phần bài tập sẽ được được cập nhật thường xuyên với nhiều phần khác nhau với nhiều cấp độ khác nhau giúp sinh viên rèn luyện kỹ năng lập trình. Các bài tập không có (*), (**) là phần bài tập bắt buộc thực hiện. Các bài (**) là bài tập khó, khi hoàn tất phần này sinh viên cần hiểu rõ về chương trình của mình thay vì copy code rồi nộp.

Đánh giá : Tiêu chí : đúng, code đẹp, giao diện trình bày phù hợp. Tất cả các bài tập bắt buộc sẽ được tính vào điểm project 1 với tỉ lệ

điểm là 50%, đây không phải là điểm cộng thêm. Các bài (*) sẽ được tính điểm cộng 1% vào điểm cuối cùng. Các bài (*) sẽ được tính điểm cộng 5% vào điểm cuối cùng.

Thời hạn: Các bài tập có thể nộp được dần dần, hạn cuối là ngày báo cáo

project 1.Ràng buộc:

Khuyến khích trao đổi làm việc nhóm tuy nhiên kết quả code không được giống nhau (copy 100%).

Tất cả các bài tập đều được yêu cầu làm bằng hai ngôn ngữ VB.NET và C#. Sinh viên có lựa chọn giữa ứng dụng console hoặc winform đối với các bài không yêu cầu giao diện.

Nếu sinh viên không nộp bài tập (hoàn tất 80% bài tập) vào trước buổi báo cáo project, phần báo cáo xem như không được tính.

II. Phần cơ bản1. 1. Viết chương trình dạng console nhận vào điểm toán, lý, hoá từ bàn phím

sau đó xuất ra xếp loại. Xếp loại được tính như sau:

DTB (điểm trung bình) >=9 : xuất sắc. 8<=DTB<9 : giỏi 7.5<=DTB<8 : khá 6.5<=DTB<7.5 : trung bình Các trường hợp còn lại xuất ra “không biết”

Điểm trung bình là trung bình cộng các điểm số trong đó toàn có hệ số 3, lý hệ số 2 và hoá có hệ số 1. Vd: toán=10, lý=8, hoá = 7 -> DTB=(10*3+8*2+7)/6=8.83 -> giỏi

2. Viết chương trình nhận vào 3 số sau đó xuất ra số lớn nhất, bé nhất.3. Cho một mãng chứa các phần tử số nguyên (số lượng phần tử không

biết trước), hãy tìm số lớn nhất và bé nhất.

4. (*) 2 Cho một mãng chứa các phần tử số nguyên (số lượng phần tử không biết trước), hãy tìm vị trí số lớn nhất và bé nhất (nếu có nhiều bằng nhau thì xuất ra tất cả các vị trí xuất hiện)

5. Từ 0-100 hãy tìm các số nguyên chẵn chia hết cho 5. 6. Tìm 100 số nguyên đầu tiên (tính từ 0) chẵn chia hết cho 5. 7. Tìm 100 số nguyên tố đầu tiên. 8. Xác định năm người sử dụng nhập vào có phải năm nhuận không.9. Xác định số người sử dụng nhập vào có phải là số nguyên tố không. 10. Cho một mảng các số nguyên dương, xác định xem trong đó có bao

nhiêu số nguyên tố và xuất hiện ở vị trí thứ mấy. 11. Viết chương trình chuyển đổi số 1 chữ số sang dạng chữ

Vd: 0 -> không, 1 -> một 12. Viết chương trình chuyển đối số nhiều chữ số sang dạng chữ

Vd: 123 -> một hai ba 13. (**)3 Viết chương trình chuyển đối số nhiều chữ số sang dạng chữ

Vd: 123 -> một trăm hai mươi ba.14. Viết chương trình tính n! với n nhỏ. n!=1*2*3*….*(n-1)*n15. (**) Viết chương trình tính n! với n tương đối lớn (n>=1000).16. (**) Viết chương trình nh n hai số vô cùng lớn.17. (**) Viết chương trình cộng hai số vô cùng lớn. 18. Viết chương trình giải phương trình bật hai dạng ax2+bx+c=0 19. Mã số sinh viên (MSSV) của một SV có dạng như sau: 50602645, trong

đó 5: ký hiệu khoa (5: CNTT, 4: Điện điện tử, 2: Cơ kh , 8: xây dựng, G:

giao thông…) 06: năm sinh viên vào trường (00-50: 20xx, 51-99: 19xx) 02645: số thứ tự của SV trong trường)

Viết chương trình nhận vào mã số sinh viên sau đó xuất ra khoa dạng chữ, năm sinh dạng chữ (xem bài 8), và số thứ tự.Vd: 50602645 -> khoa: CNTT, năm: hai không không sáu, STT: 02645

20. Tìm số lần xuất hiện của một ký tự trong một chuổi Vd: chao cac ban, tìm a -> 3

21. Tìm số lần xuất hiện của một chuổi trong một chuổi Vd: aaaaaa, tìm aa -> 3; chao cac ban, tìm cac -> 1

22. Tìm số lần xuất hiện của một chuổi trong một chuổi Vd: aaaaaa, tìm aa -> 5; chao cac ban, tìm cac -> 1

23. In ra bảng cửu chương từ 0 đến 10 theo chiều ngang 24. In ra bảng cửu chương từ 0 đến 10 theo chiều dọc 25. Viết chương trình nhận vào một số n và in ra số Fibonacci thứ n (tính từ

0): 0 , 1 , 1 , 2 , 3 , 5 , 8 , 13 , 21 , 34 , 55 , 89

Vd: 3->2

26. Viết chương trình in ra dãy số Fibonacci với số lượng số cho trước Vd: 3-> 0, 1, 1

27. Cải tiến giải thuật Fibonacci bằng giải thuật không đệ quy.

III. Phần lập trình giao diện (WinForm)4

1. Thiết kế form đăng nhập có hình dạng như sau :

Trong đó:- Form không có border (giống hình) - Đăng nhập sai quá 3 lần sẽ thoát chương trình- Dùng ErrorProvider để hiển thị lỗi. - Nút Login sẽ kiểm tra thông tin có phù hợp không

(uid=niitquangtrung, pwd=b080015)- Đăng nhập thành công sẽ hiện thông báo chào mừng.

2. (*) Tạo form có dạng như sau

- Hai nút Browse sẽ hiện các ổ đĩa và cho người dùng chọn file (dùng OpenFileDialog cho nút số 1 và FolderBrowserDialog cho nút số 2)

- Hai khung hai bên là list, cần xử lý tốt 5 nút chức năng (>>, >, <, <<, Clear all) trong đó >>: đưa hết nội dung bên list 1 sang list 2, xoá nội dung list 1 >: đưa những nội dung được chọn bên list 1 sang list 2 (không đưa nội

dung trùng lập vào list 2). <<: xoá hết nội dung bên list 2 và chỉ chuyển về list 1 những nội dung

thuộc về thư mục đang chọn. < : xoá nội dung được chọn bên list 2 và chỉ chuyển về list 1 những nội

dung thuộc về thư mục đang chọn Clear all: xoá hết hai list - Sử dụng tooltip để chú thích các control. 3. Thêm vào context menu cho form ở bài 2. 4. Tạo form hiển thị giờ hiện tại của máy tính cập nhật mỗi 1 giây (sử dụng

Timer). 5. Thiết kế một trình duyệt web cơ bản với Address bar sử dụng

Autocomplete với những nội dung cho trước

6. (*) Thiết kế chương trình nghe nhạc Mini sử dụng control Window Media Player, hổ trợ playlist, thêm vào, loại bỏ, sắp xếp danh mục bài hát.

7. Thiết kế form sao cho khi người sử dụng ấn phím Esc chương trình sẽ bị tắt.

8. Thiết kế chương trình cho phép minimize về System tray. 9. (*) Viết phương thức mô phỏng nút Reset bên form HTML (tự động xoá

hết nội dung tất cả các control là Textbox có trong Form). 10. (*) Tạo form có hình dạng bàn cờ tướng không dùng chế độ design. 11.Hiện thực tính năng Help cho chương trình sử dụng HelpProvider. 12.Tạo chương trình sao cho khi khích hoạt sẽ kiểm tra xem có instance nào

đang chạy không, nếu có thông báo lỗi. 13.Hiện thực chương trình demo sử dụng TreeView và ListView. 14.Nghiên cứu sử dụng các control của hãng thứ 3 như Janus, Infragistic,

DevExpress, là m chương trình demo.15.Thiết kế form đăng ký thành viên với yêu cầu sau: Tên thành viên phải từ 3 ký tự trở lên, tên chỉ bao gồm số và ký tự

alphabet. Password phải có ít nhất 1 ký tự viết hoa, 1 ký tự viết thường, 1 ký tự số

và 1 ký tự đặc biệt. độ dài tối thiểu là 8. Kiểm tra sự hợp lệ của địa chỉ email. Số điện thoại có dạng (0xxx) x xxx xxx hoặc (0xx) x xxx xxx trong đó x

đại diện cho 1 số