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!
- Một Số Thuộc Tính Của Radiobutton
- Hộp Thoại Messagebox Có Thêm Tùy Chỉnh Biểu Tượng
- Kết Quả Chạy Chương Trình Giải Bất Phương Trình
- Lập trình cơ bản - 25
- Lập trình cơ bản - 26
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ã 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ả chạy chương trình khi kích vào nút loại bỏ