Kết Quả Thiết Kế Form Quản Lý Giáo Viên



Thực hiện tương tự với các nhãn mã giáo viên, họ tên, tuổi, giới tính, hệ số lương, thâm niên.

- Để 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:

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

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

+ 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 điều khiển nhập họ tên, tuổi, hệ số lương, thâm niên.

- Để tạo điều khiển chọn giới tính là Nam theo yêu cầu cần thực hiện:

+ 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 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 “Danh sách giáo viên” 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_doctep. Text: Danh sách giáo viên

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

- Để tạo điều khiển hiển thị 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/Properties và thiết lập các thuộc tính: Name: listview_giaovien

Columns/Collections kích Add 6 lần và thiết lập lại thuộc tính Text cho 6 cột tương ứng lần lượt là Mã giáo viên, họ tên, tuổi, giới tính, hệ số lương, thâm niên.

View: Detail


GridLine: True; FullRowSelect: True

Kết quả thiết kế Form

Hình 2 16 Kết quả thiết kế Form quản lý giáo viên Viết mã lệnh cho các sự 1

Hình 2. 16. Kết quả thiết kế Form quản lý giáo viên

Viết mã lệnh cho các sự kiện

- Viết mã lệnh khai báo cấu trúc giáo viên

public struct Giaovien

{

private string _magv; private string _hoten; private int _tuoi; private bool _gioitinh;

private double _hesoluong; private int _thamnien; public string magv

{

get { return _magv; } set { _magv = value; }

}

public string hoten

{

get { return _hoten; } set { _hoten = value; }

}

public int tuoi

{

get { return _tuoi; } set { _tuoi = value; }

}

public bool gt

{

get { return _gioitinh; } set { _gioitinh = value; }

}



public double hsl

{

get { return _hesoluong; } set { _hesoluong= value; }

}

public int thamnien

{

get { return _thamnien; } set { _thamnien = value; }

}

public Giaovien(string magv, string hoten, int tuoi, bool gt, double hesl, int thamnien)

{

_magv = magv;

_hoten = hoten;

_tuoi = tuoi;

_gioitinh = gt;

_hesoluong = hesl;

_thamnien = thamnien;

}

- Viết mã lệnh cho hàm ghi thông tin một giáo viên vào tệp

public void GhiDuLieu(BinaryWriter writer)

{

writer.Write(_magv); writer.Write(_hoten); writer.Write(_tuoi); writer.Write(_gioitinh); writer.Write(_hesoluong); writer.Write(_thamnien);

}

- Viết mã lệnh cho hàm đọc thông tin của một giáo viên trong tệp

public Giaovien DocDulieu(BinaryReader read)

{

Giaovien X = new Giaovien(); try

{

X.magv = read.ReadString(); X.hoten= read.ReadString();

}

catch (IOException)

{

Console.WriteLine("Loi");

}

X.tuoi = read.ReadInt32(); X.gt = read.ReadBoolean(); X.hsl = read.ReadDouble();



X.thamnien = read.ReadInt32(); return X;

}

}

- Viết mã lệnh khai báo mảng cấu trúc giáo viên, biến nguyên n

Giaovien[] A = new Giaovien[100]; int n;

- Viết mã lệnh cho hàm đọc dữ liệu từ tệp ra mảng

void Motep_doc(ref Giaovien [] A, ref int n)

{

FileStream fs = new FileStream(@"C:Hoso.data", FileMode.Open, FileAccess.Read);

BinaryReader reader = new BinaryReader(fs); n = reader.ReadInt32(); int cs = 0;

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

{

A[cs] = A[cs].DocDulieu(reader); cs++;

}

reader.Close(); fs.Close();

}

- Viết mã lệnh cho hàm ghi dữ liệu vào tệp

void Motep_ghi(Giaovien [] A, int n)

{

FileStream fs = new FileStream(@"C:Hoso.data", FileMode.Create, FileAccess.Write);

BinaryWriter bw = new BinaryWriter(fs); bw.Write(n);

try

{

for (int i = 0; i < n; i++) A[i].GhiDuLieu(bw);

}

catch (IOException ex)

{

Console.WriteLine("Loi" + ex);

}

bw.Close();

fs.Close();

}

- Viết mã lệnh cho hàm đưa dữ liệu vào ListView

private void Dua_DL_listview(Giaovien [] A, int n)

{

listview_giaovien.Items.Clear(); string gt; 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].tuoi.ToString()); if (A[i].gt==true) gt = "Nam";

else gt = "Nữ"; item.SubItems.Add(gt);

item.SubItems.Add(A[i].hsl.ToString()); item.SubItems.Add(A[i].thamnien.ToString()); listview_giaovien.Items.Add(item);

}

}

- 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 sự hợp lệ của dữ liệu nhập vào

bool kiemtra_du_lieu()

{

int tuoi; double hsl;

if (kiemtra(txt_magv.Text) || kiemtra(txt_hoten.Text) || kiemtra(txt_tuoi.Text) || kiemtra(txt_hsl.Text)||kiemtra(txt_thamnien.Text)) return false;

if (!int.TryParse(txt_tuoi.Text, out tuoi) || tuoi <= 0) return false; if (!double.TryParse(txt_hsl.Text, out hsl) || hsl<= 0) return false;

if (!int.TryParse(txt_thamnien.Text, out tuoi) || tuoi <= 0) return false; return true;

}

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

private void bt_doctep_Click(object sender, EventArgs e)

{

Motep_doc(ref A, ref n); Dua_DL_listview(A, n);

}

- 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)

{

Motep_doc(ref A, ref n); if (kiemtra_du_lieu())

{

bool gt;

if(radio_nam.Checked) gt=true; else gt=false;

Giaovien X = new Giaovien (txt_magv.Text,



txt_hoten.Text,int.Parse( txt_tuoi.Text), gt, double.Parse(txt_hsl.Text), int.Parse(txt_thamnien.Text));

A[n] = X; n++;

Motep_ghi(A, n); Motep_doc(ref A, ref n); Dua_DL_listview(A,n);

}

else { MessageBox.Show("Dữ liệu nhập vào chưa chuẩn", "Thông báo lỗi"); }

}

- Viết mã lệnh cho sự kiện chọn phần tử trên ListView danh sách giáo viên

private void listview_nhanvien_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; txt_tuoi.Text = listview_giaovien.SelectedItems[i].SubItems[2].Text; gt= listview_giaovien.SelectedItems[i].SubItems[3].Text;

if (string.Compare(gt, "Nam") == 0) radio_nam.Checked = true; else radio_nu.Checked = true;

txt_hsl.Text = listview_giaovien.SelectedItems[i].SubItems[4].Text; txt_thamnien.Text =listview_giaovien.SelectedItems[i].SubItems[5].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 sửa

private void bt_sua_Click(object sender, EventArgs e)

{

Motep_doc(ref A, ref n); Dua_DL_listview(A, n);

if (string.Compare(bt_sua.Text, "Cập nhật") == 0)

{

if (kiemtra_du_lieu())

{ // cap nhat thong tin sua bool gt;

if (radio_nam.Checked) gt = true; else gt = false;

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

if (string.Compare(A[i].magv, txt_magv.Text) == 0)

{



Giaovien X = new Giaovien(txt_magv.Text, txt_hoten.Text, int.Parse(txt_tuoi.Text),gt, double.Parse(txt_hsl.Text), int.Parse(txt_thamnien.Text));

A[i] = X;

Motep_ghi(A, n);

Dua_DL_listview(A, n); bt_sua.Text = "Sửa"; reset();

}

}

else { MessageBox.Show("Dữ liệu sửa không hợp lệ"); bt_sua.Text

= "Cập nhật"; }

}

else { txt_magv.Enabled = false; bt_sua.Text = "Cập nhật"; txt_hoten.Focus(); }

}

- Viết mã lệnh cho hàm reset lại các textbox

void reset()

{

txt_magv.ResetText(); txt_hoten.ResetText(); txt_tuoi.ResetText(); radio_nam.Checked = false; radio_nu.Checked = false; txt_thamnien.ResetText(); txt_hsl.ResetText();

}

- 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)

{

Motep_doc(ref A, ref n); Dua_DL_listview(A, n);

if (MessageBox.Show("Bạn có chắc muốn xóa không?", "Thông báo xóa", MessageBoxButtons.YesNo) == DialogResult.Yes)

{

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

if (string.Compare(A[j].magv, txt_magv.Text) == 0

{

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

Motep_ghi(A, n); Dua_DL_listview(A, n);

}

reset();

}

}

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

private void bt_thamnien_Click(object sender, EventArgs e)



{

Motep_doc(ref A, ref n); Dua_DL_listview(A,n);

Giaovien [] B= new Giaovien[100]; int cs=0;

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

if (A[i].thamnien >= 5)

{

B[cs] = A[i]; cs++;

}

Dua_DL_listview(B, cs);

}

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

Hình 2 17 Kết quả chạy chương trình quản lý giáo viên Bài 2 Viết chương 2

Hình 2. 17 - Kết quả chạy chương trình quản lý giáo viên

Bài 2

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 18 Chương trình quản lý lương nhân viên 3

Hình 2. 18 - Chương trình quản lý lương nhân viên

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: 16/07/2022