Kết Quả Chạy Chương Trình Định Giá Biểu Thức Hậu Tố



so1 = Pop(S, ref top); so2 = Pop(S, ref top); kq = so2 + so1; Push(S, ref top, kq); i++;

}

else if (st[i] == '-')

{

so1 = Pop(S, ref top); so2 = Pop(S, ref top); kq = so2 - so1; Push(S, ref top, kq); i++;

}

else if (st[i] == '*')

{

Có thể bạn quan tâm!

Xem toàn bộ 312 trang tài liệu này.

so1 = Pop(S, ref top); so2 = Pop(S, ref top); kq = so2 * so1; Push(S, ref top, kq); i++;

}

else if (st[i] == '/')

{

so1 = Pop(S, ref top); so2 = Pop(S, ref top); kq = so2 / so1; Push(S, ref top, kq); i++;

}

else

{

int j = i; gt = 0;

while (j < st.Length && st[j] != ' ')

{

gt = gt * 10 + (st[j] - 48); j++;

}

Push(S, ref top, gt); i = j + 1;

}

}

rtbox_kq.Text = "Giá trị biểu thức hậu tố là: " + Pop(S, ref top).ToString("F2");

}

}

- Viết mã lệnh cho hàm đẩy phần tử vào ngăn xếp

void Push(float[] S, ref int top, float x)



{

if (top >= max) MessageBox.Show("Stack day"); else

{

top++;

S[top] = x;

}

}

- Viết mã lệnh cho hàm loại bỏ phần tử ra khỏi ngăn xếp

float Pop(float[] S, ref int top)

{

top--;

return S[top + 1];

}

Kết quả chạy chương trình

Hình 1 84 Kết quả chạy chương trình định giá biểu thức hậu tố 1 4 4 Bài 1

Hình 1. 84. Kết quả chạy chương trình định giá biểu thức hậu tố

1.4.4. Bài tập về nhà

Viết chương trình thực hiện các công việc sau:

1. Thiết kế Form theo mẫu

Hình 1 85 Form chuyển biểu thức trung tố đầy đủ ngoặc sang hậu tố Yêu 2

Hình 1. 85. Form chuyển biểu thức trung tố đầy đủ ngoặc sang hậu tố

Yêu cầu:



- Nhãn định giá biểu thức hậu tố: Font Time New Roman, chữ hoa, in đậm, cỡ chữ 14, căn giữa Form.

- Nhãn nhập biểu thức trung tố, biểu thức hậu tố: Font Time New Roman, cỡ

chữ 14

- Điều khiển để nhập biểu thức trung tố đầy đủ ngoặc và biểu thức hậu tố là các

RichTextBox.

- Các điều khiển “Chuyển hậu tố”, ”Thoát” là các Button.

2. Lập trình cho các sự kiện:

- Khi Load Form:

+ RichTextBox nhập biểu thức trung tố đầy đủ ngoặc sáng lên cho phép hoạt động.

+ Điều khiển “Chuyển hậu tố” vô hiệu hóa , nút “Thoát” luôn sáng, richTextBox kết quả luôn ẩn.

- Khi người dùng nhập biểu thức vào richTextBox nhập biểu thức trung tố thì button chuyển hậu tố sáng lên.

- Khi người dùng kích vào nút “Chuyển hậu tố ”:

+ Kiểm tra xem người dùng đã nhập biểu thức trung tố hay chưa? Nếu chưa thì đưa ra hộp thoại thông báo và yêu cầu nhập lại

+ RichTextBox nhập biểu thức trung tố vô hiệu hóa

+ Thực hiện chuyển biểu thức trung tố đầy đủ ngoặc về dạng hậu tố và hiển thị biểu thức hậu tố ra richTextBox hậu tố.

- Khi người dùng kích vào nút “Thoát”: thực hiện kết thúc chương trình.


BÀI 2. LẬP TRÌNH TRÊN FORM XỬ LÝ CÁC CẤU TRÚC DỮ LIỆU NÂNG CAO

Mục tiêu

Sau bài học, sinh viên có khả năng:

- Kiến thức: Biết thiết kế Form và sử dụng C# lập trình trên form để thực hiện các thao tác trên cấu trúc và trên tập tin: tạo lập, tìm kiếm, thêm, xóa,…

- Kỹ năng: Vận dụng được kiến thức thiết kế và lập trình trên form thực hiện giải các bài toán trong thực tế.

- Thái độ:

+ Nghiêm túc, sáng tạo

+ Tích cực tập luyện

Chuẩn bị dụng cụ, vật tư, thiết bị

Chuẩn bị máy tính có hệ điều hành Windows XP hoặc cao hơn, phần mềm Microsoft Office, bộ gò Tiếng Việt, phần mềm Visual Studio 2008 hoặc cao hơn.

2.1 - Làm việc với cấu trúc

2.1.1. Tóm tắt các kiến thức cần nhớ

1. Định nghĩa một Struct

[Phạm_vi_truy_nhập] struct Tên_cấu_trúc

{

Danh_ sách _các_ biến_thành_phần; Danh_ sách_các_thuộc_tính;

Danh_ sách_ các_phương_thức;

}

2. Khai báo biến cấu trúc

Tên_cấu_ trúc Tên_biến_cấu trúc = new Tên_cấu_trúc();

Ví dụ: Diem A= new Diem(); // Gọi hàm tạo không tham số hoặc Diem B = new Diem(30,10); // Gọi hàm tạo hai tham số Chú ý:

Nếu ta không tạo bộ khởi dựng (hàm tạo) thì một bộ khởi dựng mặc định ngầm định sẽ được trình biên dịch tạo ra và giá trị mặc định của các biến thành viên là 0.

Trong ngôn ngữ C#, từ khóa new không phải luôn luôn tạo đối tượng trên bộ nhớ Heap. Các lớp thì được tạo trên heap, trong khi các cấu trúc thì được tạo trên stack. Ngoài ra, khi new được bỏ qua thì bộ khởi dựng sẽ không được gọi. Do ngôn ngữ C# yêu cầu phải có phép gán trước khi sử dụng, phải khởi tạo tường minh tất cả các biến thành viên trước khi sử dụng chúng trong cấu trúc.

3. Truy cập đến các biến thành phần của biến cấu trúc

Tên_biến_cấu_trúc. Tên_biến_thành_phần Ví dụ: Diem A= new Diem(20, 40);

A.x // truy cập vào thành phần x của biến A



4. Sao chép biến cấu trúc

C# cho phép khởi gán hay gán một biến cấu trúc cho một biến cấu trúc khác.

Ví dụ: Diem A = new Diem(10,20); Diem B; B = A;

5. Mảng cấu trúc

a. Khai báo mảng cấu trúc:

Tên_cấu_trúc [] Tên_ mảng= new Tên_cấu_trúc [kích_thước]; Ví dụ: Diem [] A= new Diem[50];

b. Truy nhập đến các biến thành phần của mảng cấu trúc:

Tên_mảng[chỉ_số].tên_biến_thành_phần; Ví dụ: A[2].x ;

2.1.2. Bài tập mẫu

Viết chương trình thực hiện các công việc sau:

1. Thiết kế Form như hình sau

Hình 2 1 Form quản lý giáo viên tiểu học Yêu cầu Nhãn danh sách giáo viên 3

Hình 2. 1. Form quản lý giáo viên tiểu học

Yêu cầu:

- Nhãn danh sách giáo viên: Font Time New Roman, cỡ chữ 16, chữ hoa, in đậm, căn giữa Form, màu xanh.

- Nhãn mã giáo viên, họ và tên, giới tính, năm sinh, môn giảng dạy: Font Time New Roman, cỡ chữ 14, màu đen.

- Các ô để nhập Mã giáo viên, họ và tên, năm sinh là các TextBox.

- Điều khiển để chọn giới tính Nam và Nữ là các radioButton

- Các điều khiển “Thêm”, ”Hiển thị”, “Sửa”, “Xóa”, ”Thoát” là các Button.

- Điều khiển danh sách giáo viên là GroupBox

- Điều khiển để hiển thị danh sách giáo viên là ListView.


- Điều khiển để lựa chọn môn giảng dạy là ComboBox.

2. Lập trình thực hiện các công việc:

- Khai báo kiểu cấu trúc giáo viên của một trường tiểu học ABC có các thuộc tính: mã giáo viên, họ và tên, giới tính, năm sinh, môn giảng dạy. Các hàm tạo không đối, có đối, hàm tạo sao chép để khởi tạo đối tượng

- Khi Load Form:

+ Các điều khiển “Sửa”, “Xóa”, “Hiển thị” vô hiệu hóa.

+ Điều khiển “Thêm” và “Thoát” sáng cho phép hoạt động.

- Khi người dùng kích vào nút “Thêm”

+ Các điều khiển “Sửa”, “Xóa”, “Hiển thị” sáng cho phép hoạt động

+ Thực hiện kiểm tra sự hợp lệ của dữ liệu nhập vào (nhập đủ thông tin về một giáo viên, năm sinh nhập vào phải là số và phải nhập đủ 4 số). Nếu dữ liệu nhập vào không hợp lệ thì đưa ra hộp thoại thông báo và yêu cầu nhập lại.

+ Kiểm tra xem mã giáo viên đã có trong danh sách hay chưa? Nếu trùng mã giáo viên thì đưa ra hộp thoại thông báo và cho phép nhập lại. Nếu không trùng thì thực hiện thêm giáo viên mới vào danh sách giáo viên

+ Sau khi thêm một nhân viên mới vào danh sách thì các textbox để trống

- Khi người dùng kích vào nút “Hiển thị”: Hiển thị thông tin của các giáo viên ra ListView danh sách giáo viên.

- Khi người dùng kích chọn phần tử trên ListView thì thông tin về giáo viên được chọn sẽ hiển thị lên các textbox và radiobutton, combobox tương ứng.

- Khi người dùng kích vào nút “Xóa”:

+ Thực hiện xóa giáo viên có mã trùng với mã giáo viên được chọn trên ListView ra khỏi danh sách giáo viên (bắt lỗi khi người dùng chưa chọn phần tử trên ListView)

+ Cập nhật lại danh sách giáo viên sau khi xóa lên ListView danh sách giáo

viên.


+ Các textbox và combobox để trống.

- Khi người dùng kích vào nút “Sửa”:

+ Nếu thuộc tính Text của điều khiển này là “Sửa” thì đối tượng ô để nhập mã

giáo viên vô hiệu hóa (không sửa mã), thực hiện đổi lại thuộc tính Text của điều khiển này là “Cập nhật” và đặt con trỏ vào ô nhập họ tên giáo viên.

+ Nếu thuộc tính Text của điều khiển này là “Cập nhật”: Kiểm tra xem dữ liệu sau khi sửa có hợp lệ hay không? Nếu chưa hợp lệ thì hiện lên hộp thoại thông báo, cho phép sửa lại và thuộc tính Text của điều khiển này vẫn là “Cập nhật”. Nếu dữ liệu sau khi sửa hợp lệ thì:

* Thuộc tính Text của điều khiển này đổi thành “Sửa”.



* Thực hiện cập nhật lại thông tin của giáo viên có mã trùng với mã giáo viên lựa chọn để sửa (bắt lỗi khi người dùng chưa chọn phần tử trên ListView)

* Cập nhập danh sách giáo viên sau khi sửa lên ListView danh sách giáo viên.

* Đối tượng ô để nhập mã giáo viên sáng lên cho phép hoạt động.

Hướng dẫn thực hiện

1. Thiết kế Form như yêu cầu đề bài

2. Phân tích yêu cầu

Theo yêu cầu của bài toán thì phải có một Form chứa:

- Các đối tượng có nội dung “Danh sách giáo viên”, “Mã giáo viên”, ”Họ và tên”, “Giới tính”,”Năm sinh”, “Môn giảng dạy” là các Label.

- Đối tượng ô nhập mã giáo viên, họ và tên, năm sinh, giới tính, môn giảng dạy là các Textbox.

- Điều khiển để chọn giới tính nam và nữ là các RadioButton.

- Điều khiển để hiển thị danh sách giáo viên là ListView được đặt trong một GroupBox danh sách giáo viên.

- Điều khiển để lựa chọn môn giảng dạy là ComboBox.

- Các nút “Thêm”, “Xóa”, ”Sửa”, “Hiển thị”, “Thoát” là các Button.

- Điều khiển thông tin chi tiết giáo viên là một GroupBox.

3. Hướng dẫn thực hiện

- Thiết kế Form theo mẫu và gắn các điều khiển

+ Kéo điều khiển Label từ cửa sổ Toolbox

+ Kích phải chuột vào Label chọn Properties và thiết lập các thuộc tính cho Label như sau:

Text: DANH SÁCH GIÁO VIÊN

Font: Time New Roman Size: 16

Font style: Bold ForeColor: Blue

Thực hiện tương tự với các nhãn họ tên, mã giáo viên, giới tính, năm sinh, môn giảng dạy.

- Để tạo một GroupBox thông tin chi tiết giáo viên theo yêu cầu cần thực hiện:

+ Kéo điều khiển GroupBox từ cửa sổ Toolbox vào Form.

+ Kích phải chuột vào GroupBox chọn Properties và thiết lập các thuộc tính cho GroupBox như sau:

Text: Thông tin chi tiết giáo viên Font: Time New Roman


Size: 14 ForeColor: Black

Thực hiện tương tự với GroupBox danh sách giáo viên.

- Để tạo điều khiển nhập mã giáo viên theo yêu cầu cần thực hiện:

+ Kéo điểu khiển Textbox từ cửa sổ Toolbox vào Form.

+ Kích phải chuột vào Textbox/Properties và thiết lập thuộc tính Name: txt_magv.

Thực hiện tương tự với các điều khiển nhập họ và tên, năm sinh.

- Để tạo điều khiển chọn giới tính là Nam:

+ Kéo điều khiển RadioButton từ cửa sổ Toolbox vào Form.

+ Kích phải chuột vào RadioButton/Properties và thiết lập các thuộc tính:

Name: radio_nam checked: True

Thực hiện tương tự với điều khiển chọn giới tính là Nữ.

- Để tạo điều khiển “Thêm” theo yêu cầu cần thực hiện:

+ Kéo điều khiển Button từ cửa sổ Toolbox vào Form.

+ Kích phải chuột vào Button chọn Properties và thiết lập các thuộc tính Name: bt_them.

Thực hiện tương tự với điều khiển “Xóa” , “Sửa”, “Hiển thị”, “Thoát”.

- Để tạo điều khiển liệt kê danh sách giáo viên theo yêu cầu cần thực hiện:

+ Kéo điều khiển ListView từ cửa sổ Toolbox vào Form.

+ Kích phải chuột vào ListView chọn Properties và thiết lập các thuộc tính: Name: listview_giaovien

Columns/ kích chuột vào Collection/ kích Add 5 lần và thiết lập thuộc tính Text cho các cột tương ứng lần lượt là mã giáo viên, họ và tên, giới tính, năm sinh, môn giảng dạy.

View: Detail GridLine: true

- Để tạo điều khiển chọn môn giảng dạy theo yêu cầu cần thực hiện:

+ Kéo điều khiển ComboBox từ cửa sổ Toolbox vào Form.

+ Kích phải chuột vào ComboBox /Properties và thiết lập các thuộc tính: Name: combo_mongd

Items/ Collection/ Gò tên các môn giảng dạy.

Kết quả thiết kế Form

..... Xem trang tiếp theo?
⇦ Trang trước - Trang tiếp theo ⇨

Ngày đăng: 16/07/2022