Kết Quả Thiết Kế Form Quản Lý Sinh Viên



Thực hiện tương tự với điều khiển ”DS sinh viên lên lớp”, “Sửa”, “Xóa”, ”Sinh viên có tổng điểm lớn nhất”.

- Để tạo điều khiển liệt kê danh sách sinh 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 chọn Properties và thiết lập các thuộc tính: Name: listview_sinhvien

Columns/ kích chuột vào Collection/ kích Add 5 lần và thiết lập thuộc tính Text cho các cột tương ứng lần lượt là mã sinh viên, họ và tên, năm sinh, điểm nhập môn tin học, điểm toán rời rạc.

View: Detail GridLine: true

Kết quả thiết kế Form

Hình 2 7 Kết quả thiết kế Form quản lý sinh viên Viết mã lệnh cho các công 1

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

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

Hình 2. 7. Kết quả thiết kế Form quản lý sinh viên

Viết mã lệnh cho các công việc

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

public struct SV

{

string _masv; string _tensv; int _namsinh;

double _diemnmth; double _diemtrr; public string Masv

{

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

}

public string Tensv



{

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

}

public int Namsinh

{

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

}

public double NMTH

{

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

}

public double TRR

{

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

}

public SV(string ma, string ten, int namsinh, double nmth, double trr)

{

_masv = ma;

_tensv = ten;

_namsinh = namsinh;

_diemnmth = nmth;

_diemtrr = trr;

}

public bool xetlenlop()

{

if (_diemtrr > 5 && _diemnmth > 5) return true; else return false;

}

}

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

SV[] A = new SV[100]; int n = 0;

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

void vohieuhoa(bool gt)

{

bt_sua.Enabled = gt; bt_SVmax.Enabled = gt; bt_xoa.Enabled = gt; bt_dslenlop.Enabled = gt;

}

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

private void Form1_Load(object sender, EventArgs e)

{

vohieuhoa(false);



txt_masv.Focus();

}

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

bool kiemtra_dulieu()

{

int nam; double diem;

if (kiemtra(txt_hoten.Text)||kiemtra(txt_masv.Text)|| kiemtra(txt_namsinh.Text)||kiemtra(txt_diemNMTH.Text)||kiemtra(txt_diemT RR.Text)) return false;

if (txt_namsinh.Text.Length < 4 || txt_namsinh.Text.Length > 4) return

false;

if (!int.TryParse(txt_namsinh.Text, out nam)) return false;

if (!double.TryParse(txt_diemNMTH.Text, out diem)) return false; if (diem < 0 || diem > 10) return false;

if (!double.TryParse(txt_diemTRR.Text, out diem)) return false; if (diem < 0 || diem > 10) return false;

return true;

}

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

void reset()

{

txt_hoten.ResetText(); txt_masv.ResetText(); txt_namsinh.ResetText(); txt_diemTRR.ResetText(); txt_diemNMTH.ResetText();

}

- Viết mã lệnh cho hàm đưa dữ liệu vào Listview sinh viên

private void Dua_dulieu_listview()

{

list_sinhvien.Items.Clear(); for (int i = 0; i < n;i++ )

{

them_mothang_listview(A[i]);

}

}

- Viết mã lệnh cho hàm thêm một hàng vào ListView danh sách sinh viên

private void them_mothang_listview(SV x)

{



ListViewItem item = new ListViewItem(); item.Text = x.Masv; item.SubItems.Add(x.Tensv); item.SubItems.Add(x.Namsinh.ToString()); item.SubItems.Add(x.NMTH.ToString()); item.SubItems.Add(x.TRR.ToString()); list_sinhvien.Items.Add(item);

}

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

private void bt_nhap_Click(object sender, EventArgs e)

{ int i;

if (kiemtra_dulieu())

{ vohieuhoa(true);

SV X = new SV(txt_masv.Text, txt_hoten.Text, int.Parse(txt_namsinh.Text), double.Parse(txt_diemNMTH.Text), double.Parse(txt_diemTRR.Text));

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

if (string.Compare(A[i].Masv, txt_masv.Text) == 0) { MessageBox.Show("Trung ma sv"); txt_masv.Focus(); return; }

if (i == n) { A[i] = X; n++; }

Dua_dulieu_listview(); reset(); txt_masv.Focus();

}

else { MessageBox.Show("Dữ liệu chưa hợp lệ", "Thông báo"); return;

}

}

- Viết mã lệnh cho sự kiện kích chuột vào nút danh sách sinh viên lên lớp

private void bt_dslenlop_Click(object sender, EventArgs e)

{

list_sinhvien.Items.Clear(); for (int i = 0; i < n;i++ )

if (A[i].xetlenlop()) them_mothang_listview(A[i]);

}

- Viết mã lệnh cho sự kiện kích chọn phần tử trên ListView

private void list_sinhvien_SelectedIndexChanged(object sender, EventArgs e)

{

try

{

for (int i = 0; i < list_sinhvien.SelectedItems.Count; i++)

{

txt_masv.Text = list_sinhvien.SelectedItems[i].SubItems[0].Text; txt_hoten.Text = list_sinhvien.SelectedItems[i].SubItems[1].Text;



txt_namsinh.Text = list_sinhvien.SelectedItems[i].SubItems[2].Text;

txt_diemNMTH.Text = list_sinhvien.SelectedItems[i].SubItems[3].Text;

txt_diemTRR.Text = list_sinhvien.SelectedItems[i].SubItems[4].Text;

}

}

catch { MessageBox.Show("Bạn chưa chọn phần tử để xóa"); }

}

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

{

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

{

for (int i = 0; i < list_sinhvien.SelectedItems.Count; i++) for (int j = 0; j < n; j++)

if (string.Compare(A[j].Masv, list_sinhvien.SelectedItems[i].SubItems[0].Text) == 0)

{

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

break;

}

list_sinhvien.Items.Clear(); Dua_dulieu_listview(); reset();

}

}

- 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,"Cập nhật")==0) // cap nhat if (kiemtra_dulieu())

{

bt_sua.Text="Sửa"; txt_masv.Enabled=true; for (int i = 0; i < n;i++ )



if (string.Compare(A[i].Masv, txt_masv.Text) == 0)

{

A[i].Tensv = txt_hoten.Text;

A[i].Namsinh = int.Parse(txt_namsinh.Text); A[i].NMTH = double.Parse(txt_diemNMTH.Text); A[i].TRR = double.Parse(txt_diemTRR.Text); Dua_dulieu_listview();

break;

}

} else { MessageBox.Show("Du lieu sua chua hop le"); bt_sua.Text="Cập nhật"; }

else // nút sửa

{

txt_masv.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 liệt kê những sinh viên có tổng

điểm hai môn lớn nhất

private void bt_SVmax_Click(object sender, EventArgs e)

{

double max;

max = 0; list_sinhvien.Items.Clear(); for (int i = 0; i < n;i++ )

if (A[i].NMTH + A[i].TRR > max) max = A[i].NMTH + A[i].TRR;

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

if ((A[i].TRR + A[i].NMTH) == max)

them_mothang_listview(A[i]);

}

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

void vohieuhoa(bool gt)

{

bt_sua.Enabled = gt; bt_SVmax.Enabled = gt; bt_xoa.Enabled = gt; bt_dslenlop.Enabled = gt;

}



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

private void Form1_Load(object sender, EventArgs e)

{

vohieuhoa(false); txt_masv.Focus();

}

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

Bài 3 Hình 2 8 Kết quả chạy chương trình quản lý sinh viên Viết chương trình 2



Bài 3

Hình 2. 8. Kết quả chạy chương trình quản lý sinh viên


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 9 Chương trình quản lý lương nhân viên Yêu cầu Nhãn quản lý nhân 3

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

Yêu cầu:

- Nhãn quản lý nhân viên: Font Time New Roman, cỡ chữ 16, chữ hoa, in đậm, căn giữa Form, màu xanh.


- Nhãn mã nhân viên, họ tên, quê quán, hệ số lương, lương cơ bản: Font Time New Roman, cỡ chữ 14, màu đen.

- Các ô để nhập mã nhân viên, họ tên, quê quán, hệ số lương, lương cơ bản là các TextBox.

- Các điều khiển “Thêm” ,” Hiển thị”, “NV lương Max”, “Sắp xếp”, “Sửa”, “Xóa”, “Tìm kiếm”, “Thoát” là các Button.

- Điều khiển thông tin chi tiết nhân viên, danh sách nhân viên là GroupBox

- Điều khiển để hiển thị danh sách nhân viên là ListView.

2. Lập trình cho các công việc sau:

- Khai báo cấu trúc nhân viên gồm các thuộc tính: Họ tên, quê quán, hệ số lương, lương cơ bản. Các phương thức: hàm tạo có đối, phương thức hiển thị, tính lương.

- Khi Load Form:

+ Các textbox vô hiệu hóa

+ Các button vô hiệu hóa ( nút “Thêm” và “Thoát” sáng cho phép hoạt động).

- Khi người dùng kích vào nút “Thêm”:

+ Các button sáng lên cho phép hoạt động.

+ Kiểm tra nếu thuộc tính Text của nút là “Thêm” thì: Các textbox sáng lên cho phép hoạt động, con trỏ đặt tại textbox mã nhân viên, đồng thời thuộc tính Text của nút thành “Lưu”.

+ Nếu thuộc tính Text của nút là “Lưu” thì:

* Kiểm tra xem người dùng đã nhập đủ thông tin của một nhân viên chưa? Nếu chưa thì hiển thị hộp thoại thông báo và yêu cầu nhập đủ, thuộc tính Text của nút vẫn là “Lưu”. Ngược lại kiểm tra xem dữ liệu nhập vào có hợp lệ hay không (hệ số lương và lương cơ bản phải là số). Nếu dữ liệu nhập vào không hợp lệ thì hiện lên hộp thoại thông báo và cho phép nhập lại, thuộc tính Text của nút vẫn là “Lưu”.

* Nếu dữ liệu nhập vào đủ và hợp lệ thì thực hiện kiểm tra xem mã nhân viên mới có trong danh sách hay chưa? Nếu mã đã có trong nhân viên thì thông báo trùng mã cho phép nhập lại mã. Ngược lại thì thực hiện thêm mã nhân viên vào danh sách, thuộc tính Text của nút đổi thành “Thêm”, reset lại các textbox và vô hiệu hóa các textbox này.

- Khi người dùng kích vào nút “Hiển thị”: Hiển thị danh sách nhân viên ra ListView nhân viên.

- Khi người dùng kích vào nút “NV lương max”: Đưa ra ListView những nhân viên có lương lớn nhất.

- Khi người dùng kích vào nút “Sắp xếp”: Thực hiện sắp xếp danh sách nhân viên theo lương giảm dần, hiển thị danh sách sau khi sắp xếp ra ListView.

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