1. Trang chủ
  2. » Thể loại khác

Hướng dẫn thực hành - Lập trình Windows

102 78 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Hướng dẫn thực hành - Lập trình Windows Khối: Cao Đẳng Trung Cấp Năm 2012 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à  Các có dấu (*) tập nâng cao dành cho sinh viên giỏi Trang 1/102 Hướng dẫn thực hành - Lập trình Windows 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 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: + Mở Microsoft Visual Studio 2010 Trang 2/102 Hướng dẫn thực hành - Lập trình Windows 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: + Rào statement hàm Main chuyển sang dạng comment Trang 3/102 Hướng dẫn thực hành - Lập trình Windows + Viết lại hàm Main sau: static void 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 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 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 tổng hai số vừa nhập Xuất mà hình u cầu có dạng: Nhap So Thu Nhat A: ?? Nhap So Thu Hai B: ?? Tong cua ?? Va ?? La: ?? Ví dụ xem hình : Trang 4/102 Hướng dẫn thực hành - Lập trình Windows 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 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 TinhDienTich: + Khi chạy chương trình xuất yêu cầu nhập vào hai cạnh tứ giác vng xuất kết chu vi, diện tích… Xem hình: Trang 5/102 Hướng dẫn thực hành - Lập trình Windows 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 có nghiệm + xem hình để hiểu rõ yêu cầu  Hướng dẫn: Mở Microsoft Visual Studio 2010 tạo Console Application có Name PhuongTrinhBac1 Xuất yêu cầu nhập số từ bàn phím Trang 6/102 Hướng dẫn thực hành - Lập trình Windows a Khai báo biến chứa giá trị liệu nhập biến chứa Kết Quả tính được: int nSoA, nSoB; double dbKetQua; b Xuất hình yêu cầu nhập chiều thứ : Console.Write("Nhap so a: "); c Đọc truyền liệu vào biến: nSoA = Convert.ToInt32(Console.ReadLine()) d Làm tương tự với số thứ 2: Giải biện luận phương trình xuất kết : //nếu số a if (nSoA == 0) //và số b khác if(nSoB != 0) //thì xuất câu lệnh bên Console.WriteLine("Phuong trinh Vo Nghiem!"); // số b else //thì xuất câu lệnh khác Console.WriteLine("Phuong trinh Vo So Nghiem!"); //ngược lại số a khác else { //giải pt bậc bình thường x = -b / a //nhưng a, b số nguyên, chia số nguyên //nên ta phải chuyển a b thành kiểu số thực dbKetQua = -nSoB / (nSoA * 1.0); //Xuất kq vừa tính Console.WriteLine("Phuong trinh co nghiem x= " + dbKetQua); } //giữ kq tồn hình Console.ReadLine(); Trang 7/102 Hướng dẫn thực hành - Lập trình Windows 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 xy Math.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: Nhập liệu Giải biện luận phương trình bậc : ax2+bx+c=0 a Nếu a = : Giải pt bậc với b c b Nếu a !=0  Tính delta = b2 - * a * c i Delta < : pt vô nghiệm ii Delta = : pt có nghiệm kép iii x1 = x2 = -b / (2 * a) iv Delta > : pt có nghiệm phân biệt v x1 = (-b + √ vi x2 = (-b - √ ) / (2 * a) ) / (2 * a)  Sinh viên ý phương trình có trường hợp: vơ nghiệm, có nghiệm phân biệt, có nghiệm kép Xem hình để hiểu rõ yêu cầu: Trang 8/102 Hướng dẫn thực hành - Lập trình Windows  Hướng dẫn: Mở Microsoft Visual Studio 2010 tạo Console Application có Name PhuongTrinhBac2 Xuất yêu cầu nhập số từ bàn phím a Khai báo biến chứa giá trị liệu nhập biến chứa Kết Quả tính được: int nSoA, nSoB, nSoC; double dbX1, dbX2; b Xuất hình yêu cầu nhập chiều thứ : Console.Write("Nhap so a: "); c Đọc truyền liệu vào biến: nSoA = Convert.ToInt32(Console.ReadLine()) d Làm tương tự với số thứ b c: Giải, biện luận pt bậc xuất kết : //nếu số a if (nSoA == 0) { //biện luận giải pt bậc với số b số c } //ngược lại số a khác else { //truyền liệu cho biến Delta = b * b - * a * c dbDelt = Math.Pow(nSoB, 2) - * nSoA * nSoC; //biện luận dựa Delta if (dbDelt < 0) Trang 9/102 Hướng dẫn thực hành - Lập trình Windows Console.WriteLine("Phuong trinh vo nghiem!"); else //nếu Delta = 0, pt có nghiệm kép if (dbDelt == 0) { Tính X1 } //cịn Delta > 0, pt có nghiệm phân biệt else { dbX1 = ? dbX2 = ? //xuất kết vừa tính Console.WriteLine("Phuong trinh co nghiem phan biet:"); Console.WriteLine("x1= " + dbX1); Console.WriteLine("x2= " + dbX2); } } Console.ReadLine(); 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 Trang 10/102 Hướng dẫn thực hành - Lập trình Windows o Số khách hàng, số khách mua xe đen, tổng doanh thu  Tạo property thông thường  Tạo property ReadOnly Field static  Tạo Contructor //contructor ko tham số public clsThanhTien() { } //contructor có truyền tham số public clsThanhTien(string hoten, string diachi, string dienthoai, decimal giatien, bool muaxeden) { HoTen = hoten; DiaChi = diachi; DienThoai = dienthoai; GiaTien = giatien; MuaXeDen = muaxeden; }  Xây dựng phương thức xử lý tính tốn Tính phụ thu: a Nếu user check vào nút Xe Đen thu thêm 5% giá tiền b Nếu ko check trả giá trị c Code: public decimal phuThu() { if (MuaXeDen) return (GiaTien * 0.05M); else return 0; } Tính thành tiền: a Thành tiền = giá tiền + phụ thu + đơn giá b Khi tính thành tiền, ta đồng thời tăng property tổng khách hàng lên c Và kiểm tra radio Xe Đen có check hay ko, có tăng property KH mua xe đen lên d Và cộng dồn biến thành tiền property tổng doanh thu e Code: public decimal thanhTien() { decimal tt; tt = GiaTien + phuThu() + hamThue(); //mỗi lần method gọi, property tổng kh tăng TongKH++; //nếu radio Xe Đen check Trang 88/102 Hướng dẫn thực hành - Lập trình Windows //thì property Tổng kh mua xe đen tăng 1, ko thi giữ nguyên if (MuaXeDen) TongKHXeDen++; //cộng dồn biến th{nh tiền cừa tính v{o property tổng doanh thu TongDoanhThu += tt; return tt; }  Xây dựng button phần Design: Thiết lập button Tính private void btnTinh_Click(object sender, EventArgs e) { //dùng contructor có truyền tham số clsThanhTien obj = new clsThanhTien(txtHoTen.Text, txtDiaChi.Text, txtDienThoai.Text, Convert.ToDecimal(txtGiaTien.Text), radDen.Checked); //xuất c|c dối tượng label lblPhuThu.Text = string.Format("{0:N0} VND", obj.phuThu()); lblThue.Text = string.Format("{0:N0} VND", obj.hamThue()); lblThanhTien.Text = string.Format("{0:N0} VND", obj.thanhTien()); } Thiết lập button Thống Kê private void btnThongKe_Click(object sender, EventArgs e) { //gọi lại class đ~ tạo clsThanhTien obj = new clsThanhTien(); //xuất c|c đối tượng cần thiết class label //phải convert chúng sang kiểu string, ko b|o lỗi lblTongKH.Text = obj.TongKH.ToString(); lblTongKHXeDen.Text = obj.TongKHXeDen.ToString(); lblTongDoanhThu.Text = string.Format("{0:N0} VND", obj.TongDoanhThu); } Các button lại làm Module trước Module Nội dung kiến thức thực hành: Thao tác xữ lý Chuỗi (String) Trang 89/102 Hướng dẫn thực hành - Lập trình Windows Các Hàm Cơn Bản: String.Length(): Trã Về Đội Dài Chuỗi String String.ToUpper(): In Hoa Chuỗi String String.ToLower(): In Thường Chuỗi String String.IndexOf(„?‟): Trã Vị Trí Của ? Trong Chuỗi String String.Replace("?","?"): Thay Thế Chuỗi String.Substring(?): Cắt Chuỗi String Từ Vị Trí ? String.Trim(): Cắt Bỏ Tất Cả Khoản Trắng Dư Thừa Vị Trí Đầu Cuối Chuỗi String Bài 1: Viết chương trình có giao diện sau: txtNhapLieu txtKetQua btnNhapLieu btnInHoa btnDemTu1 Dong Yêu Cầu: Khi Chương Trình bắt đầu: Các Controls Button Nhập Dữ Liệu Button kết thúc chương trình thao tác Enable = true Các Controls lại bị hiệu lực Enable = false Khi Button Nhập Dữ Liệu Click: Trang 90/102 Hướng dẫn thực hành - Lập trình Windows Các Button Thao Tác chuỗi được thao tác Enable = true Button Nhập Dữ Liệu hiệu lực Enable = false Ta gọi hàm void KhoaHieuLucButton(? ?) Xoá nội dung Textbox Nhập Dữ Liệu Textbox Kết Quả đưa Trỏ Chuột vào Textbox Khi Các Buttons Thao Tác Chuỗi Click: Kết Quả sau xữ lý Chuỗi xuất Textbox Kết Quả Khi Button Làm Mới Click: Xóa nội dung Textbox Nhập Dữ Liệu Kết Quả Button Nhập Dữ Liệu Enable Các Button bị hiệu lực Enable = false (Trừ Button Thoát) Khi Button Thoát Click: Hiễn thị MessageBox hỏi người sử dụng có muốn đóng Chương Trình, Nếu người sử dụng đồng ý Chương Trình đóng Hướng Dẫn: Xây Dựng Các Control:  TextBox cho phép hiễn thị nhiều dòng (gán property Multiline=true) gồm: TextBox Nhập Dữ Liệu TextBox Kết Quả  11 Buttons Lệnh Xây dựng Button Nhập Dữ Liệu: Gợi Ý: Sử dụng thuộc tính Enable Controls, ta truyền giá trị cho hàm true/false để xác định control có hiệu lực Viết Hàm Hiệu Lực Các Controls void KhoaHieuLucButton(Boolean Giatri) { txtchuoigoc.Enabled = Giatri; txtChuoiKetQua.Enabled = Giatri; //Đảo Ngược Giá Trị True False btnNhapDuLieu.Enabled = !Giatri; btnLamMoi.Enabled = Giatri; btnInHoaDauMoiTu.Enabled = Giatri; btnInHoaDauMoiTu.Enabled = Giatri; btnInHoa.Enabled = Giatri; btnInThuong.Enabled = Giatri; btnDemSoTu.Enabled = Giatri; btnDemHoa.Enabled = Giatri; btnInNguyenPhuAm.Enabled = Giatri; btnDemKyTuThuong.Enabled = Giatri; btnDemTuMoiDong.Enabled = Giatri; } Method cho Button Nhập Dữ Liệu private void btnNhapDuLieu_Click(object sender, EventArgs e) { Trang 91/102 Hướng dẫn thực hành - Lập trình Windows //Truyền Tham Trị Cho Hàm KhoaHieuLucButton để bật Button Lệnh KhoaHieuLucButton(true); //Đưa Trỏ Chuột Vào TextBox Nhập Dữ Liệu txtchuoigoc.Focus(); } Method cho Button Làm Mới private void btnNhapDuLieu_Click(object sender, EventArgs e) { //Truyền Tham Trị Cho Hàm KhoaHieuLucButton để khóa Button Lệnh KhoaHieuLucButton(false); } Xây dựng Button In Hoa Đầu Mỗi Từ, In Hoa Chuỗi, In Thường Chuỗi: Gợi Ý: Ta sử dụng hàm xữ lý chuỗi trã giá trị kiểu chuỗi Sử dụng phương thức sau để đổi hoa đầu từ System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.ToTit leCase(s.ToLower()) Viết Hàm In Hoa Đầu Mỗi Từ string DoiChuoiInHoaDauMoiTu(string s) { //Sử Dụng Phương Thức Sau Để In Hoa Đầu Mỗi Từ return System.Threading.Thread.CurrentThread.CurrentCulture.TextInfo.ToTitleCase(s.ToLower()); } Method cho Button In Hoa Đầu Mỗi Từ private void btnInHoaDauMoiTu_Click(object sender, EventArgs e) { //Tạo Biến Để Chứa Chuỗi Gốc //Ta Sử Dụng Biến Để Không Làm Ảnh Hưởng Đến Chuỗi Gôc string s = txtchuoigoc.Text; //Ta Truyền Tham Biến Cho Hàm Để Lấy Trực Tiếp Kết Quả //Gán Kết Quả Vào TextBox Kết Quả txtChuoiKetQua.Text = DoiChuoiInHoaDauMoiTu(s); } Viết Hàm In Hoa Chuỗi void DoiInHoaChuoi(string s) { //Sử Dụng Phương Thức ToUpper() s = s.ToUpper(); } Method cho Button In Hoa Chuỗi private void btnInHoa_Click_1(object sender, EventArgs e) { //Tạo Biến Để Chứa Chuỗi Gốc //Ta Sử Dụng Biến Để Không Làm Ảnh Hưởng Đến Chuỗi Gôc string s = txtchuoigoc.Text; //Ta Truyền Tham Biến Cho Hàm Để Lấy Trực Tiếp Kết Quả DoiInHoaChuoi(s); Trang 92/102 Hướng dẫn thực hành - Lập trình Windows //Gán Kết Quả Vào TextBox Kết Quả txtChuoiKetQua.Text = s; } Tương tự xữ lý cho Button In Thưởng Chuỗi ta sử dụng phương thức ToLower() Xây dựng Button Đềm Số Từ Trong Chuỗi: Gợi Ý: Nếu ta có chuỗi “Cộng Hòa Xã Hội Chủ Nghĩa Việt Nam Độc Lập Tự Do Hạnh Phúc” Ta phải cắt hết khoản trắng thừa vị trí đầu, cuối, dấu xuống dòng “\r\n” chuỗi string lamDepChuoi(? ?) Sau cắt ta chuỗi với từ cách khoản trắng Ta tiếp tục cắt từ chuỗi cách khoản trắng, gán từ vào mãng chuỗi ta sử dụng phương thức chuoi.Split(' ') Kết số từ có chuỗi chiều dài mãng chuỗi Viết Hàm cắt bỏ Khoản Trắng Thừa cho Chuỗi string lamDepChuoi(string s) { //Cắt Bỏ Phần Thừa Ở Vị Trí Đầu Cuối Chuỗi s = s.Trim(); while (s.IndexOf(" ") > 0) //Sử Dụng Phương Thức Replace s = s.Replace(" ", " "); //Xuất Kết Quả Chuỗi Đã Được Làm Gọn return s; } Method cho Button Đếm Số Từ private void btnDemTu_Click(object sender, EventArgs e) { //Tạo Biến Để Chứa Chuỗi Gốc //Ta Sử Dụng Biến Để Không Làm Ảnh Hưởng Đến Chuỗi Gôc string s = txtChuoiGoc.Text; //Sử Dụng Hàm LamDepChuoi Để Cắt Bỏ Những Khoản Trắng s = lamDepChuoi(s); //Sử Dụng Phương Thức Replace Để Cắt Bỏ Dấu Xuống Dòng s = s.Replace("\r\n", " "); //Cắt Từng Từ Phân Cách Nhau Bởi Khoản Trắng //Gán Từng Từ Đó Vào Mãng Chuỗi string[] mangChuoi = s.Split(' '); //Xuất Kết Quả Bằng Cách Đếm Độ Dài Của Mãng Chuỗi txtChuoiKetQua.Text = "Có " + mangChuoi.Length + " từ chuỗi."; } Xây dựng Button Đềm Số Từ Trên Mỗi Dòng Chuỗi: Trang 93/102 Hướng dẫn thực hành - Lập trình Windows Gợi Ý: Nếu ta có chuỗi “Cộng Hòa Xã Hội Chủ Nghĩa Việt Nam Độc Lập Tự Do Hạnh Phúc” Ta phải cắt hết khoản trắng thừa vị trí đầu, cuối, dấu xuống dòng “\r\n” chuỗi Ta cắt dòng chuỗi gán vào mãng chuỗi gốc Sau ta duyệt phần từ mãng chuỗi gốc, phần từ mãng chuỗi dịng, tiếp tục cắt từ phần tử mãng chuỗi phân cách khoản trắng gán vào chuỗi kết Độ dài chuỗi Kết Quả số Ký Tự, số Dòng số phần tử mãng chuỗi gốc Ta Sử Dụng Lại Hàm cắt bỏ Khoản Trắng Thừa cho Chuỗi string lamDepChuoi(string s) Method cho Button Đếm Số Từ private void btnDemTuMoiDong_Click(object sender, EventArgs e) { //Tạo Biến Để Chứa Chuỗi Gốc //Ta Sử Dụng Biến Để Không Làm Ảnh Hưởng Đến Chuỗi Gôc string s = txtChuoiGoc.Text; //Tạo Biến Để Chứa Kết Quả Biến Để Đếm Số Dòng string ketQua = "", motDong=""; //Sử Dụng Hàm LamDepChuoi Để Cắt Bỏ Những Khoản Trắng s = lamDepChuoi(s); //Tạo Mãng Chuỗi Để Chứa Giá Trị \r\n Đại Diện Cho Xuống Dòng string[] chuanTach = new string[] { "\r\n" }; //Cắt Từng Dòng Trong Chuỗi Phân Cách Nhau Bởi Dấu Xuống Dòng //Gán Từng Dòng Vào Từng Item Trong Mãng Chuỗi Line string[] lines = s.Split(chuanTach,StringSplitOptions.RemoveEmptyEntries); //Chạy Từ Đầu Đến Cuối Mãng Chuỗi for (int i = 0; i < lines.Length; i++) { //Sử Dụng Hàm LamDepChuoi Để Cắt Bỏ Những Khoản Trắng Cho Item Thứ i Của Mãng Chuỗi Lines motDong = lamDepChuoi(lines[i]); //Cắt Từng Từ Trong Chuỗi Phân Cách Nhau Bởi Khoản Trắng //Gán Từng Dòng Vào Từng Item Trong Mãng Chuỗi mangChuoi string[] mangChuoi = motDong.Split(' '); //Xuất Kết Quả //Số Từ Trên Dòng Là Độ Dài Của Mãng Chuỗi mangChuoi ketQua += "Dòng thứ " + (i + 1).ToString() + " có số từ " + mangChuoi.Length + Environment.NewLine; } //Xuất Kết Quả TextBox Kết Quả txtChuoiKetQua.Text = ketQua; } Xây dựng Button Đềm Số Ký Tự Hoa, Đếm Số Ký Tự Thường Gợi Ý: Ta duyệt phần tử từ đầu chuỗi đến cuối chuỗi Nếu đếm Ký Tự Hoa ta ràng buộc điều kiện Trang 94/102 Hướng dẫn thực hành - Lập trình Windows if (chuoi[i] >= 'A' && chuoi[i] = 'A' && chuoi[i] = 'A' && chuoi[i] ='a' && chuoi[i]= 'a' && chuoi[i] 0) //Sử Dụng Phương Thức Replace s = s.Replace(" ", " "); //Xuất Kết Quả Chuỗi Đã Được Làm Gọn return s; } Method cho Button Đếm Số Từ Có Trong Chuỗi private void btnDemTu_Click(object sender, EventArgs e) { //Tạo Biến Để Chứa Chuỗi Gốc //Ta Sử Dụng Biến Để Không Làm Ảnh Hưởng Đến Chuỗi Gôc string s = txtChuoiGoc.Text; //Sử Dụng Hàm LamDepChuoi Để Cắt Bỏ Những Khoản Trắng s = lamDepChuoi(s); //Sử Dụng Phương Thức Replace Để Cắt Bỏ Dấu Xuống Dòng s = s.Replace("\r\n", " "); //Cắt Từng Từ Phân Cách Nhau Bởi Khoản Trắng //Gán Từng Từ Đó Vào Mãng Chuỗi string[] mangChuoi = s.Split(' '); //Xuất Kết Quả Bằng Cách Đếm Độ Dài Của Mãng Chuỗi txtChuoiKetQua.Text = "Có " + mangChuoi.Length + " từ chuỗi."; } Trang 98/102 Hướng dẫn thực hành - Lập trình Windows Bài 3: Bài 3: Viết chương trình có giao diện sau: Bước 1: Nhập Liệu Bước 2: Tìm Kiếm Và Thay Thế Bước 3: Hoàn Tất Thay Thế Trang 99/102 Hướng dẫn thực hành - Lập trình Windows Yêu Cầu: Khi Chương Trình bắt đầu: Các Controls Button Nhập Dữ Liệu Button kết thúc chương trình thao tác Enable = true Các Controls lại bị hiệu lực Enable = false Khi Button Nhập Dữ Liệu Click: Buttom Tìm Kiếm Thay Thế thao tác Enable = true Button Nhập Dữ Liệu hiệu lực Enable = false Ta gọi hàm void KhoaHieuLucButton(? ?) Xoá nội dung Textbox Nhập Dữ Liệu Textbox Kết Quả đưa Trỏ Chuột vào Textbox Khi Các Buttons Tìm Kiếm Thay Thế Được Click: Form Tìm Kiếm Thay Thế Được Bật Lên Trong Form có TextBox Tìm Kiếm TextBox Thay Thế Khi Đóng Form, Gọi Hàm Tìm Kiếm Thay Thế Chuỗi Trong TextBox Tìm Kiếm Bằng Chuỗi Trong TextBox Thay Thế Xuất Kết Quả Ra TextBox Kết Quả Khi Button Làm Mới Click: Xóa nội dung Textbox Nhập Dữ Liệu Kết Quả Button Nhập Dữ Liệu Enable Các Button bị hiệu lực Enable = false (Trừ Button Thoát) 10 Khi Button Thoát Click: Hiễn thị MessageBox hỏi người sử dụng có muốn đóng Chương Trình, Nếu người sử dụng đồng ý Chương Trình đóng Hướng Dẫn Xây dựng Button Tìm Kiếm Và Thay Thế: Gợi Ý: Mở Form Tìm Kiếm Thay Thế Nhập Chuỗi Cần Tìm Kiếm vào TextBox Tìm Kiếm Nhập Chuỗi Cần Thay Thế vào TextBox Thay Thế Lấy Giá Trị Tìm Kiếm Thay Thế Gán vào Biến Viết Hàm Tìm Kiếm Thay Thế Truyền vào Giá Trị Đó void timKiemThayThe(string chuoiGoc, string chuoiTimKiem, string chuoiThayThe) { //Tìm Kiếm Và Thay Thế Chuỗi bool ketQua = chuoiGoc.Contains(chuoiTimKiem); if (ketQua) { //Nếu Tìm Thấy //Dùng Hàm Replace Thay Thế Chuỗi chuoiGoc = chuoiGoc.Replace(chuoiTimKiem, chuoiThayThe); //Xuất Kết Quả Sau Khi Đã Thay Thế txtChuoiKetQua.Text = chuoiGoc; Trang 100/102 Hướng dẫn thực hành - Lập trình Windows } else //Nếu Tìm Thấy Thì Xuất Kết Quả Khơng Tìm thấy txtChuoiKetQua.Text = "Ko tìm thấy " + chuoiTimKiem + " chuỗi gốc."; } Method cho Button Tìm Kiếm Thay Thế private void btnTimKiem_Click(object sender, EventArgs e) { //Mở Form Tìm Kiếm Thay Thế frmTimKiemThayThe tktt = new frmTimKiemThayThe(); tktt.ShowDialog(); //Khai Báo Biến Chứa Chuỗi Gốc string strChuoiGoc = txtChuoiGoc.Text; //Khai Báo Biến Chứa Chuỗi Tìm Kiếm string strChuoiTimKiem = tktt.txtTimKiem.Text; //Khai Báo Biến Chứa Chuỗi Tìm Kiếm string strChuoiTimKiemThayThe = tktt.txtTimKiem1.Text; //Khai Báo Biến Chứa Chuỗi Thay Thế string strChuoiThayThe = tktt.txtThayThe1.Text; if (tktt.DialogResult == DialogResult.OK) //Xuất Kết Quả Tìm Kiếm Chuỗi timKiem(strChuoiGoc, strChuoiTimKiem); else //Xuất Kết Quả Thay Thế Chuỗi timKiemThayThe(strChuoiGoc, strChuoiTimKiemThayThe, strChuoiThayThe); } Bài 4: Viết chương trình có giao diện sau: Label Số GroupBox Số GroupBox Chữ Label Chữ Label Kết Quả Trang 101/102 Hướng dẫn thực hành - Lập trình Windows Yêu Cầu: Khi Chương Trình bắt đầu: Xố nội dung Label Nhập Dữ Liệu Khi Có Sự Kiện Key-Down Trên Form: Đổi Màu Nền Màu Chữ Của Label Trùng Với Phím Được Nhấn Gán Giá Trị Của Nút Được Nhấn Và Label Kết Quả Khi Có Sự Kiện Key-Up Trên Form: Đổi Màu Nền Màu Chữ Của Label Trùng1 Với Phím Được Thả Trở Lại Bình Thường Hướng Dẫn Xây Dựng Các Control:   Label Chữ Số Chứa Giá Trị Chữ Giá Trị Số Lable Kết Quả, Chứ Kết Quả Xây dựng Sự Kiện Key-Down Form: Gợi Ý: Duyệt tất Control Label Group Số Chữ Nếu Label.Text Trùng với e.KeyCode ta thực đổi màu Nền màu Chữ Label foreach (Label lbl in groupBox1.Controls) { //Duyệt Tất Cả Các Label Trong Group Box Số if (lbl.GetType().ToString() == "System.Windows.Forms.Label") if (lbl.Text == Convert.ToString((char)e.KeyCode)) { //Nếu label.text trùng với e.KeyCode //Đổi Màu Nền Chữ Label lbl.BorderStyle = System.Windows.Forms.BorderStyle.Fixed3D; lbl.BackColor = Color.Yellow; lbl.ForeColor = Color.Red; } } Sau ta sử dụng phương thức Append để thêm giá trị e.KeyCode Chuỗi Kết Quả, Gán chuỗi Kết Quả vào Label Kết Quả //Nếu Nhấn Phím Thì Ép Kiểu char cho e.KeyCode Chèn Vào Biến Kết Quả kq.Append((char)e.KeyCode); //Gán Kết Quả Vào Label Kết Quả lblKetQua.Text = kq.ToString(); Tương Tự, Key-Down ta Xây Dựng Cho Key-Up Form Nhưng gán tất thuộc tính Label trỡ lại Bình Thường Trang 102/102

Ngày đăng: 21/08/2020, 09:26

Xem thêm:

TỪ KHÓA LIÊN QUAN