Tài liệu luyện tập C# (P2) pptx

25 614 3
Tài liệu luyện tập C# (P2) pptx

Đ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

TRUNG TÂM TIN HỌC – AN QUỐC VIỆT public override double Dien_tich() { return mBan_kinh * mBan_kinh * PI; } public override double Chu_vi() { return 2 * mBan_kinh * PI; } 4. Thực hiện các bước tương tự để xây dựng lớp HINH_CHU_NHAT được dẫn xuất từ lớp HINH_HOC 5. Khai báo trong phương thức Main: Console.WriteLine("CHON LOAI HINH HOC"); Console.WriteLine("1. Hinh tron"); Console.WriteLine("2. Hinh chu nhat"); Console.Write("Ban chon loai nao: "); int loai = int.Parse(Console.ReadLine()); Console.WriteLine(""); if (loai == 1) { Console.Write("Nhap ban kinh cho hinh tron: "); double bankinh = double.Parse(Console.ReadLine()); HINH_TRON HT = new HINH_TRON(bankinh); Console.WriteLine(""); Console.WriteLine("Dien tich hinh tron: {0}", HT.Dien_tich()); Console.WriteLine("Chu vi hinh tron: {0}", HT.Chu_vi()); } else { Console.Write("Nhap chieu dai hinh chu nhat: "); double chieudai = double.Parse(Console.ReadLine()); Console.Write("Nhap chieu rong hinh chu nhat: "); double chieurong = double.Parse(Console.ReadLine()); HINH_CHU_NHAT HCN = new HINH_CHU_NHAT(chieudai, chieurong); Console.WriteLine(""); Console.WriteLine("Dien tich hinh chu nhat: {0}", HCN.Dien_tich()); Console.WriteLine("Chu vi hinh chu nhat: {0}", HCN.Chu_vi()); } Console.ReadLine(); 6. Thực thi chương trình và ghi nhận kết quả: (hình 5.2) GV : PHẠ M Á NH THI Ề U Trang 26/54 TRUNG TÂM TIN HỌC – AN QUỐC VIỆT 5.3. Quản lý các lớp hình học Mục tiêu: Giúp học viên nắm rõ cách xây dựng class niêm phong (Sealed) trong C# Công việc thực hiện: 1. Sử dụng Visual Studio, tạo một ứng dụng dạng Console với tên là Lop_niem_phong 2. Xây dựng class niêm phong (Sealed) NHAN_VIEN với các yêu cầu (có thể sử dụng lại lớp NHAN_VIEN trong bài 4.4): Biến thành viên (Field): lưu trữ thông tin về nhân viên bao gồm: Họ tên nhân viên, Ngày vào làm, Hệ số lương và Lương cơ bản (Lương cơ bản được khai báo static và có giá trị mặc định là 450000) static double mLuong_co_ban = 450000; Thuộc tính (Property): Truy xuất đến giá trị của các biến thành viên trong class bao gồm: Họ tên, Hệ số lương và Ngày vào làm. Bổ sung thêm thuộc tính Thâm niên (chỉ cho phép đọc dữ liệu) public int Tham_nien { get { return DateTime.Today.Year - mNgay_vao_lam.Year; } } Phương thức khởi tạo (Contructor): với 3 tham số Họ tên, Hệ số lương và Ngày vào làm để khởi tạo giá trị cho các biến thành viên tương ứng. Các phương thức tính toán:  Phương thức tính tiền thưởng (Tien_thuong): tính tiền thưởng cho nhân viên dựa vào thâm niên theo công thức: Tiền thưởng = Thâm niên * 500000  Phương thức tính tiền lương (Tien_luong): tính tiền lương cho nhân viên dựa vào lương cơ bản và hệ số lương theo công thức: Tiền lương = Lương cơ bản * Hệ số lương 3. Xây dựng lớp NHAN_VIEN_VAN_PHONG kế thừa từ lớp NHAN_VIEN với khai báo như sau: class NHAN_VIEN_VAN_PHONG: NHAN_VIEN { protected int mSo_ngay_vang; protected static int mDinh_muc_vang = 3; protected static double mDon_gia_phat = 100000; public int So_ngay_vang { get { return mSo_ngay_vang; } set { mSo_ngay_vang = value; } } public static int Dinh_muc_vang { get { return mDinh_muc_vang; } set { mDinh_muc_vang = value; } } public static double Don_gia_phat { get { return mDon_gia_phat; } GV : PHẠ M Á NH THI Ề U Trang 27/54 TRUNG TÂM TIN HỌC – AN QUỐC VIỆT set { mDon_gia_phat = value; } } } 4. Biên dịch ứng dụng và ghi nhận lỗi xảy ra (hình 5.3) 5.4. Quản lý danh sách máy tính Mục tiêu: Giúp học viên nắm rõ cách xây dựng class kế thừa trong C# Yêu cầu thực hiện: 1. Xây dựng chương trình quản lý danh sách các đối tượng máy tính để bàn và máy tính xách tay: 2. Sử dụng Visual Studio, tạo một ứng dụng dạng Console với tên là Quan_ly_may_tinh 3. Xây dựng class MAY_TINH với các yêu cầu: Biến thành viên (Field): lưu trữ thông tin về Số hiệu, Đơn giá, Hãng sản xuất Thuộc tính (Property): Truy xuất đến giá trị của các biến thành viên trong class Phương thức khởi tạo (Constructor): với 3 tham số: Số hiệu, Đơn giá và Hãng sản xuất để khởi tạo giá trị ban đầu cho biến thành viên tương ứng trong class MAY_TINH Phương thức tính toán: cài đặt phương thức tính Hiển thị thông tin của máy tính (Hien_thi_thong_tin) cho phép ghi đè (virtual) trả về chuỗi gồm các thông tin: Số hiệu, Đơn giá và Hãng sản xuất. 4. Xây dựng class MAY_TINH_DE_BAN được dẫn xuất từ lớp MAY_TINH với các yêu cầu: Biến thành viên (Field): lưu trữ thông tin về CPU, RAM Thuộc tính (Property): Truy xuất đến giá trị của các biến thành viên trong class Phương thức khởi tạo (Constructor): với 5 tham số: Số hiệu, Đơn giá, Hãng sản xuất để khởi tạo giá trị ban đầu cho biến thành viên tương ứng trong class MAY_TINH và CPU, RAM để khởi tạo giá trị ban đầu cho biến thành viên tương ứng trong class MAY_TINH_DE_BAN. Phương thức tính toán: cài đặt lại phương thức tính Hiển thị thông tin của máy tính (Hien_thi_thong_tin) trả về chuỗi gồm các thông tin: Số hiệu, Đơn giá, Hãng sản xuất, CPU và RAM. 5. Xây dựng class MAY_TINH_XACH_TAY được dẫn xuất từ lớp MAY_TINH với các yêu cầu: Biến thành viên (Field): lưu trữ thông tin về Trọng lượng, Thời gian PIN, Kích thước màn hình Thuộc tính (Property): Truy xuất đến giá trị của các biến thành viên trong class Phương thức khởi tạo (Constructor): với 6 tham số: Số hiệu, Đơn giá, Hãng sản xuất để khởi tạo giá trị ban đầu cho biến thành viên tương ứng trong class MAY_TINH và Trọng lượng, Thời gian PIN, Kích thước màn hình để khởi tạo giá trị ban đầu cho biến thành viên tương ứng trong class MAY_TINH_XACH_TAY. Phương thức tính toán: cài đặt lại phương thức tính Hiển thị thông tin của máy tính (Hien_thi_thong_tin) trả về chuỗi gồm các thông tin: Số hiệu, Đơn giá, Hãng sản xuất, Trọng lượng, Thời gian PIN và Kích thước màn hình. GV : PHẠ M Á NH THI Ề U Trang 28/54 TRUNG TÂM TIN HỌC – AN QUỐC VIỆT 6. Khai báo trong phương thức Main: Khai báo mảng MAY_TINH để chứa danh sách máy tính MAY_TINH[] dsmaytinh = new MAY_TINH[3]; Khởi tạo danh sách các máy tính MAY_TINH_DE_BAN mt1 = new MAY_TINH_DE_BAN("D2122", "Dell", 5600000,"Pentium 4","1024MB"); MAY_TINH_XACH_TAY mt2 = new MAY_TINH_XACH_TAY("T43-100", "IBM", 22000000, 2.03, 4, 14); MAY_TINH_XACH_TAY mt3 = new MAY_TINH_XACH_TAY("HP7200", "HP", 20000000, 2.05, 4, 15); dsmaytinh[0] = mt1; dsmaytinh[1] = mt2; dsmaytinh[2] = mt3; Duyệt qua tập hợp các máy tính và hiển thị thông tin foreach (MAY_TINH obj in dsmaytinh) { Console.WriteLine("========================================="); if (obj is MAY_TINH_DE_BAN) { Console.WriteLine(((MAY_TINH_DE_BAN)obj).Ten_goi()); Console.WriteLine(((MAY_TINH_DE_BAN)obj).Hien_thi_thong_tin()); } else { Console.WriteLine(((MAY_TINH_XACH_TAY)obj).Ten_goi()); Console.WriteLine(((MAY_TINH_XACH_TAY)obj). Hien_thi_thong_tin()); } Console.WriteLine("========================================="); } (hình 5.4) GV : PHẠ M Á NH THI Ề U Trang 29/54 TRUNG TÂM TIN HỌC – AN QUỐC VIỆT BÀI 6: Lớp giao tiếp (Interface) Giúp học viên thành thạo trong việc xây dựng các lớp giao tiếp trong C#. 6.1. Quản lý đối tượng hình học Mục tiêu: Giúp học viên nắm rõ cách cài đặt lớp giao tiếp trong C# Công việc thực hiện: 1. Sử dụng Visual Studio, tạo một ứng dụng dạng Console với tên là So_sanh_hinh_hoc. Cài đặt interface IComparable để gọi phương thức Sort cho phép sắp xếp mảng hình học theo chu vi (diện tích) tăng đần (giảm dần). 2. Xây dựng lớp hình học với các phương thức cho phép kế thừa như sau: class HINH_HOC { public virtual float ChuVi(){ return 0; } public virtual float DienTich(){ return 0; } public virtual void Ten(){ } } 3. Xây dựng lớp HINH_TRON kế thừa từ lớp HINH_HOC với các thuộc tính và phương thức sau: class HINH_TRON : HINH_HOC { float mBan_kinh; public HinhTron(float pBan_kinh) { mBan_kinh = pBan_kinh; } public override float ChuVi() { return 2 * r; } public override float DienTich() { return (float)Math.PI * r * r; } public override void Ten() { Console.WriteLine("Hinh Tron"); } } 4. Xây dựng lớp HINH_CHU_NHAT kết thừa từ lớp HINH_HOC với các thuộc tính và phương thức như sau: class HINH_CHU_NHAT : HINH_HOC { public float mChieu_dai, mChieu_rong; public ChuNhat(float pChieu_dai, float pChieu_rong) GV : PHẠ M Á NH THI Ề U Trang 30/54 TRUNG TÂM TIN HỌC – AN QUỐC VIỆT { mChieu_dai = mChieu_dai; mChieu_rong = pChieu_rong; } public override float ChuVi() { return (mChieu_dai + mChieu_rong) * 2; } public override float DienTich() { return mChieu_dai * mChieu_rong; } public override void Ten() { Console.WriteLine("Hinh Chu nhat"); } } 5. Cài đặt cho interface IComparable trong lớp HINH_HOC Khai báo ICompare trong khai báo lớp class HINH_HOC : Icomparable { … } Cài đặt cho phương thức CompareTo, có thể so sánh theo Chu vi hay Diện tích class HINH_HOC : Icomparable { … public int CompareTo(object obj) { HinhHoc hh = (HinhHoc)obj; //if (ChuVi() > hh.ChuVi()) // return 1; So sánh theo chu vi //else if (ChuVi() < hh.ChuVi()) // return -1; if (DienTich() > hh.DienTich()) return 1; So sánh theo diện tích else if (DienTich() < hh.DienTich()) return -1; return 0; } } 6. Khai báo và khởi tạo trong phương thức Main: Tạo mảng hinhhoc kiểu HINH_HOC gồm4 phần tử HinhHoc[] hinhhoc = new HinhHoc[4]; Khởi tạo các phần tử: hinhhoc[0] = new HINH_TRON(3); hinhhoc[1] = new HINH_TRON(5); hinhhoc[2] = new HINH_CHU_NHAT(3, 5); hinhhoc[3] = new HINH_CHU_NHAT(7, 9); GV : PHẠ M Á NH THI Ề U Trang 31/54 TRUNG TÂM TIN HỌC – AN QUỐC VIỆT Gọi phương thức Array.Sort để sắp xếp mảng Array.Sort(hinhhoc); Duyệt mảng, in tên, chu vi, diện tích của các đối tượng hình học có trong mảng hinhhoc. for (int i = 0; i < hinhhoc.Length; i++) { hinhhoc[i].Ten(); Console.WriteLine("Chu vi: {0}", hinhhoc[i].Chu_vi()); Console.WriteLine("Dien tich: {0}", hinhhoc[i].Dien_tich()); Console.WriteLine(""); } Console.ReadLine(); (hình 6.1) 6.2. Xử lý phân số Mục tiêu: Giúp học viên nắm rõ cách cài đặt lớp giao tiếp trong C# Công việc thực hiện: 1. Sử dụng Visual Studio, tạo một ứng dụng dạng Console với tên là Xu_ly_phan_so. 2. Tạo interface IMyNhapXuat, khai báo hàm nhập, hàm xuất phân số ra màn hình Console. interface INhapXuat { void Nhap(); void Xuat(); } 3. Xây dựng lớp PHAN_SO với các thành phần như sau: class PHAN_SO { int mTu_so; int mMau_so; public PHAN_SO(){ } public PHAN_SO(int pTuso, int pMauso) { mTu_so = pTuso; mMau_so = pMauso; } } GV : PHẠ M Á NH THI Ề U Trang 32/54 TRUNG TÂM TIN HỌC – AN QUỐC VIỆT 4. Cài đặt Interface INhapXuat cho lớp PHAN_SO: class PHAN_SO: INhapXuat { public void Nhap() { Console.Write("Nhap tu so:"); mTu_so = int.Parse(Console.ReadLine()); Console.Write("Nhap mau so:"); mMau_so = int.Parse(Console.ReadLine()); } public void Xuat() { Console.WriteLine("{0}/{1}", mTu_so, mMau_so); } } 5. Cài đặt thêm Interface IComparable cho lớp PHAN_SO: class PHAN_SO: INhapXuat, IComparable { public int CompareTo(object obj) { PHAN_SO p = (PHAN_SO)obj; double giatri1 = 1.0 * mTu_so / mMau_so; double giatri2 = 1.0 * p.mTu_so / p.mMau_so; if (giatri1 > giatri2) return 1; else if (giatri1 < giatri2) return -1; else return 0; } } 6. Khai báo và khởi tạo đối tượng trong phương thức Main: Khai báo mảng p kiểu PHAN_SO có 2 phần tử: PHAN_SO[] p = new PHAN_SO[2]; Duyệt mảng và nhập giá trị ch otừng phần tử: for (int i = 0; i < p.Length; i++) { Console.WriteLine("\nPhan so thu {0}", i + 1); p[i] = new PHAN_SO(); p[i].Nhap(); } Gọi phương thức Array.Sort để sắp xếp mảng phân số tăng dần và xuất mảng phần số: Array.Sort(p); Console.WriteLine("\nCac phan so sau khi da sap xep"); for (int i = 0; i < p.Length; i++) GV : PHẠ M Á NH THI Ề U Trang 33/54 TRUNG TÂM TIN HỌC – AN QUỐC VIỆT { p[i].Xuat(); } Console.ReadLine(); 7. Biên dịch và thực thi chương trình: (hình 6.2) GV : PHẠ M Á NH THI Ề U Trang 34/54 TRUNG TÂM TIN HỌC – AN QUỐC VIỆT BÀI 7: Xử lý nhập/xuất dữ liệu (Input/Output) Giúp học viên thành thạo trong việc sử dụng các lớp đối tượng để truy xuất hệ thống tập tin, thư mục trong C#. 7.1. Thao tác tập tin và thư mục Mục tiêu: Giúp học viên nắm rõ cách duyệt thư mục trong C# Công việc thực hiện: 1. Sử dụng Visual Studio, tạo một ứng dụng dạng Console với tên là Thao_tac_tap_tin_thu_muc. 2. Tham chiếu đến Namespace System.IO để sử dụng các lớp thao tác với hệ thống tập tin, thư mục using System.IO; 3. Xây dựng phương thức Đọc nôi dung của thư mục như sau: public void Doc_thu_muc(string duongdan) { Console.WriteLine("\n Ten tap tin/thu muc Loai Ngay tao"); string[] thu_muc = Directory.GetDirectories(duongdan); foreach (string tm in thu_muc) { Console.WriteLine("{0,26} <Thu muc> {1,24} ", Path.GetFileName(tm), Directory.GetCreationTime(tm).ToString("dd/MM/yyyy HH:mm:ss")); } string[] tap_tin = Directory.GetFiles(duongdan); foreach (string tt in tap_tin) { Console.WriteLine("{0,26} {1,24} ", Path.GetFileName(tt), Directory.GetCreationTime(tt).ToString("dd/MM/yyyy HH:mm:ss")); } } 4. Khai báo trong phương thức Main Console.Write("\nNhap duong dan thu muc can doc: "); string duongdan = Console.ReadLine(); Program p = new Program(); p.Doc_thu_muc(duongdan); Console.ReadLine(); 5. Biên dịch và thực thi chương trình. GV : PHẠ M Á NH THI Ề U Trang 35/54 [...]... các thông tin: Kích thước của tập tin Ngày giờ tạo tập tin Ngày giờ truy xuất cuối cùng Các thuộc tính được thiết lập cho tập tin Nội dung của tập tin (hình 7.3) 7.4 Tạo tập tin Mục tiêu: Giúp học viên nắm rõ cách tạo và truy xuất tập tin trong C# Yêu cầu thực hiện: 1 Sử dụng Visual Studio, tạo một ứng dụng dạng Console với tên là Tao_tap_tin 2 Xử lý nhập vào đường dẫn của tập tin cần truy xuất (ví dụ:... Trang 36/54 TRUNG TÂM TIN HỌC – AN QUỐC VIỆT 7.3 Truy xuất nội dung tập tin Mục tiêu: Giúp học viên nắm rõ cách truy xuất nội dung của tập tin trong C# Yêu cầu thực hiện: 1 Sử dụng Visual Studio, tạo một ứng dụng dạng Console với tên là Doc_tap_tin 2 Xử lý nhập vào đường dẫn của tập tin cần truy xuất (ví dụ: C:\boot.ini) 3 Kiểm tra xem tập tin đó có tồn tại hay không? Nếu không tồn tại thì xuất thông... Console.ReadLine(); } tuc "); 8.8 Bài tập làm thêm Mục tiêu: Giúp học viên nắm rõ ý nghĩa và cách sử dụng đối tượng Generic Colections trong C# Yêu cầu thực hiện: Thực hiện lại các bài tập trên sử dụng Generic Collections GV: PHẠM ÁNH THIỀU Trang 46/54 TRUNG TÂM TIN HỌC – AN QUỐC VIỆT BÀI 9: Serialization Giúp học viên thành thạo trong các thao tác Serialize và Deserialize dữ liệu trong C# 9.1 Quản lý giỏ hàng Mục... HỌC – AN QUỐC VIỆT (hình 7.1) 7.2 Thao tác tập tin và thư mục Mục tiêu: Giúp học viên nắm rõ cách truy xuất thông tin của tập tin và thư mục trong C# Công việc thực hiện: 1 Sử dụng Visual Studio, tạo một ứng dụng dạng Console với tên là Thong_tin_tap_tin_thu_muc 2 Xử lý nhập vào đường dẫn của thư mục cần truy xuất (ví dụ: C:\) 3 Duyệt qua từng thư mục và tập tin trong đường dẫn được chỉ định sau đó... học viên nắm rõ cách sử dụng đối tượng HashTable trong C# Yêu cầu thực hiện: 1 Tạo tập tin văn bản Tu_dien.txt với cấu trúc : theo dạng như sau: (hình 8.5a) 2 Sử dụng Visual Studio, tạo một ứng dụng dạng Console với tên là Tu_dien_anh_viet 3 Khai báo Namespace System.Collections và System.IO 4 Xử lý đọc nội dung tập tin Tu_dien.txt và đưa vào HashTable với key là từ... Danh sách học viên Mục tiêu: Giúp học viên nắm rõ ý nghĩa và cách sử dụng đối tượng NameValueColleciton trong C# GV: PHẠM ÁNH THIỀU Trang 43/54 TRUNG TÂM TIN HỌC – AN QUỐC VIỆT Các bước thực hiện: 1 Tạo tập tin Danhsach.txt lưu danh sách các học viên (mỗi học viên là một dòng), cấu trúc của tập tin Danhsach.txt theo dạng: |||| (hình 8.7a) 2... cần truy xuất (ví dụ: C:\boot.ini) 3 Kiểm tra xem tập tin đó có tồn tại hay không? Nếu tồn tại thì xuất thông báo hỏi người dùng có đồng ý ghi đè lên nội dung đã có hay không (hình 7.4a) (hình 7.4a) 4 Nếu không đồng ý ghi đè thì thoát khỏi chương trình Nếu tập tin chưa tồn tại hoặc người dùng xác nhận đồng ý (Y) thì xuất thông báo nhập nội dung cho tập tin như (hình 7.4b) GV: PHẠM ÁNH THIỀU Trang 37/54... AN QUỐC VIỆT BÀI 8: Collections và Generic Giúp học viên thành thạo trong việc sử dụng các đối tượng Collection cũng như xây dựng kiểu Generic trong C# 8.1 Quản lý danh sách học viên Mục tiêu: Giúp học viên nắm rõ cách sử dụng đối tượng ArrayList trong C# Công việc thực hiện: 1 Sử dụng Visual Studio, tạo một ứng dụng dạng Console với tên là Quan_ly_hoc_vien 2 Khai báo Namespace System.Collections 3... nội dung cho tập tin như (hình 7.4b) GV: PHẠM ÁNH THIỀU Trang 37/54 TRUNG TÂM TIN HỌC – AN QUỐC VIỆT (hình 7.4b) 5 Thực hiện nhập vào nội dung cho tập tin (cho đến khi nhấn phím ECS) (hình 7.4c) 6 Khi người dùng nhấn phím ESC sẽ ghi nhận nội dung vừa nhập vào tập tin được chỉ định và xuất thông báo nếu cập nhật thành công (hình 7.4d) (hình 7.4c) GV: PHẠM ÁNH THIỀU Trang 38/54 TRUNG TÂM TIN HỌC – AN QUỐC... QUỐC VIỆT BÀI 9: Serialization Giúp học viên thành thạo trong các thao tác Serialize và Deserialize dữ liệu trong C# 9.1 Quản lý giỏ hàng Mục tiêu: Giúp học viên nắm rõ ý nghĩa và cách Serialize dữ liệu trong C# thông qua đối tượng BinaryFormatter Công việc thực hiện: 1 Sử dụng Visual Studio, tạo một ứng dụng dạng Console với tên là Quan_ly_gio_hang 2 Khai báo các Namespace: System.IO, System.Runtime.Serialization . của tập tin Ngày giờ tạo tập tin Ngày giờ truy xuất cuối cùng Các thuộc tính được thiết lập cho tập tin Nội dung của tập tin (hình 7.3) 7.4. Tạo tập. lý nhập/xuất dữ liệu (Input/Output) Giúp học viên thành thạo trong việc sử dụng các lớp đối tượng để truy xuất hệ thống tập tin, thư mục trong C#. 7.1. Thao tác tập tin và thư mục. TIN HỌC – AN QUỐC VIỆT 7.3. Truy xuất nội dung tập tin Mục tiêu: Giúp học viên nắm rõ cách truy xuất nội dung của tập tin trong C# Yêu cầu thực hiện: 1. Sử dụng Visual Studio, tạo một

Ngày đăng: 05/07/2014, 19:20

Từ khóa liên quan

Tài liệu cùng người dùng

  • Đang cập nhật ...

Tài liệu liên quan