Giáo trình thực hành Lập trình hướng đối tượng - Bài thực hành số 6.2: Xây dựng chương trình giải phương trình bậc 2 dùng giao diện đồ họa trực quan

Trang 1  
MÔN : LẬP TRÌNH HƯỚNG ĐỐI TƯỢNG  
Bài thực hành số 6.2 : Xây dựng chương trình giải phương trình bậc 2 dùng giao  
diện ₫ồ họa trực quan  
I. Mục tiêu :  
ƒ
Giúp SV làm quen với qui trình ₫iển hình ₫ể xây dựng một ứng dụng dùng giao diện ₫ồ  
họa trực quan bằng môi trường Visual Studio .Net.  
II. Nội dung :  
Lập trình tạo form giao diện của chương trình giải phương trình bậc 2, khai báo thủ tục xử  
lý sự kiện, viết code cho thủ tục xử lý sự kiện ₫ể giải phương trình bậc 2.  
ƒ
III. Chuẩn ₫ầu ra :  
Sinh viên nắm vững và dùng thành thạo các ₫oạn code ₫ể tạo form giao diện của chương  
ƒ
trình, thiết lập giá trị các thuộc tính cho từng phần tử giao diện, khai báo thủ tục xử lý sự  
kiện cho sự kiện quan tâm của ₫ối tượng giao diện, viết code cho thủ tục xử lý sự kiện ₫ể  
thực hiện giải thuật có ₫ộ phức tạp trung bình.  
IV. Phân tích :  
Chương trình chứa 1 ₫ối tượng Form, Form chứa các ₫ối tượng bên trong :  
- 3 cặp ₫ối tượng (Label+TextBox) ₫ể người dùng nhập 3 tham số a,b,c  
- 1 ₫ối tượng Button ₫ể kích hoạt chức năng giải phương trình  
- 3 ₫ối tượng Label ₫ể hiển thị kết quả  
Thay vì thiết kế trực quan các ₫ối tượng trong Form như bài 5.1, bài thực hành này sẽ miêu tả qui  
trình viết code VC# ₫ể tạo các ₫ối tượng giao diện ₫ược chứa trong Form.  
V. Qui trình :  
1. Chạy VS .Net, chọn menu File.New.Project ₫ể hiển thị cửa sổ New Project.  
2. Mở rộng mục Visual C# trong TreeView "Project Types", chọn mục Windows, chọn icon  
"Windows Forms Application" trong listbox "Templates" bên phải, thiết lập thư mục chứa  
Project trong listbox "Location", nhập tên Project vào textbox "Name:" (thí dụ  
Form_GPTB2_P), click button OK ₫ể tạo Project theo các thông số ₫ã khai báo.  
3. Form ₫ầu tiên của ứng dụng ₫ã hiển thị trong cửa sổ thiết kế với kích thước mặc ₫ịnh (thường  
chưa phù hợp với yêu cầu của ứng dụng). Form lúc ₫ầu còn trống, chưa có phần tử giao diện  
nào bên trong.  
4. Chọn Form ₫ể hiển thị cửa sổ thuộc tính của Form, click icon  
trong cửa sổ thuộc tính của  
Form ₫ể hiển thị danh sách các sự kiện của Form, duyệt tìm sự kiện Load, ấn kép chuột vào  
comboBox bên phải sự kiện Load ₫ể máy tạo tự ₫ộng hàm xử lý cho sự kiện này.  
5. Khi cửa sổ soạn code cho hàm Form_Load() hiển thị, ta thấy hàm này vẫn còn trống. Hãy viết  
code cho hàm Form_Load() như sau :  
private void Form1_Load(object sender, EventArgs e)  
{
//Tạo Label Label1  
Label1 = new Label();  
Label1.Name = "Label1";  
Label1.AutoSize = true;  
Label1.Location = new Point(13, 11);  
Label1.Size = new Size(62, 17);  
Label1.TabIndex = 0;  
Label1.Text = "Nhập a :";  
Trang 2  
Controls.Add(Label1); //add Label vào Form  
//Tạo TextBox txtA  
txtA = new TextBox();  
txtA.Name = "txtA";  
txtA.Location = new Point(96, 11);  
txtA.Size = new Size(239, 22);  
txtA.TabIndex = 1;  
Controls.Add(txtA) ; //add TextBox vào Form  
//Tạo Label Label2  
Label2 = new Label();  
Label2.Name = "Label2";  
Label2.AutoSize = true;  
Label2.Location = new Point(13, 51);  
Label2.Size = new Size(62, 17);  
Label2.TabIndex = 2;  
Label2.Text = "Nhập b :";  
Controls.Add(Label2); //add Label vào Form  
//Tạo TextBox txtB  
txtB = new TextBox();  
txtB.Name = "txtB";  
txtB.Location = new Point(96, 51);  
txtB.Size = new Size(239, 22);  
txtB.TabIndex = 3;  
Controls.Add(txtB); //add TextBox vào Form  
//Tạo Label Label3  
Label3 = new Label();  
Label3.Name = "Label3";  
Label3.AutoSize = true;  
Label3.Location = new Point(13, 90);  
Label3.Size = new Size(61, 17);  
Label3.TabIndex = 4;  
Label3.Text = "Nhập c :";  
Controls.Add(Label3); //add Label vào Form  
//Tạo TextBox txtC  
txtC = new TextBox();  
txtC.Name = "txtC";  
txtC.Location = new Point(96, 90);  
txtC.Size = new Size(239, 22);  
txtC.TabIndex = 5;  
Controls.Add(txtC); //add TextBox vào Form  
//Tạo button Start  
btnStart = new Button();  
btnStart.Name = "txtStart";  
btnStart.Location = new Point(81, 126);  
btnStart.Size = new Size(164, 25);  
btnStart.TabIndex = 6;  
btnStart.Text = "Bắt ₫ầu giải";  
btnStart.UseVisualStyleBackColor = true;  
Controls.Add(btnStart); //add Button vào Form  
Trang 3  
//kết hợp hàm xử lý Click chuột  
btnStart.Click += new EventHandler(btnStart_Click);  
//Tạo Label lblKetqua  
lblKetqua = new Label();  
lblKetqua.Name = "lblKetqua";  
lblKetqua.AutoSize = true;  
lblKetqua.Location = new Point(15, 165);  
lblKetqua.Size = new Size(51, 17);  
lblKetqua.TabIndex = 7;  
lblKetqua.Text = "";  
Controls.Add(lblKetqua); //add Label vào Form  
//Tạo Label lblX1  
lblX1 = new Label();  
lblX1.Name = "lblX1";  
lblX1.AutoSize = true;  
lblX1.Location = new Point(15, 193);  
lblX1.Size = new Size(51, 17);  
lblX1.TabIndex = 8;  
lblX1.Text = "";  
Controls.Add(lblX1); //add Label vào Form  
//Tạo Label lblX2  
lblX2 = new Label();  
lblX2.Name = "lblX2";  
lblX2.AutoSize = true;  
lblX2.Location = new Point(15, 223);  
lblX2.Size = new Size(51, 17);  
lblX2.TabIndex = 9;  
lblX2.Text = "";  
Controls.Add(lblX2); //add Label vào Form  
//Thiết lập 1 số thuộc tính cho Form1  
ClientSize = new Size(348, 255);  
Name = "Form1";  
Text = "Giải phương trình bậc 2 ";  
}
}
6. Dời chuột lên ₫ầu class Form1 rồi viết tiếp ₫oạn code ₫ịnh nghĩa các thuộc tính và tác vụ cần  
dùng sau ₫ây :  
//₫ịnh nghĩa cặp Label + TextBox phục vụ nhập a  
private Label Label1;  
private TextBox txtA;  
//₫ịnh nghĩa cặp Label + TextBox phục vụ nhập b  
private Label Label2;  
private TextBox txtB;  
//₫ịnh nghĩa cặp Label + TextBox phục vụ nhập c  
private Label Label3;  
private TextBox txtC;  
//₫ịnh nghĩa Button thực hiện giải phương trình  
private Button btnStart;  
Trang 4  
//₫ịnh nghĩa 3 Label hiển thị kết quả giải phương trình  
private Label lblKetqua;  
private Label lblX1;  
private Label lblX2;  
//₫ịnh nghĩa các biến cần dùng  
double a, b, c;  
double delta;  
double x1, x2;  
//₫ịnh nghĩa hàm nhập 3 thông số a,b,c của phương trình bậc 2  
void NhapABC() {  
a = Double.Parse(txtA.Text);  
b = Double.Parse(txtB.Text);  
c = Double.Parse(txtC.Text);  
}
//₫ịnh nghĩa hàm tính nghiệm của phương trình bậc 2  
void GiaiPT() {  
//tính biệt số delta của phương trình  
delta = b * b - 4 * a * c;  
if (delta >= 0) { //nếu có nghiệm thực  
x1 = (-b + Math.Sqrt(delta)) / 2 / a;  
x2 = (-b - Math.Sqrt(delta)) / 2 / a;  
}
}
//₫ịnh nghĩa hàm xuất kết quả  
void XuatKetqua() {  
if (delta < 0) {  
//báo vô nghiệm  
lblKetqua.Text = "Phương trình vô nghiệm";  
lblX1.Text = "";  
lblX2.Text = "";  
} else { //báo có 2 nghiệm  
lblKetqua.Text = "Phương trình có 2 nghiệm thực : ";  
lblX1.Text = "X1 = " + x1.ToString();  
lblX2.Text = "X2 = " + x2.ToString();  
}
}
//₫ịnh nghĩa hàm xử lý Click trên button "Bắt ₫ầu giải"  
private void btnStart_Click(object sender, EventArgs e)  
{
NhapABC();  
GiaiPT();  
//nhập a,b,c  
//giải phương trình  
XuatKetqua(); //xuất kết quả  
}
7. Chọn menu Debug.Start Debugging ₫ể dịch và chạy ứng dụng. Hãy thử nhập từng bộ ba  
(a,b,c) của phương trình bậc 2 rồi ấn button "Bắt ₫ầu giải" ₫ể giải và xem kết quả.  
pdf 4 trang myanh 22980 Free
Bạn đang xem tài liệu "Giáo trình thực hành Lập trình hướng đối tượng - Bài thực hành số 6.2: Xây dựng chương trình giải phương trình bậc 2 dùng giao diện đồ họa trực quan", để tải tài liệu gốc về máy hãy click vào nút Download ở trên

File đính kèm:

  • pdfgiao_trinh_thuc_hanh_lap_trinh_huong_doi_tuong_bai_thuc_hanh.pdf