Kết Quả Thiết Kế Form Bài Tập Mẫu Về Mảng Hai Chiều



Bài 4

Viết chương trình nhập danh bạ với yêu cầu nhập giao diện như sau:

Hình 1 61 Chương trình nhập danh bạ Khi chương trình vừa hiển thị treeview 1

Hình 1. 61. Chương trình nhập danh bạ

+Khi chương trình vừa hiển thị, treeview chứa tất cả các chữ cái từ A->Z.

+Nhằm mục đích tiện lợi cho người sử dụng khi tìm tên, khi người sử dụng nhập tên của một người nàp đó, chương trình sẽ đưa tên người này vào treeview ở vị trí treenode có tương ứng với chữ các đầu của tên

+Khi người sử dụng chọn một tên nào đó, chương trình hiển thị lại họ - tên người đó vào các textbox.

+Thêm một ToolStrip chứa textbox dùng để tìm người đầu tiên (theo first name hay last name) và chọn trên treeview, đồng thời hiển thị tên người tìm thấy lên 2 textbox.

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

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

Bài 5

Viết chương trình xem danh sách sinh viên.

Khi chương trình vừa thực thi, Treeview hiển thị danh sách các lớp – các sinh viên như hình:

Hình 1 62 Chương trình danh sách sinh viên Khi nguời sử dụng chọn cấp Khoa 2

Hình 1. 62. Chương trình danh sách sinh viên

Khi nguời sử dụng chọn cấp Khoa, chương trình hiển thị tòan bộ danh sách sinh viên thuộc Khoa đang chọn vào Listview. Khi người sử dụng chọn một lớp bất kỳ thì chương trình hiển thị toàn bộ sinh viên của lớp đang chọn vào Listview.


Khi chọn 1 sinh viên bất kỳ thì chỉ hiển thị sinh viên đó vào Listview.

Hình 1 63 Kết quả chọn 1 lớp Hình 1 64 Kết quả chọn một sinh viên 1 3 Làm 3

Hình 1. 63. Kết quả chọn 1 lớp


Hình 1 64 Kết quả chọn một sinh viên 1 3 Làm việc với mảng hai chiều 1 3 1 4

Hình 1. 64. Kết quả chọn một sinh viên



1.3. Làm việc với mảng hai chiều

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

1. Khai báo


hoặc

Kiểu_dữ_liệu [ , ] Tên_mảng;


Kiểu_dữ_liệu [ , ] Tên_mảng = new Kiểu_dữ_liệu [kích_thước_hàng,

kích_thước_cột];

2. Truy cập đến các phần tử của mảng hai chiều

Tên_mảng[chỉ_số_hàng, chỉ_số_cột];

1.3.2. Bài tập mẫu

Viết một chương trình thực hiện các yêu cầu sau:

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

Hình 1 65 Bài tập về mảng hai chiều Yêu cầu Nhãn bài tập về mảng hai 5

Hình 1. 65. Bài tập về mảng hai chiều

Yêu cầu:

- Nhãn bài tập về mảng hai chiều: Font Time New Roman, chữ hoa, in đậm, cỡ chữ 14, căn giữa Form.

- Nhãn nhập số hàng, nhập số cột, nhập giá trị: Font Time New Roman, chữ thường, cỡ chữ 11.

- Điều khiển để nhập số nguyên dương n, m và nhập giá trị từng phần tử của ma trận là các Textbox.

- Điều khiển để hiển thị ma trận và kết quả là các RichTextBox.

- Các điều khiển “Tìm giá trị lớn nhất”, “Tính tổng các số lẻ”, “Đếm các số chia hết cho 3 và 7”, “ Tính tổng từng hàng”, “ Liệt kê các số nguyên tố”, “Thoát” là các Button.

- Đối tượng “Ma trận vừa nhập”, “Kết quả” là cá GroupBox.

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

- Khi Load Form:


+ Textbox tương ứng với nhãn nhập số hàng để trống, sáng lên và con trỏ đặt tại ô đó.

+ Textbox tương ứng vỡi nhãn nhập số cột, nhập giá trị, các nút “Tìm giá trị lớn nhất”, “Tính tổng các số lẻ”, “Đếm các số chia hết cho 3 và 7”, “ Tính tổng từng hàng”, “ Liệt kê các số nguyên tố”, đối tương GroupBox Ma trận vừa nhập và kết quả vô hiệu hóa.

- Khi người dùng nhập một giá trị vào textbox tương ứng với nhãn nhập số hàng rồi nhấn phím Enter thì thực hiện kiểm tra xem dữ liệu nhập vào có hợp lệ hay không? (giá trị nhập vào phải là số nguyên dương). Nếu không hợp lệ thì hiện lên hộp thoại thông báo và yêu cầu nhập lại. Ngược lại thì textbox tương ứng với nhãn nhập số cột sáng lên, để trống và con trỏ đặt tại đó.

- Khi người dùng nhập một giá trị vào textbox tương ứng với nhãn nhập số cột rồi nhấn phím Enter thì thực hiện kiểm tra xem dữ liệu nhập vào có hợp lệ hay không? (giá trị nhập vào phải là số nguyên dương). Nếu không hợp lệ thì hiện lên hộp thoại thông báo và yêu cầu nhập lại. Ngược lại thì textbox tương ứng với nhãn nhập giá trị sáng lên, để trống và con trỏ đặt tại đó.

- Khi người dùng nhập giá trị vào textbox tương ứng với nhãn nhập giá trị rồi nhấn phím Enter thì hiển thị giá trị đó ra richtextbox trong Group Ma trận vừa nhập, sau đó textbox này để trống và con trỏ lại đặt tại ô đó để người dùng nhập giá trị tiếp theo. Lặp lại quá trình này cho tới khi nhập xong giá trị cho các phần tử của ma trận thì đưa ra thông báo đã nhập xong ma trận và đồng thời các nút “Tìm giá trị lớn nhất”, “Tính tổng các số lẻ”, “Đếm các số chia hết cho 3 và 7”, “ Tính tổng từng hàng”, “ Liệt kê các số nguyên tố” sáng lên cho phép hoạt động, các textbox tương ứng với nhập số hàng, nhập số cột, nhập giá trị vô hiệu hóa.

- Khi người dùng kích vào nút “ Tìm giá trị lớn nhất”: thực hiện tìm giá trị lớn nhất của ma trận và hiển thị kết quả ra richtextbox ở trong Groupbox kết quả.

- Khi người dùng kích vào nút “ Tổng các số lẻ”: thực hiện tính tổng các phần tử có giá trị lẻ của ma trận và hiển thị kết quả ra richtextbox ở trong Groupbox kết quả.

- Khi người dùng kích vào nút “ Đếm các số chia hết cho 3 và 7”: thực hiện đếm các phần tử có giá trị chia hết cho 3 và của ma trận và hiển thị kết quả ra richtextbox ở trong Groupbox kết quả.

- Khi người dùng kích vào nút “ Tính tổng từng hàng”: thực hiện tính tổng các phần tử trên từng hàng của ma trận và hiển thị kết quả ra richtextbox ở trong Groupbox kết quả.

- Khi người dùng kích vào nút “ Liệt kê các số nguyên tố”: Hiển thị ra richtextbox ở trong Groupbox các số nguyên tố có trong ma trận.

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



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 “BÀI TẬP VỀ MẢNG HAI CHIỀU”, ”Nhập số hàng”, “Nhập số cột”, ”Nhập giá trị” là các Label.

- Đối tượng ô để nhập số hàng, nhập số cột và nhập giá trị là các Textbox.

- Đối tượng ma trận vừa nhập, kết quả là các GroupBox.

- Điều khiển để hiển thị ma trận vừa nhập và kết quả là các Richtextbox.

- Các nút “Tìm giá trị lớn nhất”, “Tính tổng các số lẻ”, “Đếm các số chia hết cho 3 và 7”, “ Tính tổng từng hàng”, “ Liệt kê các số nguyên tố”, “Thoát” là các Button.

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

Bước 1. Thiết kế Form theo mẫu và gắn các điều khiển Bước 2. Kết quả thiết kế Form

Hình 1 66 Kết quả thiết kế Form bài tập mẫu về mảng hai chiều Bước 3 6

Hình 1. 66. Kết quả thiết kế Form bài tập mẫu về mảng hai chiều

Bước 3. Viết mã lệnh cho các sự kiện

- Viết mã lệnh khai báo ma trận và biến

int[,] A= new int [100,100]; int n, m, spt=0, i=0,j=0;

- Viết mã lệnh cho sự kiện Load Form

private void Form1_Load(object sender, EventArgs e)

{

vohieuhoa(false); txt_n.ResetText(); txt_n.TabIndex = 1; txt_n.Focus();

}

- Viết mã lệnh cho hàm vô hiệu hóa các điều khiển khi Load Form

private void vohieuhoa(bool gt)

{



txt_m.Enabled = gt; txt_giatri.Enabled = gt; bt_demchia21.Enabled = gt; bt_lietkeSNT.Enabled = gt; bt_timMax.Enabled = gt; bt_tongle.Enabled = gt; bt_tongtunghang.Enabled = gt; group_Hienthi.Enabled = gt; group_ketqua.Enabled = gt;

}

- Viết mã lệnh cho hàm kiểm tra xâu rỗng

bool kiemtra(string s)

{

if (string.IsNullOrWhiteSpace(s)) return true; else return false;

}

- Viết mã lệnh cho hàm kiểm tra dữ liệu nhập vào

bool kiemtra_dulieu(string s)

{

bool kt;

if (kiemtra(s)) return false; kt = int.TryParse(s, out n); return kt &&n>0;

}

- Viết mã lệnh cho sự kiện KeyUp của textbox tương ứng với nhãn nhập số

hàng

private void txt_n_KeyUp(object sender, KeyEventArgs e)

{

if (e.KeyCode == Keys.Enter)

{

if (kiemtra_dulieu(txt_n.Text))

{

txt_m.Enabled = true; txt_m.TabIndex = 1; txt_m.Focus();

}

else { MessageBox.Show("Bạn chưa nhập đúng n"); txt_n.Focus(); vohieuhoa(false);

}

}

}

- Viết mã lệnh cho sự kiện KeyUp của textbox tương ứng với nhãn nhập số cột

private void txt_m_KeyUp(object sender, KeyEventArgs e)

{

if (e.KeyCode == Keys.Enter)

{

if (kiemtra_dulieu(txt_m.Text))



{

txt_giatri.Enabled = true; txt_giatri.TabIndex = 1;

txt_giatri.Focus();

}

else { MessageBox.Show("Bạn chưa nhập đúng m"); txt_giatri.TabIndex = 1; txt_m.Focus(); vohieuhoa(false); txt_m.Enabled = true;

}

}

}

- Viết mã lệnh cho sự kiện KeyUp của textbox tương ứng với nhãn nhập giá trị

private void txt_giatri_KeyUp(object sender, KeyEventArgs e)

{

bool kt; n = int.Parse(txt_n.Text); m = int.Parse(txt_m.Text);

if (e.KeyCode == Keys.Enter)

{

kt = int.TryParse(txt_giatri.Text, out A[i, j]);

if (kt) {rtbox_hienthi.Text += A[i, j].ToString() + " "; spt++; txt_giatri.ResetText(); txt_giatri.Focus(); j++; } if (j == m) { rtbox_hienthi.Text += "n"; i++; j = 0; }

if (spt == n * m)

{ MessageBox.Show("Nhập xong dãy", "Thông báo"); vohieuhoa(false); vohieuhoa2(); txt_m.Enabled = false; txt_n.Enabled = false; }

}

}

- Viết mã lệnh cho hàm vô hiệu hóa các nút sau khi nhập xong ma trận

private void vohieuhoa2()

{

bt_demchia21.Enabled = true; bt_lietkeSNT.Enabled = true; bt_timMax.Enabled = true; bt_tongle.Enabled = true; bt_tongtunghang.Enabled = true;

}

- Viết mã lệnh cho sự kiện kích chuột vào nút tìm giá trị lớn nhất

private void bt_timMax_Click(object sender, EventArgs e)

{

rtbox_ketqua.ResetText(); int max = A[0, 0];

for (int i = 0; i < n; i++) for (int j = 0; j < m; j++)

if (A[i, j] > max) max = A[i, j];

rtbox_ketqua.Text = "Giá trị lớn nhất của ma trận là:" + max.ToString();

}


- Viết mã lệnh cho sự kiện kích chuột vào nút tính tổng các số lẻ

private void bt_tongle_Click(object sender, EventArgs e)

{

rtbox_ketqua.ResetText(); int s = 0;

for (int i = 0; i < n; i++) for (int j = 0; j < m; j++)

if (A[i, j] % 2 != 0) s += A[i, j];

rtbox_ketqua.Text = "Tổng các số lẻ của ma trận là: " + s.ToString();

}

- Viết mã lệnh cho sự kiện kích chuột vào nút đếm các số chia hết cho 3 và 7

private void bt_demchia21_Click(object sender, EventArgs e)

{

rtbox_ketqua.ResetText(); int d = 0;

for (int i = 0; i < n; i++) for (int j = 0; j < m; j++)

if (A[i, j] % 21 == 0) d++;

rtbox_ketqua.Text = "Ma trận có " + d.ToString() + " số chia hết cho cả 3 và 7";

}

- Viết mã lệnh cho sự kiện kích chuột vào nút tính tổng từng hàng

private void bt_tongtunghang_Click(object sender, EventArgs e)

{

int s; rtbox_ketqua.ResetText(); for (int i = 0; i < n; i++)

{

s=0;

for (int j = 0; j < m; j++) s += A[i, j];

rtbox_ketqua.Text+= "Tổng hàng " + (i+1).ToString() + "là: " + s.ToString();

rtbox_ketqua.Text += "n";

}

}

- Viết mã lệnh cho sự kiện kích chuột vào nút tính liệt kê các số nguyên tố

private void bt_lietkeSNT_Click(object sender, EventArgs e)

{

rtbox_ketqua.Text=" Các số nguyên tố của ma trận là: "; int d = 0;

for (int i = 0; i < n; i++) for (int j = 0; j < m; j++) if (kt_SNT(A[i, j]))

{ rtbox_ketqua.Text += A[i, j].ToString() + " "; d++; } if (d == 0)

rtbox_ketqua.Text = "Ma trận không có số nguyên tố";

}

- Viết mã lệnh cho hàm kiểm tra số nguyên tố

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

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