Xây dựng phần mềm hướng đối tượng GVHD: Trần Anh Dũng
HƯỚNG DẪN THỰC HÀNH TUẦN 2
Lập trình ứng dụng WinForm với C# (tt)
2. Viết chương trình Giải phương trình bậc 2 có dạng: ax
2
+ bx + c = 0, với a ≠ 0
a. Tạo ứng dụng WinForm:
Khởi động Microsoft Visual Studio 2005 tạo ứng dụng C# tương tự như bài tập 1
(hướng dẫn của tuần 1)
b. Thiết kế và lập trình:
c. Đăng ký và xử lý sự kiện cho Button “Thoát”
d. Tạo lớp TAM_THUC
Xây dựng phần mềm hướng đối tượng GVHD: Trần Anh Dũng
Cài đặt lớp TAM_THUC:
class TAM_THUC
{
private double a; //a<>0
private double b;
private double c;
public double HeSoA
{
get
{
return a;
}
set
{
a=value;
}
public TAM_THUC()
{
}
public bool NhapHeSo(string hesoa, string hesob, string hesoc)
{
try
{
if (hesoa.Trim().Length == 0)
{
MessageBox.Show("Chưa nhập hệ số a", "Thong bao loi",
MessageBoxButtons.OK, MessageBoxIcon.Stop);
return false;
}
else if (hesob.Trim().Length == 0)
{
MessageBox.Show("Chưa nhập hệ số b", "Thong bao loi",
MessageBoxButtons.OK, MessageBoxIcon.Stop);
return false;
}
else if (hesoc.Trim().Length == 0)
{
MessageBox.Show("Chưa nhập hệ số c", "Thong bao loi",
MessageBoxButtons.OK, MessageBoxIcon.Stop);
return false;
}
a = Double.Parse(hesoa);
b = Double.Parse(hesob);
c = Double.Parse(hesoc);
return true;
}
return cNghiem;
}
}
e. Tạo và cài đặt lớp NGHIEM
class NGHIEM
{
private double[] x = new double[2];
private int LoaiNghiem;
public NGHIEM()
{
}
public int LoaiN
{
get
{
return LoaiNghiem ;
}
set
{
LoaiNghiem=value;
}
}
public double x1
{
get
{
return x[0];
}
set
Phải có:
using System.Windows.Forms;
Xây dựng phần mềm hướng đối tượng GVHD: Trần Anh Dũng
}
}
}
f. Đăng ký và xử lý cho sự kiện Button giải phương trình:
private void bGiai_Click(object sender, EventArgs e)
{
TAM_THUC tt = new TAM_THUC();
NGHIEM N;
tt.NhapHeSo(heso_a.Text.Trim(), heso_b.Text.Trim(),
heso_c.Text.Trim());
N = tt.GiaiPT();
N.Xuat(txtNghiem);
}
g. Xử lý lỗi phát sinh khi người dùng nhập dữ liệu không phải là số
h. Để ngăn chặn khả năng phát sinh lỗi ???
Không cho phép nhập các ký tự không phải là ký tự số vào textbox
Giải pháp ???
Xử lý sự kiện nhấp phím (KeyPress)
i. Sinh viên tự phát triển tiếp để hoàn thiện chương trình trên