Cấu trúc dữ liệu danh sách nhân viên

7

Bài toán:
Viết chương trình quản lý nhân sự cho một công ty, mỗi nhân viên trong công ty gồm các thông tin sau: mã số (không có hai người trùng mã số), họ, tên, ngày sinh, nơi sinh, địa chỉ, ngày công tác, lương. Viết chương trình quản lý nhân viên với các thao tác sau:
 Thêm vào một nhân viên.
 Xem danh sách nhân viên.
 Tìm nhân viên theo mã số.
 Tìm một nhân viên theo tên.
 In ra bảng lương của các nhân viên trong công ty theo thứ tự giảm dần.
 Xóa một nhân viên.
Xử lý bài toán:
Khai báo thư viện
Khai báo struct nhân viên
Khai báo các hàm cần sử dụng
Hàm ngày tháng năm sinh
Xuất ngày tháng năm
Hàm nhập 1 nhân viên
Hàm xuất 1 nhân viên
Hàm danh sach nhân viên
Đưa vòng lặp vào và gọi lại hàm nhập 1 nhân viên
Hàm xuất danh sách nhân viên
Đưa vòng lặp vào và gọi lại hàm xuất 1 nhân viên
Hàm thêm nhân viên
Khi thêm vào thì trước tiên cần nhập sinh viên đó vào thì chỉ cần gọi lại hàm nhap 1 nhân viên Và nhập vào vị trí cần thêm
Lưu ý cần phải có: & để lưu lại và khi thêm vào thì phải xuất ra danh sách (trong hàm main)
Hàm tìm nhân viên theo tên
Tên nhân viên cần tìm
Duyệt danh sách, dùng hàm strcmp trong thư viện string.h để kiểm tra 2 tên có trùng nhau hay không
Nếu bằng 0 thì tìm thấy, return lại vị trí tìm được, dùng lệnh break để thoát khỏi vòng lặp
Ngược lại thì tìm không thấy nhân viên có tên đã nhập -1
Hàm tìm mã số nhân viên
Mã số nhân viên cần tìm
Duyệt danh sách, nếu mã nhân viên bằng mã số cần tìm thì return lại ví trí tìm được, dùng lệnh break để thoát khỏi vòng lặp
Ngược lại thì return -1
Hàm sắp xếp lương giảm dần
Duyệt từ vị trí i=0 đến vị trí n-1, duyệt từ vị trí j=i +1 đến n
Nếu lương của vị trí i < lương vị trí j thì
float t=ds.a[i].luong;
ds.a[i].luong=ds.a[j].luong;
ds.a[j].luong=t;
Hàm xóa 1 nhân viên
Mã số nhân viên muốn xóa
Gọi lại hàm tìm mã số nhân viên
Nếu hàm tìm mã số nhân viên =-1 thì không tìm thấy nhân viên cần xóa
Ngược lại thì duyệt danh sach từ vị trí tìm được mã số đến hết danh sách
i=i+1 khi đó n-1

Chương trình

Mình chia sẽ code này đê các bạn tham khảo các vấn đề tương tự. Tuy nhiên các bạn nên tự làm lại, đừng nên copy. Nếu gặp vấn đề gì khó khăn, hoặc thắc mắc gì, các bạn có thể đặt câu hỏi ở cuối bài. Mình sẽ giải đáp.

Chúc các bạn thành công!

7 COMMENTS

  1. Cho mình hỏi tại sao trong 1 số hàm con lại có dấu & vậy. Mình tưởng dấu & chỉ dùng để lấy địa chỉ của tham số khi gọi hàm thôi mà. Bạn làm ơn giải thích giùm mình vs.

  2. Tại sao ở hàm nhapnv, themnv , nhapds lại có dấu & trước tham số trong khi đó ở hàm timten lại có dấu con trỏ trước tham số vậy. Mình k hiểu cho lắm

  3. Nếu không có dấu & thì khi vào hàm va ra hàm giá trị sẽ không thay đổi ví dụ như hàm chưa có gì thì khi bạn nhập 1 mảng: 2 4 5 6 …vào rồi khi ra khỏi hàm hàm vẫn rỗng, nhưng khi bạn để dấu & thì hàm sẽ lưu lại các giá trị đã nhập

  4. Mình tưởng cách truyền tham số bằng địa chỉ này thì phải có dấu * ở đằng trc chứ. K lẽ code này bạn viết theo c++ ak?

LEAVE A REPLY