Professional Documents
Culture Documents
TH - LAP TRINH WIN 2013 - Chinhsua - 22 - 03 PDF
TH - LAP TRINH WIN 2013 - Chinhsua - 22 - 03 PDF
THỰC HÀNH
Năm 2012
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
MỤC LỤC
2
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
CHƯƠNG1
CÁC CONTROL CƠ BẢN
lblHienThi
radHoneydew
radRed
radBlue
radGreen
radMarron
radPink radSnow
btnClose
radGold
Label(không
đặt tên)
3
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
txtName
btnDispla
y
txtMessa chkVisible
ge
radRed
btnClear
radGreen
btnExit
picBig
lblMessag picSmall
e
b. Yêu cầu thực hiện: Viết lệnh để chương trình hoạt động như sau:
Khi form vừa load lên thì:
con nháy hiện tại vị trí ô Name
Hình CDRom lớn hiện ngược lại hình nhỏ ẩn.
4
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
5
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 3. (thực hành): thiết kế form dịnh dạng màu và font chữ như hình
Sử dụng các properties và methods của các đối tượng trong Windows Form.
txtNhapten
chkBold
radGreen
lblLapTrinh
btnThoat
Yêu cầu
khi Formload.
a. Radiobutton Red chon mặc định (gợi ý viết trong sự kiện form_Load).
b. Con trỏ hiện Focus ngay tại ô Nhập tên.
Khi gõ tên vào ô Nhập tên (gõ ký tự nào thì ô lập trình bởi chạy song
song cùng giá trị trong ô nhập tên)
Hướng dẫn viết trong sự kiện txtNhapTen_TextChanged(..)
private void txtNhapTen_TextChanged(object sender, EventArgs e)
{ lblLapTrinh.Text = txtNhapTen.Text ; }
Nhấn nút thoát hoặc Esc thì thoát chương trình.
Nhấn Radiobutton Red, Green.. thì đổi màu chữ trong ô Lập trình bởi
và ô nhập tên có màu tương ứng với Radiobutton phù hợp.
private void raddo_CheckedChanged(object sender, EventArgs e)
{
lblLapTrinh.ForeColor = Color.Red;
txtNhapTen.ForeColor = Color.Red; }
6
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Nhấn các CheckBox chữ đậm, nghiêng… thì đổi font chữ trong ô Lập
trình bởi và ô nhập tên tương ứng.
private void chkdam_CheckedChanged(object sender, EventArgs e)
{
lblLapTrinh.Font = new Font(lblLapTrinh.Font.Name,
lblLapTrinh.Font.Size, lblLapTrinh.Font.Style ^ FontStyle.Bold);
//??? Tương tự **** . }
7
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
CHƯƠNG 2
BIẾN, BIẾN CỤC BỘ, BIẾN TOÀN CỤC
Mục đích:
Sử dụng biến cục bộ và biến toàn cục trong ứng dụng cho việc xử lý trên giao
diện window form
Tuần 1. Biến cục bộ
Bài 4. Thực hiện phép tính cộng trừ nhân chia cơ bản (lý thiết)
a. Mục đích : làm quen với biến cục bộ xử lý kết quả trong từng sự kiện
Kéo vào
form
Hình 1 Hình 2
8
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Hình 3
9
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Hiệu
Chỉn
h
Hình 4
10
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
11
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
if (dlgHoiThoat == DialogResult.Yes )
this.Close();
Thực hiện Button Bàn mới như sau xóa các textbox về số lượng, đơn giá
và label thành tiền
Viết sự kiện KeyPress trong textbox ngăn không cho người dùng nhập ký
tự mà chỉ nhập ký tự số
c. Hướng dẫn thực hiện:
private void txtsl_KeyPress(object sender, KeyPressEventArgs e)
{
//char.IsDigit(e.KeyChar) kiểm tra có phải số không
//char.IsControl(e.KeyChar) kiểm tra phíp ConTrol như Backspace,
Shifh..
if (char.IsDigit(e.KeyChar) == false && char.IsControl(e.KeyChar) ==
false)
e.Handled = true;// ép không nhận ký tự gõ vào
}
Thực hiện button Tính tiền như sau:
int intSL;
decimal decDGia;
12
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
decimal decThanhTien;
// intSL = txtsl.Text;
intSL=Convert.ToInt32 ( txtsl.Text) ;
decDGia = Convert.ToDecimal (txtDG.Text );
decThanhTien = intSL * decDGia; lblthanhtien.Text =
decThanhTien.ToString();
13
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Thực hành bài 9 và bài 10 . Bài 11 đến 22 bài tập về nhà làm
Họ và tên học sinh:
Ngày:
Thời gian thực hiện: 2.25h
Điểm: Lời phê của giáo viên
1. Kỹ thuật (6đ) :
2. Thao tác (1đ) :
3. An toàn (1đ):
4. Tổ chức nơi làm việc (1đ):
5. Thời gian (1đ):
14
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
15
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
}
Viết sự kiện Click của nút Thoát
Bài 8. (thực hành) Tính tiền lợi nhuận và huê hồng khi biết giá bán , giá gốc
a. Mục đích:
Sử dụng các properties và methods của các đối tượng trong Windows Form kết
biến.
Thiết kế giao diện xem hình
b. Yêu cầu:
Hoa hồng luôn luôn 0.15%
Nhấn nút Calculator tính tiền
theo nguyên tắc
Commission=(Sell-Cost) *
Luật Hoa Hồng
Proft= Sell-Cost-
Commission
c. Hướng dẫn code
private void btnTinh_Click(object sender, EventArgs e)
{
try
{
decimal decsell, deccost, dechh, decproft;
decsell = Convert.ToInt32(txtsell.Text);
deccost = Convert.ToInt32(txtcost.Text);
dechh = (decsell - deccost) * mdecCOMMISSION_RATE;
decproft = decsell - deccost - dechh;
//định dạng Currency
lblhh.Text = string.Format("{0:C}", dechh);
lbltl.Text = string.Format("{0:C}", decproft);
}
catch
{ MessageBox.Show("Bạn chưa nhập đủ thông tin", "Tông báo");
}
16
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
}
Nhấn nút clear thì xóa hết như trạng thái ban đầu
private void btnClear_Click(object sender, EventArgs e)
{ txtname.Clear(); txtsell.Clear(); txtcost.Clear(); lblhh.Text = "";
lbltl.Text = "";
txtname.Focus(); }
Nhấn phím Enter tương đương nhấn nút Calculator, phím Esc thì thóat
chương trình.
Bài 9. (Thực hành) Viết chương trình bán hàng cho người dùng nhập vào số
lượng, đơn giá ( bắt buộc người dùng nhập số không cho nhập ký tự ) .Khi nhấn nút
tính thì hiển thị thành tiền,tổng số lượng bán, tổng tiền bán hàng cho các lần bán,
trung bình số lần bán ( tổng tiền/số lần bán)
a. Mục đích
Sử dụng các properties và methods cơ bản của các đối tượng trong Windows Form,
sử dụng biến toàn cục và cục bộ.
17
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
b. Yêu cầu:
Sinh viên tự thiết kế các đối tượng trên form cho phù hợp
Thiết đặt TabIndex cho hợp lý.
Nhấn nút Tính hoặc Enter thì tính và hiện thông tin lên các ô tương ứng
(sinh có thể tham khảo demo trên blog http://thangdhcn.wordpress.com mục đề
moCSharp cơ bản)
Nhấn vào Exit hoặc Esc thì thoát chương trình.
Ghi chú: sử dụng biến toàn cục và hằng số cho hợp lý, tham khảo hình cho
việc nhập liên tục số lượng 5, 8
18
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
19
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
c. Hướng dẫn :
//Khai báo biến toàn cục
int mintSLB = 0, mintSumSL = 0;
decimal mdecTotalDiscountGiven = 0, mdecTotaldiscountedAmount = 0;
const decimal mdecLUATGIAM = 0.15M;
private void btnCalculate_Click(object sender, EventArgs e)
{
//Khai báo biến cục bộ
decimal decExtendedPrice, decPrice, decDiscount, decDiscountPrice,
decAverageDiscount;
int decQuantity;
try
{
decQuantity = Convert.ToInt32(txtQuantiTy.Text);
decPrice = Convert.ToInt32(txtPrice.Text);
decExtendedPrice = decQuantity * decPrice;
decDiscount = decExtendedPrice * mdecLUATGIAM;
decDiscountPrice = decExtendedPrice - decDiscount;
mintSumSL += decQuantity;
mdecTotalDiscountGiven += decDiscount ;
mdecTotaldiscountedAmount += decDiscountPrice ;
mintSLB += 1;
decAverageDiscount = mdecTotalDiscountGiven / mintSLB;
//Định dạng VND
lblExtendedPrice.Text = String.Format("{0}VND",
decExtendedPrice);
lblDiscount.Text = String.Format("{0}VND", decDiscount);
lblDidcountedPrice.Text = String.Format("{0}VND",
decDiscountPrice);
20
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
lblTotalDiscountGiven.Text = String.Format("{0}VND",
mdecTotalDiscountGiven);
lblTotalDiscountedAmonut.Text = String.Format("{0}VND",
mdecTotaldiscountedAmount);
lblAverageDiscount.Text = String.Format("{0}VND",
decAverageDiscount);
}
catch(Exception MyE)
{
MessageBox.Show(MyE.Message + "NHap sai thong tin");//bắt lỗi khi
nhập sai thông tin
} }
Nhấn nút Clear Sale thì xóa hết như trạng thái ban đầu:
private void btnClearSale_Click(object sender, EventArgs e)
{
txtQuantiTy.Clear();
txtTitle.Clear();
txtPrice.Clear();
lblAverageDiscount.Text = "";
lblDidcountedPrice.Text = "";
lblDiscount.Text = "";
lblExtendedPrice.Text = "";
lblTotalDiscountedAmonut.Text = "";
lblTotalDiscountGiven.Text = "";
lblTotalNumberOfBook.Text = "";
txtQuantiTy.Focus();
}
Nhấn vào Exit hoặc Esc thì thoát chương trình
21
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 12. Viết chương trình nhập vào 2 số nguyên a, b. Sau đó, nhấp chuột trái
vào nút “Tong” thì giá trị tổng được đặt ở TextBox kết quả.
Bài 13. Phát triển bài 2.8 bổ sung thêm phép tính hiệu, tích, thương. Sau khi
nhấp chuột vào nút tương ứng thì kết quả được hiển thị ở TextBox kết quả.
22
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 14. Viết chương trình nhập vào 2 cạnh a, b của hình chữ nhật. Hãy tính
chu vi, diện tích và đường chéo của hình chữ nhật. Kết quả hiển thị tại ô TextBox
kết quả.
Bài 15. Viết chương trình nhập vào 2 cạnh a, b của hình chữ nhật. Hãy tính
chu vi, diện tích và đường chéo của hình chữ nhật. Khi nhấp chuột trái vào các nút
tương ứng sẽ hiển thị kết quả dưới dạng thông điệp (MessageBox).
Bài 16. Tương tự như bài 2.10 nhưng đối với hình vuông. Kết quả hiển thị ở ô
TextBox kết quả.
Bài 17. Tương tự như bài 2.11 nhưng đối với hình vuông. Kết quả hiện thị
dưới dạng thông điệp MessageBox.
23
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
CHƯƠNG 3
HÀM, MENU,
CÁC HÔP THOẠI DIALOG THÔNG THƯỜNG
Bài 18. Thực hiện viết hàm tính cộng, trừ, nhân, chia
a. Mục đích:
Sử dụng các properties và methods cơ bản của các đối tượng trong Windows Form.
24
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
b. Yêu cầu:
Thực hiện lại tính Cộng, Trừ, Nhân, Chia như bài 7 nhưng thực hiện bằng cách viết
lại các hàm Cộng, trừ, Nhân, Chia không làm trực tiếp trong các sự kiện Click của các
button tương ứng
c. Hướng dẫn thực hiện:
//Hàm tính tổng //gọi lại hàm tính tổng trong button
void HamTong() Cong
{ private void btnCong_Click(object
int intA, intB, intTong; sender, EventArgs e)
intA = Convert.ToInt32(txtSoA.Text); {
intB = Convert.ToInt32(txtSoB.Text); HamTong();
intTong = intA + intB; }
lblKQ.Text = intTong.ToString(); Tương tự hàm Trừ, Nhân , Chia
cũng viết như button Cộng.
}
Bài 19. (LT) Nhập nhập giá trị A và B , viết hàm chuyển đổi giá trị như công
thức sau. Xuất giá trị A, B, C trước và sau khi dùng hàm
A=A+ 10; B=B+10; C= 10
a. Mục đích : Hiểu rõ về
tham biến và tham trị
b. Yêu cầu :
Thiết kế form như hình vẽ
Viết hàm tình như hướng dẫn
Viết sự kiện Click trong
button Tính hiển thị giá trị A,B,C
trước và sau khi dùng hàm tính
25
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
void Tinh(int intA, ref int intB, out double private void btnTinh_Click(object sender,
dblC) EventArgs e)
{ {
// out phải gán giá trị trước khi thao tác int intA, intB;
intA += 10; double dblC=0;
intB += 10; intA = Convert.ToInt16( txtSoA.Text);
//dblC += 10; intB = Convert.ToInt32( txtSoB.Text);
dblC = 0; lblATruoc.Text = intA.ToString();
dblC += 10; lblBTruoc.Text = intB.ToString();
dblC = Math.Sqrt(dblC); lblSoCTruoc.Text = dblC.ToString();
}
Tinh(intA, ref intB, out dblC);
lblASau.Text = intA.ToString();
lblBSau.Text = intB.ToString();
lblSoCSau.Text = dblC.ToString();
}
Bài 20. (LT)Tạo menu và thực hiện phép tính cộng, trừ, nhân, chia. Định
dạng màu và font chữ cho label kết quả
Toolstrip
ContextMenuStrip
dlgColor.Color = lblKQ.ForeColor;
dlgColor.ShowDialog();
lblKQ.ForeColor = dlgColor.Color;
}
26
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
27
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
CHƯƠNG 4
CẤU TRÚC ĐIỀU KHIỂN
(IF,SWITCH, CẤU TRÚC LẶP)
Bài 21. Nhập vào 3 số a,b,c. Viết hai hàm tìm giá trị nhỏ nhất và lớn nhất và
hiển thị ra màn hình như hình dưới đây
a. Mục đích : sử dụng hàm và cấu trúc
điều khiển if để thực hiện
b. Yêu cầu:
Thiết kế form như hình
Viết hàm tìm giá trị lớn nhất
Viết hàm tìm giá trị nhỏ nhất
Thực hiện sự kiện click của
button Tìm min,max
Hiển thị kết quả vào trong label
Max, Min
28
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
//Tìm giá trị lớn nhất //Tìm giá trị lớn nhất
private int max(int a, int b, int c) private int min(int a, int b, int c)
{ {
int max; int min;
if (a > b) max = a; min = a;
else max = b; if (min > b) min = b;
if (max < c) max = c; if (min > c) min = c;
return max; return min;
} }
29
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 22. Nhập vào số tháng, xuất ra màn hình số tháng tương ứng bằng chữ và
quý tương ứng trong năm như hình vẽ.
a. Mục đích : sử dụng hàm và cấu trúc điều khiển (switch .. case..) để thực hiện
b. Yêu cầu:
Thiết kế form như hình
Viết hàm chuyển sang tháng
Viết hàm chuyển sang quý
Viết sự kiện Click Thực Hiện
Hiển thị vào label Tháng tướng ứng và quý tương ứng
c. Hướng dẫn code
30
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
31
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 23. (thực hành) Chương trình tính tiền thuê đĩa CD. Khi người dùng nhập
vào số lượng và đơn giá tính tiền thuê đĩa và thống kê tiền bán được
a. Mục đích: Sử dụng các properties và methods của các đối tượng trong
Windows Form. Sử dụng câu lệnh rẽ nhánh if và menu.
b. Yêu cầu:
Thiết kết form như sau.(hình 1)
Yêu cầu chung phải cài bẫy lỗi try/catch, if else và viết theo hàm cho các
trường hợp.
Khi chương trình vừa load lên nút thống kê mờ đi mất hiệu lực nó chỉ có
hiệu lực khi nhấn nút Tính Thuê.
Hệ thống menu của menustrip1 bao gồm xem hình
32
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Nhấn nút tính thuê yêu cầu xuất tông tin ra ô thành tiền theo nguyên tắc
sau: (hình 2)
Ô mã và tên khách mờ đi mất hiệu lực nó chỉ có hiệu lực khi nhấn khách mới.
Khuyến kích thuê nhiều cứ 5 đĩa giảm giá 1 đĩa (Tặng 1 đĩa không tính tiền) ví dụ:
Thuê 6 tính tiền 5. Thuê 10 tính tiền 8
Nhấn vào hệ thống menuStrip
Chức năng không viết lại code mà gọi lại các sự kiện trên form.
Tùy chọn thay đỗi màu nền và font chữ cho các ô trong thống kê
Trợ giúp/About hiện qua hộp thoại messagebox thông tin programmer
Nhấn phải vào các ô thống kê hiện contextMenuStrip1 và thực hiện theo
lệnh trong menu
Nhấn nút khách mới thiết lập cho nhập thông tin khách hàng mới.
c. Hướng dẫn code
Gợi ý hàm tính tiền
private decimal tinhtien(int intsluong, decimal decdongia, Boolean
blndunghan)
{
Decimal decthanhtien;
int inttang,intconlai;
inttang = (int)intsluong / 5;
intconlai = intsluong - inttang;
decthanhtien = intconlai * decdongia;
if (blndunghan==true)
decthanhtien = decthanhtien - decthanhtien * mdecGIAM;
return decthanhtien;
}
Khuyến kích nếu người trả đúng hẹn (đúng hẹn dựa vào Check trả đúng hẹn)
giảm thêm theo luật 3%
Gợi ý:
private void btntinh_Click(object sender, EventArgs e)
{
try
{
33
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
btnthongke.Enabled=true;
int intsluong;
decimal decdongia;
Boolean blndunghan;
if (txtmaKH.Text == "")
{
MessageBox.Show("Bạn chưa nhập dữ liệu mã", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error,
MessageBoxDefaultButton.Button1);
txtmaKH.Focus() ;
}
else if (txtsoluong.Text == "")
{
MessageBox.Show("Bạn chưa nhập dữ liệu SL", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error,
MessageBoxDefaultButton.Button1);
txtsoluong.Focus();
}
else if (txtdongia.Text == "")
{
MessageBox.Show("Bạn chưa nhập dữ liệu ĐG", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error,
MessageBoxDefaultButton.Button1);
txtdongia.Focus();
}
else
{
intsluong = Convert.ToInt32(txtsoluong.Text);
decdongia = Convert.ToDecimal(txtdongia.Text);
blndunghan = Convert.ToBoolean(chkdunghan.Checked);
lblthanhtien.Text = tinhtien(intsluong, decdongia,
blndunghan).ToString();
txtmaKH.Enabled = false;
34
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
txthoten.Enabled = false;
35
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Hinh 2
Hinh 1
Hinh 3
36
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Thực hành bài 29 , 30, 33 . Bài 31, 32, 34,35 sinh viên về nhà làm
Họ và tên học sinh:
Ngày:
Thời gian thực hiện: 2.25h
Điểm: Lời phê của giáo viên
1. Kỹ thuật (6đ) :
2. Thao tác (1đ) :
3. An toàn (1đ):
4. Tổ chức nơi làm
việc (1đ):
5. Thời gian (1đ):
Bài 24. (TH)Nhập vào giá trị n và xuất ra dãy giá trị và tổng tương ứng của
dãy đó.
a. Mục đích: Sử dụng các properties và methods của các đối tượng trong
Windows Form. Sử dụng câu lệnh rẽ nhánh if và vòng lặp.
b. Yêu cầu:
Thiết kế như hình
Tính tổng và xuất ra dãy số (dùng vòng lặp for)
Tính tổng và xuất ra dãy số (dùng vòng lặp while )
Tính tổng và xuất ra dãy số (dùng vòng lặp do..while)
private void btnTong1_Click(object sender, EventArgs e)
37
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
{
int n=Convert.ToInt32 ( txtN.Text);
int i=1;
string strList="";
long lngTong=0;
38
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
int i = 1;
string strList = "";
long lngTong = 0;
do
{
lngTong += i;
strList += i.ToString() + "+ ";
i++;
Bài 25. (TH) Nhập giá trị n, Xuất ra danh sách vào trong listbox , hiển thị ước
số và dãy Fibonaci vào trong danh sách listbox kết quả
a. Mục đích: Sử dụng các properties và methods của các đối tượng trong
Windows Form. Sử dụng câu lệnh rẽ nhánh if và vòng lặp.
b. Yêu cầu:
Thiết kế như hình
Tạo ProListLapHam.
Thiất kế tạo các Taborder sao cho hợp lý.
Nhấn nút tạo danh sách tạo ra các số dạng ngẫu nhiện rồi Add vào
ListDayso (xem hình)
39
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
40
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
+ Viết Hàm
void TaoDayUocSo(ListBox lst,
int gtri)
{
int i = 1;
lst.Items.Clear();
while (i <= gt)
{
if (gtri % i == 0)
lst.Items.Add(i);
i++;
}
// ?? trong hàm có một chõ sai các bạn tự sửa
}
+ Gọi Hàm.
private void btnUocSo_Click(object sender, EventArgs e)
{
try
{
if (txtn.Text == "")
MessageBox.Show("Bạn chưa nhập n", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error,
MessageBoxDefaultButton.Button1);
else
{
41
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
TaoDayUocSo(lsttKetQua,
(int)lstDaySo.Items[lstDaySo.SelectedIndex]);
int SoLuongItem;
SoLuongItem = lsttKetQua.Items.Count;
grp.Text = "Số " +
lstDaySo.Items[lstDaySo.SelectedIndex].ToString() + " có " +
SoLuongItem.ToString() + " ước số";
}
}
catch
{
MessageBox.Show("Bạn chưa chọn list", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error,
MessageBoxDefaultButton.Button1);
}
}
Chọn một phẩn tử (Item) nào đó trong ListBox nhấn nút Fibonaci thì
hiện dãy số Fibonaci sao cho các số Fibonaci = Item đang chọn vào ListBox kết
quả Xem hình
42
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Chọn Item trong danh sách nấn nút xóa hiện thông báo xác nhận lại
Item đang chọn có hai nút Yes/ No nếu nhấn Yes thì xóa và ngược lại cho nút No
xem hình
Nhấn nút Clear All xóa tất cả các item về trạng thái ban đầu khi
formload.
Nhấn thóat hiện thông báo xác định lại có thoát hay không. Hướng dẫ
vào sự kiện của FormClosing gõ
private void frmListBox_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult dlgHoiXoa;
dlgHoiXoa = MessageBox.Show(this, "Bạn Có Chắc thoát? ",
"Thông Báo",MessageBoxButtons.YesNo , MessageBoxIcon.Question,
MessageBoxDefaultButton.Button1 );
if (dlgHoiXoa == DialogResult.No )
43
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
e.Cancel =true; }
Hãy tạo thêm các cách thực hiện bằn phím khi nhấn Alt + ký thự gạch
chân.
44
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
45
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
46
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
PTVo nghiệm
Nếu đúng các hệ số thì giải và đưa kết quả tương ứng ra Xem hình
Nếu không đúng (thiếu hệ số A=0) hiện thông tin group cho phương trình
bậc 1 và phải gán giá trị đã nhập cho các hệ trong phương trình bậc nhất hợp lý. Xem
hình
47
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
}
string GiaiBac2(int A, int B, int C)
{
string strKQua="";
double dblDenTa ,dblx1, dblx2;
dblDenTa = Math.Pow((double)B, 2) - 4 * A * C;
if (dblDenTa > 0)
{
dblx1 = ((double)(-B) + Math.Sqrt(dblDenTa )) / (2 * (double)A);
dblx2 = ((double)(-B) - Math.Sqrt(dblDenTa )) / (2 * (double)A);
strKQua = "PT có 2 nghiệm phân biệt:\n"
+ "x1 = " + dblx1.ToString() + "\n"
+ "x2 = " + dblx2.ToString();
}
else if (dblDenTa == 0)
{
dblx1 = (double)(-B) / (2 * (double)A);
strKQua = "PT có nghiệm kép:\n" + "x1 = x2 = " + dblx1.ToString();
}
else// hieu denta<0
{
strKQua = "PT vô nghiệm";
}
return strKQua;
}
string GiaiBac1(int A, int B)
{
// Ax+B=0
string strKQua = "";
if (A == 0)
if (B == 0)//0x+0=0
strKQua = "Phuong trinh co vo so nghiem";
else //0x+B=0
48
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
49
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
}
else
MessageBox.Show("Bạn nhập thiếu thông tin", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error,
MessageBoxDefaultButton.Button1);
}
}
catch (FormatException a)
{
MessageBox.Show(a.Message);
}
}
50
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 27. (TH) Viết chương trình cho trò chơi số 7 may mắn.
a. Mục đích:
Sử dụng các properties và methods của các đối tượng trong Windows Form.
Sử dụng câu lệnh rẽ nhánh if và đối tượng timer.
b. Yêu cầu
Thết kế giao diện xem
hình.
Khi chương trình bắt đầu
chạy thì số tiền có trong máy là 100
đồng, tiền của người chơi cũng phải
có 100 đồng .
Mỗi lần quay số
Người chơi phải bỏ vào tiền
cược bao nhiêu (số tiền trong máy tăng
theo số tiền cược đồng còn tiền người
chơi giảm đi theo số tiền cược)
Các hộp chứa chữ số từ trái qua
phải có tên như sau: lbl1, lbl2, lbl3.Giá trị trong các hộp số được tạo bằng giá trị ngẫu
nhiên so1, so2, so3 phát sinh giá trị ngẫu nhiên lần lượt trong khoang [0, 7], [0, 8], [0,10]
Kết quả nhận được là:
Nếu kết quả của lbl1 = 7 thì
o Hiện tiền thưởng qua messagebox
o số tiền được thưởng là 100 +50% số tiền cược đang có
trong máy
o Số tiền người chơi = tiền người chơi+ tienthuong +
dectiencuoc.
o Số tiền máy mdectienmay = mdectienmay - tienthuong -
dectiencuoc
Tham khảo :
tienthuong = 100 + (dectiencuoc * 50) / 100;
mdectiennguoichoi = mdectiennguoichoi + tienthuong + dectiencuoc;
mdectienmay = mdectienmay - tienthuong - dectiencuoc;
51
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
52
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Để tạo cảm giác quay số nhanh rồi chậm dần dùng time với Interval tăng dần
timer1.Interval += 10;
timer1.Interval += 10;
lbl1.Text = so1.ToString();
lbl2.Text = so2.ToString();
lbl3.Text = so3.ToString();
if (timer1.Interval >= 200)
{
timer1.Stop();
if (so1 == 7)
{
tienthuong = 100 + (dectiencuoc * 50) / 100;
MessageBox.Show("Số tiền bạn nhận đc :\nTiền thưởng :" + tienthuong);
mdectiennguoichoi = mdectiennguoichoi + tienthuong + dectiencuoc;
mdectienmay = mdectienmay - tienthuong - dectiencuoc;
}
if (so2 == 7)
{
tienthuong = 30 + (dectiencuoc * 10) / 100;
MessageBox.Show("Số tiền bạn nhận đc :\nTiền thưởng :" + tienthuong);
mdectiennguoichoi = mdectiennguoichoi + tienthuong + dectiencuoc;
mdectienmay = mdectienmay - tienthuong - dectiencuoc;
}
if (so3 == 7)
{
tienthuong = 10 + (dectiencuoc * 10) / 100;
mdectiennguoichoi = mdectiennguoichoi + tienthuong + dectiencuoc;
mdectienmay = mdectienmay - tienthuong - dectiencuoc;
MessageBox.Show("Số tiền bạn nhận đc :\nTiền thưởng :" + tienthuong);
}
lbltienmay.Text = mdectienmay.ToString();
lbltiennguoichoi.Text = mdectiennguoichoi.ToString();
53
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
code toàn bài sinh viên chỉ xem tham khảo phài tư viết code không được copy
hay gõ y như hướng dẫn
decimal mdectienmay = 100;
decimal mdectiennguoichoi = 100;
decimal dectiencuoc;
private void btnquayso_Click(object sender, EventArgs e)
{
dectiencuoc = Convert.ToDecimal(txttiencuoc.Text);
btnquayso.Enabled = true;
if (mdectiennguoichoi >= dectiencuoc)
{
mdectienmay += dectiencuoc;
mdectiennguoichoi -= dectiencuoc;
timer1.Interval = 10;
timer1.Start();
}
else
{
MessageBox.Show("Bạn không đủ tiền chơi", "Thông Báo");
timer1.Interval = 10;
timer1.Stop();
btnchoilai.Enabled = true;
}
lbltienmay.Text = mdectienmay.ToString();
lbltiennguoichoi.Text = mdectiennguoichoi.ToString();
}
private void timer1_Tick(object sender, EventArgs e)
{
dectiencuoc = Convert.ToDecimal(txttiencuoc.Text);
int so1, so2, so3;
decimal tienthuong;
Random ran = new Random();
54
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
55
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
lbltienmay.Text = mdectienmay.ToString();
lbltiennguoichoi.Text = mdectiennguoichoi.ToString();
}
}
56
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
57
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 28. Nhập vào số năm, xuất ra năm tương ứng như hình
a. Mục đích:
Sử dụng các properties và methods của các đối tượng trong Windows Form.
Sử dụng câu lệnh rẽ nhánh switch case.
b. Yêu cầu
Thiết kế form (xem hình)
Số phải canh lề
trái
0 1 2 3 4 5 6 7 8 9 10 11
Can Canh Tan Nham Quy Giap At Binh Dinh Mau Ky
Chi Than Dau Tuat Hoi Ti Suu Dan Meo Thin Ty Ngo Mui
Nhấn nút xem thì hiện năm tương ứng qua các con giáp xem hình
58
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Yêu cầu viết hàm trả về chuỗi can chi khi biết số năm.
switch (intNamDuong % 10)
{
case 0:
strCan = "Canh";
break;
case 1:
strCan = "Tân";
break;
…..
}
Khống chế ô năm chỉ được nhập số
private void txtnhap_KeyPress(object sender, KeyPressEventArgs e)
{
if ((char.IsDigit(e.KeyChar) == false) && (char.IsControl(e.KeyChar)
== false))
e.Handled = true;
59
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Nhấn phím Enter tương đương nhấn nút xem và phím Esc tương đương nút
thóat
Hệ thống menu tương ứng các chức năng trên form.
StatusTrip hiện ngày tháng hiện tại và tên programmer gợi ý:
statusStrip1.Items[0].Text =
Convert.ToDateTime(DateTime.Now).ToShortDateString();
//Convert.ToString(DateTime.Now);
60
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 29. (TH)Viết chương trình nhập vào N ,xuất ra cac giá trị tổng như trong hình
a. Mục đích:
Sử dụng các properties và methods của các đối tượng trong Windows Form.
Sử dụng câu lệnh rẽ nhánh if , vòng lặp kết hợp hàm.
b. Yêu cầu
Thiết kế giao diện.
Viết tất cả các hàm tính tổng
Ta nhận thấy viết hàm có giá trị trả về là
lợi cho bài toán nhất vì các cú nút lệnh sau gọi
hàm của các nút lệnh trước. So với Code gợi ý
các bạn sinh viên hãy dùngt vòng lặp khác với
trong code gợi ý như ( for, while…)
Dãy Fibonaci các bạn chuyển thành hàm
đệ quy.
62
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
63
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
flowLayoutP
anel1
64
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
65
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
listBox1.Items.Clear();
lblKQ.Text = "";
}
int GiaTien(int VitriGhe)
{
int DonGia = 0;
if (VitriGhe <= 5)
DonGia = 20000;
else if (VitriGhe <= 10)
DonGia = 30000;
else
DonGia = 40000;
return DonGia;
}
private void btnXoaDaChon_Click(object sender, EventArgs e)
{
xoaghe(listBox2);
}
66
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
67
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Khi chọn
68
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 31. (TH)Viết chương trình nhập danh sách của 2 lớp như hình
a. Mục đích:
Sử dụng các properties và methods của các đối tượng trong Windows Form kết hợp
listbox, vòng lặp và hàm.
b. Yêu cầu:
Thiết kế form như hình
Thiất kế tạo các TabOrder sao cho hợp lý.
Khi Form vừa chạy lên (load).
Có 2 sinh viên trong danh sách lớp A. Yêu cầu thêm vào trong lúc thiết kế
(design trong properties Item)
3 sinh viên trong danh sách lớp B yêu cầu viết trong sự kiện Load của
Form
69
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
70
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Nhấn nút > thì chuyển các Sinh Viên đang chọn trong lớp A Qua Lớp B.
Và ngược lại cho nút < ( danh sách có thể chọn nhiều). xem hình. Yêu cầu viết hàm.
71
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Chọn nhiều
đổi
SelectionMode
=
MultiExtended
72
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Nếu đưa chuột vào nút “>” thì hiện Tooltiptext là “Chuyển Sinh Viên lớp
A-> Lớp B” và ngược lại cho nút “<”.
Nếu nhấn vào nút “>>|” thì chuyển hết sinh viên trong lớp A -> Lớp B và
tương tự cho lớp nút “|<<”
73
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
74
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
75
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
8 x 3 12 x 1 Khi x 2
y f ( x) x 2 6 x 19 Khi 1 x 2
7x Khi x 1
Bài 33. Viết chương trình nhập vào tháng của một năm. Cho biết tháng đó
thuộc mùa nào trong năm.
76
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 35. Viết chương trình nhập vào ngày, tháng kiểm tra xem ngày tháng đó
có hợp lệ không?
Các tháng 1, 3, 5, 7, 8, 10, 12 có 31 ngày.Các tháng 4, 6, 9, 11 có 30 ngày.Tháng
2 có 28 ngày.
Bài 36. Viết chương trình tìm số lớn nhất, nhỏ nhất và nhỏ nhì trong 3 số thực
a, b, c.
77
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 37. Tương tự như bài 3.5, với 4 số thực a, b, c, d. Tìm số lớn nhất, nhỏ
nhất, nhỏ nhì, lớn nhì.
Bài 38. Viết chương trình giải phương trình bậc 2: ax2 + bx + c = 0
78
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 39. Viết chương nhập vào một ngày (ngày, tháng, năm). Hãy cho biết ngày
tiếp theo (ngày, tháng, năm). Ghi chú: Năm có thể là năm thường hoặc năm nhuận.
Ví dụ: Nhập: 1/2/2008 => Ngày tiếp theo: 2/2/2008
- Nhập: 31/1/2008 => Ngày tiếp theo: 1/2/2008
- Nhập: 31/12/2008 => Ngày tiếp theo: 1/1/2009 ….
Bài 40. Thiết kế form thực hiện các phép toán như sau:
79
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 41. Thiết kế Form cho phép thực hiện Tính tiền tiêu thụ điện.
Bài 42. Thiết kế Form cho phép thực hiện các phép tính của một máy tính đơn
giản.
80
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 43. Thiết kế Form mở rộng từ Bài tập số 47, thêm các chức năng như: Căn
bậc hai của một số; Phép toán 1/x...
Gợi ý: Sử dụng FlowLayoutPanel để chứa các đối tượng nạp động lúc run-
time, với thuộc tính AutoScroll=True. Dùng vòng lặp for each để duyệt qua
collection Controls của FlowLayoutPanel. Viết hàm kiểm tra số nguyên tố
81
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Viết chương trình nhập vào số nguyên n. (áp dụng từ Bài 49 đến Bài 62)
Hãy tính:
82
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 58. Viết chương trình nhập vào tuổi cha và tuổi con hiện tại. (tuổi cha > 2 lần
tuổi con). Hỏi sau bao nhiêu năm nữa tuổi cha bằng 2 lần tuổi con.
83
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 59. Viết một chương trình theo yêu cầu thiết kế sau:
Bài 60. Viết một chương trình theo yêu cầu thiết kế sau:
Cho phép người sử dụng nhập một số
nguyên, sau đó in lên màn hình các ước số
nguyên này lên form.
Việc in các ước số lên màn hình được thực hiện
bởi một Sub. Sub này có một tham số dạng tham
trị, sẽ nhận số nguyên cần tìm các ước số.
Khi chương trình bắt đầu thực hiện thì
textbox nhập số được focus.
Sau khi nhập số nếu ấn Enter hoặc Click
vào nút thực hiện thì hiện kết quả lên TextBox
kết quả, và TextBox nhập vẫn được Focus.
Nếu ấn Esc hoặc click vào “Kết thúc” thì dừng chương trình
84
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 61. Viết một chương trình theo yêu cầu thiết kế sau
Bài 62. Viết chương trình Đổi năm dương lịch qua năm âm lịch, giao diện như
sau
Năm MOD 10 = 0…9: Canh - Tân – Nhâm –
Quý – Giáp – Ất – Bính – Đinh – Mậu - Kỷ
Năm MOD 12 = 0…11: Thân – Dậu – Tuất – Hợi –
Tý – Sửu – Dần – Mẹo – Thìn – Tỵ – Ngọ – Mùi
Bài 63.
a.Viết hàm mã hóa 1 ký tự thành số dùng cho việc bảo mật thông tin.
Hàm có dạng : int MaHoaKyTu (char Kytu)
HD: Căn cứ trên mã ASCII và key, chẳng hạn như
“a”->4, “b”->5, “c”->5….”z”->30, “ “->100
“A”->44, “B”->41, “C”->42….”Z”->70 (ví dụ: MaHoaKyTu(‘b’)=5).
b.Sử dụng hàm này để mã hóa 1 chuỗi nhập vào. (ví dụ: “I Love You” ->57 100 50
42 26 …).
c.Viết hàm giải mã và kiểm tra việc mã hóa - giải mã.
85
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Chương trình cho phép chọn kiểu Button và kiểu Icon của Message box. Sau
khi click “Chọn” sẽ hiển thị hộp thông báo tương ứng. Ví dụ:
Khi kết thúc chương trình, sẽ xuất hiện một Message box để khẳng định có
chắc là kết thúc không, như hình bên dưới.
HD: Khai báo các biến toàn cục để giữ giá trị chọn trên các radio button, xử lý
sự kiện CheckChanged hoặc sự kiện Click của từng radio button.
86
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 65. (Listbox) Thiết kế form và thực hiện các chức năng sau:
Khi người sử dụng nhập một số vào textbox rồi Enter hoặc nhấp vào nút cập nhật
thì số này được thêm vào listbox, đồng thời nội dung trong textbox bị xóa và focus được
chuyển về textbox.
Người dùng nhấn vào nút nào thì thực hiện chức năng tương ứng của nút đó.
87
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 66. (Listbox) Viết chương trình nhập danh sách và quản lý ca học sinh
viên, giao diện như sau:
Yêu cầu:
- Các ListBox được phép chọn nhiều mục (kết hợp giữa phím Shift, Control và
chuột)
- Các nút btnQua2 và btnQua1 khi được Click sẽ sao chép tất cả các mục đang chọn
sang ListBox bên kia tương ứng, sau đó xóa các mục đang chọn đi
- Các nút btnChuyenQ2 và btnChuyenQ1 khi được Click sẽ chuyển cả các mục
ListBox bên kia tương ứng sau đó xoá sạch đi.
- Nút lệnh Xóa cho phép xóa các mục đang chọn trong list hiện hành
- Nếu nhấn nút Cập nhật thì kiểm tra đã nhập tên sinh viên chưa, nếu chưa thì thông
báo cho user nhập vào, nếu đã đủ thông tin thì tùy thuộc vào combo box là nhóm một hay
nhóm hai mà add vào list tương ứng.
- Hai label phía dưới list box luôn luôn thể hiện đúng trong mỗi list có bao nhiêu
phần tử.
88
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 67. (Listbox) Viết chương trình thực hiện các chức năng trên giao diện
như sau
- Nút Cập nhật cho phép nhận N số ngẫu nhiên từ 1..1000 vào combobox (N là
số nhập tại textbox)
- Khi người sử dụng chọn 1 số trên combobox, chương trình hiển thị các ước số của
số đang chọn vào listbox.
- Các nút lệnh: Tổng ước số, số lượng ước số chẵn, kiểm tra số nguyên tố thông báo
kết quả trên messageBox.
89
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
CHƯƠNG 5
MẢNG
Bài 68. (LT) Viết chương trình nhập vào giá trị của mảng và xuất kết qủa vào
trong label kết quả. Thực hiện các chức năng của mảng tương ứng với các button
RichTexBox
(Readonly=tr
ue)
a. Mục đích:
Sử dụng các Properties và methods các control, mảng một chiều
b. Yêu cầu :
Khóa các button mờ (xem hình 2)
Nhấn button nhập mảng mới thì hiển thị from nhập liệu như trong
hình 1 và nhập giá trị n và đồng thể random n phần tử mảng A vào trong
Richtextbox mảng gốc
90
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
form nhập liệu sinh viên tự hiệu chỉnh các properties của form cho phù
hợp:
Thực hiện các button hiển thị vào trong Richtextbox kết quả
KhoaHieuLucButton(false);
}
91
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
nhapmang(mA);
xuatmang(mA, rtxtGoc);
KhoaHieuLucButton(true);
}
catch
{
MessageBox.Show("Bạn chưa nhập dữ liệu", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error,
MessageBoxDefaultButton.Button1);
}
}
92
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
void nhapmang(int[] A)
{
Random n = new Random();
int i=0;
while (i < A.Length)
{
A[i] = n.Next(1, 91);
i++;
}
}
Nhấn nút tìm kiếm hiện lên form cho phép nhập thông tin tìm. Viết
hàm tìm trả về vị trí tìm và xuất giá trị thông báo cho người sử dụng biết qua
code gợi ý.
private void btntim_Click(object sender, EventArgs e)
{
try
{
int vt, gt = 0;
gt = ?? sinh viên tự nghĩ cho tiện lợi nhất
vt = Tim(mA, gt);
if (vt != -1)
93
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
{
vt += 1;
MessageBox.Show("Tìm thấy tại vị trí thứ " + vt.ToString(),
"Thông báo", MessageBoxButtons.OK);
}
else
MessageBox.Show("Không tìm thấy", "Thông báo",
MessageBoxButtons.OK);
}
catch
{
MessageBox.Show("Bạn chưa nhập dữ liệu", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error,
MessageBoxDefaultButton.Button1);
}
}
int Tim(int[] a, int gt)
{
int i, vt = -1;
for (i = 0; i < a.Length; i++)
{
if (a[i] == gt)
{
vt = i;
break;
}
}
return vt;
}
Nhấn nút xóa hiện form cho phép nhập giá trị cần xóa. Trong code gợi
ý chỉ xóa vị trí tìm thấy đầu tiên sinh viên viết thêm xóa tất cá các gá trị bằng giá
trị nhập vào ( gợi ý hai vòng lặp lồng nhau)
private void btnxoa_Click(object sender, EventArgs e)
94
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
{
try
{
int i,gt, vt;
gt = GiaTri();
vt = Tim(mA, gt);
sinh viên viết thêm xóa tất cá các gá trị bằng giá trị nhập vào
if (vt != -1)
{
for (i = vt; i < mA.Length - 1; i++)
mA[i] = mA[i + 1];
Array.Resize(ref mA,mA.Length-1);
}
xuatmang(mA, rtxtKQ );
}
catch
{
MessageBox.Show("Bạn chưa nhập dữ liệu", "Thông báo",
MessageBoxButtons.OK, MessageBoxIcon.Error,
MessageBoxDefaultButton.Button1);
}
KhoaHieuLucButton(false);
}
- Nhấn nút đảo ngược dãy số chính là dảo ngược mảng xem code gợi ý.
private void btndaoso_Click(object sender, EventArgs e)
{
daonguocdayso(mA, rtxtKQ);
}
95
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Nhấn nút clear khóa mở text cho hợp lý xem code gợi ý.
private void btnclear_Click(object sender, EventArgs e)
{
rtxtGoc.Clear ();
rtxtKQ.Clear() ;
btnnhap.Focus();
KhoaHieuLucButton(false);
}
96
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Các nút khác sinh viên tự giải quyết nhưng nên viết theo hàm vá sử
dụng một số gợi ý hàm sau:
string xuatsonguyento(int[] A)
{
string str = "";
int i = 0;
do
{
if (ktsonguyento(A[i]) == true)
str += A[i].ToString() + " ";
i++;
}
while (i < A.Length);
return str;
}
Boolean ktsonguyento(int n)
{
int dem = 0, i;
for (i = 1; i <= n; i++)
{
if (n % i == 0)
dem++;
if (dem > 2)
break;
}
return (dem == 2);
}
97
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 69. (LT) Viết chương trình nhập mảng chuỗi xuất ra tên ngẫu nhiên họ tên
như bài gợi ý. Thực hiện các chức năng tương ứng như form thiết kế.
a. Mục đích:
Sử dụng các properties và methods của mảng, string , stringBuilder và tích hợp kiến
thức tổng hợp.
b. Yêu cầu:
Thiết kế form (xem hình)
Yêu cầu
Giả sử có mảng
string[] ho = { "nguyễn", "trần", "đinh", "gia", "ngô", "lê", "hà", "lâm",
"vương" };
string[] tenlot = { "thị", "hoàng", "huy", "cao", "văn", "duy", "thanh",
"anh" };
string[] ten = { "lan", "hương", "tuấn", "hùng", "cường", "vy", "loan",
"nam", "tú", "nga", "phát", "kiệt", "triều", "hạ", "hải", "thủy" };
98
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Khi form vừa load lên các button mất hiệu lực hỉ có một nút nhập tên ngẫu
nhiên là có thể hoạt động được.
private void frmMangchuoi_Load_1(object sender, EventArgs e)
{ KhoaButton(false); }
void KhoaButton(Boolean giatri)
{
btnxoaten.Enabled = giatri;
btnxoaho.Enabled = giatri;
btndoiten.Enabled = giatri;
btndoiho.Enabled = giatri;
btndoitenhoa.Enabled = giatri;
btndoihoadautu.Enabled = giatri;
btnclear.Enabled = giatri;
}
Khi nhấn nút “nhập tên ngẫu nhiên” hiện lên một form cho phép nhập vào
số lượng , dựa vào mảng ho, tenlot, ten để tạo ra danh sách các tên ngẫu nhiện. Quy
định họ tên =Ho+tenLot+Ten đưa vào list danh sách sinh vien.
Code tham khảo.
private void btnnhap_Click(object sender, EventArgs e)
{
try
{
int n;
n = Convert.ToInt32(GiaTri("Nhập số lượng:"));
TaoHoTenNgauNhien(lst, n);
groupBox1.Text = "Danh sách SV: " + lst.Items.Count.ToString()
+ " SV";
KhoaButton(true);
}
catch
{
MessageBox.Show("Bạn chưa nhập dữ liệu", "Thông báo");
}
99
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
}
string GiaTri( string str)
{
frmNhapDLieu frm = new frmNhapDLieu();
frm.lblHuongDan.Text = str;
frm.ShowDialog();
return frm.txtDL.Text;
}
void TaoHoTenNgauNhien(ListBox lst, int n)
{
lst.Items.Clear();
Random x = new Random();
StringBuilder hoten;
int i;
string Temp = "";
for (i = 0; i < n; i++)
{
hoten = new StringBuilder();
Temp = ho[x.Next(0, ho.Length)];
hoten.Append(Temp);
Temp = tenlot[x.Next(0, tenlot.Length)];
hoten.Append(" ");
hoten.Append(Temp);
Temp = ten[x.Next(0, ten.Length)];
hoten.Append(" ");
hoten.Append(Temp);
lst.Items.Add(hoten);
}
}
100
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Nhấn nút “Xóa SV theo tên” hiện form cho phép nhập tên cấn xóa. Xóa tất
cả các tến trong List trùng với tên nhập vào. Sử dụng hàm LastIndexOf(' ') trong thuật
toán sinh viên có thể dùng hàm EndsWith("chuỗi tìm")
private void btnxoaten_Click(object sender, EventArgs e)
{
string ten;
int dem;
101
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
return dem; }
Nút “ xóa sinh viên theo họ” thuật toán như theo tên chỉ khác biệt lấy họ
ngược lại lấy tên.
Code gợi ý:
private void btnxoaho_Click(object sender, EventArgs e)
{
string strHo;
int Dem ;
102
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Đổi tên thì chọn tên cần đổi trên list và nhập tên mới.
private void btndoiten_Click(object sender, EventArgs e)
{
string strTenMoi;
int Dem;
if (lst.SelectedIndex != -1)
{
strTenMoi = GiaTri ("Nhập tên mới");
Dem = DoiTen(lst, strTenMoi);
groupBox1.Text = "Danh sách SV: " + lst.Items.Count.ToString()
+ " SV";
statusStrip1.Items[0].Text = "đã đổi tên của " + Dem.ToString() +
" SV";
}
else
MessageBox.Show("Chon sv doi ten");
}
hoten = lst.SelectedItem.ToString () ;
vitri = hoten.LastIndexOf(' ');
hotenMoi = hoten.Substring(0, vitri) + " " + tenmoi;
vtChen = lst.SelectedIndex;
lst.Items.RemoveAt(vtChen);
lst.Items.Insert(vtChen , hotenMoi);
return 1;
}
103
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
hoten = lst.SelectedItem.ToString();
vitri = hoten.IndexOf(' ');
hotenMoi = HoMoi + hoten.Substring(vitri, hoten.Length -vitri );
vtChen = lst.SelectedIndex;
lst.Items.RemoveAt(vtChen);
lst.Items.Insert(vtChen, hotenMoi);
return 1;
}
104
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
105
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
106
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
107
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 70. (TH) Viết chương trình nhập vào số phần tử n và hiển thị mảng được
tạo ngẫu nhiên trong [-100 ..100]vào trong RichTextbox mảng gốc. Thực hiện các yêu
cầu như thiết kế form dưới đây
1 2
4 5 6
7 8 9
10
11
12
108
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 71. (TH) Viết chương trình nhập vào số phần tử n và hiển thị mảng được
tạo ngẫu nhiên trong [-100 ..100]vào trong RichTextbox mảng gốc. Thực hiện các yêu
cầu như thiết kế form dưới đây
13 20
14 21
15 22
16 23
17 24
18 25
19 26
Bài 72. (Array) Viết chương trình với các chức năng được trình bày trên Form
như sau:
Các giá trị của mảng được tạo ngẫu nhiên trong [-100 ..100]. Sử dụng hộp thoại
khác cho nhập số phần tử của mảng. Việc nhập giá trị cho các phần tử của mảng thực
hiện bởi một hộp thoại khác, sử dụng lớp ArrayList.
109
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
110
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
CHƯƠNG 6
GIAO DIỆN NÂNG CAO
111
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Khi bấm nút AddRoot thì thêm vào nút Root của Treeview
Khi bấm nút AddChild thì thêm vào trong nút con cuả nút được chọn
c. Hướng dẫn code
//Tạo nút Root
private void btnRoot_Click(object sender, System.EventArgs e)
{
TreeNode NodeObj = new TreeNode();
NodeObj.Text = txtNode.Text;
tvwSV.Nodes.Add(NodeObj); }
//Tạo nút con
private void btnChild_Click(object sender, System.EventArgs e)
{
TreeNode ChildNodeObj = new TreeNode();
ChildNodeObj.Text = txtNode.Text;
if (tvwSV.SelectedNode != null)
{
tvwSV.SelectedNode.Nodes.Add(ChildNodeObj);
}
}
112
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
t.Nodes.Add("+");
t.Nodes.Add("-");
113
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
t.Nodes.Add("*");
t.Nodes.Add("/");
114
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
iii. Khi Click vào tên từng nhân viên thì hiển thị vào trong list box như sau:
“Xin chào nhân viên Lý thông”
115
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
116
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Khi nhấn nút “Add” thì thêm vào trong treeview( Kiểm tra nếu checkbox
được chọn thì thêm vào trong nút con còn ngược lại thì thêm vào nút cha )
Nếu chọn nút “AddIndex” thì thêm vào tại vị trí index được chọn
Chọn nút “Clear ” thì xóa các textbox
Bấm nút “Remove” thì xóa nút được chọn
117
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
a. Mục đích
Làm quen với đôi tượng listview, listview
b. Yêu cầu
Thiết kế theo màn hình trên 2label,2textbox, 3button, 1listview, 1listbox,
2groupbox
Thiết lập các thuộc tính cho từng đối tượng
118
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
119
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
120
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
121
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 81. * Giao diện nâng cao và Treeview, Listview (sinh viên tự làm nộp cộng
điểm)
a. Mục đích:
Sử dụng thuộc tính và phương thức của control nâng cao để tạo giao diện làm bước
đệm cho chương kế tiếp móc nối CSDL.
b. Yêu cầu
1. Tạo formmain theo các bước sau:
122
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Khi nhấn OK thì chương trình tao ra một Form mặc định sinh viên hãy xóa form
mặc định và thêm một Form mới từ menu Project/Add windows form. Và đặt tên như
sau:
123
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
2. Kế tiếp sinh viên cho chạy Form frmmain lên trước bằng cách: vào menu
Project / ChuongTrinhNhieuFormProperties và chỉnh lai thông số StartupForm:
frmMain
124
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Yêu cầu:
+ Combobox Lớp có hai hoặc 3 lớp được đưa vào trong lúc runtime, mặc định lớp
thứ 2 trong Combobox được chọn trước.
+ contextMenustrip là của Treeview
+ IlsTree là Imagelist cho Treeview chứa 2 hình thể hiện hai trạng thái chọn và
không chọn của Node.
+ Nhấn nút Cập nhật là phải cài bẫy lỗi kiểm tra thông tin nhập đúng đủ trên form
rồi đưa vào Treeview theo nguyên tắc: mã sinh viên là node gốc các thông tin khác là
node con.
+ Nhấn node Tạo mới xóa các thông tin cho phép nhập thông tin một sinh viên mới.
+ Nhấn node thoát hiện thông báo xác nhận thông tin có muốn thóat không.
+ viết lệnh cho contextMenustrip
125
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
7. Viết lệnh cho các Form Listview dựa theo kỹ năng đã học trong giờ lý thuyết.
Yêu cầu:
+ Thông tin Sinh Viên không thiết kế mà copy từ form Treeview qua.
+ ilsNho là Imagelist có kìch thước mặc định 16 x 16 phục vụ cho ListView
+ ilsLon là Imagelist có kìch thước mặc 48 x 48 phục vụ cho ListView
+ contextMenustrip như hình khi Right click trên Listview thì hiện ra.
126
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
+ Nhấn nút Cập nhật Item thì đưa thông tin sinh viên vào Listview theo nguyên tắc
dựa theo hình.
+ Nhấn nút Xóa item là xóa item đang chọn trên Liatview ( có thể chọn nhiều),
nhưng phải cài bẫy lỗi xác nhận lại tình trạng xóa.
- Xác nhận đã chọn Item nào chưa
- Xác nhận có chắc xóa không.
+ Nhấn nút thêm mới thì xóa thông tin sinh viên cho phép nhập thông tin Sinh Viên
mới.
+ Nếu chọn một Sinh Viên nào trong Listview thì hiện lại thông tin Sinh Viên đó
lên các Texbox tương ứng đễ cho phép người sử dụng có thể thay đổi chỉnh sửa thông tin
phục vụ cho lệnh Update trong contexMenustrip.
+ Viết lệnh tương ứng phù hợp cho các chức năng trong contexMenustrip.
127
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
8) Viết lệnh cho Form Tree và Listview kết hợp dựa theo yêu cầu đã học trong giờ
lý thuyết.
Yêu cầu:
+ Các thông tin chung như các form đã làm các bài trước .
+ Nhấn nút cập nhật đưa thông tin vào Treeview theo nguyên tắc
- Node gốc là mã Sinh Viên
- Node con là các thông tin còn lại của Sinh Viên.
+ Khi right click trên TreeView thì hiện contextMenustrip.
- Nếu nhấn Duyệt Node thì hiện thông tin của Node đang chọn qua
Listview
- Nếu Nhấn Duyệt All thì duyệt tòan bộ thông tin của Treeview qua
Listview..
+ Viết lệnh cho contextMenustrip tương ứng
128
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
8) Chạy chương trình vào Menu của form main cố tình nhấn hai lần vào menu cho
phép mở formcon. Nếu đúng thì hiện thị 2 lần form con.
9) Khắc phục form chỉ hiện lên một lần.
- Nếu form con chưa mở mà nhấn nút mở form con thì hiện form con
- Nếu form con đã mở mà cố tình nhấn nút mở form con thì Active form con
không hiện thêm form con nữa.
10) Chạy lại chương trình thử các tác vụ chức năng.
11) Thêm form About
129
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
progressBar
Yêu cầu:
+ Chỉnh sửa thông tin trong form About cho phù hợp
+ Thuộc tính Maximum của Progressbar là 500
+ Khi form hiện lên Progress tự động chạy nếu value của progressbar chạy tới vị trí
Maximum thì tự động đóng form About và hiện form Main
+ Nhấn nút OK đóng form About và hiện form Main
12 ) Hiệu chỉnh khi ứng dụng chạy lên form About chạy trước
Gợi ý :
Vào menu Project/Add Module…
Program như sau:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
frmAbout frm = new frmAbout();
if (frm.ShowDialog() == DialogResult.OK)
{
130
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Application.Run(new frmMain());
}
131
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
CHƯƠNG 7
FILE
Yêu cầu:
Nút ...: cho phép mở hộp thoại Open để người dùng chọn một tập tin (chỉ hiện
các tập tin .txt). Nội dung tập tin sau khi được chọn sẽ được đưa vào mục Nội dung
tập tin.
132
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Yêu cầu:
Nút ...: cho phép mở hộp thoại Open để người dùng chọn các tập tin
(chỉ hiện các tập tin .txt). Các tập tin sau khi được chọn sẽ được đưa vào Danh
sách tập tin, mỗi phần tử trong danh sách là tên tập tin.
Nút Xóa: xóa một phần tử đang chọn trong Danh sách tập tin.
Khi nhấn vào tập tin nào trong Danh sách tập tin thì nội dung của tập
tin đó được hiển thị tương ứng trong phần Nội dung tập tin.
133
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Yêu cầu:
Nút Lưu: chương trình sẽ lưu thông tin sinh viên (gồm Mã số, Họ tên,
Ngày sinh) vào tập tin SinhVien.txt. Trước khi lưu phải kiểm tra dữ liệu có hợp
lệ không, nếu không hợp lệ thì thông báo và không cho lưu vào tập tin (dữ liệu
hợp lệ khi nhập đầy đủ thông tin vào ô Mã số và Họ tên, nếu có Ngày sinh thì
ngày phải hợp lệ)
Nút Hiện danh sách: cho phép hiện danh sách ở Listbox bên dưới theo
định dạng như hình.
Dữ liệu được lưu trong tập tin SinhVien.txt với định dạng:
Mã SV
Họ tên
Ngày sinh
Tuần 12. Mở và lưu file
Thực hành bài 90.
Họ và tên học sinh:
Ngày:
Thời gian thực hiện: 2.25h
Điểm: Lời phê của giáo viên
1. Kỹ thuật (6đ) :
2. Thao tác (1đ) :
134
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
3. An toàn (1đ):
4. Tổ chức nơi làm việc (1đ):
5. Thời gian (1đ):
Dữ liệu được lưu trong tập tin SinhVien.txt với định dạng:
Mã SV
Họ tên
Ngày sinh
Khi form load lên thì danh sách sinh viên đã nhập được hiện lên
ListView bên dưới.
Nút Thêm: thêm một dòng vào ListView, gồm Mã số, Họ tên, Ngày
sinh. Trước khi lưu phải kiểm tra dữ liệu có hợp lệ không, nếu không hợp lệ thì
thông báo và không cho lưu vào tập tin (dữ liệu hợp lệ khi nhập đầy đủ thông tin
vào ô Mã số và Họ tên, nếu có Ngày sinh thì ngày phải hợp lệ)
Nút Xóa: dùng để xóa một dòng đang chọn trong ListView.
Nút Lưu dùng để lưu toàn bộ thông tin trong ListView vào tập tin
SinhVien.txt
135
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 86. Thiết kế Form kê khai sơ yếu lý lịch của một Sinh viên(sv tự làm)
136
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 87. Viết chương trình theo giao diện và thực hiện các yêu cầu sau (sv tự
làm)
Khi form được load lên màn hình thì chỉ có nút Nhập Liệu và nút Kết Thúc
là sử dụng được, và đồng thời nút Nhâp Liệu được focus
Khi nút Nhập Liệu được nhấn thì các button khác mới sáng nên để có thể
thao tác được, đồng thời quét khối các text trong text nhập liệu và cho con nháy về
text Nhập Liệu.
Khi một nút chức năng nào đó được nhấn thì kết quả tương ứng hiện vào
text kết quả và làm mờ tất cả các nút (trừ nút Nhập Liệu và Kết Thúc)
Khi nhấn Xoá Chuỗi hiện ra một hộp thoại cho bạn nhập một chuỗi để xoá,
nếu thực sự có trong text Nhập Liệu, có text bằng text vừa nhập thì xoá đi và nếu
không có thì báo không có text muốn xóa (=> bạn có thể mở rộng bằng thay thế một
chuỗi)
137
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 88. Viết chương trình quay số may mắn. (sv tự làm)
138
Hướng dẫn và bài tập thực hành Lập Trình WinCB GV:Trần Thị Ngọc Châu
Bài 89. (sv tự làm)Thiết kế Form cho màn hình soạn thảo của NotePad
Bài 90.
Thiết kế Form sao cho khi người sử dụng nhập vào giá trị tại hộp lên xuống
hoặc trái phải ( NumericUpDown ) thì Hình vuông nhỏ bên trong sẽ dịch chuyển
trong phạm vi bên trong cuả hình vuông lớn bên ngoài.
139