Hình 2. 2 - Kết quả thiết kế Form quản lý giáo viên tiểu học
Viết mã lệnh cho các công việc
-Viết mã lệnh khai báo cấu trúc Giáo viên
public struct Giaovien
{
string _magiaovien; string _hoten;
bool _gioitinh; int _namsinh;
Có thể bạn quan tâm!
- Kết Quả Chạy Chương Trình Kiểm Tra Xâu Đối Xứng
- Kết Quả Chạy Chương Trình Chuẩn Hóa Và Đếm Từ Trong Xâu
- Kết Quả Chạy Chương Trình Định Giá Biểu Thức Hậu Tố
- Kết Quả Chạy Chương Trình Quản Lý Bán Xe Mô Tô
- Kết Quả Thiết Kế Form Quản Lý Sinh Viên
- Kết Quả Thiết Kế Form Quản Lý Lương Nhân Viên
Xem toàn bộ 312 trang tài liệu này.
string _mon_gday; public string maGV
{
get { return _magiaovien; } set { _magiaovien = value; }
}
public string hoten
{
get { return _hoten; } set { _hoten = value; }
}
public bool gioitinh
{
get { return _gioitinh; } set { _gioitinh = value; }
}
public int namsinh
{
get { return _namsinh; } set { _namsinh = value; }
}
public string mon_gday
{
get { return _mon_gday; } set { _mon_gday = value; }
}
-Viết mã lệnh cho hàm tạo có tham số
public Giaovien(string magv, string hoten, bool gt, int ns, string mongd)
{
_magiaovien = magv;
_hoten = hoten;
_gioitinh = gt;
_namsinh = ns;
_mon_gday = mongd;
}
-Viết mã lệnh cho hàm tạo sao chép
public Giaovien(Giaovien a)
{
_magiaovien = a._magiaovien;
_hoten = a._hoten;
_gioitinh = a._gioitinh;
_namsinh = a._namsinh;
_mon_gday = a._mon_gday;
}
}
-Viết mã lệnh khai báo mảng giáo viên, biến nguyên n
Giaovien[] A = new Giaovien[100]; int n = 0;
-Viết mã lệnh cho sự kiện Form Load
private void Form1_Load(object sender, EventArgs e)
{
vohieuhoa(false); txt_magv.Focus();
}
-Viết mã lệnh cho hàm vô hiệu hóa các nút
void vohieuhoa(bool gt)
{
bt_hienthi.Enabled = gt; bt_sua.Enabled = gt; bt_xoa.Enabled = gt;
}
-Viết mã lệnh cho hàm kiểm tra dữ liệu nhập vào
bool kiemtra_du_lieu()
{
if (kiemtra(txt_magv.Text)||kiemtra(txt_hoten.Text)|| kiemtra(txt_namsinh.Text)|| kiemtra(combo_mongd.Text)) return false;
int namsinh;
if (txt_namsinh.Text.Length < 4 || txt_namsinh.Text.Length > 4) return
false;
if (!int.TryParse(txt_namsinh.Text, out namsinh) || namsinh <= 0) return false;
return true;
}
-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 reset lại các textbox
void Reset()
{
txt_magv.ResetText(); txt_hoten.ResetText(); txt_namsinh.ResetText(); combo_mongd.Text = ""; txt_magv.Focus();
}
-Viết mã lệnh cho sự kiện kích chuột vào nút thêm
private void bt_them_Click(object sender, EventArgs e)
{
if (kiemtra_du_lieu())
{
bool gt; int i; vohieuhoa(true);
if (radio_nam.Checked) gt=false; else gt = true;
Giaovien X = new Giaovien(txt_magv.Text, txt_hoten.Text, gt, int.Parse(txt_namsinh.Text), combo_mongd.Text);
for (i= 0; i < n; i++)
if (A[i].maGV == txt_magv.Text) { MessageBox.Show("Trùng mã giáo viên", "Thông báo"); txt_magv.Focus(); break; }
if (i == n) { A[n] = X; n++; Reset(); }
}
}
-Viết mã lệnh cho sự kiện SelectedIndexChanged của Listview danh sách giáo viên
private void listview_giaovien_SelectedIndexChanged(object sender, EventArgs e)
{
string gt; try
{
for (int i = 0; i < listview_giaovien.SelectedItems.Count; i++)
{
txt_magv.Text = listview_giaovien.SelectedItems[i].SubItems[0].Text;
txt_hoten.Text = listview_giaovien.SelectedItems[i].SubItems[1].Text;
gt= listview_giaovien.SelectedItems[i].SubItems[2].Text;
if (string.Compare(gt, "Nam") == 0) radio_nam.Checked = true; else radio_nu.Checked = true;
txt_namsinh.Text = listview_giaovien.SelectedItems[i].SubItems[3].Text;
combo_mongd.Text = listview_giaovien.SelectedItems[i].SubItems[4].Text;
}
}
catch { MessageBox.Show("Bạn chưa chọn phần tử"); }
}
-Viết mã lệnh cho sự kiện kích chuột vào nút xóa
private void bt_xoa_Click(object sender, EventArgs e)
{
try
{
string ma = txt_magv.Text; for (int i = 0; i < n;i++ )
if (String.Compare(A[i].maGV, ma) == 0)
{
for (int j = i; j < n - 1; j++) A[j] = A[j + 1]; n--;
break;
}
Reset(); Dua_DL_listview();
}
catch { MessageBox.Show("Chưa chọn mã nhân viên"); }
}
-Viết mã lệnh cho sự kiện kích chuột vào nút sửa
private void bt_sua_Click(object sender, EventArgs e)
{
if (string.Compare(bt_sua.Text, "Sửa")!= 0) // nút cập nhật
{ if (kiemtra_du_lieu())
{
bt_sua.Text = "Sửa"; for (int i = 0; i < n; i++)
if (string.Compare(A[i].maGV, txt_magv.Text) == 0)
{
A[i].hoten = txt_hoten.Text;
A[i].namsinh = int.Parse(txt_namsinh.Text);
A[i].mon_gday = combo_mongd.Text;
if (radio_nam.Checked) A[i].gioitinh = false; else A[i].gioitinh = true; Dua_DL_listview();
break;
}
txt_magv.Enabled = true;
}
else { bt_sua.Text = "Cập nhật"; MessageBox.Show("Du lieu sua chua hop le"); }
}
else // Sửa
{
txt_magv.Enabled = false; txt_hoten.Focus(); bt_sua.Text = "Cập nhật";
}
}
-Viết mã lệnh cho sự kiện kích chuột vào nút hiển thị
private void bt_hienthi_Click(object sender, EventArgs e)
{
Dua_DL_listview();
}
-Viết mã lệnh cho hàm đưa dữ liệu vào ListView mã giáo viên
private void Dua_DL_listview()
{
listview_giaovien.Items.Clear(); for (int i = 0; i < n; i++)
{
ListViewItem item = new ListViewItem(); item.Text = A[i].maGV; item.SubItems.Add(A[i].hoten); item.SubItems.Add(A[i].gioitinh.ToString()); item.SubItems.Add(A[i].namsinh.ToString()); item.SubItems.Add(A[i].mon_gday); listview_giaovien.Items.Add(item);
}
}
-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();
}
Kết quả chạy chương trình
Hình 2. 3. Kết quả chạy chương trình quản lý giáo viên tiểu học
2.1.3. Bài tập thực hành
Bài 1
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. 4. Form quản lý bán xe mô tô
Yêu cầu:
- Nhãn quản lý bán xe mô tô: Font Time New Roman, cỡ chữ 16, chữ hoa, in đậm, căn giữa Form, màu đỏ.
- Nhãn biển kiểm soát, hãng xe, chủ xe, năm đăng ký: Font Time New Roman, cỡ chữ 14, màu đen.
- Các ô để nhập biển kiểm soát, chủ xe, năm đăng ký là các TextBox.
- Điều khiển để chọn hãng xe là ComboBox.
- Các điều khiển “Nhập”, ”Xe đăng ký tại Nam định”, “Xe đăng ký năm 2014”, “Xe quá hạn” là các Button.
- Điều khiển để hiển thị thông tin chi tiết của xe là ListView và được đặt trong một GroupBox thông tin chi tiết.
2. Lập trình thực hiện các công việc:
- Khai báo cấu trúc xe mô tô bao gồm các thành phần:
+ Các thuộc tính: biển kiểm soát, hãng xe, chủ xe, năm đăng ký.
+ Các hàm tạo không đối, có đối để khởi tạo đối tượng lớp xe máy.
+ Phương thức kiểm tra xe quá hạn sử dụng (xe quá hạn là xe có số năm sử dụng tính đến năm kiểm tra vượt quá 15 năm).
- Khi Load Form:
+ Các điều khiển ”Xe đăng ký tại Nam định”, “Xe đăng ký năm 2014”, “Xe quá hạn” vô hiệu hóa.
+ Điều khiển “Nhập” sáng cho phép hoạt động.
- Khi người dùng kích vào nút “Nhập”
+ Các điều khiển ”Xe đăng ký tại Nam định”, “Xe đăng ký năm 2014”, “Xe quá hạn” sáng lên 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 xe mô tô, nhập đúng biển kiểm soát (ví dụ biển kiểm soát hợp lệ: 18F83256), năm đăng ký 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 biển kiểm soát nhập vào đã có trong danh sách xe hay chưa? Nếu trùng biển kiểm soát 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 thông tin xe mới đó vào danh sách xe, đồng thời hiển thị xe đó lên ListView thông tin chi tiết xe.
+ Sau khi thêm một xe mới vào danh sách xe thì reset lại các textbox.
- Khi người dùng kích vào nút “Xe đăng ký tai Nam định ”: Hiển thị ra ListView thông tin chi tiết những xe đăng ký tại nam định (tức những xe có biển kiểm soát bắt đầu là 18).
- Khi người dùng kích vào nút “Xe đăng ký năm 2014”: Hiển thị ra ListView thông tin chi tiết những xe có năm đăng ký là 2014.
- Khi người dùng kích vào nút “Xe quá hạn”: Hiển thị ra ListView thông tin chi tiết những xe đã quá hạn sử dụ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 “Quản lý bán xe mô tô”, “Biển kiểm soát”, ”Hãng xe”, “Chủ xe”, “Năm đăng ký” là các Label.
- Đối tượng ô nhập biển kiểm soát, chủ xe, năm đăng ký là các Textbox.
- Điều khiển để chọn hãng xe là ComboBox.
- Điều khiển để hiển thị danh sách xe mô tô là ListView được đặt trong một GroupBox thông tin chi tiết.
- Điều khiển nhập thông tin chi tiết là một GroupBox.
- Các nút “Nhập”, ”Xe đăng ký tại Nam định”, “Xe đăng ký năm 2014”, “Xe quá hạn”là các Button.
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: QUẢN LÝ BÁN XE MÔ TÔ
Font: Time New Roman Size: 16
Font style: Bold ForeColor: Red
Thực hiện tương tự với các nhãn biển kiểm soát, hãng xe, chủ xe, năm đăng ký.
- Để tạo một GroupBox nhập thông tin 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: Nhập thông tin
Font: Time New Roman Size: 14
ForeColor: Black
Thực hiện tương tự với GroupBox thông tin chi tiết
- Để tạo điều khiển nhập biển kiểm soát 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_bienks.
Thực hiện tương tự với các điều khiển nhập chủ xe, năm đăng ký.
- Để tạo điều khiển chọn hãng xe 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: