LỜI MỞ ĐẦU 3
CHƯƠNG I : MỘT SỐ VẤN ĐỀ VỀ PHƯƠNG PHÁP LUẬN TRONG HỆ THỐNG THÔNG TIN QUẢN LÝ TIỀN LƯƠNG 4
I. CƠ SỞ LÝ LUẬN VỀ TIỀN LƯƠNG VÀ CÁC HÌNH THỨC TRẢ LƯƠNG 4
1. Cơ sở lý luận và bản chất của tiền lương. 4
2. Hình thức trả lương theo thời gian 4
2.1 Chế độ trả lương theo thời gian đơn giản 5
2.2 Chế độ trả lương theo thời gian có thưởng 5
3. Chế độ bảo hiểm xã hội 6
3.1 Khái niệm: 6
3.2 Quỹ bảo hiểm xã hội 6
3.3 Các chế độ BHXH 6
4. Chế độ tính lương của Công ty 6
II. PHƯƠNG PHÁP LUẬN PHÂN TÍCH _ THIẾT KẾ HỆ THỐNG THÔNG TIN 8
1. Một số vấn đề về hệ thống thông tin 8
1.1 Khái niệm hệ thống thông tin 8
1.2 Hệ thống thông tin quản lý MIS 8
1.3 Hệ thống thông tin kế toán 9
2. Nguyên nhân dẫn tới việc phát triển một hệ thống thông tin 9
3. Phương pháp phát triển một hệ thống thông tin 10
4. Các giai đoạn phát triển hệ thống. 11
5. Công cụ mô hình hoá 13
6. Các giai đoạn trong quá trình xây dựng mô hình dữ liệu 14
CHƯƠNG II : PHÂN TÍCH BÀI TOÁN 17
I. GIỚI THIỆU BÀI TOÁN 17
II. MỤC ĐÍCH XÂY DỰNG ĐỀ TÀI 17
III. YÊU CẦU CỦA ĐỀ TÀI. 18
1. Cập nhật những thông tin cần thiết. 18
2. Hỗ trợ việc tìm kiếm 19
3. Lập các báo cáo thống kê. 19
CHƯƠNG III : PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG THÔNG TIN QUẢN LÝ TIỀN LƯƠNG 20
I. PHÂN TÍCH LUỒNG THÔNG TIN VÀ DỮ LIỆU 20
1. Sơ đồ chức năng của hệ thống thông tin. 20
2. Sơ đồ luồng dữ liệu. 21
2.1 Sơ đồ ngữ cảnh của hệ thống tính lương. 21
2.2 Biểu đồ luồng dữ liệu mức đỉnh 21
2.3 Sơ đồ phân rã chức năng mô tả hoạt động chấm công(CC) 22
II. THIẾT KẾ CƠ SỞ DỮ LIỆU 23
1. Thiết kế cơ sở dữ liệu đi từ các thông tin đầu ra. 23
2. Mô tả các bảng. 27
2.1 Bảng lương nhân viên . 27
2.2 Lương theo phòng ban. 27
III. THIẾT KẾ CHƯƠNG TRÌNH QUẢN LÝ LƯƠNG 28
1. Ngôn ngữ thiết kế chương trình. 28
2. Thiết kế menu của chương trình. 28
3. Màn hình giao diện của thực đơn. 29
4. Một số kết quả đầu ra. 31
5. Chương trình lập trình 33
KẾT LUẬN. 57
57 trang |
Chia sẻ: huong.duong | Lượt xem: 1384 | Lượt tải: 1
Bạn đang xem trước 20 trang tài liệu Đề tài Phân tích và thiết kế hệ thống thông tin quản lý lương, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
định các khoá chính( khoá chính và khoá ngoại lai.
Tiến hành chuẩn hoá dữ liệu đối với từng thực thể(bảng)
Thiết kế cơ sở dữ liệu
Thiết kế cơ sở dữ liệu là xác định yêu cầu thông tin của người sử dụng HTTT mới. Thiết kế cơ sở dữ liệu gồm các công việc sau:
Xác định mục đích của cơ sở dữ liệu: đây là công việc quan trọng nhất. Là một cán bộ thiết kế một cơ sở dữ liệu(CSDL), họ cần phải biết rõ CSDL này sẽ được dùng làm gì? Muốn vậy phải nghiên cứu xem người dùng CSDL trong tương lai cần trích rút những dữ liệu nào dưới dạng những báo xáo như thế nào và sử dụng những dữ liệu ấy vào việc gì.
Phác hoạ mô hình dữ liệu: trước hết là xác định các thực thể và thuộc tính của mỗi thực thể đó. Xác định thực thể nào với thuộc tính nào cần được ghi nhận và lưu trữ trong CSDL sao cho có thể đạt được những mục đích đã đề ra. Thực chất là xác định CSDL cần chứa những bảng nào và mỗi bảng cần chưa những cột nào.
Những nguyên lý để chọn lựa các bảng và các cột trong bảng:
Giảm thiểu sự trùng lắp: Mỗi bảng khôn gnên chứa dữ liệu trùng lặp và các bảng khác nhau cũng không nên chứa dữ liệu như nhau.
Tránh dư thừa: mỗi bảng phải chứa vừa đủ những dữ liệu cần thiết về một thực thể. Không nên đưa vào những cột có thể tính toán suy ta từ những cột khác.
Tăng tính độc lập giữa các bảng: Phân chia dữ liệu vào các bảng sao cho có thể biên tập dữ liệu trong bảng này một cách độc lập với bảng khác.
Dữ liệu nguyên tố: mỗi cột chỉ nên chứa những yếu tố dữ liệu có tính chất nguyên tố.
Xác định những mối quan hệ giữa các thực thể: sau khi đã phân chia dữ liệu vào các bảng, nhà thiết kế phải tìm ra quan hệ giữa các bảng để sau này có thể trích rút và kết hợp dữ liệu từ các bảng khác nhau nhằm đáp một cách nhanh chóng và đầy đủ nhu cầu của người dùng.
Xác định các khoá chính để tránh sự xâm nhập về thông tin dữ liệu giữa các bản ghi, trong một bảng đòi hỏi ta phải nhận diện một trường hay một thuộc tính làm yếu tố phân biệt còn gọi là khoá chính của bảng. Nếu có nhiều lựa chọn thì phải chọn ra trường nào có ý nghĩa nhất đối với ứng dụng để làm khoá chính. Đôi khi ta cũng phải biết kết hợp một vài thuộc tính để tạo mục khoá chính.
Nhận diện mục khoá ngoại lai: khoá này yêu cầu là một trường trên bảng dữ liệu này những giá trị của nó phải khớp với giá trị của mục khoá chính trên bảng dữ liệu cần liên kết kia. Song khoá chính này chỉ mang tính kết quả chứ không xác định tính duy nhất của các bản ghi trong bảng dữ liệu.
Thêm vào các trường không phải là khoá: yêu cầu tạo ra những tên để đặt cho các trường trong bảng sao cho gợi nhớ và thuận tiện khi xử lý các dữ liệu trên bản. Sau đó cần tiến hành chuẩn hoá để liên kết một cách chặt chẽ với nhau đảm bảo không mất thông tin.
Duyệt lại mô hình dữ liệu để phát hiện và khắc phục những khuyết điểm của bản thiết kế CSDL.
Tạo lập CSDL: sau khi đã sửa và duyệt mô hình một cách chu đáo thì có thể tiến hành “phiên dịch” mô hình thành CSDL, tạo bảng, ghi nhận những mối quan hệ, điền dữ liệu vào các bảng và tạo ra các đối tượng khác của cơ sở dữ liệu như: mẫu(form), báo cáo,
Phân tích bài toán
Giới thiệu bài toán
Bài toán quản lý tiền lương là quản lý thông tin có liên quan tới lương bao gồm các thông tin: nhân viên, thời gian lao động, chấm công,mức lương, hệ số lương, khen thưởng, kỷ luật, bảo hiểm xã hội, bảo hiểm y tế, cách thức tính lương,
Thông tin đầu vào của hệ thống bao gồm các thông tin về nhân viên, thông tin về thời gian lao động của nhân viên, các thông tin về khen thưởng, kỷ luật, thông tin về thời gian lao động, các quy định về chế độ lao động và tiền lương cũng như các chế độ bảo hiểm của doanh nghiệp Từ các thông tin đầu vào và những yêu cầu của các doanh nghiệp sẽ tính toán tiền lương cho mỗi nhân viên đồng thời cũng đưa ra được các báo cáo tổng hợp để trình lên ban lãnh đạo và các phòng ban có liên quan.
Mục đích xây dựng đề tài
Cùng với sự phát triển của xã hôị thì công nghệ thông tin và đang được đưa và ứng dụng trên phạm vi toàn thế giới, dần tiến tới tin học hoá tất cả các hoạt động trong mọi lĩnh vực của các ngành nghề. Máy tính thực sự là công cụ không thể thiếu được trong mọi hoạt động của xã hội trong thời đại bùng nổ thông tin như hiện nay. Chính vì thế việc quản lý nói chung và quản lý tiền lương nói riêng phải được tin học hoá toàn bộ, không còn làm theo lối thủ công sổ sách, giấy tờ, chậm chạp trong công việc khai thác thông tin và mất nhiều thời gian lưu trữ. Mục đích của việc xây dựng đề tài này là :
Giảm bớt thời gian ghi chép, không gây nhầm lẫn, thiếu chính xác.
Thực hiện sửa dữ liệu rất thuận tiện.
Tận dụng tối đa khả năng tính đã có.
Mọi công việc cập nhật, điều chỉnh, tìm kiếm, tra cứu đều được thực hiện nhanh chóng, chính xác và tiết kiệm thời gian.
Công việc của cán bộ quản lý không còn vất vả, hiệu suất lao động cao.
Yêu cầu của đề tài.
Xác định yêu cầu là bước có ý nghĩa quyết định đến chất lượng HTTT
Cập nhật những thông tin cần thiết.
Cập nhật các thông tin có liên quan đến việc tính lương như: danh mục phòng ban, danh mục chức vụ, hồ sơ nhân sự, danh mục phụ cấp,bảng chấm công, các khoản khen thưởng,kỷ luật,trích trừ các khoản bảo hiểm kinh phí khácCác cập nhật này đã được nhập từ trong cơ sở dữ liệu. Khi cần thay đổi thì chúng ta có thể thay đổi trực tiếp.
Công ty xây dựng công trình giao thông 889 là một công ty lớn nên khối lượng dữ liệu của Công ty khá nhiều và chúng có mối quan hệ với nhau. Do vậy khi có sự thay đổi trong công tác quản lý phải được cập nhật thường xuyên và nhanh chóng để bộ phận tính lương có thể tính toán cho người lao động đúng thời gian và kế hoạch đã định.
Bên cạnh việc cập nhật các thông tin để tính lương, hệ thống cần cập nhật những quy định về lương và chế độ bảo hiểm của Bộ lao động thương binh xã hội.
Công ty xây dựng công trình giao thông 889 là một công ty có nguồn nhân lực rất lớn. Ngoài nguồn lao động làm việc gián tiếp là chủ yếu thì nguồn lao động làm việc trực tiếp cũng đông đảo. Phần lớn nguồn lao động này tập trung ở công ty và các công trình ở các tỉnh thành. Bởi vậy phải tổ chức lưu trữ các bảng chấm công cho từng phòng ban, đội công trình và từng nhân viên trong Công ty theo từng tháng. Để hệ thống tính toán đúng tiền lương cho người lao động thì bảng chấm công phải có đầy đủ các thông tin như: tổng số ngày đi làm thực tế, số ngày nghỉ phép, số ngaỳ công không hợp lệ và các ngày lễ trong tháng. Vì vậy bộ phận quản lý chấm công phải lưu trữ các thông tin cần thiết trong bảng chấm công.
Vấn đề tiền lương không chỉ là mối quan tâm của người lao động mà nó còn là mối quan tâm của cả Công ty hay doanh nghiệp. Vì nó ảnh hưởng trực tiếp đến lợi ích của người lao động cũng như doanh thu của Công ty hoặc doanh nghiệp. Tiền lương là một trong những động lực kích thích người lao động làm việc hăng hái nhưng đồng thời cũng có thể là nguyên nhân dẫn đến sự mất ổn định hay những thiệt hại trong nhiều mặt hoạt động kinh doanh mà Công ty hay doanh nghiệp khó có thể đo lường trước được. Để việc quản lý tiền lương bảo đảm được những chức năng của nó thì hệ thống thông tin cần phải chính xác trong từng con số, cập nhật và thanh toán lương kịp thời cho người lao động.
Hỗ trợ việc tìm kiếm
Để tránh mất thời gian của công ty cũng như của nhân viên hệ thống cần phải có công cụ tìm kiếm những thông tin liên quan đến nhân viên theo mã số nhân viên,và theo thứ tự trong danh sách.
Lập các báo cáo thống kê.
In ra các báo cáo:
Báo cáo chi tiết: Báo cáo cụ thể tình hình lương của nhân viên.
Báo cáo tổng hợp: Báo cáo lương của nhân viên theo phòng ban.
Nói chung hệ thống quản lý tiền lương theo thời gian phải đáp ứng được mọi đòi hỏi về mặt thông tin cần thiết cho việc quản lý tiền lương trong Công ty.
Qua việc phân tích bài toán em lựa chọn lập trình theo ngôn ngữ pascal kiểu danh sách liên kết.
Phân tích và thiết kế hệ thống thông tin quản lý tiền lương
Phân tích luồng thông tin và dữ liệu
Sơ đồ chức năng của hệ thống thông tin.
Hệ thống thông tin quản lý lương
Báo cáo tổng hợp
Cập nhật
Tìm kiếm
Tìm kiếm theo mã nhân viên
Báo cáo
Báo cáo chi tiết
Tìm kiếm theo số thứ tự
Sửa danh sách nhân viên
Bổ sung nhân viên
Loại bỏ nhân viên
Cập nhật nhân viên
Lập báo cáo
Báo cáo
tổng hợp
Báo cáo
chi tiết
Sơ đồ luồng dữ liệu.
Sơ đồ ngữ cảnh của hệ thống tính lương.
Nhân viên
Phòng chấm công
BHXH
Giám đốc
Tính lương
Nhân viên
Giám đốc
1.0
Kiểm tra ngày công
2.0
Tính BHXH
3.0
Tính lương
Ngày công
Phiếu lương Báo cáo
Yêu cầu Biểu nộp BHXH
Bảng chấm
công
Biểu đồ luồng dữ liệu mức đỉnh
Nhân viên
Ngày công
Ngày công đã BHXH
Kiểm tra
Phiếu lương Báo cáo
Sơ đồ phân rã chức năng mô tả hoạt động chấm công(CC)
Ngày công
1.1
Kiểm tra ngày công
1.2
Chấm công
1.3
Lập bảng CC tổng hợp
Bộ phận tính lương
Nhân viên
Gửi ngày công
Ngày công hợp lệ
Bảng CC chính Bảng CC thêm giờ
Bảng CC ca đêm Bảng CC khác
Bảng chấm công
Bảng CC tổng hợp
Thiết kế Cơ sở dữ liệu
Thiết kế cơ sở dữ liệu đi từ các thông tin đầu ra.
Dựa vào các thông tin đầu ra: danh sách nhân viên, danh sách phòng ban, bảng chấm công, bảng thanh toán lương cho nhân viên các công trình, bảng thanh toán lương hành chính, danh sách nộp bảo hiểm xã hội ta có các thông tin đầu ra sau:
Thông tin đầu ra
Thuộc tính
Mã nhân viên
R
Họ tên nhân viên
Chức vụ
Mã phòng ban
R
Phòng ban
Tên phòng ban
Ngày sinh
Giới tính
Quê quán
Trình độ
Ngày vào biên chế
Hệ số lương cơ bản
Mức lương cơ bản
Hệ số phụ cấp
Số hiệu khen thưởng
Số hiệu kỷ luật
Hình thức kỷ luật
R
Hình thức khen thưởng
R
Ngày có quyết định khen thưởng,kỷ luật
Lý do khen thưởng, kỷ luật
R
Tháng
Ngày công chính thức
Ngày công thêm giờ
Ngày công làm ca đêm
Ngày công nghỉ phép, đi học
Địa điểm phòng ban
Điện thoại phòng ban
Ngày bắt đầu lương
Ngày kết thúc hệ số lương
Tiền lương cơ bản
S
Tiền lương làm thêm
S
Tiền BHXH
S
Tiền phụ cấp
S
Tiền khen thưởng
S
Tiền kỷ luật
S
Tiền ăn
Thực lĩnh
S
Từ các thông tin đầu ra trên, sau khi xác định các thuộc tính lặp(R), loại bỏ các thuộc tính thứ sinh (S) khỏi danh sách và thực hiện việc chuẩn hoá mức 1NF, 2NF, 3NF ta có các bảng sau:
Nhân viên
Mã nhân viên
Tên nhân viên
Mã phòng ban
Ngày sinh
Giới tính
Trình độ
Quê quán
Ngày vào biên chế
Hệ số lương
Hệ số phụ cấp
Số hiệu khen thưởng
Số hiệu kỷ luật
Phòng ban
Mã phòng ban
Tên phòng ban
Địa điểm
Điện thoại
Khen thưởng
Số hiệu khen thưởng
Mã nhân viên
Tên nhân viên
Hệ số khen thưởng
Hình thức khen thưởng
Lý do khen thưởng
Ngày quyết định
Kỷ luật
Số hiệu kỷ luật
Mã nhân viên
Tên nhân viên
Hệ số kỷ luật
Lý do kỷ luật
Hình thức kỷ luật
Ngày quyết định
Bảo hiểm
Mã bảo hiểm
Bảo hiểm xã hội
Bảo hiểm y tế
Ngày áp dụng
Ngày huỷ bỏ
Lương cơ bản
Mã lương cơ bản
Mức lương cơ bản
Tiền lương cơ bản
Ngày thực hiện
Ngày huỷ bỏ
Ngày công
Tháng
Năm
Mã nhân viên
Mã phòng ban
Ngày công chính thức
Ngày công thêm giờ
Ngày công ca đêm
Ngày công nghỉ phép
Tiền lương
Tháng
Mã phòng ban
Tên phòng ban
Mã nhân viên
Họ và tên nhân viên
Mức lương cơ bản
Hệ số lương
Tiền phụ cấp
Tiền thêm giờ
Thưởng
Phạt
Bảo hiểm
Tổng lương tháng
Tiền ăn ca
Thực lĩnh
Mô tả các bảng.
Bảng lương nhân viên .
TT
Thuộc tính
Diễn giải
Kiểu
Độ rộng
1
TT
Số thứ tự
Intger
2
2
MaNV
Mã nhân viên
string
10
3
HoTen
Tên nhân viên
String
30
4
HSL
Hệ số lương
Real
8
5
NC
Ngày công
Real
3
6
TongL
Tổng lương
Real
8
7
BHXH
Bảo hiểm xã hội
Real
5
8
Lthem
Làm thêm
Real
5
9
PC
Phụ cấp
Real
5
10
TH
Thưởng
Real
5
11
PH
Phạt
Real
5
12
TAN
Tiền ăn
Real
3
13
TL
Thực lĩnh
Real
8
Lương theo phòng ban.
TT
Thuộc tính
Diễn giải
Kiểu
Độ rộng
1
TT
Số thứ tự
Integer
2
2
MaPB
Mã phòng ban
String
5
3
MaNV
Mã nhân viên
String
3
4
TenPB
Tên phòng ban
String
17
5
TenNV
Tên nhân viên
String
10
6
ChucVu
Chức vụ
String
18
7
Tong Luong
Thực lĩnh
Real
14
Thiết kế chương trình quản lý lương
Ngôn ngữ thiết kế chương trình.
Pascal là một ngữ lập trình cấp cao, các chương trình có cấu trúc rõ ràng và dễ hiểu. Được dùng phổ biến ở nước ta hiện nay trong công tác giảng dạy, lập trình tính toán, đồ hoạ, xử lý văn bản. Với tiện ích của Pascal và sự hiểu biết của em qua chương trình đào tạo của trường và sự giúp đỡ hướng dẫn của thầy trưởng khoa Hàn Viết Thuận.
Em đã vận dụng ngôn ngữ này để thiết kế chương trình quản lý lương. Em hy vọng rằng phần mềm này của em sẽ góp phần nâng cao hiệu quả quản lý tiền lương trong các doanh nghiệp của nước ta hiện nay.
Thiết kế menu của chương trình.
Thực đơn trong chương trình chính gồm các mục sau:
Cập nhật danh sách.
Tìm kiếm danh sách.
Báo cáo.
Thoát.
Thực đơn cập nhật danh sách:
Cập nhật danh sách nhân viên.
Duyệt danh sách.
Bổ sung vào cuối danh sách.
Bổ sung vào vị trí bất kỳ.
Loại bỏ nhân viên.
Ghi danh sách ra tệp.
Đọc danh sách từ tệp.
Kết thúc cập nhật.
Thực đơn tìm kiếm
Bao gồm:
Tìm kiếm theo số thứ tự.
Tìm kiếm theo mã nhân viên.
Kết thúc.
Thực đơn báo cáo
Bao gồm:
Báo cáo bảng lương chi tiết.
Báo cáo bảng lương tổng hợp.
Kết thúc.
Màn hình giao diện của thực đơn.
a. Thực đơn chính
PHAN MEM QUAN LY LUONG
***********************************************
THUC DON CHUONG TRINH QUAN LY LUONG
1.Thuc Don Cap Nhat
2.Tim Kiem
3. Bao Cao
4.Thoat
***********************************************
b. Thực đơn cập nhật,
PHAN MEM QUAN LY LUONG
+++++++++++++++++++++++++++++++++++++++++++++
THUC DON CHUONG TRINH CAP NHAT
1. Cap nhat danh sach nhan vien
2. Duyet danh sach
3. Bo sung vao cuoi danh sach
4 Bo sung vao vi tri bat ky
5. Loai bo nhan vien
6. Sua du lieu nhan vien
7. Ghi danh sach
8.Doc danh sach
9. Ket thuc cap nhat
+++++++++++++++++++++++++++++++++++++++++++++
c. Thực đơn tìm kiếm.
PHAN MEM QUAN LY LUONG
+++++++++++++++++++++++++++++++++++++++++++++
THUC DON CHUONG TRINH TIM KIEM
1.Tim kiem theo so thu tu
2.Tim kiem theo ma nhan vien
3. Ket thuc
+++++++++++++++++++++++++++++++++++++++++++++
d. Thực đơn báo cáo.
PHAN MEM QUAN LY LUONG
+++++++++++++++++++++++++++++++++++++++++++++
THUC DON CHUONG TRINH BAO CAO
1. Bao cao chi tiet luong
2.Bao cao tong hop luong
3.Ket thuc
++++++++++++++++++++++++++++++++++++++++++++
Một số kết quả đầu ra.
Bảng lương nhân viên.
---BANG LUONG CHI TIET ---
Donvitinh:1000d
---------------------------------------------------------------------------------------------------------------
|TT| Ma | HOTEN |HSL |NC | TONGL | BHXH | LTHEM | PC | TH | PH |TAN | TLINH |
---------------------------------------------------------------------------------------------------------------
| 1| 02 | Le Tam |2.42 |26 | 701.80 | 701.8 | 0.00 | 140.3 | 0.00 | 0.00 | 110 | 690.05 |
| 2| 01 | Han Dat |4.38 |26 | 1270.20 | 1270. | 25.40 | 12.70 | 0.00 | 0.00 | 110 | 1122.09 |
| 3| 04 | Minh Thu |4.60 |26 | 1334.00 | 1334. | 0.00 | 13.34 | 26.68 | 0.00 | 110 | 1183.98 |
| 4| 03 | Hong Giang |4.98 |26 | 1444.20 | 1444. | 57.77 | 43.33 | 14.44 | 0.00 | 110 | 1363.08 |
--------------------------------------------------------------------------------------------------------------
Bảng lương phòng ban.
---BANG LUONG TONG HOP ---
Donvitinh:1000d
-----------------------------------------------------------------------------------------------------------
|TT| MaPB | MaNV | TenPB | TenNV | ChucVu | TongLuong |
-----------------------------------------------------------------------------------------------------------
| 1 | TCCP | 01 | To chuc can bo | Han Dat | Truong phong | 1270.20 |
| 2 | TCKT | 04 | Tai chinh ke toan | Minh Thu | Truong phong | 1334.00 |
| 3 | GD | 03 | Ban lanh dao | Hong Giang | Giam doc | 1444.20 |
---------------------------------------------------------------------------------------------------------
Chương trình lập trình
program Quanlyluong;
uses
crt;
type
PBang_luong =^Bang_luong;
Bang_luong=record
Hoten:String[20];
Manv:string[10];
CV:string[20];
PB:string[20];
MaPB:string[10];
lcb,hsluong,hsPC,PC,lamthem,HSth,hsph,Th,Ph,tongl,bhxh,tl:real;
nc,ncthem,ta:integer;
tiep,truoc:pbang_luong;
donvitinh:integer;
end;
lg=record
Hoten:String[20];
Manv:string[10];
CV:string[20];
PB:string[20];
MaPB:string[10];
lcb,hsluong,hsPC,PC,lamthem,HSth,hsph:real;
Th,tl,Ph,tongl,bhxh:real;
nc,ncthem,ta:integer;
end;
var
p,pdau,pcuoi: Pbang_luong;
D,stt,i,m,n,dong:integer;
Chon,TraLoi:char;
(*///////////////////////////////////////////////////*)
(*Chuc nang mat khau *)
FUNCTION Matkhau:boolean;
var a,b,c:char;
begin
clrscr;
repeat
gotoxy(6,6); write('Ban hay nhap mat khau:');
a:=readkey;write('*');
b:=readkey;write('*');
c:=readkey;write('*');
until (a='t') and (b='h') and (c='u');
gotoxy(6,8); writeln('Ban da nhap dung mat khau');
matkhau:=true;
readln;
end;
(*////////////////////////////////////////////////*)
(*Thu tuc tao danh sach*)
procedure taods(var Pdau:Pbang_luong);
var
stt:integer;
manv:string[23];
Pcuoi:Pbang_luong;
begin
Pdau:=nil;
clrscr;
stt:=1;
while true do
begin
clrscr;
gotoxy(15,8); writeln('nhan vien thu:',stt:4);
gotoxy(30,10); write('Ma nhan vien:');
readln(manv);
if manv='' then
exit;
if pdau=nil then
begin
new(pdau);
pcuoi:=pdau;
end
else
begin
new(pcuoi^.tiep);
pcuoi:=pcuoi^.tiep;
end;
pcuoi^.tiep:=nil;
pcuoi^.Manv:=manv;
gotoxy(30,12); write('Ho ten nhan vien:');
readln(pcuoi^.hoten);
gotoxy(30,14); write('Chuc vu:');
readln(pcuoi^.CV);
gotoxy(30,16); write('Phong ban:');
readln(pcuoi^.PB);
gotoxy(30,18); write('Ma phong ban:');
readln(pcuoi^.MaPB);
gotoxy(30,20); write('Luongcoban:');
readln(pcuoi^.lcb);
gotoxy(30,22); write('Hesoluong:');
readln(pcuoi^.hsluong);
gotoxy(30,24); write('Ngay_cong:');
readln(pcuoi^.nc);
gotoxy(30,26); write('He so phu cap:');
readln(pcuoi^.hsPC);
gotoxy(30,28); write('So ngay lam them:’);
readln(pcuoi^.NCthem);
gotoxy(30,30); write('He so thuong:');
readln(pcuoi^.hsth);
gotoxy(30,32); write('He so phat:');
readln(pcuoi^.hsph);
gotoxy(30,34); write('Tien an:');
readln(pcuoi^.TA);
stt:=stt+1;
(****tinh luong****)
pcuoi^.tongl:=(pcuoi^.hsluong*pcuoi^.lcb/26)*pcuoi^.NC;
pcuoi^.bhxh:=pcuoi^.tongl*6/100;
pcuoi^.PC:=pcuoi^.tongl*pcuoi^.hsPC;
pcuoi^.lamthem:=0.02*pcuoi^.tongl*pcuoi^.NCthem;
pcuoi^.th:=pcuoi^.tongl*pcuoi^.hsth ;
pcuoi^.ph:=pcuoi^.tongl*pcuoi^.hsph;
pcuoi^.tl:=pcuoi^.tongl-pcuoi^.bhxh+pcuoi^.PC+pcuoi^.lamthem+pcuoi^.th- pcuoi^.ph-pcuoi^.TA;
end;
end;
(*//////////////////////////////////////////////////*)
(*Thu tuc sap xep theo thuc linh tang dan*)
procedure SapXepTL;
var sx:boolean;
pt,s,q:pBang_luong;
begin
repeat p:=pdau;
q:=nil;
sx:=true;
while p^.tiepnil do
begin
pt:=p^.tiep;
if P^.tl>Pt^.tl then
begin
sx:=false;
if Pt^.tiepnil then
begin
S:=pt^.tiep;
S^.truoc:=P;
end
else
S:=nil;
if p^.truoc=nil then
begin
pdau:=pt;q:=nil
end
else
begin
q:=p^.truoc;
q^.tiep:=pt
end;
p^.tiep:=S;
P^.truoc:=pt;
pt^.tiep:=p;
pt^.truoc:=q;
p:=pdau;
end
else p:=p^.tiep;
end;
until sx;
pcuoi:=p;
end;
(*//////////////////////////////////////////////////*)
(**Thu tuc duyet danh sach **)
procedure Duyet;
var stt:integer;
begin
p:=pdau;
stt:=0;
while pnil do
begin
inc(stt);
CLRSCR;
textbackground(5);
textcolor(11);
gotoxy(20,3); writeln('---BANG LUONG NHAN VIEN ---');
gotoxy(45,5);writeln('Donvitinh:1000d');
gotoxy(1,7); writeln('-------------');
gotoxy(1,8 );write('|');
gotoxy(2,8); write('TT');
gotoxy(4,8 );write('|');
gotoxy(5,8);write('Maso');
gotoxy(8,8 );write('|');
gotoxy(9,8); write('HOTEN');
gotoxy(19,8 );write('|');
gotoxy(20,8); write('HSL');
gotoxy(24,8 );write('|');
GOTOXY(25,8); WRITE('NC');
gotoxy(27,8 );write('|');
gotoxy(28,8); Write('TONGL');
gotoxy(36,8 );write('|');
GOTOXY(37,8);write('BHXH');
gotoxy(42,8 );write('|');
GOTOXY(43,8);WRITE('THEM');
gotoxy(48,8 );write('|');
gotoxy(49,8); write('PC');
gotoxy(54,8 );write('|');
gotoxy(55,8); write('TH');
gotoxy(60,8 );write('|');
gotoxy(61,8); write('PH');
gotoxy(66,8 );write('|');
gotoxy(67,8); Write('TAN');
gotoxy(70,8 );write('|');
gotoxy(71,8);write('TLINH');
gotoxy(80,8);write('|');
gotoxy(3,77); Write('----------');
gotoxy(1,dong);write('|');
dong:=10;
textbackground(5);
textcolor(11);
GOTOXY(2,DONG);writeln(stt:2);
gotoxy(4,dong );writeln('|');
gotoxy(5,dong);writeln(p^.manv:3);
gotoxy(8,dong ); writeln('|');
gotoxy(9,dong); writeln(P^.hoten);
gotoxy(19,dong );writeln('|');
gotoxy(20,dong);writeln(p^.hsluong:4:2);
gotoxy(24,dong );writeln('|');
gotoxy(25,dong); writeln(p^.NC);
gotoxy(27,dong );writeln('|');
gotoxy(28,dong);writeLN(p^.tongl:8:2);
gotoxy(36,dong );writeln('|');
gotoxy(37,dong); writeLN(P^.BHXH:5:2);
gotoxy(42,dong );writeln('|');
gotoxy(43,dong); writeln(p^.lamthem:5:2);
gotoxy(48,dong ); writeln('|');
gotoxy(49,dong); write(p^.PC:5:2);
gotoxy(54,dong ); writeln('|');
gotoxy(55,dong); writeln(p^.TH:5:2);
gotoxy(60,dong ); writeln('|');
gotoxy(61,dong);writeln(p^.Ph:5:2);
gotoxy(66,dong ); writeln('|');
gotoxy(67,dong);writeLN(p^.TA);
gotoxy(70,dong ); writeln('|');
gotoxy(71,dong);writeLN(p^.tl:8:2);
gotoxy(80,dong ); writeln('|');
inc(dong);
p:=p^.tiep;
readln;
gotoxy(1,dong);writeln('----------------');
end;
gotoxy(10,34);Writeln('An phim bat ky de ket thuc xem');
readln;
end;
(*///////////////////////////////////////////////*)
(**Thu tuc in**)
procedure Inchitiet(p:pbang_luong);
var
pcuoi:pBang_luong;
stt:integer;
begin
sapxepTL;
CLRSCR;
gotoxy(20,3); writeln('---BANG LUONG CHI TIET ---');
gotoxy(50,5);writeln('Donvitinh:1000d');
gotoxy(1,7); writeln('----------------');
gotoxy(1,8 );write('|');
gotoxy(2,8); write('TT');
gotoxy(4,8 );write('|');
gotoxy(5,8);write('Maso');
gotoxy(8,8 );write('|');
gotoxy(9,8); write('HOTEN');
gotoxy(19,8 );write('|');
gotoxy(20,8); write('HSL');
gotoxy(24,8 );write('|');
GOTOXY(25,8); WRITE('NC');
gotoxy(27,8 );write('|');
gotoxy(28,8); Write('TONGL');
gotoxy(36,8 );write('|');
GOTOXY(37,8);write('BHXH');
gotoxy(42,8 );write('|');
GOTOXY(43,8);WRITE('LTHEM');
gotoxy(48,8 );write('|');
gotoxy(49,8); write('PC');
gotoxy(54,8 );write('|');
gotoxy(55,8); write('TH');
gotoxy(60,8 );write('|');
gotoxy(61,8); write('PH');
gotoxy(66,8 );write('|');
gotoxy(67,8); Write('TAN');
gotoxy(70,8 );write('|');
gotoxy(71,8);write('TLINH');
gotoxy(80,8);write('|');
gotoxy(1,9); Write('------------------------');
dong:=10;
stt:=1;
p:=pdau;
while pnil do
begin
gotoxy(1,dong);write('|');
GOTOXY(2,DONG);writeln(stt:2);
gotoxy(4,dong );writeln('|');
gotoxy(5,dong);writeln(p^.manv:3);
gotoxy(8,dong ); writeln('|');
gotoxy(9,dong); writeln(P^.hoten);
gotoxy(19,dong );writeln('|');
gotoxy(20,dong);writeln(p^.hsluong:4:2);
gotoxy(24,dong );writeln('|');
gotoxy(25,dong); writeln(p^.NC);
gotoxy(27,dong );writeln('|');
gotoxy(28,dong);writeLN(p^.tongl:8:2);
gotoxy(36,dong );writeln('|');
gotoxy(37,dong); writeLN(P^.BHXH:5:2);
gotoxy(42,dong );writeln('|');
gotoxy(43,dong); writeln(p^.lamthem:5:2);
gotoxy(48,dong ); writeln('|');
gotoxy(49,dong); write(p^.PC:5:2);
gotoxy(54,dong ); writeln('|');
gotoxy(55,dong); writeln(p^.TH:5:2);
gotoxy(60,dong ); writeln('|');
gotoxy(61,dong);writeln(p^.Ph:5:2);
gotoxy(66,dong ); writeln('|');
gotoxy(67,dong);writeLN(p^.TA);
gotoxy(70,dong ); writeln('|');
gotoxy(71,dong);writeLN(p^.tl:8:2);
gotoxy(80,dong);writeln('|');
p:=p^.tiep;
dong:=dong+1;stt:=stt+1;
end;
gotoxy(1,dong);writeln('----------------');
readln;
end;
(*//////////////////////////////////////////////////*)
(*Thu tuc in bang luong tong hop*)
procedure InTongHop(p:pbang_luong);
var
pcuoi:pBang_luong;
stt:integer;
begin
p:=pdau;
sapxepTL;
CLRSCR;
gotoxy(20,3); writeln('-BANG LUONG TONG HOP -');
gotoxy(50,5);writeln('Donvitinh:1000d');
gotoxy(1,7); writeln('-----------------');
gotoxy(1,8 );write('|');
gotoxy(2,8); write('TT');
gotoxy(4,8 );write('|');
gotoxy(5,8);write('MaPB');
gotoxy(10,8 );write('|');
gotoxy(11,8); write('MaNV');
gotoxy(17,8 );write('|');
gotoxy(18,8); write('TenPB');
gotoxy(35,8 );write('|');
GOTOXY(36,8); WRITE('TenNV');
gotoxy(46,8 );write('|');
gotoxy(47,8); Write('ChucVu');
gotoxy(65,8 );write('|');
GOTOXY(66,8);write('TongLuong');
gotoxy(80,8 );write('|');
gotoxy(1,9); Write('------------------');
dong:=10;
stt:=1;
while pnil do
begin
gotoxy(1,dong);write('|');
GOTOXY(2,DONG);writeln(stt:2);
gotoxy(4,dong );writeln('|');
gotoxy(5,dong);writeln(p^.MaPB:5);
gotoxy(10,dong ); writeln('|');
gotoxy(11,dong); writeln(P^.MaNV);
gotoxy(17,dong );writeln('|');
gotoxy(18,dong);writeln(p^.PB);
gotoxy(35,don
Các file đính kèm theo tài liệu này:
- 3495.doc