• Vui lòng đọc nội qui diễn đàn để tránh bị xóa bài viết
  • Tìm kiếm trước khi đặt câu hỏi

[Cuộc thi] Kĩ năng lập trình - Kì 9: Dynamic Control

Các đề tài, cuộc thi, chủ đề chung của diễn đàn

Điều hành viên: Điều hành

Hình đại diện của người dùng
vo_minhdat2007
Quản trị
Quản trị
Bài viết: 2227
Ngày tham gia: CN 17/07/2005 1:40 am
Has thanked: 13 time
Been thanked: 87 time
Liên hệ:

[Cuộc thi] Kĩ năng lập trình - Kì 9: Dynamic Control

Gửi bàigửi bởi vo_minhdat2007 » T.Tư 09/02/2011 12:20 pm

Chào các bạn,

Nhằm giúp làm sôi động thêm diễn đàn và góp phần giúp các bạn nâng cao kỹ năng lập trình cũng như ôn tập và biết cách ứng dụng các kiến thức phổ thông cho các thành viên Câu lạc bộ VB, đặc biệt là VB.NET, Support Staff quyết định mở một loạt các chủ đề về lập trình để các thành viên có thể thi đấu với nhau.

Mục đích: Giúp thành viên vận dụng kiến thức phổ thông và lập trình của mình để giải quyết những vấn đề thực tế do đề bài đưa ra, từ đó nâng cao kĩ năng.

Đối tượng:
- Tất cả thành viên diễn đàn, trừ BQT (Admin, SMOD, MOD). Advance Member được quyền tham gia. Tuy nhiên, Admin, SMOD, MOD vẫn có thể gửi đáp án để làm cơ sở nhận xét. Advance Member được tham gia, nhưng nếu có kết quả hòa giữa Advance Member và thành viên thường thì sẽ ưu tiên cho thành viên thường.

Quy định:
- Các bài giải sẽ được gửi cho MOD vo_minhdat2007 bằng chức năng nhắn tin của diễn đàn hoặc email vo_minhdat2007@yahoo.com.vn . Mục đích là để các bạn tự suy nghĩ ra cách giải tốt nhất đối với mình.
- Nếu kì có thêm gợi ý bổ sung sau vài ngày, các bài gửi sau khi bổ sung gợi ý chỉ ghi được tối đa 9/10 điểm.
- Sau vài ngày, MOD sẽ đưa các bài giải của các bạn lên và nhận xét, chấm điểm và xếp hạng. Các bạn sẽ tiếp tục thảo luận nếu có giải pháp hay hơn, hoặc đưa ra các nhận xét. Vài ngày sau thì bắt đầu kì mới.
- Chú ý: Trong phần tính điểm có tính cả điểm xử lí tình huống lỗi, kể cả lỗi dữ liệu đầu vào nếu đề không đề cập!

Đáp án:
Mỗi đề bài đưa ra sẽ bao gồm yêu cầu, kèm theo 1 form mẫu (ở đây dùng VS2010, các bạn dùng bản cũ hơn thì xem cách downgrade ở box Thắc mắc VB.NET & C#) nếu các bạn không muốn thiết kế lại form. Khi gửi đáp án các bạn có 2 cách:
- Gửi cả project qua email hoặc chức năng nhắn tin (đã ghi ở mục trên).
- Chỉ gửi code bằng chức năng nhắn tin của diễn đàn, code được cho vào thẻ code tương ứng, và phải chạy được khi mình copy vào form mẫu đã post.

Giải thưởng:
Sau vài kì, mình sẽ tổng kết một lần, và có một phần quà nhỏ khuyến khích các bạn tham gia. Ngoài ra, các bạn sẽ được thể hiện và học hỏi kĩ năng thông qua cuộc thi, và BQT sẽ chú ý xem xét đưa các bạn giỏi vào các nhóm như Support, Advanced Member.





KÌ 9: DYNAMIC CONTROL


Tình huống:

Nếu chú ý, các bạn sẽ thấy các IDE mới hiện nay đều thiết kế UI (User Interface - giao diện người dùng) bằng XML. Sở dĩ như vậy vì khi cần thay đổi một thứ gì đó, người ta chỉ cần thay đổi một yếu tố trong tập tin XML đó là ổn ngay, không phải rối mắt trong 1 rừng code như trước đây!

Yêu cầu:

Tạo một form kích thước 500x25 và có một nút Nhập như hình sau:


Hình ảnh


Khi nhấn nút Nhập, chương trình hiện một hộp thoại để chọn tập tin có phần mở rộng là KNLT, nội dung theo mô tả dưới đây:

- Tập tin gồm 1 dòng duy nhất, chứa các yếu tố cách nhau bằng dấu ";", các nội dung khác sẽ không có dấu ";".
- Khởi đầu là khai báo gồm 1 trong 3 control: TextView, TextInput, CheckBox, theo sau là các yếu tố tương ứng:
  • TextView: Là một Label, theo sau là 1 yếu tố, là nội dung thể hiện.
  • TextInput: Là một Textbox, theo sau là 2 yếu tố: yếu tố thứ nhất có hai giá trị "true" hoặc "false", nếu "true" thì TextInput này sẽ hỗ trợ nhập nhiều dòng, đồng thời hiển thị thanh cuộn dọc; yếu tố thứ hai có giá trị là "true" hoặc "false", nếu là "true" thì TextInput đó dùng để nhập mật khẩu, phải giống hệt hệ thống. 2 yếu tố này sẽ không đồng thời có giá trị "true".
  • CheckBox: Là một Check box, theo sau là 2 yếu tố: yếu tố thứ nhất là nội dung hiển thị; yếu tố thứ hai có giá trị "true" hoặc "false", tương ứng với giá trị mặc định là đánh dấu sẵn hay không.
- Tập tin vào đảm bảo đúng, không cần kiểm tra.

Sau khi đã chọn tập tin, hãy tạo ra các control theo đúng thứ tự và tính chất qui định trong tập tin, sau đó ẩn button Nhập ban đầu đi. Ngoài ra, các yếu tố sau là mặc định:
- Mỗi control có kích thước về chiều ngang (width) trùng với form (tức 500), kích thước chiều chiều dọc (height) là 25, trừ TextInput nếu hỗ trợ nhiều dòng thì sẽ là 75.
- Mỗi control có toạ độ X là 0, và toạ độ Y sẽ ngay phía dưới control ở trên (giữa 2 control không có khoảng cách), control đầu tiên có vị trí là 0 x 0.

Cuối cùng, chỉnh lại kích thước chiều dọc của form để vừa đủ thể hiện tất cả control đã tạo và đưa form ra giữa màn hình.

VD: Hình minh hoạ dưới đây tương ứng với tập tin vào:


Hình ảnh


  1. TextView;Nhập tên đăng nhập:;TextInput;false;false;TextView;Nhập mật khẩu:;TextInput;false;true;CheckBox;Nhớ mật khẩu;true;CheckBox;Ẩn trạng thái đăng nhập;false


Mời các bạn tham gia :)





Hình đại diện của người dùng
vo_minhdat2007
Quản trị
Quản trị
Bài viết: 2227
Ngày tham gia: CN 17/07/2005 1:40 am
Has thanked: 13 time
Been thanked: 87 time
Liên hệ:

Re: [Cuộc thi] Kĩ năng lập trình - Kì 9: Dynamic Control

Gửi bàigửi bởi vo_minhdat2007 » T.Tư 09/02/2011 7:44 pm

Hình như đề kì này lại dễ quá, vừa đăng đã nhận bài của bạn TheDark rồi :P Lẽ ra phải cho khó hơn, dữ liệu vào phải kiểm tra :)) Thôi lỡ rồi, vừa Tết vào, hi vọng kì này đông :D

Hình đại diện của người dùng
VuVanHoanh
Thành viên danh dự
Thành viên danh dự
Bài viết: 1259
Ngày tham gia: T.Năm 03/06/2010 9:23 pm
Đến từ: Kim Sơn - Đông Triều - Quảng Ninh
Has thanked: 22 time
Been thanked: 137 time
Liên hệ:

Re: [Cuộc thi] Kĩ năng lập trình - Kì 9: Dynamic Control

Gửi bàigửi bởi VuVanHoanh » T.Năm 10/02/2011 8:25 am

Nhưng anh ơi, quy định chỉ có 3 control đấy thôi à???

Hình đại diện của người dùng
vo_minhdat2007
Quản trị
Quản trị
Bài viết: 2227
Ngày tham gia: CN 17/07/2005 1:40 am
Has thanked: 13 time
Been thanked: 87 time
Liên hệ:

Re: [Cuộc thi] Kĩ năng lập trình - Kì 9: Dynamic Control

Gửi bàigửi bởi vo_minhdat2007 » T.Năm 10/02/2011 12:10 pm

Đã nhận bài của bạn Thành Đạt, hình như nick diễn đàn là tdat00 đúng không? Còn bài bạn TheDark nộp sau thì mình đã nhận nhưng chưa test, làm ngoài yêu cầu có lỗi ráng chịu đó nha :))

@Hoành: uhm, 3 cái đó thôi.

Hình đại diện của người dùng
tdat00
Thành viên tích cực
Thành viên tích cực
Bài viết: 137
Ngày tham gia: T.Bảy 29/03/2008 8:18 am
Has thanked: 8 time
Been thanked: 2 time

Re: [Cuộc thi] Kĩ năng lập trình - Kì 9: Dynamic Control

Gửi bàigửi bởi tdat00 » T.Năm 10/02/2011 1:46 pm

ok, mình có comment trong project mà quên ghi chú trong mail. đề dễ quá nên tham gia cho vui :D

Hình đại diện của người dùng
TheDark
Guru
Guru
Bài viết: 188
Ngày tham gia: T.Năm 04/11/2010 3:56 pm
Đến từ: Mang Thít - Vĩnh Long
Has thanked: 6 time
Been thanked: 33 time

Re: [Cuộc thi] Kĩ năng lập trình - Kì 9: Dynamic Control

Gửi bàigửi bởi TheDark » T.Năm 10/02/2011 3:13 pm

Thì bạn cứ chấm 2 bài! Bài nào điểm cao thì lấy bài ấy! :D

Hình đại diện của người dùng
vo_minhdat2007
Quản trị
Quản trị
Bài viết: 2227
Ngày tham gia: CN 17/07/2005 1:40 am
Has thanked: 13 time
Been thanked: 87 time
Liên hệ:

Re: [Cuộc thi] Kĩ năng lập trình - Kì 9: Dynamic Control

Gửi bàigửi bởi vo_minhdat2007 » T.Sáu 11/02/2011 11:31 am

Không, chỉ 1 bài thôi. Lấy bài sau đấy nha, nếu muốn chọn lại bài trước thì phải thông báo ;))

KidA7
Bài viết: 4
Ngày tham gia: CN 17/01/2010 8:58 pm

Re: [Cuộc thi] Kĩ năng lập trình - Kì 9: Dynamic Control

Gửi bàigửi bởi KidA7 » T.Sáu 11/02/2011 5:38 pm

Mình tham gia với nhé, C# được ko bạn?

Hình đại diện của người dùng
vo_minhdat2007
Quản trị
Quản trị
Bài viết: 2227
Ngày tham gia: CN 17/07/2005 1:40 am
Has thanked: 13 time
Been thanked: 87 time
Liên hệ:

Re: [Cuộc thi] Kĩ năng lập trình - Kì 9: Dynamic Control

Gửi bàigửi bởi vo_minhdat2007 » T.Sáu 11/02/2011 6:09 pm

Được luôn, C#, Java, VB.NET được chấp nhận :D

Đã nhận bài của bạn KidA7 ;)

Hình đại diện của người dùng
vo_minhdat2007
Quản trị
Quản trị
Bài viết: 2227
Ngày tham gia: CN 17/07/2005 1:40 am
Has thanked: 13 time
Been thanked: 87 time
Liên hệ:

Re: [Cuộc thi] Kĩ năng lập trình - Kì 9: Dynamic Control

Gửi bàigửi bởi vo_minhdat2007 » CN 13/02/2011 9:05 pm

Kì này quá tải rồi, bài tham gia nhiều quá :D Thứ 7 hoặc CN tuần sau mình sẽ công bố kết quả.

Hình đại diện của người dùng
vo_minhdat2007
Quản trị
Quản trị
Bài viết: 2227
Ngày tham gia: CN 17/07/2005 1:40 am
Has thanked: 13 time
Been thanked: 87 time
Liên hệ:

Re: [Cuộc thi] Kĩ năng lập trình - Kì 9: Dynamic Control

Gửi bàigửi bởi vo_minhdat2007 » T.Bảy 11/06/2011 11:17 am

Xin lỗi các bạn vì thời gian qua mình bận quá nhiều việc nên không thể tiếp tục được cuộc thi này. Lần này mình chỉ xin đăng tải đáp án do mình làm trước khi công bố đề này.

Còn về cuộc thi, mình rất mong có bạn nhiệt tình nào đó tiếp nối, vì đây là một sân chơi nhỏ nhưng rất có ích cho cộng đồng CLB VB chúng ta.

Một lần nữa chân thành xin lỗi và cám ơn các bạn đã ủng hộ!
Tập tin đính kèm
KNLT9.rar
(54.6 KiB) Đã tải 527 lần


Quay về “Đề tài chung”

Đang trực tuyến

Đang xem chuyên mục này: Không có thành viên nào trực tuyến.1 khách