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


Bước 3. Thiết kế Form theo mẫu và gắn các điều khiển

- Để tạo điểu khiển MỘT SỐ THAO TÁC TRÊN MẢNG MỘT CHIỀU theo yêu cầu cần thực hiệ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: MỘT SỐ THAO TÁC TRÊN MẢNG MỘT CHIỀU

Font: Time New Roman Size: 14

Font style: True

Trên menu chọn Format/Center in Form/Horizontally để căn giữa.

Thực hiện thao tác tương tự với Label nhập kích thước mảng, nhập giá trị, dãy vừa nhập, kết quả, điều kiện 1, điều kiện 2.

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

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

- Để tạo điều khiển textbox tương ứng với nhãn nhập kích thước mảng 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 chọn Properties và thiết lập các thuộc tính cho Textbox như sau:

Name: txt_n

Font: Time New Roman Size: 11

Thực hiện tương tự với các textbox tương ứng với nhãn nhập giá trị, hiển thị, điều kiện 1, điều kiện 2.

- Để tạo GroupBox điều kiện theo yêu cầu cần thực hiện như sau:

+ 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: Điều kiện

Font: Time New Roman Size: 11

- Để tạo điều khiển Button thanh lọc theo yêu cầu cần thực hiện như sau:

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

+ Kích phải chuột vào Button và thiết lập các thuộc tính cho Button này: Name: bt_thanhloc

Text: Thanh lọc

Font: Time New Roman


Size: 11

Thực hiện tương tự với các Button: Bổ sung, loại bỏ, tìm kiếm và thoát. Bước 4. Kết quả thiết kế

Hình 4 52 Kết quả thiết kế Form bài tập mảng một chiều Bước 5 Viết mã 1

Hình 4.52: Kết quả thiết kế Form bài tập mảng một chiều

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

- Viết mã lệnh khai báo mảng số nguyên, biến nguyên n, biến spt để đếm số phần tử nhập vào; các biến kt_loaibo, kt_bosung,kt_timkiem để đánh dấu sự kiện kích chuột vào các nút tương ứng.

int[] A = new int [100]; int n, spt = 0; bool kt_loaibo = false, kt_bs

= false, kt_timkiem = false;

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

private void Form1_Load(object sender, EventArgs e)

{

group_dieukien.Visible = false; txt_giatri.Enabled = false; txt_hienthi.Enabled = false;

txt_ketqua.Enabled = false; txt_ketqua.ResetText(); vohieuhoa(false);

txt_n.ResetText(); txt_n.Focus();

}

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

private void txt_n_KeyUp(object sender, KeyEventArgs e)

{

if (e.KeyCode == Keys.Enter) if (kiemtra_dulieu())

{

txt_giatri.Enabled = true; txt_giatri.Focus();

}

else { MessageBox.Show("Nhập sai giá trị n"); txt_n.Focus(); }

}

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

private void txt_giatri_KeyUp(object sender, KeyEventArgs e)

{

bool kt;

if (e.KeyCode == Keys.Enter) do

{

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

if (kt) { txt_hienthi.Text += A[spt].ToString() + " "; spt++; txt_giatri.ResetText(); txt_giatri.Focus(); }

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

}while (!kt);

}

- Viết mã lệnh cho sự kiện kích chuột vào nút thanh lọc

private void bt_thanhloc_Click(object sender, EventArgs e)

{

int i, j; txt_ketqua.ResetText(); i = 0;

while (i < n)

{

j = i + 1; while (j<n)

if (A[i] == A[j])

{

for (int k = j; k < n - 1; k++) A[k] = A[k + 1]; n--;

}

else j++; i++;

}

for (i = 0; i < n; i++) txt_ketqua.Text += A[i].ToString()

+ " ";

}

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

private void bt_bosung_Click(object sender, EventArgs e)

{

kt_bs = true; txt_ketqua.ResetText(); group_dieukien.Visible = true; lb_dieukien2.Visible = false; txt_dieukien2.Visible = false; lb_dieukien1.Text = "Nhập vị trí cần bổ sung"; txt_dieukien1.TabIndex = 1;

txt_dieukien1.Focus(); txt_dieukien1.ResetText();

}

- Viết mã lệnh cho sự kiện KeyUp của textbox tương ứng với nhãn điều kiện 1

private void txt_dieukien1_KeyUp(object sender, KeyEventArgs e)

{

bool kt; int k;

if (kt_bosung == true)

{

if (e.KeyCode == Keys.Enter)

{

if (kiemtra(txt_dieukien1.Text)) { MessageBox.Show("Bạn chưa nhập vị trí k"); txt_dieukien1.Focus(); }

else

{

kt = int.TryParse(txt_dieukien1.Text, out k); if (!kt || k <= 0 || k > n)

MessageBox.Show("Không có vị trí thứ k");

else

{


sung";

group_dieukien.Visible = true; lb_dieukien2.Visible = true; lb_dieukien2.Text = "Nhâp giá trị cần bổ


txt_dieukien2.Visible = true; txt_dieukien2.TabIndex = 1;

txt_dieukien2.Focus(); kt_bosung = false;

}

}

}

}

else if (kt_timkiem == true)

{

int x;

if (e.KeyCode == Keys.Enter)

{

if (kiemtra(txt_dieukien1.Text)) { MessageBox.Show("Bạn chưa nhập giá trị càn tìm kiếm"); txt_dieukien1.Focus(); }

else

{


không hợp lệ");

kt = int.TryParse(txt_dieukien1.Text, out x); if (!kt) MessageBox.Show("Giá trị cần tìm kiếm


else


+ " có trong dãy";

{

int i = 0;

while (i < n && A[i] != x) i++;

if (i < n) txt_ketqua.Text = x.ToString()


else txt_ketqua.Text = x.ToString() + "

không có trong dãy"; kt_timkiem = false;

}

}

}

}

else if (kt_loaibo == true) // thực hiện loai bo

{


if (e.KeyCode == Keys.Enter)

{

if (kiemtra(txt_dieukien1.Text)) { MessageBox.Show("Bạn chưa nhập vị trí cần loại bỏ"); txt_dieukien1.Focus(); }

else

{


thứ k không hợp lệ");

kt = int.TryParse(txt_dieukien1.Text, out k); if (!kt||k<=0||k>n) MessageBox.Show("Vị trí


else

{


1];


kt_loaibo = false;

}

}

}

for (int i = k-1; i < n; i++) A[i] = A[i +


n--;

for (int i = 0; i < n; i++) txt_ketqua.Text+= A[i].ToString();


}

}

- Viết mã lệnh cho sự kiện KeyUp của textbox tương ứng với nhãn điều kiện 2

private void txt_dieukien2_KeyUp(object sender, KeyEventArgs e)

{

bool kt; int x;

if (e.KeyCode == Keys.Enter)

{

if (kiemtra(txt_dieukien2.Text)) {

MessageBox.Show("Bạn chưa nhập giá trị cần bổ sung"); txt_dieukien2.Focus(); }

else

{


hợp lệ");

kt = int.TryParse(txt_dieukien2.Text, out x);

if (!kt) MessageBox.Show("Giá trị nhập vào không


else

{

int k = int.Parse(txt_dieukien1.Text);

for (int i = n; i >=k; i--) A[i] = A[i - 1]; A[k-1] = x;

n++;

txt_ketqua.ResetText();

for (int i = 0; i < n; i++) txt_ketqua.Text += A[i].ToString() + " ";

}

}

}

}

- Viết mã lệnh cho sự kiện kích chuột vào nút loại bỏ

private void bt_loaibo_Click(object sender, EventArgs e)

{

kt_loaibo = true; group_dieukien.Visible = true; lb_dieukien2.Visible = false; txt_dieukien2.Visible = false; lb_dieukien1.Visible = true; txt_dieukien1.Visible = true;

lb_dieukien1.Text = "Nhập vị trí cần loại bỏ"; txt_dieukien1.ResetText();

txt_dieukien1.TabIndex = 1; txt_dieukien1.Focus();

}


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

private void bt_timkiem_Click(object sender, EventArgs e)

{

kt_timkiem = true; group_dieukien.Visible = true; lb_dieukien1.Visible = true;

lb_dieukien1.Text = "Nhập giá trị cần tìm kiếm"; txt_ketqua.ResetText();

txt_dieukien2.Visible = false; lb_dieukien2.Visible = false;

txt_dieukien1.Visible = true; txt_dieukien1.TabIndex = 1; txt_dieukien1.Focus();

}

- Viết mã lệnh cho hàm kiểm tra chuỗi 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()

{

bool kt;

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

}

- Viết mã lệnh cho hàm vô hiệu hóa các nút

private void vohieuhoa(bool gt)

{

bt_thanhloc.Enabled = gt; bt_loaibo.Enabled = gt; bt_bosung.Enabled = gt; bt_timkiem.Enabled = gt;

}

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

private void bt_thoat_Click(object sender, EventArgs e)

{

this.Close();

}

Bước 6. Một số kết quả khi chạy chương trình


Hình4 53 Kết quả chạy chương trình khi kích vào nút bổ sung Hình 4 54 Kết quả 2

Hình4.53:Kết quả chạy chương trình khi kích vào nút bổ sung


Hình 4 54 Kết quả chạy chương trình khi kích vào nút loại bỏ 3

Hình 4.54: Kết quả chạy chương trình khi kích vào nút loại bỏ

Xem toàn bộ nội dung bài viết ᛨ

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

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