Kết Quả Chạy Chương Trình Quản Lý Bán Xe Mô Tô



Name: combo_hangxe

Items/ Collection/ Gò tên các hãng xe (ví dụ: Hondan, Yamaha, Suzuki,…)

- Để tạo điều khiển “Nhập” 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_nhap.

Thực hiện tương tự với điều khiển “Xe đăng ký tại Nam định” , “Xe đăng ký năm 2014”, “Xe quá hạn”.

- Để tạo điều khiển liệt kê chi tiết các xe mô tô 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.

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

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

+ 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_chitiet

Columns/ kích chuột vào Collection/ kích Add 4 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à biển kiểm soát, hãng xe, chủ xe, năm đăng ký.

View: Detail GridLine: true

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

-Viết mã lệnh khai báo cấu trúc xe mô tô

Public struct Moto

{

string _bienks; string _hangxe; string _chuxe; int _namdk;

public string bienks

{

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

}

public string hangxe

{

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

}

public string chuxe

{

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

}

public int namdk



{

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

}

public Moto(string bienks, string hangxe, string chuxe, int namdk)

{

_bienks = bienks;

_hangxe = hangxe;

_chuxe = chuxe;

_namdk = namdk;

}

public bool qua_han_sd()

{

if (DateTime.Now.Year - namdk > 15) return true; else return false;

}

}

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

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

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

void vohieuhoa(bool gt)

{

bt_dk2014.Enabled = gt; bt_dknamdinh.Enabled = gt; bt_quahan.Enabled = gt;

}

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

private void Form1_Load(object sender, EventArgs e)

{

vohieuhoa(false); txt_bienks.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 dữ liệu nhập vào

bool kiemtra()

{

int nam;

if (kiemtra(txt_bienks.Text)||kiemtra( txt_chuxe.Text)||kiemtra(combo_hangxe.Text)||kiemtra(txt_namđk.Text)) return false;



if (txt_namđk.Text.Length < 4 || txt_namđk.Text.Length > 4) return

false;

if (!int.TryParse(txt_namđk.Text, out nam)) return false; return true;

}

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

void reset()

{

txt_bienks.ResetText(); txt_chuxe.ResetText(); combo_hangxe.Text = ""; txt_namđk.Text = "";

}

-Viết mã lệnh cho hàm kiểm tra biển kiểm soát hợp lệ

bool kt_bienso(string s)

{

if (s.Length < 8 || s.Length > 9) return false;

if ((s[0] >= '0' && s[0] <= '9') && (s[1] >= '0' && s[1] <= '9'))

if((s[2]>='a'&&s[2]<='z') || (s[2]>='A'&&s[2]<='Z'))

{

bool kt; kt=true;

for(int i=3;i<s.Length;i++) if (s[i]<'0'||s[i]>'9')

{

kt=false; break;

}

if (kt) return true; else return false;

}

return false;

}

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

{

vohieuhoa(true);

if (kt_bienso(txt_bienks.Text))

{ Moto X = new Moto(txt_bienks.Text, combo_hangxe.Text, txt_chuxe.Text, int.Parse(txt_namđk.Text));

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

if (string.Compare(A[i].bienks, txt_bienks.Text) == 0) { MessageBox.Show("Trung bien kiem soat"); txt_bienks.Focus(); return; }



if (i == n) { A[n] = X; n++; reset(); } Dua_dulieu_listview(A, n); reset(); txt_bienks.Focus();

}

else { MessageBox.Show("Nhập sai biển số xe", "Thông báo");}

}

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

}

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

private void Dua_dulieu_listview( Moto [] A, int n)

{

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

{

ListViewItem item = new ListViewItem(); item.Text = A[i].bienks; item.SubItems.Add(A[i].hangxe); item.SubItems.Add(A[i].chuxe); item.SubItems.Add(A[i].namdk.ToString()); list_chitiet.Items.Add(item);

}

}

-Viết mã lệnh cho sự kiện kích chuột vào nút xe đăng ký tại Nam định

private void bt_dknamdinh_Click(object sender, EventArgs e)

{

Moto[] b = new Moto[100]; int i, m = 0; for(i=0;i<n;i++)

if (string.Compare(A[i].bienks.Substring(0,2), "18") == 0)

{ Moto x = new Moto(A[i].bienks, A[i].hangxe, A[i].chuxe, A[i].namdk);

b[m] = x; m++;

}

Dua_dulieu_listview(b, m);

}

-Viết mã lệnh cho sự kiện kích chuột vào nút xe đăng ký năm 2014

private void bt_dk2014_Click(object sender, EventArgs e)

{

Moto [] b = new Moto[100]; int i, m = 0;

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

if (A[i].namdk == 2014)

{ Moto x = new Moto(A[i].bienks, A[i].hangxe, A[i].chuxe, A[i].namdk);

b[m] = x; m++;

}

Dua_dulieu_listview(b,m); }

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



private void bt_quahan_Click(object sender, EventArgs e)

{

Moto[] b = new Moto[100]; int i, m = 0;

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

if (A[i].qua_han_sd())

{ Moto x = new Moto(A[i].bienks, A[i].hangxe, A[i].chuxe, A[i].namdk);

b[m] = x; m++;

}

Dua_dulieu_listview(b, m);

}

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

Hình 2 5 Kết quả chạy chương trình quản lý bán xe mô tô Bài 2 1 Thiết kế 1

Hình 2. 5. Kết quả chạy chương trình quản lý bán xe mô tô

Bài 2

1. Thiết kế Form như hình sau:

Hình 2 6 Form danh sách sinh viên Yêu cầu Nhãn danh sách sinh viên Microsoft Sans 2

Hình 2. 6. Form danh sách sinh viên


Yêu cầu:

- Nhãn danh sách sinh viên: Microsoft Sans Serif, cỡ chữ 16, chữ hoa, in đậm, căn giữa Form, màu xanh.

- Nhãn mã sinh viên, họ tên sinh viên, năm sinh, điểm nhập môn tin học, điểm toán rời rạc: Font Time New Roman, cỡ chữ 14, màu đen.

- Các ô để nhập mã sinh viên, họ tên sinh viên, năm sinh, điểm nhập môn tin học, điểm toán rời rạc là các TextBox.

- Các điều khiển “Nhập”, ”DS sinh viên lên lớp”, “Sửa”, “Xóa”, ”Sinh viên có tổng điểm lớn nhất” là các Button.

- Điều khiển thông tin chi tiết sinh viên là GroupBox

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

2. Lập trình thực hiện các công việc:

- Khai báo cấu trúc sinh viên gồm các thành phần:

+ Các thuộc tính: Mã sinh viên, tên sinh viên, năm sinh, điểm nhập môn tin học, điểm toán rời rạc.

+ Các phương thức: hàm tạo không đối, hàm tạo có đối để khởi tạo một đối tượng, phương thức xét lên lớp (sinh viên được lên lớp nếu không có điểm môn nào dưới 5).

- Khi Load Form:

+ Các đ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” 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 ”DS sinh viên lên lớp”, “Sửa”, “Xóa”, ”Sinh viên có tổng điểm lớn nhất” 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 sinh viên, năm sinh nhập vào phải là số và phải nhập đủ 4 số, điểm môn toán rời rạc, điểm nhập môn tin học phải là 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 mã sinh viên đã có trong danh sách hay chưa? Nếu trùng mã sinh viên 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 sinh viên mới vào danh sách sinh viên

+ Sau khi thêm một nhân viên mới vào danh sách thì reset lại các textbox.

+ Hiển thị danh sách sinh viên lên ListView sinh viên.

- Khi người dùng kích vào nút “Xóa”:

+ Kiểm tra xem người dùng đã chọn sinh viên cần xóa trên ListView sinh viên hay chưa? Nếu chưa chọn thì đưa ra hộp thoại thông báo yêu cầu chọn lại, đồng thời



thông. Ngược lại thông tin về sinh viên được chọn sẽ hiển thị lên các Textbox tương ứng.

+ Khi người dùng kích chọn vào nút “Xóa” thì hiện lên hộp thoại có 2 nút Yes/No. Nếu người dùng chọn Yes thì thực hiện xóa sinh viên ra khỏi danh sách và cập nhật lại danh sách sinh viên lên ListView sinh viên đồng thời reset lại các textbox trong groupbox nhập thông tin sinh viên. Nếu người dùng chọn No thì không thực hiện xóa.

- Khi người dùng kích vào nút “Sửa”:

+ Kiểm tra xem người dùng đã chọn sinh viên cần xóa trên ListView sinh viên hay chưa? Nếu chưa chọn thì đưa ra hộp thoại thông báo yêu cầu chọn lại, đồng thời thông. Ngược lại thông tin về sinh viên được chọn sẽ hiển thị lên các Textbox tương ứng.

+ Nếu Text của điều khiển này là “Sửa” thì đối tượng ô để nhập mã sinh viên vô hiệu hóa (không sửa mã), thực hiện đổi lại Text của điều khiển này là “Cập nhật” và đặt con trỏ vào ô nhập họ tên sinh viên.

+ Nếu Text của điều khiển này là “Cập nhật”: Kiểm tra xem dữ liệu sau khi sửa có hợp lệ hay không? Nếu chưa hợp lệ thì hiện lên hộp thoại thông báo, cho phép sửa lại và Text của điều khiển này vẫn là “Cập nhật”. Nếu dữ liệu sau khi sửa hợp lệ thì:

* Text của điều khiển này đổi thành “Sửa”

* Textbox để nhập mã sinh viên sáng lên cho phép hoạt động.

* Thực hiện cập nhật lại thông tin của sinh viên có mã trùng với mã sinh viên lựa chọn để sửa.

* Cập nhập danh sách sinh viên sau khi sửa lên ListView sinh viên.

- Khi người dùng kích vào nút “Danh sách sinh viên lên lớp”:Hiển thị lên ListView danh sách sinh viên những sinh viên đủ điều kiện lên lớp.

- Khi người dùng kích vào nút “Sinh viên có tổng điểm lớn nhất”: Hiển thị lên ListView danh sách sinh viên những sinh viên có tổng điểm môn toán rời rạc và môn nhập môn tin học lớn nhất.

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 “Danh sách sinh viên”, “Mã sinh viên”, ”Họ tên SV”, ”Năm sinh”, “Điểm nhập môn tin học”, “Điểm toán rời rạc” là các Label.

- Đối tượng ô nhập mã sinh viên, họ tên sinh viên, năm sinh, điểm nhập môn tin học, điểm môn toán rời rạc là các Textbox.


- Điều khiển để hiển thị danh sách sinh viên là ListView được đặt trong một GroupBox thông tin chi tiết sinh viên.

- Đối tượng nhập thông tin sinh viên là GroupBox.

- Các nút “Nhập”, ”DS sinh viên lên lớp”, “Sửa”, “Xóa”, ”Sinh viên có tổng điểm lớn nhất” 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

- Để tạo điểu khiển DANH SÁCH SINH VIÊN 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: DANH SÁCH SINH VIÊN

Font: Microsoft Sans Serif Size: 16

Font style: Bold ForeColor: Blue

Thực hiện tương tự với các nhãn họ tên SV, mã sinh viên, năm sinh, điểm nhập môn tin học, điểm toán rời rạc.

- Để tạo một GroupBox thông tin chi tiết sinh 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 sinh viên

Font: Time New Roman Size: 14

ForeColor: Black

Thực hiện tương tự với GroupBox nhập thông tin sinh viên.

- Để tạo điều khiển nhập mã sinh viên 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_masv.

Thực hiện tương tự với các điều khiển nhập họ tên SV, năm sinh, điểm toán rời rạc, điểm nhập môn tin học.

- Để tạo điều khiển “Nhập” 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_nhập.

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

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