Xóa nội dung trong các Label Bắt đầu và Kết thúc Khi người sử dụng Click vào nút Kết thúc thì kiểm tra nếu có máy đang thuê phải nhắc nhở người sử dụng bằng MsgBox, khi nào người sử [r]
(1)Khối: Cao Đẳng nghề Trung Cấp
Năm 2011
Hướng dẫn:
Bài tập thực hành chia làm nhiều Module
Mỗi Module thiết kế cho thời lượng tiết thực hành lớp với hướng dẫn giảng viên
Tùy theo số tiết phân bổ, tuần học thực nhiều Module
Sinh viên phải làm tất tập Module tuần tương ứng Những sinh viên chưa hịan tất phần tập lớp có trách nhiệm tự làm tiếp tục nhà
(2)Module 1
Nội dung kiến thức thực hành: + Làm quen với ngôn ngữ C# + Tạo ứng dụng dạng Console
+ Một số thuộc tính, phương thức qua Console
Bài 1:
Mục đích:
Sử dụng properties methods đối tượng ứng dụng Console Yêu cầu:
Viết ứng dụng dạng Console xuất lời chào Yêu cầu xuất lời chào sau:
Welcome to
C# 2010 Programming!
Programming by your name
Hướng dẫn:
(3)Project tạo file mặc định là: Program.cs có chứa hàm Main()
namespace BaiTapLoiChao
{
class
Program
{
static void Main(string[] args)
{
//Viết code
}
}
}
+ Bạn sửa lại hàm Main() thành sau
namespace BaiTapLoiChao
{
class
Program
{
static void Main(string[] args)
{
Console
.WriteLine("Welcome to ");
Console
.WriteLine("C# 2010 Programming!");
Console
.WriteLine("Programming by your name");
Console
.ReadLine();
}
}
}
+ Chạy chương trình cách nhấn phím
F5
kết mong muốn sau:
Bài 2:
Mục đích:
Sử dụng Properties Methods đối tượng ứng dụng Console Kết hợp định dạng xuất liệu
Yêu cầu:
(4)+ Viết lại hàm Main sau:
staticvoid Main(string[] args){
Console.WriteLine("{0}\n{1}", "Welcome to ", "C# 2010 Programming!"); Console.WriteLine( "Programming by your name" );
Console.ReadLine(); }
+ Chạy chương trình cách nhấn phím F5 kết mong muốn
không đổi tập 1:
Bài 3:
Mục đích:Sử dụng số hàm toán học nhập liệu từ bàn phím Kết hợp định dạng xuất liệu
Yêu cầu:
+ Tạo Project với tên ThaoTacSo:
Khi chạy chương trình xuất yêu cầu nhập vào hai số từ bàn phím xuất kết
quả tổng hai số vừa nhập
Xuất mà hình yêu cầu có dạng:
Nhap So Thu Nhat A: ??
(5)Hướng dẫn:
Hàm Main() viết code sau:
int nSo1, nSo2, nTong=0;
Console
.Clear();
Console
.Write("{0}", "Nhap So thu nhat: ");
// read first number from user
nSo1 =
Convert
.ToInt32(
Console
.ReadLine());
Console
.Write("Nhap So thu hai: ");
// read second number from user
nSo2 =
Convert
.ToInt32(
Console
.ReadLine());
nTong = nSo1 + nSo2;
Console
.WriteLine("Tong cua " + nSo1 + " Va " + nSo2 + " La " + nTong);
Console
.ReadLine();
+ Mở rộng làm phép tính (cộng, trừ, nhân, chia)
Bài 4:
Mục đích:
Sử dụng số hàm toán học nhập liệu từ bàn phím Kết hợp định dạng xuất liệu
Yêu cầu:
+ Tạo Project với tên TinhDienTich:
+ Khi chạy chương trình xuất yêu cầu nhập vào hai cạnh tứ giác
vuông xuất kết chu vi, diện tích…
(6)Bài 5:
Mục đích:Sử dụng số hàm tốn học nhập liệu từ bàn phím Kết hợp định dạng xuất liệu
Yêu cầu:
+ Tạo Project với tên PhuongTrinhBac1:
+ Giải biện luận phương trình bậc : ax+b=0
+ Sinh viên ý phương trình có trường hợp: vơ nghiệm, vơ số nghiệm
và có nghiệm
(7)Bài 6:
Mục đích:Sử dụng số hàm tốn học nhập liệu từ bàn phím Kết hợp định dạng xuất liệu.( làm quen class Math)
Math
.Pow(x,y) lấy x
yMath
.Sqrt(x) lấy bậc x
Math
.Round(x,2) làm tròn x tới đơn vị
Yêu cầu:+ Tạo Project với tên PhuongTrinhBac2:
+ Giải biện luận phương trình bậc : ax
2+bx+c=0
+ Sinh viên ý phương trình có trường hợp: vơ nghiệm, vơ số nghiệm
và có nghiệm, có nghiệm phân biệt, có nghiệm kép
(8)Bài 7:
Mục đích:Sử dụng số hàm lượng giác nhập liệu từ bàn phím Kết hợp định dạng xuất liệu.( tiếp tục làm quen với class Math)
Math
.PI lấy số PI
Math
.Sin(a) tính sin, với a radian
Math
.Cos(a) tính Cos, với a radian
Math
.Tan(a) tính Tan, với a radian
Yêu cầu:+ Tạo Project với tên CacHamLuongGiac:
+ Nhập góc x Tính xuất sinx, cosx, tgx, cotgx
+ Sinh viên ý hàm lượng giác truyền vào số Radian, em phải
đổi góc x radian, cơng thức đổi sau a=x*PI/180
+ Xem hình để hiểu rõ yêu cầu
Gợi ý tính hàm sin:
double fx;
Console
.Write("Nhap vao goc: ");
fx =
Convert
.ToDouble(
Console
.ReadLine());
double rad = fx *
Math
.PI / 180;
(9)Bài 8:
Mục đích:Sử dụng số hàm lượng giác nhập liệu từ bàn phím Kết hợp định dạng xuất liệu.( tiếp tục làm quen với class Math)
Yêu cầu:
+ Tạo Project với tên ChuViDienTichTamGiac:
+Nhập cạnh a>0, b>0, c>0 Nếu a, b, c tạo thành tam giác tính xuất chu vi,
diện tích hình tam giác Ngược lại thông báo “Không tạo thành tam giác”
HD: cv=a+b+c, p=cv/2 dt=√ ( ) ( ) ( )
Bài 9(*):
Mục đích:Sử dụng hàm tốn học nhập liệu từ bàn phím Kết hợp định dạng xuất liệu
Yêu cầu:
+ Tạo Project với tên TinhTongChuoiSo:
+ Nhập x, n để tính tổng chuỗi số sau (làm tròn chữ số):
Bài 10(*):
Mục đích:Sử dụng hàm tốn học nhập liệu từ bàn phím Kết hợp định dạng xuất liệu
Yêu cầu:
+ Tạo Project với tên SoGaSoCho:
+ Tìm số gà số chó, biết:
Vừa gà vừa chó
Bó lại cho trịn
Ba mươi sáu
Một trăm chân chẵn
𝑆(𝑥, 𝑛) = 𝑥 +
𝑥
22!
+
𝑥
33!
+ ⋯ +
𝑥
𝑛𝑛!
X + Y = 36
2𝑋 + 4𝑌 = 100
Gợi ý:
(10)Module
Nội dung kiến thức thực hành: + Làm quen với ngôn ngữ C# + Tạo ứng dụng windows form Mục đích:
Sử dụng properties, methods event đối tượng Windows Form
Bài 1:
Yêu Cầu
Thiết kế form hình bên
Viết lệnh để chương trình hoạt động sau:
+ Người sử dụng nhập Password vào textbox , sau nhấn nút “Hiễn Thị’
thì nội dung password hiễn thị label bên
Hướng dẫn:
Trong kiện Click button “Hiễn Thị”, gõ vào câu lệnh sau
lblHienThi.Text = txtPassWord.Text;+ Người sử dụng nhấn nút “Tiếp” để xoá nội dung textbox, label đặt trỏ
vào texttbox password để người sử dụng nhập nội dung thuận lợi
Hướng dẫn:
Trong kiện Click button “Tiếp”, gõ vào đoạn lệnh sau
lblHienThi.Text = ""; (11)+ Nhấp nút “Đóng” để kết thúc chương trình
Hướng dẫn:
Trong kiện Click button “Đóng”, gõ vào câu lệnh sau
this.Close();//hoặc Application.Exit();
Bài 2:
Mục Đích:
Sử dụng kiện (event) Form
Yêu Cầu
Thiết kế form chứa button (xem hình)
Khi form hiển thị, xuất messageBox hiển thị lời chào sau
Và người sủ dụng Click button hay vào form củng xuất
message box hiể thị thông báo tương ứng :
(12)Thiết kế giao diện hình sau:
Hướng Dẫn:
// kiện Button click
privatevoid bntClickMe_Click( object sender, EventArgs e ) {
MessageBox.Show( "Button was clicked." ); }
// kiện load form
privatevoid frmSimpleEvent_Load(object sender, EventArgs e) {
MessageBox.Show("Hi , Welcome to C# 2010 programming!"); }
// kiện form Click
privatevoid frmSimpleEvent _Click(object sender, EventArgs e) {
MessageBox.Show("Form was clicked.");
}
Bài 3:
lblHoTen
txtHo
txtTen
(13)Viết lệnh để chương trình hoạt động sau:
Nhấn vào Button btnHo gán nội dung txtHo cho lblHoTen
Nhấn vào Button btnTen gán nội dung txtTen cho lblHoTen
Nhấn vào Button btnHoTen gán nội dung txtHo cộng với txtTen cho lblHoTen
Hướng dẫn: lblHoTen.Text = txtHo.Text + “ “ + txtTen.Text
Nhấn Double click vào lblHoTen nội dung lblHoTen bị xoá
Nhấn vào btnKetThuc thi đóng chương trình
Bài 4:
Mục Đích:
Sử dụng control property Layout Form
Yêu cầu:
Với giao diện 2, yêu cầu sinh viên sử dụng thuộc tính Dock
Anchor cho người sử dụng resize kích thước form, đối tượng
form xếp hợp lý, dễ nhìn
Bài
5:
Yêu Cầu:
Thiết kế giao diện hình bên dưới
radRed
txtNhapTen
chkBold
(14)Yêu cầu
1 Form load
a Radiobutton Red chọn mặc định b Con trỏ xuất ô Nhập tên
2 Khi gõ tên vào ô Nhập tên (gõ ký tự lable lập trình chạy song song giá trị ô nhập tên)
Hướng dẫn:
viết kiện txtNhapTen_TextChanged( ) privatevoid txtNhapTen_TextChanged(object sender, EventArgs e) {
lblLapTrinh.Text = txtNhapTen.Text
}3 Nhấn nút Esc chương trình
4 Nhấn Radiobutton Red, Green đổi màu chữ Lập trình nhập tên có màu tương ứng với Radiobutton phù hợp
privatevoid raddo_CheckedChanged(object sender, EventArgs e) {
lblLapTrinh.ForeColor = Color.Red; txtNhapTen.ForeColor = Color.Red;
}
5 Nhấn CheckBox chữ đậm, nghiêng… đổi font chữ Lập trình nhập tên tương ứng
privatevoid chkdam_CheckedChanged(object sender, EventArgs e) {
lblLapTrinh.Font = newFont(lblLapTrinh.Font.Name, lblLapTrinh.Font.Size, lblLapTrinh.Font.Style ^ FontStyle.Bold); }
(15)Thiết kế giao diện hình bên
e
Viết lệnh để chương trình hoạt động sau:
Khi form vừa load lên thì:
Con trỏ đặt vị trí Name
Hình CDRom lớn ngược lại hình nhỏ ẩn
Hướng dẫn: hiệu chỉnh property Visible picSmall thành false (trong lúc thiết
kế)
Đưa chụơt vào hình CDRom (lớn, nhỏ) lên tooltip “Click Me”
Hiệu chỉnh TabIndex cho hợp lý (Tham khảo hình vào Menu View\Tab Order)
lblMessage
picBig
radRed
txtName
txtMessage
btnDisplay
btnClear
btnExit
chkVisible
(16)
Nhấn vào Button Display phím Enter gán nội dung ô Name Message
cho Label Message (lblMessage)
Hướng dẫn: lblMessage.Text = txtName.Text + " : " +
txtMessage.Text;
Nhấn vào Button Clear xóa nội dung Name Message
Hướng dẫn:
txtMessage.Clear ();
txtName.Clear();
Nhấn vào RadioButton (Red, Green …) đổi màu chữ Message thành màu
tương ứng
Hướng dẫn: lblMessage.ForeColor = Color.Red;
Ần Message (lblMessage) phụ thuộc vào giá trị Check box (chkVisible)
Hướng dẫn: lblMessage.Visible = chkVisible.Checked;:
Nhấn vào Button Exit phím Esc thi đóng chương trình
This.Close();
Click chuột vào hình CDRom hình ẩn hình CDRom khác lên
Hướng dẫn:
picBig.Visible = false;
picSmall.Visible = true;
Khi chương trình chạy hịan chỉnh hiệu chỉnh hai hình CDRom chồng lên
sao cho đồng tâm
Bài 7:
Mục đích:
(17)Yêu cầu:
1 Khi chương trình vừa thực thi
a Form hiển thị hình
b Các đối tượng “neo” cho người dùng thay đổi kích thước
form đối tượng resize kích thước cho “dễ nhìn”
c picTurnOn hiển thị, picTurnOff ẩn bên picTurnOn
Khi người dùng đưa chuột vào picTurnOn xuất tip “Click me to
Turn OFF the Light!”, ngược lại picTurnOFF
Hướng dẫn: sử dụng component ToolTip
d Hiện tên mặc định vào ô Name
e Lable bên pictureBox hiển thị thông báo
“Jack Turn Off the Light ,please!”
Hướng dẫn:
private void FrmLightSwitcher_Load(object sender, EventArgs e) {
txtName.Text = "Jack";
lblHienThi.Text = txtName.Text + " Turn Off the Light ,please!”"; }
2 Khi người dùng Click lên picture picture phải ẩn đi, picture lại
xuất Đồng thời thay đổi nội dung label phù hợp
private void picTurnOn_Click(object sender, EventArgs e) {
picTurnOn.Visible = false; picTurnOFF.Visible = true;
lblHienThi.Text = txtName.Text +
" Turn Off the Light ,please!”";}
3 Nút Exit cho phép đóng ứng dụng
(18)Lập trình biến cố đối tượng tạo động lúc thực thi(run time)
Yêu cầu
Thiết kế form gồm button Add Remove Khi người sử dụng Click button
Add, chương trình phát sinh động button form (mỗi button Element thứ
n) Khi button Remove Click, button remove (Có thể hình
dung Stack) (xem hình)
Khi người dùng Click vào Element hiển thị trang thái Element lên
một label phía form (xem hình)
Gợi ý:
Xem hướng dẫn thực giáo trình
Bài 9:
Mục đích:
Sử dụng dialog cung cấp C#
Sử dụng RichTextBox
Yêu cầu
(19)Gợi ý:
Xem hướng dẫn thực giáo trình
Bài 10:
Mục đích:
Sử dụng đối tượng LinkLable liên kết đến WebSite, mở ứng dụng
Yêu cầu:
Using LinkLabel Controls (page 456 )
Gợi ý:
Xem hướng dẫn thực giáo trình
Bài 11:
(20)Gợi ý:
Xem hướng dẫn thực giáo trình
Bài 12:
Mục đích:
Sử dụng ListBox, CheckListBox, Combobox
Yêu cầu
Step by Step
Ex1: Using ListBox and CheckedListBox Controls (page 477)
(21)Gợi ý:
(22)Bài 13:
Mục đích:
Thao tác liệu số Listbox
Yêu cầu
Thiết kế form thực chức sau:
Khi người sử dụng nhập số vào textbox Enter nhấp vào nút cập nhật số thêm vào listbox, đồng thời nội dung textbox bị xóa focus chuyển textbox
Người dùng nhấn vào nút thực chức tương ứng nút
Gợi ý:
(23)Bài 14:
Mục đích:Yêu cầu
Thiết kế form thực chức sau
- Quy định form hiễn thị hình Khơng cho người sử dụng thay đổi kích thước form
- Quy định việc di chuyển Tab hợp lý
- Các ListBox phép chọn nhiều mục (kết hợp phím Shift, Control chuột) - Khi người sử dụng Click nút “Cập nhật” nhấn phím Enter mặt định nhập tên
sinh viên từ textbox vào danh sách lớp A (không chấp nhận liệu rỗng) Theo người sử dụng chọn lớp để cập nhật từ combobox lớp
- Các nút “>” “<” Click di chuyển tất mục chọn sang ListBox bên tương ứng
- Các nút “>>” “<<” Click di chuyển toàn mục sang Listbox bên tương ứng
(24)Bài 15:
Mục đích:
Sử dụng control Visual Studio
Yêu cầu
Step by step
Ex1: Using DomainUpDown and NumericUpDown Controls
Ex2: The MonthCalendar and DateTimePicker Controls
(25)Ex4: Using TabControl Controls
Gợi ý:
Xem hướng dẫn thực giáo trình (Page 491)
Bài 16:
Mục đích:
Xây dựng hệ thống menu : MainMenu ContextMenu(menu cảm ngữ
cảnh) (Page 498)
Yêu cầu
Step by Step
(26)Ex : Creating a Context Menu for a Form
Gợi ý:
Xem hướng dẫn thực giáo trình(page 498)
(27)Mục đích:
Sử dụng menu
Yêu cầu
Thiết kế bổ sung hệ thống menu cho Bài tập số 14
- Các menu item thực chức tương tự button 14
- Menu “Thông tin” Click xuất messageBox, cho biết thơng tin sinh viên thức chương trình
Gợi ý:
Từ kiện memu item gọi lại kiện Button xử lý
Bài 18:
Mục đích:
Xây dựng ứng dụng đa form,
Sử dụng form MDI
Yêu cầu
(28)Creating an MDI Application (page 512)
Gợi ý:
Xem hướng dẫn thực giáo trình
Bài 19:
Mục đích:
Xây dựng ứng dụng kết hợp đối tượng statusBar
Yêu cầu
Step by step
(29)Gợi ý:
Xem hướng dẫn thực giáo trình
Bài 20:
Mục đích:
Xây dựng ứng dụng liên kết nhiềm form
Yêu cầu
Step by step
Creating an MDI Application (Page 512)
Gợi ý:
Xem hướng dẫn thực giáo trình
Bài 21:
Mục đích:
(30)Tạo form About
Yêu cầu
Tổ chức form mẫu
Gợi ý:
Thiết kế Form:
StartPosition thiết lập = CenterToScreen; WindowState thiết lập = MaximumSize;
Liên kết project có sẵn
Vào menu Project chọn <Add Existing Items> Chọn File cần Add vào chương trình (*.cs) Viết code để liên kết form
frmFormOld f = new frmFormOld(); f.MdiParent = this;
f.Show();
(31)Thiết kế Form:
FormBorderStyle thiết lập None StartPosition thiết lập CenterToScreen TopMost thiết lập = true
Thả vào form đối tượng Timer để điều khiển việc đóng form tự động Thiết lập thuộc tính : Enabled=True Interval = 10000 Trong kiện Timer_tick() gõ vào đoạn code
this.DialogResult = DialogResult.OK;
timer1.Enabled = false;
- Thay đổi code class Program.cs Viết lại hàm main sau
static void Main() {
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
frmFlashForm f = new frmFlashForm(); f.ShowDialog();
if (f.DialogResult == DialogResult.OK) {
Application.Run(new frmMain()); }
}
- Thiết kế Form About (tương tự form Splash)
Bài 22:
Mục đích:
(32)Step by step
creating aToolbar for a Form (page 503)
Gợi ý:
(33)Module
Nội dung kiến thức thực hành: + Các kiểu liệu C# + Cấu trúc điều khiển
Mục đích:
Sử dụng thành thạo kiểu liệu, cấu trúc điều khiển C#
Bài 1:
Thiết kế giao diện hình vẽ
Yêu cầu:
Khi form thực thi
o Tất text boxes labels rỗng
o Đặt focus vào text box Tên Hàng xác lập việc di chuyển Tab hợp lý (menu View\Tab Order)
o Form hiễn thị hình (StartPosition =CenterScreen )
o Thiết lập nút Thanh Tóan nhận kiện phím Enter (AcceptButton), nút Tiếp
nhận kiện phím ESC (CancelButton)
(34)o Các text box Số lượng, Đơn Giá buộc phải có giá trị cho phép nhập số
Thêm vào đó:
Số lượng >=0 (int) Đơn giá >=0 (decimal)
Cung cấp Message Box khác để thông báo rõ ràng cho việc liệu bị nhập sai
o Tính toán cho mặt hàng xuất kết label Thành Tiền Thành tiền = số lượng * đơn giá;
Nút Tiếp:
o Xóa nội dung textbox label o Đặt focus vào textbox Nút Kết Thúc:
o Phát sinh Messagebox hỏi lại việc đóng form có xác không, người sử
dụng xác nhận nút Yes cho thóat chương trình
(35)Bài 2:
Thiết kế viết chương trình tính diện tích hình chữ nhật Phải kiểm tra liệu nhập vào từ bàn phím cách chặt chẽ
Bài 3:
(36)Bài
Thiết kế xử lý chương trình giải phương trình bậc 1,
Bài 5:
Mục đích:
Sử dụng số, biến toàn cục (module variable)
Yêu cầu
Thiết kế giao diện hình bên
Yêu cầu:
1) Sinh viên tự thiết kế đối tượng form cho phù hợp 2) Thiết đặt TabIndex cho hợp lý
3) Nhấn nút Tính Enter tính thơng tin lên tương ứng 4) Nhấn vào Exit Esc chương trình
(37)Bài 6:
Mục đích:
Sử dụng số, biến tồn cục (module variable)
Yêu cầu
Thiết kế giao diện hình bên
1 Khi chương trình vừa thực thi:
- Form hiển thị hình Canh lề phải cho control chứa liệu số, thiết lập hệ thống Tab hợp lý
- Thiết lập nút “Tính TT” nhận phím Enter thay cho kiện Click Yêu cầu cài đặt
Tên KHách hàng không phép rỗng Số lượng sách số nguyên dương
Mỗi sách bán với giá 20000
- Nút “Tính TT”: tính thành tiền xuất kết lên lable Thành tiền Thành tiền = Số lượng * Đơn Giá ;
(38)- Nút “Tiếp”:
- Xóa nội dung control gourpbox “Hóa Đơn” - Đặt focus cho Textbox “Tên Khách Hàng”
- Nút “Thống Kê”: Tính hiển thị kết lable groupbox “Thống kê” - Nút “Kết Thúc”: Phát sinh messageBox hỏi lại người dùng có thật muốn đóng
ứng dụng hay khơng?
Bài 7:
Viết chương trình nhập vào năm dương lịch xuất năm âm lịch tương ứng Biết : Năm Âm = Can + Chi;
Can = Năm dương % 10 :
0
Canh Tân Nhâm Quý Giáp Ất Bính Đinh Mậu Kỷ
Chi = dương lịch % 12 :
0 10 11
Thân Dậu Tuất Hợi Tý Sửu Dần Mẹo Thìn Tỵ Ngọ Mùi
//Khai bao bien
(39)
//1 kiem tra khac rong //2 Gan Gia tri
//3 kiem tra số dương
//tinh can
switch (intNamDuong % 10) {
case 0:
strCan = "Canh"; break;
case 9:
strCan = "Kỷ"; break;
}
//Tinh Chi
switch (intNamDuong % 12) {
case 0:
strChi = "Thân"; break;
case 11:
strChi = "Mùi"; break;
}
(40)(41)Bài 8:
Chương trinh quay số may mắn
Thiết kế giao diện hình - Groupbox chứa labe
- Label dùng để hiễn thị kết (canh lề pải) - button hình vẽ
Yêu cầu
Khi chương trình vừa bắt đầu - label hiễn thị số - Máy tính có 100 đồng - Người chơi có 100 đồng Khi Click nút quay số
Luật chơi:
Mỗi lần quay số, người chơi phải trả trước 30 đồng, tương ứng máy cộng thêm 30 đồng Và người chơi có số tiền 30 đồng khơng phép chơi tiếp
Nếu lần quay số 7, người chơi thưởng sau
- Nếu ô số (random từ đến 8), thưởng 100 đồng + 50% số tiền máy
- Nếu ô số số 7(random từ đến 9), người chơi thưởng 30 đồng + 50% tiền máy
- Nếu ô số số 7(random từ đến 10), người chơi thưởng 10 đồng;
(42)Nút game
Cho phép lược chơi hòan tòan (set lại tền chơi tiền máy 100)
Hướng dẫn: //Khai báo biến
decimal tienmay = 100; decimal tiennguoi = 100;
//Xử lý kiện timer
privatevoid timer1_Tick(object sender, EventArgs e) {
decimal tienthuong; int so;
int so3; int so2;
timer1.Interval += 5;//tăng giá trị timer //tạo số ngẫu nhiên
Random ran = newRandom(); so = ran.Next(0, 8);
so2 = ran.Next(0, 9); so3 = ran.Next(0, 10);
(43)lblSo3.Text = so3.ToString();
//kiểm tra số ngẫu nhiên vừa tạo có phải số hay khơng
if (timer1.Interval > 200) // điều kiện dừng timer
{
timer1.Stop(); if (so == 7) {
//tính tiền thưởng
//tính tiền người chơi nhận //tính tiền máy
tienthuong = 100 + (tienmay * 50) / 100; tiennguoi = tiennguoi + tienthuong;
tienmay = tienmay - (tienmay * 50) / 100; //xuất thông báo
MessageBox.Show("Bạn thưởng " + tienthuong + " đồng", "Lucky
Seven !");
}
if (so2 == 7) {
//tính tiền thưởng
//tính tiền người chơi nhận //tính tiền máy
}
if (so3 == 7) {
//tính tiền thưởng
(44)}
//hiễn thị kết
lblTienNguoiChoi.Text = tiennguoi.ToString(); lblTienMay.Text = tienmay.ToString();
} }
//xử lý nút quay số
privatevoid btnQuaySo_Click(object sender, EventArgs e) {
if (tiennguoi >= 30)//kiểm tra người chơi có đủ tiền khơng {
timer1.Enabled = true;//kích hoạt timer
timer1.Interval = 2;//quy định thời gian tái kích hót timer tienmay = tienmay + 30;//tăng tiền MÁY
tiennguoi = tiennguoi - 30;//giảm tiền người chơi
//hiễn thị kết hình
}
Else//khơng cịn đủ tiền: over Game
{
// Thông báo chơi tiếp cho không đủ tiền // Khóa timer
// khóa nút quay số
(45)Bài 9:
Viết chương trình cho phép phát sinh số ngun thuộc [0,9], sau cho người dùng đốn số chương trình kết xem người dùng có đốn số phát sinh hay khơng
HD: Dùng lớp Random để phát sinh số ngẫu nhiên
Bài 10:
Thiết kế giao diện trình bày sơ đồ chỗ ngồi rạp chiếu phim giúp người sử dụng chọn vị trí muốn mua (xem hình bên dưới) Trên sơ đồ thể vị trí bán vé vị trí chưa bán vé cách thể màu khác (ghế chưa bán vé màu trắng, ghế bán vé màu vàng, ghế chọn màu xanh)
Khi khởi động, ứng dụng phải nằm hình Khơng cho phép người dùng thay đổi kích thước form
Khi người sử dụng nhấp chuột vị trí sơ đồ thì:
o Nếu vị trí chưa bán vé đổi màu vị trí sang màu xanh biết vị trí chọn
o Nếu vị trí chọn (có màu xanh) đổi màu vị trí trở màu trắng
o Nếu vị trí bán vé xuất thông báo cho người sử dụng biết thông qua messageBox
Sau chọn vị trí người sử sụng nhấn vào nút CHỌN HỦY BỎ Nếu click vào nút CHỌN (hoặc nhấn phím Enter) thì:
Đổi màu vị trí chọn (màu xanh) sơ đồ sang màu vàng (cho biết vị trí bán vé) xuất lên label thành tiền phải trả cho số vé mua ( giả sử giá vé 100đ/ghế)
Nếu click vào nút HỦY BỎ (hoặc nhấn phín ESC) thì:
(46)Bài 11:
Hãy tạo Project dùng để quản lý thuê máy phòng máy có giao diện
yêu cầu
như sau:
o Khi form vừa load lên hình
CheckBox Bắt đầu có Enabled=True
CheckBox Kết thúc có Enabled=False
Các Label có Caption= rổng
o Khi người sử dụng Click vào ChechBox Bắt Đầu
máy thuộc tính value =1 thì:
Hiện Giờ lên Label bắt đầu máy
tương ứng
Cho thuộc tính Enabled CheckBox Bắt đằu
=False
Cho thuộc tính Enabled CheckBox Kết thúc
=True
o Khi người sử dụng Click vào ChechBox Kết thúc máy thuộc tính
value =1 thì:
Hiện Giờ lên Label Kết thúc máy tương ứng
Dựa vào Giờ Phút (không cần quan tâm đến số giây) label Bắt
đầu Kết thúc tính số tiến phải trả, dùng Msgbox
để thông báo cho người sử dụng hình bên (tiền thuê
máy 3000đ/giờ)
Xóa nội dung Label Bắt đầu Kết thúc
Cho thuộc tính Enabled CheckBox Bắt đằu =True
Cho thuộc tính Enabled CheckBox Kết thúc =False
Cho thuộc tính Value CheckBox Bắt đằu =0
Cho thuộc tính Value CheckBox Kết thúc =0
Khi người sử dụng Click vào nút Dừng chương trình kiểm tra có máy
thuê phải nhắc nhở người sử dụng MsgBox, người sử dụng thật muốn
kết thúc dừng chương trình
Bài 12:
Hãy tạo Project dùng để quản lý th máy phịng máy có giao diện
yêu cầu sau:
o Khi form vừa load lên hình
(47)o Khi người sử dụng click vào image máy máy thì:
Nếu máy chưa thuê:
Đổi picture image thành hình Đồng hồ
Hiện vào label bắt đầu máy (label phía trên)
Nếu máy thuê:
Hiện vào label Kết thúc máy (label phía dưới)
Dựa vào Giờ Phút (không cần quan tâm đến số giây) label Bắt
đầu Kết thúc tính số tiến phải trả, dùng Msgbox để thông báo (tiền thuê máy
là 3000đ/giờ)
Đổi picture image thành hình Máy tính
(48)Module
Nội dung kiến thức thực hành:
+ Xử lý ngọai lệ (Error Handling for the User Interface) + Xử lý lỗi nhập liệu (VALIDATING USER INPUT)
Bài :
Mục đích:Sử dụng lớp Exception đề bẩy lỗi chương trình Sử dụng MessageBox để hiển thị thông báo lỗi
Yêu cầu:
Viết chương trình tính số nhiên liệu tiêu thụ trung bình theo giao diện sau”
Phải bắt lỗi chặc chẽ trường hợp sau:
- Số dặm đường, số gallon tiêu thụ số dương - Lỗi tràn số
- Lỗi chia cho số - …
Hướng dẫn :
Giáo trình trang
(49)Mục đích:
Sử dụng lớp Exception đề bẩy lỗi chương trình Sử dụng MessageBox để hiển thị thông báo lỗi Yêu cầu:
Viết lại 1, sử dụng đối tượng ErrorProvider để hiệ thị thông báo lỗi control
Bài :
Mục đích:Sử dụng lớp Exception đề bẩy lỗi chương trình Sử dụng finally Block
Yêu cầu:
Thiết kế giao diện hình bên Khi người dùng Click nút “Save”, chương trình lưu lại nội dung TextBox save với tên nhập vào trừ textbox name
Lưu ý:
Chương trình phải thức việc đóng file bất kẻ có xảy lỗi hay khơng Hương dẫn:
(50)Bài :
Mục đích:Sử dụng Component ErrorProvider kết hợp kỷ thuật Validation control Yêu cầu:
Viết lại tập sử dụng chặn lỗi người dùng kỹ thuật Validation
Lưu ý: Khi có lỗi nhập liệu Textbox giữ focus khơng cho thực tính tóan, phải cho người dùng Click nút đóng form
Hướng dẫn:
Thiết lập thuộc tính CausesValidation Form False
Khai báo thêm biến tòan cục để kiểm tra người dùng Click đóng form private bool closingFlag = false;
Trong kiện đóng form bổ sung code
(51)Bài :
Mục đích:Lập trình với lớp Exception thuộc khơng gian System.IO.IOException
Sử dụng component OpenFileDialog, SaveFileDialog, ColorDialog, and FontDialog Yêu cầu:
Lưu ý: để đọc/ghi file cần bổ sung khơng gian “using System.IO” Xem giáo trình trang
Bài :
Mục đích:Sử dụng kỹ thuật Validating User Input Yêu cầu:
Thiết kế form login hình bên
Xuất thông báo login hợp lệ nội dung textbox “UserName” “Password” khác rỗng khỏang trắng bên Ngược lại xuất thông báo lỗi cụ thể thông qua ErrorProvider
Cho phép người dùng đóng Form nút “Cancle” xảy lỗi trường liệu
(52)Bài :
Mục đích:Sử dụng lớp Exception đề bẫy lỗi chương trình
Sử dụng Component ErrorProvider kết hợp kỹ thuật Validation control Yêu cầu:
(53)Module
Nội dung kiến thức thực hành:+ Tạo ứng dụng consoleApplication windows form + Sử dụng Mảng danh sách
Bài 1:
Mục đích:
Xây dựng mảng chiều ConsoleApp Yêu cầu:
Nhập mảng chiều có N phần tử (N<20) (các giá trị phát sinh ngẫu nhiên [-100, 100])
a Tìm số lớn nhất, nhỏ mảng Xuất vị trí giá trị
b Đếm xem mảng có số dương, số âm, số c Nhập vào số nguyên x, kiểm tra xem x có mảng hay khơng
d Tìm số dương nhỏ mảng, số âm lớn mảng e In dãy giảm dần
Bài 2:
Mục đích:
Xây dựng mảng chiều ConsoleApp Yêu cầu:
Nhập mảng chiều có N x N phần tử (N<20) (các giá trị phát sinh ngẫu nhiên [-100,100])
a Tìm số lớn nhất, nhỏ mảng Xuất vị trí giá trị
(54)d Tính tổng phần tử đường chéo chính, chéo phụ
e Tính tổng phần tử nằm bên đường chéo chính, chéo phụ f Tìm số lớn dịng mảng
Bài 3:
Mục đích:
Sử dụng mảng chiều Yêu cầu:
Thiết kế Form hình sau:
Trong group box chứa label, để hiễn thị mảng kết xử lý button tương ứng
Hướng dẫn :
1 khai báo mảng tòan cục, với kích thước mảng MAX_SIZE số
(55)3 Xây dựng phương thức theo yêu cầu
4 Gọi sử dụng phương thức button
Bài 4:
Mục đích:
(56)Nhập mảng chiều có N x N phần tử (N<20) (các giá trị phát sinh ngẫu nhiên [-100,100]) Tìm số dương nhỏ mảng
Ví dụ:
-9 -3 -30
Số dương nhỏ mảng
Bài 4:
Mục đích:
Sử dụng mảng hai chiều ConsoleApp Yêu cầu:
Nhập mảng chiều có N x N phần tử (N<20) (các giá trị phát sinh ngẫu nhiên [-100,100]) Hãy trích mảng thành hai mảng con: mảng chứa số dương, mảng chứa số âm (giữ ngun thứ tự dịng)
Ví dụ:
-3 -30
Bài 5:
Mục đích:
Sử dụng
Arraylist,
Yêu cầu:
(57)- Khi nhập vào combobox từ cần tra chương trình dị tìm đến chữ khớp với ký tự gần
- Khi nhấn nút Enter Doubleclick vào từ cần tra nghĩa tương úng từ hiển thị vào textbox bên phải tương ứng
- Danh sách từ lưu sẵn vào object (word) Arraylist Hướng Dẫn:
(58)Module
Nội dung kiến thức thực hành:+ Tạo ứng dụng theo mơ hình hướng đối tượng (OOP)
Bài 1:
Yêu cầu:
Thiế kế class Hóa Đơn đáp ứng yêu cầu xử lý giao diện Hướng dẫn:
1 Tạo field private:
Tên hàng, số lượng, đon giá
2 Tạo field static:
Số hóa đon, doanh thu
3 Tạo property thông thường
4 Tạo property ReadOnly Field static Tạo Contructor
(59)Bài 2:
Yêu cầu:1 Thiết kế Form hình sau:
2 Thiết kế class Hóa Đơn đáp ứng yêu cầu xử lý giao diện
Hướng dẫn:
(60)o Họ tên, địa chỉ, điện thoại, giá tiền, màu xe Tạo field static:
o Số khách hàng, số khách mua xe đen, doanh thu Tạo property thông thường
Tạo property ReadOnly Field static Tạo Contructor
Ví dụ:
Xây dựng phương thức xử lý tính tốn
(61)Module
Nội dung kiến thức thực hành: Sử dụng chuỗi (String)
Bài 1:
Viết chương trình có giao diện thực yêu cầu sau:
Khi form load lên có nút nhập liệu , nút kết thúc sử dụng được,
nút nhập liệu focus
Khi nút nhập liệu ấn nút lệnh khác sáng lên xoá nội dung
của Textbox nhập liệu Setfocus cho Textbox ( sử dụng phương thức Setfocus)
Khi nút ( ngoại trừ nút Nhập Dữ Liệu nút Kết Thúc) chọn kết
quả thị lên Textbox nút lệnh bị mờ (ngay nút vừa nhấn)
(62)Bài 2:
T