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 -