Đề tài Xây dựng chương trình hỗ trợ hệ thống quản lý tiền lương

Tài liệu Đề tài Xây dựng chương trình hỗ trợ hệ thống quản lý tiền lương: Mục lục Lời mở đầu Lương bổng là một vấn đề “nhức nhối” của hầu hết các công ty tại Việt Nam. Đây là một đề tài đã từng gây tranh luận sôi nổi trên diễn đàn quốc hội Việt Nam trong nhiều năm qua, và hiện nay nó vẫn còn là đề tài nóng bỏng đối với Việt Nam. Vì vậy quản lý tiền lương trong các Công ty ngày càng được quan tâm, Công ty tổ chức hoạt động có tốt hay không, có phát triển mạnh hay không phụ thuộc rất nhiều vào công tác quản lý đặc biệt là quản lý tiền lương. Trước kia khi máy tính chưa được sử dụng rộng rãi thì mọi công tác quản lý tiền lương đều thực hiện bằng thủ công tức là đòi hỏi phải có một số lượng người nhất định nào đó có thể đảm nhận công việc này và mọi giấy tờ sổ sách lưu trữ bằng các trang giấy. Thử nghĩ sau khoảng thời gian dài hoạt động thì số lượng sổ sách giấy tờ sẽ là bao nhiêu. Đó là chưa kể đến côngviệc tính toán có nhiều sai xót, nhầm lẫn và khó khăn trong việc tìm kiếm thông tin khi cần thiết Khi máy tính ra đời và ứng dụng vào thực tiễn ngày càng nhi...

doc57 trang | Chia sẻ: hunglv | Lượt xem: 1277 | Lượt tải: 0download
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Xây dựng chương trình hỗ trợ hệ thống quản lý tiền lương, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
Mục lục Lời mở đầu Lương bổng là một vấn đề “nhức nhối” của hầu hết các công ty tại Việt Nam. Đây là một đề tài đã từng gây tranh luận sôi nổi trên diễn đàn quốc hội Việt Nam trong nhiều năm qua, và hiện nay nó vẫn còn là đề tài nóng bỏng đối với Việt Nam. Vì vậy quản lý tiền lương trong các Công ty ngày càng được quan tâm, Công ty tổ chức hoạt động có tốt hay không, có phát triển mạnh hay không phụ thuộc rất nhiều vào công tác quản lý đặc biệt là quản lý tiền lương. Trước kia khi máy tính chưa được sử dụng rộng rãi thì mọi công tác quản lý tiền lương đều thực hiện bằng thủ công tức là đòi hỏi phải có một số lượng người nhất định nào đó có thể đảm nhận công việc này và mọi giấy tờ sổ sách lưu trữ bằng các trang giấy. Thử nghĩ sau khoảng thời gian dài hoạt động thì số lượng sổ sách giấy tờ sẽ là bao nhiêu. Đó là chưa kể đến côngviệc tính toán có nhiều sai xót, nhầm lẫn và khó khăn trong việc tìm kiếm thông tin khi cần thiết Khi máy tính ra đời và ứng dụng vào thực tiễn ngày càng nhiều đã giúp cho việc quản lý trở nên dễ dàng hơn. Máy tính có thể lưu trữ lượng lớn thông tin mà không cần đến sổ sách, có thể tìm kiếm thông tin một cách nhanh chóng mà không tốn công sức tìm kiếm, hạn chế được những sai sót trong tính toán tiền lương cho công nhân viên. Nhận thức được tầm quan trọng của việc tin học hoá trong công tác quản lý em đã chọn đề tài xây dựng chương trình hỗ trợ hệ thống quản lý tiền lương theo thời gian nhằm cập nhật, tìm kiếm, tính toán thông tin về tiền lương một cách nhanh chóng. Nội dung gồm có 3 chương: Chương I : Các vấn đề về phương pháp luận trong hệ thống quản lý tiền lương Chương II : Phân tích bài toán Chương III : Phân tích và thiết kế hệ thống thông tin quản lý lương 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 Cơ sở lý luận về tiền lương và các hình thức trả lương Cơ sở lý luận và bản chất của tiền lương. Tiền lương là một trong những động lực kích thích con người làm việc hăng hái, nhưng đồng thời cũng là một trong những nguyên nhân gây trì trệ, bất mãn hoặc từ bỏ công ty mà ra đi. Tất cả đều tuỳ thuộc vào trình độ và năng lực của các cấp quản trị. Trong nền kinh tế thị trường và sự hoạt động của thị trường sức lao động, sức lao động là hàng hoá do đó tiền lương là giá cả cuả sức lao động. Nền kinh tế tư bản chủ nghĩa, nơi mà các quan hệ thị trường thống trị mọi quan hệ kinh tế, xã hội khác, C.Mác viết:” Tiền công không phải là giá trị hay giá cả của lao động mà chỉ là một hình thái cải trang của giá trị hay giá cả sức lao động”. Trước hết tiền lương là số tiền mà người sử dụng lao động trả cho người lao động. Điều đó thể hiện quan hệ kinh tế của tiền lương. Mặt khác do tiền lương là loại hàng hoá sức lao động đặc biệt nên nó không chỉ thuần tuý là vấn đề kinh tế mà còn là một vấn đề xã hội rất quan trọng, liên quan tới đời sống và trật tự xã hội, đó là quan hệ xã hội. Đối với người lao động, tiền lương là thu nhập chủ yếu đối với đa số lao động trong xã hội có ảnh hưởng trực tiếp đến mức sống của họ. Mục đích của người lao động là phấn đấu nâng cao tiền lương. Điều này đã tạo động lực để người lao động phát triển trình độ và khả năng của mình. Tiền lương không chỉ là vấn đề quan trọng đối với người lao động mà trong hoạt động kinh doanh, tiền lương là một phần chi phí cấu thành chi phí sản xuất-kinh doanh. Vì vậy tiền lương luôn được tính toán và quản lý chặt chẽ. Hình thức trả lương theo thời gian Hầu hết các công ty tại các nước phát triển trên thế giới đều áp dụng theo phương pháp này. Tiền lương trả theo thời gian chủ yếu áp dụng đối với những người làm công tác quản lý, còn đối với công nhân sản xuất chỉ áp dụng ở những bộ phận không thể tiến hành định mức một cách chặt chẽ và chính xác, hoặc vì tính chất của sản xuất hạn chế, nếu thực hiện trả công theo sản phẩm sẽ không bảo đảm được chất lượng sản phẩm, không đem lại hiệu quả thiết thực. Hình thức tiền lương trả theo thời gian có hai chế độ: theo thời gian đơn giản và theo thời gian có thưởng. Chế độ trả lương theo thời gian đơn giản Chế độ trả lương theo thời gian đơn giản là chế độ trả lương mà tiền lương nhận được của mỗi người công nhân do mức lương cấp bậc cao hay thấp và thời gian thực tế làm việc nhiều hay ít quyết định. Chế độ trả lương này chỉ áp dụng ở những nơi khó xác định mức lao động chính xác, khó đánh giá công việc chính xác. LTT = LCB x T Trong đó: LTT: Tiền lương thực tế người lao động nhận được. LCB: Tiền lương cấp bậc giờ tính theo thời gian. T: Thời gian thực tế đã làm việc của người lao động. Có 2 loại lương theo thời gian đơn giản: Lương ngày: Tính theo mức lương cấp bậc ngày và số ngày làm việc thực tế trong tháng. Lương ngày= Lương tháng/26. Lương tháng: Tính theo mức lương cấp bậc tháng Chế độ trả lương theo thời gian có thưởng Chế độ trả lương này là sự kết hợp giữa chế độ trả lương theo thời gian đơn giản với tiền thưởng, khi đạt được những chỉ tiêu về số lượng hoặc chất lượng đã qui định. Chế độ trả lương này chủ yếu áp dụng đối với những công nhân phụ làm công việc phục vụ như công nhân sửa chữa, điều chỉnh thiết bị... Ngoài ra, còn áp dụng đối với những công nhân chính làm những khâu sản xuất có trình độ cơ khí hoá cao, tự động hoá hoặc những công việc tuyệt đối phải đảm bảo chất lượng. Tiền lương của công nhân được tính bằng cách lấy lương trả theo thời gian(mức lương cấp bậc) nhân với thời gian làm việc thực tế, sau đó cộng với tiền thưởng. Chế độ bảo hiểm xã hội Khái niệm: Bảo hiểm xã hội là một trong những nội dung quan trọng của chính sách xã hội mà nhà nước bảo đảm trước phát luật cho mỗi người dân nói chung và mỗi người lao động nói riêng. Bảo hiểm xã hội là sự bảo đảm về mặt vật chất cho người lao động trong và ngoài khu vực quốc doanh khi ốm đau, thai sản, tai nạn, hưu trí hoặc chết để góp phần ổn định đời sống của người lao động và gia đình, trên cơ sở đongd góp của người sử dụng lao động, người lao động và sự bảo hộ của Nhà nước. Quỹ bảo hiểm xã hội Quỹ bảo hiểm xã hội được hình thành từ sự đóng góp của người sử sụng lao động, người lao động và hỗ trợ của Ngân sách Nhà nước. Quỹ dùng để chi trả các chế độ bảo hiểm xã hội(theo nguyên tắc có đóng góp có hưởng, mức hưởng tuỳ thuộc vào sự đóng góp), thời gian tham gia bảo hiểm xã hội và thực hiện chức năng điều hoà xã hội. Các chế độ BHXH Có 5 chế độ sau : Chế độ trợ ốm đau. Tai nạn nghề nghiệp. Thai sản : Hưu trí: Chế độ tử tuất. Tóm lại: Chế độ bảo hiểm xã hội quy định quỹ bảo hiểm xã hội được hình thành từ 2 nguồn sau đây: Trích vào chi phí sản xuất kinh doanh hàng tháng của các đơn vị bằng 15% tiền lương thực tế phải trả. Trích lương người lao động 5%. Ngoài ra theo quy định hiện nay người lao động còn phải nộp bảo hiểm y tế cho cơ quan. Bảo hiểm bằng 1% tiền lương để chi trả cho dịch vụ khám chữa bệnh miễn phí. Doanh nghiệp sẽ thu hồi khoản này bằng cách trừ lương của người lao động. Chế độ tính lương của Công ty Tính lương cho CBCNV văn phòng dựa vào các yếu tố sau: Bảng chấm công Bảng theo dõi làm thêm ngày. Các chế độ phụ cấp BHXH thay lương(nghỉ ốm, thai sản…) Tính lương cho công nhân trực tiếp sản xuất Những khoản phụ ảnh hưởng đến lương: Tính hệ số phụ cấp lương theo thời gian công tác Quyết định của Công ty bao nhiêu thời gian được xét nâng lương Tiền lương được trả theo trình độ Tiền lương được trả theo khối lượng công việc hoặc choc vụ đang giữ(Trưởng phòng, phó phòng, nhân viên…) Các chế độ thưởng phạt: Tuỳ theo mức độ hoàn thành xuất sắc công việc hoặc có phát huy sáng kiến cải tiến kỹ thuật có thể thưởng một lần hoặc tăng lương sớm. Khi vi phạm kỷ luật lao động hoặc nội quy của Công ty xử phạt theo mức độ vi phạm và trừ vào lương cuối tháng. Phương pháp luận phân tích _ thiết kế hệ thống thông tin Một số vấn đề về hệ thống thông tin Khái niệm hệ thống thông tin Hệ thống thông tin là một tập hợp những con người, các thiết bị phần cứng, phần mềm, dữ liệu… thực hiện hoạt động thu thập, lưu trữ, xử lý và phân phối thông tin trong một tập các ràng buộc được gọi là môi trường. Nó được thể hiện bởi những con người, các thủ tục, dữ liệu và thiết bị tin học hoặc không tin học. Đầu vào của hệ thống thông tin được lấy từ các nguồn và được xử lý bởi hệ thống sử dụng nó cùng với các dữ liệu đã được lưu trữ từ trước. Kết quả xử lý được chuyển đến các đích hoặc cập nhật vào kho lưu trữ dữ liệu. Mô hình hệ thống thông tin Xử lý và lưu giữ Kho dữ liệu Thu nhập Phân phát Đích Nguồn Hệ thống thông tin quản lý MIS Là hệ thống trợ giúp các hoạt động quản lý của tổ chức, các hoạt động này nằm ở mức điều khiển tác nghiệp, điều khiển quản lý hoặc lập kế hoạch chiến lược. Chúng dựa vào các cơ sơ dữ liệu được tạo ra bởi các hệ xử lý giao dịch cũng như từ các nguồn dữ liệu ngoài tổ chức để tạo ra các báo cáo cho các nhà quản lý một cách định kỳ hoặc theo yêu cầu. Các báo cáo này tóm tắt tình hình về một mặt đặc biệt nào đó của tổ chức. Từ các báo cáo này chúng ta có thể so sánh các dữ liệu hiện thời của các doanh nghiệp trong cùng một ngành công nghiệp, dữ liệu hiện thời và các dữ liệu lịch sử. Hệ xử lý giao dịch vận hành tốt hay xấu có ảnh hưởng rất lớn đến chất lượng thông tin mà các hệ thống thông tin quản lý sản sinh ra. Các hệ thống thông tin quản lý như: hệ thống phân tích năng lực bán hàng, theo dõi chi tiêu, theo dõi năng suất hoặc vắng mặt của nhân viên, nghiên cứu về thị trường… Hệ thống thông tin kế toán Hệ thống thông tin kế toán là tập hợp các nguồn lực như con người, thiết bị máy móc được thiết kế nhằm biến đổi dữ liệu tài chính và các dữ liệu khác thành thông tin Mô hình hệ thống thông tin tự động hoá Dữ liệu kế toán (chứng từ,sổ sách Thông tin kế toán (Báo cáo quản trị, báo cáo tài chính Hệ thống thông tin kế toán Phần cứng Phần mềm Cơ sở dữ liệu Các thủ tục Con người Nguyên nhân dẫn tới việc phát triển một hệ thống thông tin Những cố gắng phát triển hệ thống thông tin để đạt được mục tiêu cuối cùng là cung cấp cho các thành viên của tổ chức những công cụ quản lý tốt nhất. Phát triển một hệ thống thông tin bao gồm việc phân tích hệ thống đang tồn tại, thiết kế một hệ thống mới, thực hiện và tiến hành cài đặt nó. Phân tích một hệ thống thông tin bắt đầu từ việc thu thập dữ liệu và chỉnh đốn chúng để đưa ra được chẩn đoán về tình hình thực tế. Thiết kế là nhằm mục đích xác định các bộ phận của một hệ thống mới có khả năng cải thiện tình trạng hiện tại và xây dựng các mô hình lô gíc và mô hình vật lý ngoài của hệ thông đó. Việc thực hiện hệ thống thông tin liên quan tới xây dựng mô hình vật lý trong của hệ thống mới và chuyển mô hình đó sang ngôn ngữ tin học. Cài đặt một hệ thống là tích hợp nó vào hoạt động của tổ chức. Nguyên nhân dẫn tới việc phát triển hệ thống thông tin: Những vấn đề về quản lý Những yêu cầu mới của nhà quản lý: điều này sẽ dẫn đến sự cần thiết của một dự án phát triển một hệ thống thông tin mới hay các đổi mới của doanh nghiệp cạnh tranh cũng có tác động mạnh vào động cơ buộc doanh nghiệp phải có những hành động đáp ứng. Sự thay đổi của công nghệ: khi xuất hiện công nghệ mới có thể dẫn đến việc tổ chức phải xem lại thiết bị hiện có trong hệ thống thông tin của mình Thay đổi sách lược chính trị: điều này có thể xảy ra khi nhà quản lý sử dụng phương tiện thông tin mở rộng quyền lực của mình. Phương pháp phát triển một hệ thống thông tin Dự án phát triển hệ thống thông tin với mục đích là có được một sản phẩm đáp ứng yêu cầu người sử dụng, nó phù hợp với hoạt động của công ty, chính xác về mặt kỹ thuật, tuân thủ các giới hạn về tài chính và thời gian định trước. Để phát triển một hệ thống thông tin không nhất thiết phải theo đuổi một phương pháp. Tuy nhiên không có phương pháp ta có nguy cơ không đạt được những mục tiêu định trước. Một phương pháp được định nghĩa như một tập hợp các bước và công cụ cho pháp tiến hành một quá trình phát triển hệ thống thông tin chặt chẽ nhưng dễ quản lý hơn.Sau đây là ba nguyên tắc cơ sở chung của nhiều phương pháp hiện đại có cấu trúc phát triển một hệ thống thông tin: Nguyên tắc 1. Sử dụng các mô hình: mô hình lô gíc, mô hình vật lý trong, mô hình vật lý ngoài. Bằng cách cùng mô tả về một đối tượng chúng ta có thể thấy ba mô hình này được quan tâm từ những góc độ khác nhau. Nguyên tắc 2. Chuyển từ cái chung sang cái riêng: đây là nguyên tắc của sự đơn giản hoá. Thực tế cho thấy để hiểu được tốt mộ hệ thống thống thông tin thì trước hết phải hiểu các mặt chung trước khi xem xét chi tiết Nguyên tắc 3: Chuyển từ mô hình vật lý sang mô hình lô gíc khi phân tích và từ mô hình lô gíc sang mô hình vật lý khi thiết kế. Các giai đoạn phát triển hệ thống. Đánh giá yêu cầu. Đánh giá yêu cầu có mục đích cung cấp cho lãnh đạo tổ chức hoặc hội đồng giám đốc những dữ liệu đích thực để ra quyết định về thời cơ, tính khả thi và hiệu quả của một dự án phát triển hệ thống. Nó bao gồm các công đoạn sau: Lập kế hoạch đánh giá yêu cầu. Làm rõ yêu cầu. Đánh giá khả năng thực thi. Chuẩn bị và trình bày báo cáo đánh giá yêu cầu. Phân tích chi tiết Giai đoạn phân tích chi tiết bao gồm các công đoạn sau đây: Lập kế hoạch phân tích chi tiết. Nghiên cứu môi trường của hệ thống đang tồn tại. Nghiên cứu hệ thống thực tại. Đưa ra chuẩn đoán và xác định các yếu tố giải pháp. Đánh giá lại tính khả thi. Thay đổi để xuất của dự án. Chuẩn bị và trình bày báo cáo phân tích chi tiết. Thiết kế logic Giai đoạn này nhằm xác định tất cả các thành phần lôgic của một hệ thống thông tin, cho phép loại bỏ được các vấn đề của hệ thống thực tế và đạt được những mục tiêu đã được thiết lập ở giai đoạn trước. Thiết kế lôgíc bao gồm những công đoạn sau: Thiết kế cơ sở dữ liệu. Thiết kế xử lý. Thiết kế các luồng dữ kiệu vào. Chỉnh sửa tài liệu cho mức lôgíc. Hợp thức hoá mô hình lôgíc. Đề xuất các phương án của giải pháp Xác định các ràng buộc tin học và ràng buộc tổ chức. Xây dựng các phương án của giải pháp. Đánh giá các phương án của giải pháp. Chuẩn bị và tính bày báo cáo của giải pháp. Chuẩn bị và trình bày báo cáo của giai đoạn đề xuất các phương án giải pháp. Thiết kế vật lý ngoài Giai đoạn này được tiến hành sau khi một phương án giải pháp được lựa chọn. Thiết kế vật lý bao gồm hai tài liệu kết quả cần có: Trước hết là một tài liệu bao chứa tất cả các đặc trưng của hệ thống mới sẽ cần cho người sử dụng và nó mô tả cả phần thủ công và cả những giao diện với những phần tin học hoá. Những công đoạn chính của thiết kế vật ký ngoài là: Lập kế hoạch thiết kế vật lý ngoài. Thiết kế chi tiết các giao diện (vào/ ra). Thiết kế các thủ tục thủ công. Chuẩn bị và trình bày báo cáo về thiết kế vật lý ngoài. Triển khai kỹ thuật hệ thống Các hoạt động chính của việc triển khai thực hiện kỹ thuật hệ thống là như sau: Lập kế hoạch thực hiện kỹ thuật Thiết kế vật lý trong Lập trình Thử nghiệm hệ thống Chuẩn bị tài liệu. Cài đặt và khai thác. Cài đặt hệ thống là việc chuyển từ hệ thống cũ sang hệ thống mới được thực hiện. Để việc chuyển đổi này được thực hiện với những va chạm ít nhất, cần phải lập kế hoạch một cách cẩn thận. Giai đoạn này bao gồm các công đoạn sau: Lập kế hoạch cài đặt. Chuyển đổi. Khai thác và bảo trì. Đánh giá Như vậy kết quả của quá trình phân tích và thiết kế bao gồm hai phần lớn : hệ thống thông tin và tài liệu về hệ thống. Công cụ mô hình hoá Sơ đồ luồng dữ liệu Sơ đồ luồng dữ liệu dùng để mô tả hệ thống thông tin nhưng trên góc độ trừu tượng. Trên sơ đồ chỉ bao gồm các luồng dữ liệu, các xử lý, các lưu trữ dữ liệu, nguồn và đích nhưng không hề quan tâm tới nơi, thời điểm và đối tượng chịu trách nhiệm xử lý. Sơ đồ luồng dữ liệu chỉ mô tả đơn thuần hệ thống thông tin làm gì và để làm gì. Ký pháp dùng cho sơ đồ luồng dữ liệu(DFD) Ngôn ngữ sơ đồ luồng dữ liệu sử dụng 4 loại ký pháp cơ bản: thực thể, tiến trình, kho dữ liệu và dòng dữ liệu. Tên người/ bộ phận phát/ nhận tin Nguồn hoặc đích Tên dòng dữ liệu Dòng dữ liệu Tên tiến trình xử lý Tiến trình xử lý Tệp dữ liệu Kho dữ liệu Các ký pháp cơ bản của ngôn ngữ DFD Các mức của DFD Sơ đồ ngữ cảnh thể hiện rất khái quát nội dung chính của hệ thống thông tin. Sơ đồ này không đi vào chi tiết mà mô tả sao cho chỉ cần một lần nhìn là nhận ra nội dung chính của hệ thống. Để cho sơ đồ ngữ cảnh sáng sủa, dễ nhìn có thể bỏ qua các kho dữ liệu, bỏ qua các xử lý cập nhật. Phân rã sơ đồ: Để mô tả hệ thống chi tiết hơn người ta dùng kỹ thuật phân rã sơ đồ. Bắt đầu từ sơ đồ mức khung cảnh, người ta phân rã ra thành sơ đồ mức 0, sau đó là mức 1… Các giai đoạn trong quá trình xây dựng mô hình dữ liệu Thiết kế CSDL lô gíc đi từ các thông tin đầu ra Xác định các tệp cơ sở dữ liệu trên cơ sở các thông tin đầu ra của hệ thống là phương pháp cơ bản của việc thiết cơ sở dữ liệu. Các bước chi tiết khi thiết kế CSDL đi từ các thông tin ra: Bước 1. Xác định các đầu ra: Liệt kê toàn bộ các thông tin đầu ra, nội dung, khối lượng, tần suất và nơi nhận của chúng. Bước 2. Xác định các tệp cần thiết cung cấp đủ dữ liệu cho việc tạo ra từng đầu vào. Liệt kê các phần tử thông tin trên đầu ra. Trên mỗi thông tin đầu ra bao gồm các phần tử thông tin gọi là thuộc tính. Đánh dấu các thuộc tính lặp( là những thuộc tính có thể nhận nhiều giá trị dữ liệu) và các thuộc tính thứ sinh( là những thuộc tính được tính toán ra hoặc suy ra từ các thuộc tính khác). Gạch chân các thuộc tính khoá cho thông tin đầu ra và loại bỏ các thuộc tính thứ sinh khỏi danh sách. Bước 3. Thực hiện việc chuẩn hoá. Chuẩn hoá mức 1(1NF): quy định trong mỗi danh sách không được phép chứa những thuộc tính lặp. Nếu có các thuộc tính lặp thì phải tách các thuộc tính lặp đó ra thành các danh sách con, có một ý nghĩa dưới góc độ quản lý. Sau đó đặt cho nó một tên, tìm cho nó một thuộc tính định danh của danh sách gốc. Chuẩn hoá mức 2(2NF): trong một danh sách mỗi thuộc tính phải phụ thuộc hàm vào toàn bộ khoá chứ không chỉ phụ thuộc vào một phần của khoá. Nếu có sự phụ thuộc như vậy thì phải tách những thuộc tính phụ thuộc hàm vào bộ phận của khoá thành một danh sách con mới. Sau đó lấy bộ phận đó làm khoá cho danh sách mới. Đặt cho danh sách mới này một tên cho phù hợp với nội dung của các thuộc tính trong danh sách. Chuẩn hoá mức 3(3NF): quy định trong một danh sách không được phép có sự phụ thuộc bắc cầu giữa các thuộc tính. Nếu thuộc tính Z phụ thuộc hàm vào thuộc tính Y và thuộc tính Y phụ thuộc hàm vào thuộc tính X thì phải tách chúng vào 2 danh sách chưa quan hệ Z, Y và danh sách chứa quan hệ Y và X. Sau đó xác định khoá và tên cho mỗi danh sách mới. Xác định mối quan hệ giữa các thực thể Các bước để xác định mối quan hệ: Mô tả các thực thể(bảng) và các thuộc tính của nó. Xác đị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ác…Cá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 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 tệp 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 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 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 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ã lương cơ bản Mã bảo hiểm Tiền ăn Từ các danh sách trên ta có sơ đồ cấu trúc dữ liệu: Tiền lương Tháng Mã nhân viên Tên nhân viên Mã lương cơ bản Mã bảo hiểm Tiền ăn ca Nhân viên Mã nhân viên Tên nhân viên Mã phòng ban Chức vụ 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 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ỏ Kỷ luật Số hiệu kỷ luật Hệ số kỷ luật Lý do kỷ luật Hình thức kỷ luật Ngày quyết định Ngày công Tháng Mã nhân viên 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 Lương cơ bản Mã lương cơ bản Mức lương cơ bản Ngày thực hiện Ngày huỷ bỏ Khen thưởng Số hiệu khen thưởng Hệ số khen thưởng Hình thức khen thưởng Lý do khen thưởng Ngày quyết định Phòng ban Mã phòng ban Tên phòng ban Địa điểm - Điện thoại 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| Mas | HOTEN | HSL | NC | TONGL | BHXH | LTHEM | PC | TH | PH | TAN | TLINH | ----------------------------------------------------------------------------------------------------------------------------------- | 1 | 05 | Hong Tham | 2.42 | 26 | 701.80 | 42.11 | 28.07 | 0.00 | 0.00 | 0.00 | 110 | 577.76 | | 2 | 02 | Han Dat | 4.38 | 26 | 1270.20 | 76.21 | 25.40 | 12.70 | 0.00 | 0.00 | 110 | 1122.09 | | 3 | 01 | Le Tam | 4.52 | 26 | 1310.80 | 78.65 | 0.00 | 13.11 | 13.11 | 0.00 | 110 | 1148.37 | | 4 | 03 | Minh Thu | 4.60 | 26 | 1334.00 | 80.04 | 26.68 | 13.34 | 13.34 | 0.00 | 110 | 1197.32 | | 5 | 04 | Hong Giang | 4.98 | 26 | 1444.20 | 86.65 | 0.00 | 28.88 | 0.00 | 0.00 | 110 | 1276.43 | ----------------------------------------------------------------------------------------------------------------------------------- Bảng lương phòng ban. ---BANG LUONG TONG HOP --- Donvitinh:1000d ---------------------------------------------------------------------------------------------------------- |TT|MaPB | MaNV | TenPB | TenNV | ChucVu | TongLuong | ---------------------------------------------------------------------------------------------------------- |1 | HC | 05 | Hanh chinh | Hong Tham | Nhan vien | 577.76 | | 2 | HC | 02 | Hanh Chinh | Han Dat | Pho Phong | 1122.09 | |3 | TCCB | 01 | To chuc can bo | Le Tam | Truong Phong | 1148.37 | | 4 | HC | 03 | Hanh Chinh | Minh Thu | Truong Phong | 1197.32 | | 5 | GD | 04 | Ban lanh dao | Hong Giang | Giam doc | 1276.43 | ---------------------------------------------------------------------------------------------------------- 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,dong );writeln('|'); gotoxy(36,dong); writeln(p^.hoten); gotoxy(46,dong );writeln('|'); gotoxy(47,dong);writeLN(p^.CV); gotoxy(65,dong );writeln('|'); gotoxy(66,dong); writeLN(P^.tongl:14:2); gotoxy(80,dong );writeln('|'); p:=p^.tiep; dong:=dong+1;stt:=stt+1; end; gotoxy(1,dong);writeln('------------‘); readln; end; (*///////////////////////////////////////////*) (**Chuc nang tim dia chi ban ghi**) function dc(p:pbang_luong;stt:integer):pbang_luong; var i:integer; begin i:=1;dc:=nil; while pnil do begin if stt=i then begin dc:=p; exit; end; p:=p^.tiep; i:=i+1; end; end; (*//////////////////////////////////////////////////*) (**Thu tuc tim kiem theo ma nhan vien**) procedure timkiemMaNV; var mas:string[6]; Timthay:boolean; p,q:pbang_luong; begin gotoxy(10,34);write('ma so nhan vien can tim:'); gotoxy(40,36); readln(mas); p:=pdau; if Pnil then begin Timthay:=false; while(p nil) and(not timthay) do if P^.manv=mas then begin Timthay:=true; break; end else begin p:=P^.tiep; end; if timthay then begin clrscr; gotoxy(20,3);writeln('-THONG TIN VE NHAN VIEN DANG TIM-'); gotoxy(3,6); writeln('---------'); 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(3,100); Write('---------'); dong:=10; 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('|'); dong:=dong+1; gotoxy(3,dong);writeln('-----‘) end else gotoxy(10,38); Writeln('Khong tim thay nhan vien nao co ma nay '); readln; end; end; (*////////////////////////////////////////*) (*Thu tuc sua nhan vien*) procedure suaNV; var mas:string[6]; k:integer; X:lg; f:file of lg; tf:string[30]; Timthay:boolean; begin gotoxy(10,34); Write('Vao ten tep de tim kiem'); gotoxy(40,34);readln(tf); assign(f,tf); reset(f); gotoxy(10,36); write('ma so nhan vien can tim:'); gotoxy(40,36); readln(mas); k:=0;timthay:=false; while not EOF(f) do begin read(f,X); if X.manv=mas then begin timthay:=true;break; end; inc(k); end; if timthay then begin clrscr; gotoxy(20,3); writeln('---THONG TIN VE NHAN VIEN DANG TIM VA SUA ---'); gotoxy(3,6); writeln('---------'); 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(3,100); Write('---------'); dong:=10; gotoxy(4,dong ); writeln('|'); gotoxy(5,dong); writeln(X.manv:3); gotoxy(8,dong ); writeln('|'); gotoxy(9,dong); writeln(X.hoten); gotoxy(19,dong );writeln('|'); gotoxy(20,dong); writeln(X.hsluong:4:2); gotoxy(24,dong );writeln('|'); gotoxy(25,dong); writeln(X.NC); gotoxy(27,dong );writeln('|'); gotoxy(28,dong); writeLN(X.tongl:8:2); gotoxy(36,dong );writeln('|'); gotoxy(37,dong); writeLN(X.BHXH:5:2); gotoxy(42,dong );writeln('|'); gotoxy(43,dong); writeln(X.lamthem:5:2); gotoxy(48,dong );writeln('|'); gotoxy(49,dong); write(X.PC:5:2); gotoxy(54,dong );writeln('|'); gotoxy(55,dong); writeln(X.TH:5:2); gotoxy(60,dong );writeln('|'); gotoxy(61,dong); writeln(X.Ph:5:2); gotoxy(66,dong );writeln('|'); gotoxy(67,dong); writeLN(X.TA); gotoxy(70,dong );writeln('|'); gotoxy(71,dong); writeLN(X.tl:8:2); gotoxy(80,dong); writeln('|'); dong:=dong+1; gotoxy(3,dong);writeln('------------------------'); Writeln; gotoxy(20,3); writeln('---THONG TIN VE NHAN VIEN SAU KHI SUA ---'); gotoxy(3,6); writeln('-------------------------'); 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(3,100); Write('---------'); dong:=10; gotoxy(4,dong ); writeln('|'); gotoxy(5,dong); readln(X.manv); gotoxy(8,dong ); writeln('|'); gotoxy(9,dong); readln(X.hoten); gotoxy(19,dong ); writeln('|'); gotoxy(20,dong); readln(X.hsluong); gotoxy(24,dong ); writeln('|'); gotoxy(25,dong); readln(X.NC); gotoxy(27,dong ); writeln('|'); gotoxy(28,dong); readLN(X.tongl); gotoxy(36,dong ); writeln('|'); gotoxy(37,dong); readLN(X.BHXH); gotoxy(42,dong ); writeln('|'); gotoxy(43,dong); readln(X.lamthem); gotoxy(48,dong ); writeln('|'); gotoxy(49,dong); read(X.PC); gotoxy(54,dong ); writeln('|'); gotoxy(55,dong); readln(X.TH); gotoxy(60,dong ); writeln('|'); gotoxy(61,dong); readln(X.Ph); gotoxy(66,dong ); writeln('|'); gotoxy(67,dong); readLN(X.TA); gotoxy(70,dong ); writeln('|'); gotoxy(71,dong); readLN(X.tl); gotoxy(80,dong); writeln('|'); gotoxy(5,12);Writeln('maPhongban:'); gotoxy(17,12);readln(X.maPB); gotoxy(5,14);Writeln('Phongban:'); gotoxy(15,14);readln(X.PB); gotoxy(5,16);Writeln('Chucvu:'); gotoxy(15,16);readln(X.CV); dong:=dong+1; gotoxy(3,dong);writeln('---------------------'); seek(f,k); write(f,X); gotoxy(15,30);writeln('Ban co muon tiep tuc sua khong?:'); gotoxy(50,30);readln(traloi); end else Writeln('Khong tim thay nhan vien nao co ma nay ');readln; close(f); end; (*//////////////////////////////////////////////*) (* Thu tuc bo sung vao cuoi danh sach nhan vien moi*) procedure bosung(var p:pbang_luong); var pd,pc:pBang_luong; begin taods(pd); if pd=nil then exit; if p=nil then begin p:=pd; exit; end; pc:=p; while pc^.tiepnil do pc:=pc^.tiep; pc^.tiep:=pd; end; (********) procedure XoaNV; var maso:string[6]; timthay:boolean; p,q:pBang_luong; begin write('Ma so nhan vien can xoa:'); readln(maso); p:=pdau; if p nil then begin timthay:=False; while(pnil) and(not timthay) do if p^.manv=maso then timthay:=true else begin q:=p;p:=p^.tiep end; if timthay then begin if p=pdau then pdau:=p^.tiep else q^.tiep:=p^.tiep; if p^.tiep=nil then pcuoi:=q; dispose(p); end; end; end; (*////////////////////////////////////////////*) (*Thu tuc chen vao vi tri bat ky*) procedure chenthem(var pdau:pbang_luong;k:integer); var s:integer; p,pd,pc:pbang_luong; begin if pdau=nil then begin taods(pdau);exit; end; s:=0; p:=pdau; while pnil do begin s:=s+1; p:=p^.tiep; end; if k>s then begin bosung(pdau); exit; end; taods(pd); if pd=nil then exit; pc:=pd; while pc^.tiepnil do pc:=pc^.tiep; if k=1 then begin p:=pdau; pdau:=pd; pc^.tiep:=p; end else begin p:=dc(pdau,k-1); p^.tiep:=dc(pdau,k); end; End; (*////////////////////////////////////////////////////*) (**Thu tuc ghi danh sach ra tep**) procedure Ghiratep; var X:lg;f:file of lg;tf:string[30]; begin gotoxy(10,34); write('Dat ten tep de ghi du lieu:'); gotoxy(38,34); readln(tf); assign(f,tf); rewrite(f); p:=pdau; while pnil do begin X.manv:=p^.MaNV; X.Hoten:=p^.Hoten; X.maPB:=p^.MaPB; X.PB:=p^.PB; X.CV:=p^.CV; X.lcb:=p^.lcb; X.hsluong:=p^.hsluong; X.nc:=p^.nc; X.hspc:=p^.hsPC; X.pc:=p^.PC; X.hsth:=p^.HSth; X.hsph:=p^.hsph; X.lamthem:=p^.lamthem; X.ncthem:=p^.NCthem; X.tongl:=p^.tongl; X.bhxh:=p^.bhxh; X.ta:=p^.ta; X.tl:=p^.tl ; X.th:=p^.th; X.ph:=p^.ph; write(f,X); p:=P^.tiep; end; close(f); gotoxy(10,36); write('Da ghi xong danh sach'); readln; end; (*////////////////////////////////////////////////*) (**Thu tuc doc danh sach tu tep ra dia**) procedure DocTep; var q:pBang_luong; X:lg; f:file of lg; tf:string[30]; begin gotoxy(10,34); write('Nhap ten tep:'); gotoxy(37,34); readln(tf); assign(f,tf); reset(f); pdau:=nil; pcuoi:=nil; while not EOF(f) do begin read(f,X); new(P); p^.MaNV:=X.manv; p^.Hoten:= X.Hoten; p^.MaPB:=X.maPB; p^.PB:=X.PB; p^.CV:=X.CV; p^.lcb:=X.lcb; p^.hsluong:=X.hsluong; p^.nc:=X.nc; p^.hsPC:=X.hsPC; p^.PC:=X.pc; p^.HSth:=x.hsth; p^.hsph:=X.hsph; p^.lamthem:=X.lamthem; p^.NCthem:=X.ncthem; p^.tongl:=X.tongl; p^.bhxh:=X.bhxh; p^.ta:=X.ta; p^.tl:=X.tl ; p^.th:=X.th; p^.ph:=X.ph; if pdau=nil then begin p^.tiep:=nil; p^.truoc:=nil; pdau:=p; pcuoi:=p; end else begin q:=Pcuoi; q^.tiep:=p; p^.tiep:=nil; p^.truoc:=q; pcuoi:=p; end; end; close(f); gotoxy(10,36);write('Doc xong du lieu tu tep'); readln; end; (*/////////////////////////////////////////*) (**Thu tuc tao thuc don cap nhat**) procedure tdcapnhat; var chon:char; begin repeat clrscr; gotoxy(25,5); writeln('PHAN MEM QUAN LY LUONG'); gotoxy(15,6); writeln('+++++++++++++++++++++++++++++++++++++++' ); gotoxy(20,8);writeln('THUC DON CHUONG TRINH CAP NHAT '); gotoxy(20,12);writeln('1.Cap nhat danh sach nhan vien'); gotoxy(20,14); writeln('2.Duyet danh sach '); gotoxy(20,16); Writeln('3.Bo sung vao cuoi danh sach'); gotoxy(20,18); writeln('4.Bo sung vao vi tri bat ky'); gotoxy(20,20); writeln('5.Loai bo nhan vien'); gotoxy(20,22); writeln('6.Sua du lieu nhan vien'); gotoxy(20,24); writeln('7.Ghi danh sach'); gotoxy(20,26); writeln('8.Doc danh sach') gotoxy(20,28); writeln('9.Ket thuc cap nhat'); gotoxy(15,30); writeln('+++++++++++++++++++++++++++++++++++++' ); gotoxy(20,32); Writeln('Hay chon mot chuc nang de cap nhat:'); gotoxy(60,32); Readln(chon); Case chon of '1': taods(pdau); '2': Duyet; '3': bosung(pdau); '4': begin clrscr; writeln('chen truoc ban ghi thu:'); readln(n); chenthem(pdau,n); end; '5': begin clrscr; repeat XoaNV; Write('Co tiep tuc xoa khong(C/K)'); readln(traloi); until upcase(traloi)='K'; end; '6':Suanv; '7':Ghiratep; '8':Doctep; '9':exit; end; gotoxy(10,44); Write('Ban co tiep tuc cap nhat nua khong? C/K:'); gotoxy(55,44); readln(TraLoi); Until Traloi='K'; end; (*////////////////////////////////////////////////*) (*Thu tuc tao thuc don tim kiem*) procedure TDTK; var chon:char; begin repeat clrscr; gotoxy(25,5); writeln('PHAN MEM QUAN LY LUONG '); gotoxy(15,8); writeln('++++++++++++++++++++++++++++++++++++++++'); gotoxy(20,12);writeln('THUC DON CHUONG TRINH TIM KIEM '); gotoxy(20,15);writeln(' 1.Tim kiem theo so thu tu'); gotoxy(20,17);writeln(' 2.Tim kiem theo ma nhan vien'); gotoxy(20,19);Writeln(' 3.Ket thuc'); gotoxy(15,22);writeln('+++++++++++++++++++++++++++++' ); gotoxy(20,25);Writeln(' phuong an toi lua chon la :'); gotoxy(48,25);readln(chon); case chon of '1': begin clrscr; gotoxy(15,15); write('So thu tu nhan vien can tim:'); gotoxy(45,15); readln(i); p:=dc(pdau,i); if p=nil then begin gotoxy(15,15); write('Khong co nhan vien thu:',i) end else begin clrscr; gotoxy(20,3); writeln('---BANG LUONG CHI TIET ---'); gotoxy(50,5);writeln('Donvitinh:1000'); 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; 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); 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; gotoxy(1,dong);writeln('----------------------'); end; END; '2': TimkiemMaNV; '3': Exit; end; gotoxy(10,33); Write('Ban co tiep tuc tim kiem nua khong? C/K'); gotoxy(50,33); readln(TraLoi); Until Traloi='K'; end; (*/////////////////////////////////////////////*) (*Thuc don Bao cao*) procedure TDBC; var chon:char; begin repeat clrscr; gotoxy(25,5); writeln('PHAN MEM QUAN LY LUONG'); gotoxy(15,8); writeln('++++++++++++++++++++++++++++++' ); gotoxy(20,12); writeln('THUC DON CHUONG TRINH BAO CAO '); gotoxy(20,16);writeln('1. Bao cao chi tiet luong'); gotoxy(20,18);writeln('2.Bao cao tong hop luong'); gotoxy(20,20);writeln('3.Ket thuc'); gotoxy(15,22);writeln('+++++++++++++++++++++++' ); gotoxy(20,25);Writeln('Phuong an toi lua chon la :'); gotoxy(52,25); readln(chon); case chon of '1': Inchitiet(pdau); '2': Intonghop(pdau); '3': Exit; end; gotoxy(10,40);Write('Ban co tiep tuc in nua khong?C\K:'); gotoxy(55,40);readln(TraLoi); Until Traloi='K'; end; (*///////////////////////////////////////////*) (*Thuc don chinh cua chuong trinh quan ly luong*) procedure TDChinh; var chon:char; begin clrscr; gotoxy(25,5); writeln('PHAN MEM QUAN LY LUONG'); gotoxy(15,8); writeln('********************* '); gotoxy(20,10); writeln('THUC DON CHUONG TRINH QUAN LY LUONG'); gotoxy(24,15); writeln('1.Thuc Don Cap Nhat'); gotoxy(24,17); writeln('2.Tim Kiem'); gotoxy(24,19); Writeln('3. Bao Cao'); gotoxy(24,21); writeln('4.Thoat'); gotoxy(15,23); writeln('******************************** '); gotoxy(5,30); Writeln('phuong an toi lua chon la :'); gotoxy(35,30); readln(chon); case chon of '1': TDCAPNHAT; '2': TDTK; '3': TDBC; '4': halt; end; end; (*///////////////////////////////////////*) (**Chuong trinh chinh**) begin clrscr; if MATKHAU then begin clrscr; textbackground(5); textcolor(11); pdau:=nil; p:=nil; repeat writeln; begin clrscr; tdchinh; gotoxy(10,40);Write('Ban co tiep tuc nua khong? Y/N'); gotoxy(42,40);readln(TraLoi); end; Until Traloi='N'; end else writeln('Ban hay nhap lai mat khau'); readln; end. Kết luận. Từ thực tế cho thấy tiền lương lao động biểu hiện rõ ràng nhất lợi ích kinh tế của người lao động, trở thành đòn bẩy kinh tế mạnh mẽ nhất để kích thích người lao động do đó công việc tính lương trong cho người lao động là rất quan trọng và trước sự mong muốn của bộ phận tính lương nên em đã thực hiện đề tài:”Chương trình hỗ trợ hệ thống tính lương theo thời gian”. Với mục đích: giảm bớt được khối lượng nhân sự cũng như khối lượng công việc thủ công trong quản lý lương và tiền lương, việc lưu trữ dữ liệu không còn cồng khềnh như trước nữa cũng như việc tính toán được chính xác và kịp thời hơn. Với sự hướng dẫn nhiệt tình của PGS.TS Hàn Viết Thuận và qua nghiên cứu tài liệu em đã cố gắng nghiên cứu đề tài này với một số giải pháp và chức năng sau: Chương trình đã căn bản xây dựng được việc tính lương cho nhân viên. Tự động hoá các khâu cập nhật, lưu trữ, xử lý thông tin, và lên báo cáo về lương. Chương trình đã phần nào khắc phục được những nhược điểm về thực hiện tự động hoá phần dữ liệu đầu vào, đầu ra cũng như việc tính toán lương. Song do thời gian hạn chế và khả năng của em còn nhiều thiếu sót nên hệ thống chưa thực sự được hoàn chỉnh. Em mong được sự chỉ bảo và đóng góp của thầy cô và các bạn để hệ thống hoàn chỉnh hơn. Em xin chân thành cảm ơn PGS.TS Hàn Viết Thuận, người đã nhiệt tình chỉ bảo và dẫn dắt cụ thể cho em trong quá trình làm đề tài này và em hi vọng được thầy hướng dẫn trong những đề tài sau này.

Các file đính kèm theo tài liệu này:

  • doc77511.DOC