Nếu bạn chán học lập trình nói chung và ngôn ngữ C nói riêng do lười đọc tài liệu tham khảo, xem các video, không có nhiều thời gian học, không tổng hợp được các kiến thức thì đây là tài liệu có ích cho bạn.
KIẾN THỨC C# CƠ BẢN THÔNG QUA ỨNG DỤNG THỰC TẾ DÀNH CHO NGƯỜI LƯỜI HỌC – PHẦN I CHƯA CÓ CƠ SỞ DỮ LIỆU Giới thiệu Nếu bạn chán học lập trình nói chung ngơn ngữ C# nói riêng lười đọc tài liệu I - tham khảo, xem video, khơng có nhiều thời gian học, khơng tổng hợp - kiến thức tài liệu có ích cho bạn Bạn khơng nên tải Project lớn tham khảo kiến thức chưa hiểu sâu Tài liệu tổng hợp kiến thức chia nhỏ thành giai đoạn kiến thức quan trọng cho bạn dễ học dễ nắm bắt Từ ứng dụng ví dụ tài liệu - bạn code ứng dụng khác tương tự Rất mong góp ý: huynhdanghaiau1989@gmail.com II Ứng dụng khơng có sở liệu Lập trình console: Ứng dụng tra cứu từ điển Tổng hợp kiến thức sau: Biến, kiểu liệu, ghi chú, cấu trúc lặp, cấu trúc điều kiện, hàm bản, hàm xử lý chuổi, mảng, xử lí biệt lệ try-catch a Mơ tả ứng dụng: Nhập từ mới, tra cứu nghĩa từ, sửa từ xóa từ b Thực hành code ứng dụng: Bước 1: Viết chương trình static void Main(string[] args) { Console.OutputEncoding = Encoding.UTF8; //Để xuất tiếng việt dos while (true) //Vòng lặp ln ln { menu(); //gọi hàm Menu Console.WriteLine("Bạn có muốn hay khơng?(y/n)"); string s = Console.ReadLine(); //Nhận giá trị nhập từ bàn phím if (s == "y") //Nếu nhập y break khỏi vòng lặp break; // Nếu bạn nhập khác chữ y chương trình } //quay lại menu tiếp tục Console.WriteLine("Bye -Bye"); //thốt khỏi vòng lặp từ Bye -Bye Console.ReadLine(); //Chờ ấn phím chương trình } Bước 2: Viết hàm menu() private static void menu() { Console.WriteLine("1 Tạo từ mới");//WriteLine xuất giá trị xong xuống hàng Console.WriteLine("2 Sửa từ"); Console.WriteLine("3 Tra cứu từ"); Console.WriteLine("4 Xóa từ"); Console.WriteLine("Bạn chọn chức nào:"); Try //Try catch để xử lí biệt lệ chương trình có lỗi cụ thể { // khơng bị mà tiếp tục, ví dụ: bạn nhập vào // kdjakdkdjf Enter chương trình báo lỗi tiếp tục int cn = int.Parse(Console.ReadLine()); //Nhận giá trị nhập từ bàn phím switch (cn) //sau ép thành kiển int dùng { } // dùng int.Parse case 1: //Nếu nhập vào hàm tạo từ TaoTuMoi(); break; case 2: //Nếu nhập vào hàm sửa từ SuaTu(); break; case 3: //Nếu nhập vào hàm tra cứu TraCuu(); break; case 4: //Nếu nhập vào hàm xóa từ XoaTu(); break; default: // trường hợp khơng phải nhập: 1, 2, 3, Console.WriteLine("Bạn chọn không đúng"); //sẽ thơng báo break; // khỏi vòng lặp } } catch(Exception ex) //Thông báo lỗi bạn nhập tào lao { // bạn thử nhập kdfdjaj để kiểm tra Console.WriteLine("Lỗi !",ex.Message); } Lập trình console - Sử dụng thư viện C# 2.1 Thư viện toán học: static void Main(string[] args) { Console.OutputEncoding = Encoding.UTF8; //Hiển thị tiếng việt Dos Console.Write("Mời bạn nhập vào số a: "); //Hiện thông báo mời bạn nhập int a = int.Parse(Console.ReadLine()); //Nhận giá trị từ bàn phím Console.WriteLine("Căn bậc {0} = {1}",a, Math.Sqrt(a)); // {0} bạn sử dụng kết a chèn vào vị trí số {0} {1} bạn sử dụng hàm Math.Sqrt(a) chèn vào vị trí số {1}, bạn chạy lên để hiểu rỏ thêm Console.ReadLine(); //Bấm phím chương trình } 2.2 Thư viện Random: static void Main(string[] args) { Console.OutputEncoding = Encoding.UTF8; Random rd = new Random(); int x = rd.Next(101); //muốn xuất đến 100 ghi 101 trừ đơn vị, giả sử bạn muốn xuất từ đến 10 ghi 11 Console.WriteLine("Máy xuất số ngẫu nhiên là: {0}", x); } 2.3 Thư viện DateTime: static void Main(string[] args) { Console.OutputEncoding = Encoding.UTF8; Console.WriteLine("Mời bạn nhập vào năm sinh: "); string s = Console.ReadLine(); //Nhận giá trị ngày, tháng, năm từ bàn phím DateTime brithday = DateTime.Parse(s); //chuyển kiểu chuổi kiểu Datetime gán cho giá trị cho biến birthday Console.WriteLine("Bạn sinh ngày: " + brithday.Day); //Xuất ngày Console.WriteLine("Bạn sinh tháng: " +brithday.Month); //Xuất tháng Console.WriteLine("Bạn sinh năm: " +brithday.Year); //Xuất năm Console.ReadLine(); } Lập trình Windows Form hướng đối tượng: Ứng dụng quản lý sản phẩm Thiết kế giao diện Gồm giao diện tên nút lệnh sau: Phần màu đỏ tên 3.1 - Button: btnQuanLyDanhMuc TextBox: cboDanhMuc ListBox: lstSanPham TextBox: txtMaSp TextBox: txtTenSP TextBox: txtDonGia TextBox: txtXuatXu TextBox: txtHanDung Button: btnLuu Button: btnThoat Button: btnXoa TextBox: txtMaDanhMuc ListBox: lstDanhMuc TextBox: txtTenDanhMuc Button: btnLuu Button: btnXoa Button: btnThoat 3.2 Tạo lớp sản phẩm public class SanPham { public string MaSP { get; set; } public string tenSP { get; set; } public double DonGia { get; set; } public string XuatXu { get; set; } public DateTime HanDung { get; set; } public DanhMuc nhom { get; set; } //sản phầm phải biết thuộc danh mục public override string ToString() //Phương thức ToString để xuất thông tin lớp { return this.tenSP; } } 3.3 Tạo lớp danh mục public class DanhMuc { private Dictionary dsSp = new Dictionary(); //Tạo mảng Dictionary để lưu danh sách sản phẩm // Có đối số cần lưu ý: String mã, khóa mảng (key), SanPham thơng sản phẩm có mã String public string MaDM { get; set; } public string TenDM { get; set; } public void ThemSanPham(SanPham sp) { if (this.dsSp.ContainsKey(sp.MaSP) == false) // Hàm kiểm tra thêm vào có bị trung mã có mảng từ trước khơng dung ContainKey để kiểm tra { this.dsSp.Add(sp.MaSP, sp); //chỉ add danh sách sản phẩm vào thơi chưa có trả thơng tin sản phẩm vừa add nhóm danh mục sp.nhom = this; //Ứng với sản phầm phải biết thuộc nhóm } } public Dictionary Sanphams //Trả danh sách sản phẩm { get { return this.dsSp; } set { this.dsSp = value; } } public override string ToString() //xuất tên danh mục { return this.TenDM; //để lúc gọi hàm HienThiDanhMucLenListBox() tên thôi, hàm frmDanhMuc } } 3.4 Viết lệnh cho Button From frmDanhMuc public partial class frmDanhMuc : Form { public static bool CoThayDoi = false; //Tạo biến CoThayDoi = false public frmDanhMuc() //Mặc định { InitializeComponent(); } private void btnLuu_Click(object sender, EventArgs e) { DanhMuc dm = new DanhMuc(); // tạo lớp dm dm.MaDM = txtMaDanhMuc.Text; //gán MaDM=kết nhập ô txtDanhMuc dm.TenDM = txtTenDanhMuc.Text; //gán TenDM=kq nhập ô txtTenDanhMuc frmSanPham.danhSachDM.Add(dm); //danh sách dm sử dụng cho hình HienThiDanhMucLenListBox(); //gọi hàm hiển thị lên listbox txtMaDanhMuc.Text = ""; txtTenDanhMuc.Text = ""; txtMaDanhMuc.Focus(); CoThayDoi = true; //Nếu có xóa gán CoThayDoi=true } void HienThiDanhMucLenListBox() //tạo hàm hiển thị danh mục lên listbox { lstDanhMuc.Items.Clear(); foreach(DanhMuc dm in frmSanPham.danhSachDM) { lstDanhMuc.Items.Add(dm); } } private void lstDanhMuc_SelectedIndexChanged(object sender, EventArgs e) { if (lstDanhMuc.SelectedIndex != -1) //khác -1 chọn { DanhMuc dm = lstDanhMuc.SelectedItem as DanhMuc; //kiểm tra txtMaDanhMuc.Text = dm.MaDM; //Hiển thị thông tin ngược lại lên ô text frmDanhMuc chọn list danh mục vừa tạo txtTenDanhMuc.Text = dm.TenDM; } } private void btnXoa_Click(object sender, EventArgs e) { if (lstDanhMuc.SelectedIndex != -1) //Khi chọn { DanhMuc dm = lstDanhMuc.SelectedItem as DanhMuc; lstDanhMuc.Items.Remove(dm); //Xóa danh mục CoThayDoi = true; //Nếu có xóa gán CoThayDoi=true } } private void btnThoat_Click(object sender, EventArgs e) { //Ở để lệnh Close() nhiên ko đảm bảo yêu cầu dùng lệnh if (frmDM.ShowDialog() == DialogResult.OK) frmSanPham, hộp thoại danh mục lên phải có thao tác ứng với lệnh DialogResult.Ok if (CoThayDoi == true) DialogResult = DialogResult.OK; //Có thay đổi trả Ok để bên frmSanPham hứng lấy else DialogResult = DialogResult.Cancel; //Khơng thay đổi đóng chương chình } private void frmDanhMuc_Load(object sender, EventArgs e) { HienThiDanhMucLenListBox(); //Tạo kiện frm load mở hộp thoại danh mục lên lấy liệu combobox bên frmsanpham thêm vào truyền qua } } 3.5 Viết lệnh cho Button From frmSanPham public partial class frmSanPham : Form { public static List danhSachDM = new List(); //Tạo danh sách danh mục bên frmSanPham sau đẩy qua bên frmDanhmuc cho sử dụng chung List danhSachSP = new List(); public frmSanPham() { InitializeComponent(); } private void groupBox2_Enter(object sender, EventArgs e) { } private void btnLuu_Click(object sender, EventArgs e) { if (cboDanhMuc.SelectedIndex == -1) //=-1 chưa chọn { MessageBox.Show("Chưa chọn danh mục"); return; } DanhMuc dm = cboDanhMuc.SelectedItem as DanhMuc; //Lấy đối tượng danh mục từ list combobox SanPham sp = new SanPham(); sp.MaSP = txtMaSP.Text; sp.tenSP = txtTenSP.Text; sp.DonGia = double.Parse(txtDonGia.Text); //Chuyển thành kiểu double sp.XuatXu = txtXuatXu.Text; sp.HanDung = dtpHanDung.Value; //Kiểu datetime dùng value dm.ThemSanPham(sp); //đẩy sản phẩm vào danh mục danhSachSP.Add(sp); HienThiSanPhamLenGiaoDienListbox(); XoaTrangChiTietSanPham(); } void XoaTrangChiTietSanPham() //Tạo hàm bấm nút lưu rùi xóa thơng tin cũ, lần nhập sau đỡ thời gian { txtMaSP.Text = ""; txtTenSP.Text = ""; txtDonGia.Text = ""; txtXuatXu.Text = ""; txtMaSP.Focus(); //xóa xong chuyển trỏ chuột vào ô text mã sản phẩm } void HienThiSanPhamLenGiaoDienListbox() { lstSanPham.Items.Clear(); //xóa liệu cũ foreach (SanPham sp in danhSachSP) lstSanPham.Items.Add(sp); } private void btnQuanLyDanhMuc_Click(object sender, EventArgs e) { frmDanhMuc frmDM = new frmDanhMuc(); frmDanhMuc.CoThayDoi = false; //Mở frmDanhMuc biến CoThayDoi mặc định = if (frmDM.ShowDialog() == DialogResult.OK) { HienThiDanhMucLenComboBox(); //Tạo hàm để hiển thị danh mục lên combobox frmSanPham } } private void HienThiDanhMucLenComboBox() { cboDanhMuc.Items.Clear(); foreach (DanhMuc dm in danhSachDM) cboDanhMuc.Items.Add(dm); //thêm tất danh mục vào danh sách danh mục } private void btnXoa_Click(object sender, EventArgs e) { if (lstSanPham.SelectedIndex == -1) //Chưa chọn sản phẩm list sp { MessageBox.Show("Chưa chọn sản phẩm"); return; } SanPham sp = lstSanPham.SelectedItem as SanPham; DialogResult ret = MessageBox.Show( "Muốn xóa ["+sp.tenSP+"]", "Hỏi xóa", MessageBoxButtons.YesNo, MessageBoxIcon.Question); //hàm hiển thị thơng báo có icon mặc định c# if (ret == DialogResult.Yes) { danhSachSP.Remove(sp); HienThiSanPhamLenGiaoDienListbox(); XoaTrangChiTietSanPham(); } } private void btnThoat_Click(object sender, EventArgs e) { DialogResult ret = MessageBox.Show("Bạn có muốn hay khơng?", "Hỏi thốt", MessageBoxButtons.YesNo, MessageBoxIcon.Question); //Hiện thơng báo muốn hay khơng? if (ret == DialogResult.Yes) //Nếu chọn yes { Close(); } } private void lstSanPham_SelectedIndexChanged(object sender, EventArgs e) { if (lstSanPham.SelectedIndex == -1) // chưa chọn return; //Khơng làm SanPham sp = lstSanPham.SelectedItem as SanPham; //lấy danh sách sản phầm cboDanhMuc.Text = sp.nhom.TenDM; txtMaSP.Text = sp.MaSP; txtTenSP.Text = sp.tenSP; txtDonGia.Text = sp.DonGia+"";//chuyển doube thành chuổi cộng khoảng trống ký tự “” txtXuatXu.Text = sp.XuatXu; dtpHanDung.Value = sp.HanDung; } } HẾT PHẦN ... Sử dụng thư viện C# 2.1 Thư viện toán học: static void Main(string[] args) { Console.OutputEncoding = Encoding.UTF8; //Hiển thị tiếng việt Dos Console.Write("Mời bạn nhập vào số a: "); //Hiện thông. .. Lập trình Windows Form hướng đối tượng: Ứng dụng quản lý sản phẩm Thiết kế giao diện Gồm giao diện tên nút lệnh sau: Phần màu đỏ tên 3.1 - Button: btnQuanLyDanhMuc TextBox: cboDanhMuc ListBox:... phím Console.WriteLine("Căn bậc {0} = {1}",a, Math.Sqrt(a)); // {0} bạn sử dụng kết a chèn vào vị trí số {0} {1} bạn sử dụng hàm Math.Sqrt(a) chèn vào vị trí số {1}, bạn chạy lên để hiểu rỏ thêm