Đăng ký Đăng nhập
Trang chủ Công nghệ thông tin Kỹ thuật lập trình Bai tap nen tang va lap trinh huong doi tuong voi ngon ngu c#...

Tài liệu Bai tap nen tang va lap trinh huong doi tuong voi ngon ngu c#

.PDF
64
257
67

Mô tả:

TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí TRUNG TÂM TIN HỌC – ĐẠI HỌC KHOA HỌC TỰ NHIÊN TP.HCM 227 Nguyễn Văn Cừ - Quận 5- Tp.Hồ Chí Minh Tel: 8351056 – Fax 8324466 – Email: [email protected] BÀI TẬP CHƯƠNG TRÌNH KỸ THUẬT VIÊN NGÀNH LẬP TRÌNH Học phần 2 --NỀN TẢNG VÀ LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG VỚI C# 4.0 Mã tài liệu: DT_NCM_HP2_BT_LTHDTC# Phiên bản 4.1 – Tháng 07/2013 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Bài tập BÀI 1: Tổng quan  Thực hành một số thao tác cơ bản trong môi trường C# và ứng dụng dạng Windows Application. Sử dụng các điều khiển cơ bản trên Form 1.1. Làm quen môi trường phát triển ứng dụng  Mục tiêu:  Tạo Project, tổ chức cây thư mục  Sử dụng các đối tượng trong ứng dụng Windows Application  Thực hiện các thao tác: tạo, thêm, xoá các đối tượng  Thực thi một ứng dụng  Yêu cầu:  Tạo một ứng dụng dạng Windows Forms Application có tên Bai_Tap lưu tại thư mục làm việc  Lần lượt tạo các thư mục dùng để lưu trữ bài tập (hình 1)  Thực hiện thêm và xóa một đối tượng trong ứng dụng (Trên cửa sổ Solution Explorer, nhấn chuột phải trên Project chọn Add để thêm một đối tượng, nhấn chuột phải trên đối tượng cần xóa và chọn Delete)  Thực thi ứng dụng (nhấn phím F5 hoặc nhấn nút Start Debugging) Hình 1: Tổ chức thư mục trong Project 1.2. Xây dựng màn hình xuất câu chào  Mục tiêu:  Sử dụng ba thành phần chính của một chương trình (Input, Process, Output)  Yêu cầu:  Xây dựng Form có tên MH_Cau_chao lưu tại thư mục Bai_01 (hình 2)  Nhập vào họ tên của bạn Nền tảng và lập trình hướng đối tượng với C# 4.0 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Bài tập  Xuất ra màn hình câu chào “Chào bạn , chúc mừng bạn đến với Ngôn ngữ lập trình C# 4.0” Hình 2: màn hình in câu chào Nền tảng và lập trình hướng đối tượng với C# 4.0 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Bài tập BÀI 2: Kiểu dữ liệu và biến Sử dụng kiểu dữ liệu trong C#, ứng dụng các kiểu dữ liệu để khai báo biến .  Áp dụng các kỹ thuật chuyển kiểu dữ liệu trong C# Sử dụng các toán tử trong C#  Sử dụng kiểu giá trị  Mục tiêu:  Sử dụng các kiểu dữ liệu loại giá trị, kỹ thuật chuyển đổi kiểu dữ liệu và sử dụng các toán tử 2.1. Tính chu vi và diện tích hình tròn  Mục tiêu: Sử dụng các phương thức và thuộc tính của lớp Math  Yêu cầu: Xây dựng chương trình tính diện tích và chu vi hình tròn, gồm các chức năng:    Nhập vào bán kính của hình tròn: kiểu số thực double Xuất ra diện tích và chu vi của hình tròn: kiểu số thực double Hướng dẫn  Xây dựng màn hình có giao diện như sau: Điều khiển Thuộc tính Label Text: TÍNH CHU VI, DIỆN TÍCH HÌNH TRÒN Label Text: Bán kính Label Text: Chu vi Label Text: Diện tích TextBox Name: txtban_kinh TextBox Name: txtchu_vi ReadOnly: true TextBox Name: txtdien_tich Nền tảng và lập trình hướng đối tượng với C# 4.0 Sự kiện Xử lý TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Bài tập ReadOnly: true Button Name: btntinh Click Text: Tính Button Name: btnlam_lai Click Text: Làm lại  Xử lý sự kiện Click của Button “Tính” private void btntinh_Click(object sender, EventArgs e) { double ban_kinh=double.Parse(txtban_kinh.Text); double chu_vi=Math.PI*2*ban_kinh; double dien_tich=Math.PI*ban_kinh*ban_kinh; txtchu_vi.Text = Math.Round(chu_vi,2).ToString(); txtdien_tich.Text = Math.Round(dien_tich,2).ToString(); }  Xử lý sự kiện Click của Button “Làm lại” private void btnlam_lai_Click(object sender, EventArgs e) { txtban_kinh.Text=””; txtchu_vi.Text=””; txtdien_tich.Text=””; } 2.2. Tính chu vi và diện tích hình chữ nhật (Bài về nhà)  Yêu cầu: Xây dựng chương trình tính chu vi và diện tích hình chữ nhật, gồm các chức năng:  Nhập vào chiều dài vào chiều rộng của hình chữ nhật: kiểu số thực double  Xuất ra diện tích và chu vi của hình chữ nhật: kiểu số thực double Nền tảng và lập trình hướng đối tượng với C# 4.0 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Bài tập 2.3. Tính chu vi và diện tích tam giác  Yêu cầu 1    Nhập vào chiều dài 3 cạnh của hình tam giác: kiểu số thực double Tính và xuất chu vi, diện tích của hình tam giác: kiểu số thực double Yêu cầu 2    Nhập vào chiều dài 3 cạnh của hình tam giác: kiểu số nguyên int Tính và xuất chu vi, diện tích của hình tam giác: kiểu số thực double Yêu cầu 3  Nhập vào chiều dài 3 cạnh của hình tam giác: kiểu số nguyên int  Tính và xuất chu vi, diện tích của hình tam giác: kiểu số thực float 2.4. Tính số nút của 1 số nguyên (Bài về nhà)  Mục tiêu: Sử dụng toán tử %  Yêu cầu:  Nhập vào 1 số nguyên n có 4 chữ số  Tính và xuất ra số nút của số nguyên n  Ví dụ: n = 1234  số nút = 0 n = 2023  số nút = 7 Nền tảng và lập trình hướng đối tượng với C# 4.0 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Bài tập  Sử dụng kiểu tham chiếu  Mục tiêu: Sử dụng các kiểu dữ liệu loại tham chiếu 2.5. Tách chuỗi họ tên  Mục tiêu: -  Sử dụng kiểu string với các phương thức và thuộc tính của kiểu này Ứng dụng vào bài toán thực tế Yêu cầu: - Nhập vào 1 chuỗi họ tên - Tách chuỗi và xuất ra phần họ, phần lót, phần tên của chuỗi họ tên. 2.6. Sử dụng kiểu tham chiếu  Mục tiêu: Sử dụng kiểu tham chiếu StringBuilder  Yêu cầu: - Nhập vào 2 giá trị từ 2 ô TextBox, sau đó cập nhật 2 giá trị này vào 2 biến có kiểu StringBuilder - Tiếp theo, gán biến 1 bằng biến 2, sau đó cập nhật giá trị của một trong 2 biến, xuất kết quả của biến còn lại ra màn hình - Giao diện Form như sau: Nền tảng và lập trình hướng đối tượng với C# 4.0 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Bài tập  Hướng dẫn: - Khai báo 2 biến kiểu StringBuilder dùng chung trong Form StringBuilder strb1; StringBuilder strb2; - Xử lý sự kiện Load của Form strb1 = new StringBuilder("Hoa Lan"); strb2 = new StringBuilder("Hoa Hồng"); txtMot.Text = strb1.ToString(); txtHai.Text = strb2.ToString(); - Xử lý sự kiện Click của Button “Gán bằng” strb1 = strb2; txtMot.Text = strb1.ToString(); txtHai.Text = strb2.ToString(); - Xử lý sự kiện Click của Button “Cập nhật vào biến 1” strb1.Remove(0, strb1.Length); strb1.Append(txtMot.Text); //xuất xem biến 2 txtHai.Text = strb2.ToString(); // Quan sát giá trị của 2 biến và nhận xét - Xử lý sự kiện Click của Button “Cập nhật vào biến 2” strb2.Remove(0, strb2.Length); strb2.Append(txtHai.Text); //xuất xem biến 1 txtMot.Text = strb1.ToString(); // Quan sát giá trị của 2 biến và nhận xét - Xử lý sự kiện Click của Button “Làm lại” Nền tảng và lập trình hướng đối tượng với C# 4.0 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Bài tập strb1 = new StringBuilder("Hoa Lan"); strb2 = new StringBuilder("Hoa Hồng"); txtMot.Text = strb1.ToString(); txtHai.Text = strb2.ToString(); Nền tảng và lập trình hướng đối tượng với C# 4.0 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Bài tập BÀI 3: Cấu trúc điều khiển  Sử dụng các cấu trúc điều khiển, cách bẫy lỗi và xử lý lỗi trong C#. 3.1. Xếp loại học tập  Mục tiêu: Sử dụng cấu trúc IF  Yêu cầu: - Nhập vào điểm học kỳ I, điểm học kỳ 2 - Tính Điểm trung bình, theo công thức: Điểm trung bình = (Điểm HKI + Điểm HKII*2)/3 - Tính Xếp loại học tập, theo quy tắc sau: o o 5 <= Điểm trung bình <6.5: trung bình o 6.5 <= Điểm trung bình < 8: khá o  Điểm trung bình <5: yếu Điểm trung bình >=8: giỏi Hướng dẫn: - Xây dựng màn hình có giao diện sau: - Xử lý sự kiện Click của Button “Đồng ý” private void btndong_y_Click(object sender, EventArgs e){ float diem_hki=float.Parse(txtdiem_hki.Text); float diem_hk2=float.Parse(txtdiem_hki.Text); float dtb=(diem_hki+diem_hkii*2)/3; dtb=(float)Math.Round(dtb,2); string xep_loai=””; if (dtb<5) xep_loai=”Yếu”; else if (dtb<6.5) Nền tảng và lập trình hướng đối tượng với C# 4.0 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Bài tập xep_loai=”Trung bình”; else if (dtb<8) xep_loai=”Khá”; else xep_loai=”Giỏi”; txtxep_loai.Text=xep_loai; } - Xử lý sự kiện Click của Button “Làm lại” private void btndong_y_Click(object sender, EventArgs e){ txtdiem_hki.Text=””; txtdiem_hkii.Text=””; txtxep_loai.Text=””; } 3.2. Tìm ngày trước, ngày sau của một ngày  Mục tiêu: Sử dụng cấu trúc if và các phương thức của lớp DateTime  Yêu cầu: - Nhập vào ngày tháng (DateTime) cần tìm ngày trước và ngày sau - Tính và xuất ra ngày trước, ngày sau của ngày vừa nhập với giao diện sau: - Ví dụ: Ngày hiện tại: 01/01/2009  Ngày trước = 31/12/2008, ngày sau= 02/01/2009 3.3. Tính tiền điện (bài về nhà)  Mục tiêu: Sử dụng cấu trúc IF  Yêu cầu: - Nhập vào chỉ số đầu, chỉ số cuối của điện kế - Tính và xuất tiền điện phải trả dựa vào lượng điện năng tiêu thụ (tính bằng KW) theo quy tắc sau (có tính lũy tiến): KW Giá tiền Nền tảng và lập trình hướng đối tượng với C# 4.0 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Bài tập 0 < KW <=100 500 100 < KW <=250 600 250 < KW <=300 800 KW > 300 1.000 3.4. Tính năm âm lịnh  Mục tiêu: Sử dụng cấu trúc switch  Yêu cầu: - Nhập vào năm dương lịch (Nam_duong) - Tính và xuất ra năm âm lịch ứng với năm dương lịch được nhập vào với quy ước tính năm âm lịch: Năm âm lịch được tính dự vào CAN + CHI trong đó CAN và CHI được tính theo quy tắc sau: Nam_duong % 10 CAN Nam_duong % 12 CHI - 0 1 2 3 4 5 6 7 8 9 Canh Tân Nhâm Quý Giáp Ất Bính Đinh Mậu Kỷ 0 1 2 3 4 5 6 7 8 9 10 11 Thân Dậu Tuất Hợi Tí Sử Dần Mẹo Thìn Tỵ Ngọ Mùi Ví dụ: năm dương lịch: 2009  năm âm lịch: Kỷ sửu Nền tảng và lập trình hướng đối tượng với C# 4.0 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Bài tập 3.5. Tính số ngày trong tháng  Mục tiêu: Sử dụng cấu trúc switch  Yêu cầu: - Nhập vào tháng và năm dương lịch cần tìm số ngày - Tính và xuất ra số ngày của tháng năm đó 3.6. Tính ngày của mẹ, ngày của cha (Bài về nhà)  Mục tiêu: Sử dụng cấu trúc switch và các thuộc tính, phương thức của kiểu DateTime  Yêu cầu: - Nhập vào năm dương lịch - Xuất ra màn hình ngày của mẹ và ngày của cha trong năm, biết rằng: o o - 3.7. Ngày của mẹ là ngày chủ nhật thứ 2 của tháng 5 Ngày của cha là ngày chủ nhật thứ 3 của tháng 6 hàng năm. Màn hình gợi ý: In bảng cửu chương của một số  Mục tiêu: Sử dụng cấu trúc for  Yêu cầu: - Nhập vào một số nguyên Nền tảng và lập trình hướng đối tượng với C# 4.0 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Bài tập -  In bảng cửa chương của số nguyên đó Giao diện Form như sau: Hướng dẫn: - Xử lý sự kiện Click của nút In bảng cửu chương: int cc = int.Parse(txtSo.Text); StringBuilder strb = new StringBuilder(); for (int i = 1; i <= 10; i++) { strb.AppendLine(cc.ToString("00") + " x " + i.ToString("00") + " = " + ((int)(cc * i)).ToString("00") ); } lblBang.Text = strb.ToString(); 3.8. In bảng cửu chương từ số đến số  Mục tiêu: Sử dụng cấu trúc for  Yêu cầu: - Nhập vào Từ số và Đến số - Xử lý và xuất Bảng cửu chương có dạng sau: Nền tảng và lập trình hướng đối tượng với C# 4.0 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Bài tập 3.9. Tính lãi suất ngân hàng (Bài về nhà)  Mục tiêu: sử dụng cấu trúc for  Yêu cầu: - Nhập vào số tiền gởi, lãi suất ngân hàng (tính theo năm) và số tháng gởi - Tính và xuất Số dư cuối kỳ và tiền lãi cuối kỳ, biết rằng: o Lãi suất tháng = (Lãi suất năm / 12) /100 o Tiền lãi tháng = Tiền gốc * Lãi suất tháng o Tiền lãi mỗi tháng sẽ được gộp chung vào tiền gốc o Tiền lãi cuối kỳ sẽ được tính lũy tiến từ tiền lãi mỗi tháng + tiền gốc Ví dụ: Nếu bạn gởi 10 triệu với lãi suất 12%/năm và gởi trong 6 tháng, thì tiền lãi cuối kỳ được tính như sau: o Lãi suất tháng = (12/12)/100 Tháng  0.01 Tiển gốc + Lãi Tiền lãi tháng 1 10,000,000 100,000 2 10,100,000 101,000 3 10,201,000 102,010 4 10,303,010 103,030.1 5 10,406,040.1 104,060.401 6 10,510,100.5 105,101.005  Số dư cuối kỳ =  Tiền lãi cuối kỳ = - 10,615,201.51 615,201.51 Màn hình gợi ý: Nền tảng và lập trình hướng đối tượng với C# 4.0 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Bài tập 3.10. Thực hiện lại các bài 3.8, 3.9 và 3.10 bằng cách dùng vòng lặp while, do..while (Bài về nhà) Nền tảng và lập trình hướng đối tượng với C# 4.0 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Bài tập BÀI 4: Kiểu struct và kiểu Array Xây dựng và sử dụng kiểu dữ liệu do người dùng định nghĩa (struct).  4.1. Khai báo và sử dụng mảng trong C# Tạo và sử dụng kiểu Nhan_vien  Mục tiêu: Tạo và sử dụng kiểu cấu trúc (struct)  Yêu cầu: - Tạo kiểu Nhan_vien, với các thành phần: họ tên, Ngày sinh, hệ số lương, lương cơ bản và số con o Xây dựng hàm khởi tạo các thành phần trên o Xây dựng phương thức tính tiền lương, với: Tiền lương = Lương cơ bản + ( Số con * 100000) o Xây dựng phương thức xuất thông tin nhân viên ra màn hình có dạng: “Nguyễn Thanh Thúy – 32 tuổi – Số con: 2 – Tiền lương: 2500000  Nhập thông tin nhân viên và xuất ra màn hình Hướng dẫn: - Tạo cấu trúc Nhan_vien với các thành phần được khai báo Public + Họ tên nhân viên: string + Ngày sinh: DateTime + Lương cơ bản: double + Hệ số lương: double + Số con: int (cho phép chứa giá trị NULL) struct Nhan_vien { public string ho_ten; public DateTime ngay_sinh; public double he_so_luong; public double luong_co_ban; public int? so_con; } - Xây dựng phương thức khởi tạo cho cấu trúc Nhan_vien public Nhan_vien(string pHo_ten, DateTime pNgay_sinh, double pLuong_co_ban, double pHe_so_luong, int? pSo_con) { ho_ten = pHo_ten; ngay_sinh = pNgay_sinh; he_so_luong = pHe_so_luong; Nền tảng và lập trình hướng đối tượng với C# 4.0 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Bài tập luong_co_ban = pLuong_co_ban; so_con = pSo_con; } - Xây dựng phương thức tính tiền lương cho nhân viên: public double Tinh_luong() { double tienluong = luong_co_ban * he_so_luong; tienluong += so_con.HasValue ? so_con.Value * 100000 : 0; return tienluong; } - Xây dựng phương thức ToString để hiển thị thông tin của nhân viên: public new string ToString() { int tuoi = DateTime.Now.Year - ngay_sinh.Year; return string.Format("{0} - {1} tuổi – Số con: {2} – Tiền lương: {3}", ho_ten, tuoi, so_con.HasValue ? so_con.Value : 0, Tinh_luong()); } - Xây dựng màn hình có giao diện sau: - Xử lý sự kiện Click của Button “Đồng ý” private void btndong_y_Click(object sender, EventArgs e) { Nhan_vien nv; nv.ho_ten = txtho_ten.Text; nv.ngay_sinh = DateTime.Parse(txtngay_sinh.Text); nv.luong_co_ban = double.Parse(txtluong_co_ban.Text); nv.he_so_luong = double.Parse(txthe_so_luong.Text); nv.so_con = txtso_con.Text != "" ? (int?)int.Parse(txtso_con.Text) : null; MessageBox.Show(nv.ToString()); Nền tảng và lập trình hướng đối tượng với C# 4.0 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Bài tập } - Xử lý sự kiện Click của Button “Làm lại” private void btnlamlai_Click(object sender, EventArgs e){ txtho_ten.Text = ""; txtngay_sinh.Text = ""; txthe_so_luong.Text = ""; txtluong_co_ban.Text = ""; txtso_con.Text = ""; } 4.2.  Làm việc với mảng Mục tiêu: - Sử dụng lớp Random và các phương thức của lớp này  Sử dụng mảng và các thao tác xử lý thông dụng trên mảng Sử dụng các phương thức của lớp Array Yêu cầu: - Nhập vào số phần tử - Tạo một Mảng số nguyên có số phần tử được nhập vào. Sau đó phát sinh giá trị cho từng phần tử, biết rằng giá trị được phát sinh ngẫu nhiên nằm trong khoảng [-50, 100] - Thực hiện các xử lý sau trên Mảng số nguyên, xuất kết quả ra MessageBox: 1. Tìm phần tử lớn nhất, phần tử nhỏ nhất trong mảng 2. Sắp xếp mảng tăng dần/ giảm dần 3. Tính tổng các phần tử trong mảng 4. Nhập vào 1 số nguyên X, tìm giá trị X ở trong mảng  Hướng dẫn: Nền tảng và lập trình hướng đối tượng với C# 4.0 TopTaiLieu.Com | Chia Sẻ Tài Liệu Miễn Phí Bài tập - Khai báo biến mảng số nguyên a toàn cục int[] a; - Xử lý sự kiện Click của Button “Tạo mảng” // Tạo mảng số nguyên a với kích thước bằng số phần tử vừa nhập int n = int.Parse(txtso_phan_tu.Text);a = new int[n]; // Khởi tạo mảng số nguyên a với các phần tử có giá trị ngẫu nhiên từ 50 đến 100 Random ngau_nhien=new Random(); for (int i=0;i - Xem thêm -