Nghiên cứu về quản lý nhân viên và tiền lương trong ứng dụng C#WinForms có mục đích quan trọng là xây dựng một hệ thống toàn diện và hiệuquả để quản lý thông tin về nhân viên và quá trìn
Trang 1Năm 2023
Trang 2M ụ ụ c l c
MỞ ĐẦU 2
1 Mục đích nghiên cứu đề tài 2
2 Mục tiêu nghiên cứu 3
3 Đối tượng, phạm vi nghiên cứu 4
4 Phương pháp nghiên cứu 4
5 Ý nghĩa thực tiễn của đề tài 5
CHƯƠNG 1: CƠ SỞ LÍ THUYẾT 6
1.1 Giới thiệu chung về ngôn ngữ c# 6
1.2 Giới thiệu phần mềm Visual Studio 8
1.3 Giới thiệu chung về SqlServer 9
1.4 Kiến trúc mô hình MVC 10
1.5.Một số nguồn, trang mẫu tham khảo 14
CHƯƠNG 2: PHÂN TÍCH THẾT KẾ HỆ THỐNG 15
2.1 Khảo sát hiện trạng hệ thống 15
2.1.1 Hệ thống hiện hành của cửa hàng 15
2.1.2 Hệ thống đề nghị 15
2.2 Sơ đồ phân cấp chức năng 17
2.3 Xác định các tác nhân của hệ thống 18
2.4 Biểu đồ Use case (Use case Diagram) 19
2.4.1. Use case tổng quát 19
2.4.2. Use case đăng nhập 20
2.4.3. Biểu đồ use case Order 21
2.4.4. Biểu đồ use case Thống kê 22
2.5 Biểu đồ trình tự (Sequence Diagram) 23
2.5.1 Đăng nhập 23
2.5.2 Quản lý nhân viên 24
2.5.3 Quản lý tiền lương nhân viên 25
2.5.4 Quản lý doanh thu 26
2.6 Biểu đồ hoạt động (Acitivity Diagram) 26
2.6.1 Biểu đồ Acitivity đăng nhập 26
2.6.2 Biểu đồ Acitivity tìm kiếm mặt hàng 27
2.6.3 Biểu đồ Acitivity xem chi tiết hóa đơn 28
2.6.4 Biểu đồ Acitivity thống kê doanh thu 29
2.7 Biểu đồ lớp (Class Diagram) 30
1.8 Cơ sở dữ liệu 31
1.9 Database của quán 32
CHƯƠNG 3 THIẾT KẾ HỆ THỐNG 33
3.1 Trang chủ website 33
3.1.1 Chi tiết trang chính 33
KẾT LUẬN 37
1 Kết luận 37
2 Hướng phát triển 38
TÀI LIỆU THAM KHẢO 42
Trang 3MỞ ĐẦU
1 Mục đích nghiên cứu đề tài
Nghiên cứu về quản lý nhân viên và tiền lương trong ứng dụng C#WinForms có mục đích quan trọng là xây dựng một hệ thống toàn diện và hiệuquả để quản lý thông tin về nhân viên và quá trình tính toán và phân phối tiềnlương
Trên cơ sở nhu cầu thực tế của các tổ chức và doanh nghiệp, nghiên cứunày nhằm đáp ứng nhu cầu ngày càng cao về việc quản lý và tổ chức côngviệc của nhân viên một cách chính xác và hiệu quả, đồng thời đảm bảo tínhminh bạch và công bằng trong quá trình tính toán và phân phối tiền lương
Mục tiêu của nghiên cứu là xây dựng một hệ thống thông tin hoàn chỉnh,cho phép quản lý và lưu trữ thông tin chi tiết về nhân viên, bao gồm các thôngtin cá nhân như họ tên, địa chỉ, số điện thoại, vị trí công việc và bộ phận côngtác Hệ thống sẽ cung cấp giao diện đồ họa dễ sử dụng, giúp người dùng dễdàng tìm kiếm, thêm, sửa đổi và xóa thông tin nhân viên
Ngoài ra, nghiên cứu cũng tập trung vào quá trình tính toán và phân phốitiền lương Hệ thống sẽ cung cấp các công cụ để tính toán tổng thu nhập củanhân viên dựa trên các yếu tố như lương cơ bản, phụ cấp, hoa hồng và cáckhoản thưởng khác Hệ thống cũng sẽ giúp quản lý việc tính toán thuế và cáckhoản khấu trừ khác để đảm bảo tính chính xác trong việc phân phối tiềnlương
Mục tiêu cuối cùng của nghiên cứu là cung cấp một công cụ hữu ích chocác tổ chức và doanh nghiệp trong việc quản lý nhân viên và tiền lương mộtcách hiệu quả và tiết kiệm thời gian Hệ thống sẽ giúp cải thiện quá trình quản
lý, tăng cường tính minh bạch và công bằng, và đồng thời giúp tiết kiệm côngsức và nguồn lực của tổ chức trong việc quản lý và tính toán tiền lương
Tóm lại, nghiên cứu này nhằm tạo ra một ứng dụng C# WinForms chất lượngcao, đáp ứng các yêu cầu quản lý nhân viên và tiền lương, đồng thời mang lại lợi ích
rõ rệt cho các tổ chức và doanh nghiệp trong việc quản lý và phân phối tiền lươngmột cách hiệu quả và minh bạch
2. Mục tiêu nghiên cứu
Mục tiêu tổng quát
Mục tiêu tổng quát của nghiên cứu là nâng cao hiệu quả và hiệu suất quản lýnhân viên và tiền lương trong môi trường công ty thông qua việc áp dụng công nghệC# WinForms Mục tiêu này nhằm đáp ứng nhu cầu quản lý nhân sự và tiền lương một
Trang 4cách chuyên nghiệp, đồng thời tạo ra một hệ thống tự động hóa quy trình quản lý, giúpgiảm thiểu công sức và thời gian trong việc tính toán, theo dõi và phân phối tiền lươngcho nhân viên.
Bằng cách triển khai ứng dụng C# WinForms, mục tiêu tổng quát của nghiên cứu
là đảm bảo tính linh hoạt và dễ sử dụng của hệ thống, cho phép người dùng thực hiệncác thao tác quản lý nhân viên và tiền lương một cách thuận tiện và hiệu quả Hơn nữa,nghiên cứu cũng hướng đến việc tạo ra một giao diện người dùng thân thiện, giúpngười dùng dễ dàng tương tác và hiểu rõ các chức năng và quy trình quản lý
Mục tiêu tổng quát này cũng đặt ra mục tiêu tăng cường tính tin cậy và chính xáccủa hệ thống quản lý nhân viên và tiền lương Bằng cách áp dụng các qui trình và thuậttoán chính xác, nghiên cứu nhằm đảm bảo tính chính xác trong việc tính toán tiềnlương và các khoản phụ cấp, đồng thời đảm bảo tính nhất quán trong việc theo dõi vàbáo cáo về thông tin nhân viên
Tóm lại, mục tiêu tổng quát của nghiên cứu là xây dựng một hệ thống quản lýnhân viên và tiền lương hiệu quả, linh hoạt và chính xác thông qua việc áp dụng côngnghệ C# WinForms, nhằm nâng cao quy trình quản lý, tăng cường sự tin cậy và giảmthiểu công sức trong việc quản lý nhân sự và tiền lương trong môi trường công ty
Mục tiêu cụ thể
Xây dựng cơ sở dữ liệu: Tạo ra một cơ sở dữ liệu chứa thông tin chi tiết về nhân viên, bao gồm các thông tin cá nhân, vị trí công việc, bộ phận công tác và lịch sử làm việc Cơ sở dữ liệu sẽ được thiết kế sao cho linh hoạt, dễ mở rộng và bảo mật
Thiết kế giao diện người dùng: Xây dựng giao diện đồ họa dễ sử dụng và thân thiện với người dùng Giao diện sẽ cho phép người dùng thao tác với dữ liệu nhân viên, bao gồm tìm kiếm, thêm, sửa đổi và xóa thông tin
Tính toán và phân phối tiền lương: Xây dựng công cụ tính toán tổng thu nhập củanhân viên dựa trên các yếu tố như lương cơ bản, phụ cấp, hoa hồng và các khoản thưởng khác Công cụ cũng sẽ hỗ trợ tính toán thuế và các khoản khấu trừ để đảm bảo tính chính xác trong việc phân phối tiền lương
Bảo mật và phân quyền truy cập: Đảm bảo tính bảo mật của hệ thống bằng cách xác thực và phân quyền truy cập Người dùng chỉ được truy cập và thực hiện các thao tác phù hợp với vai trò và quyền hạn của họ
Đáp ứng yêu cầu mở rộng: Thiết kế hệ thống sao cho có khả năng mở rộng và linh hoạt để đáp ứng các yêu cầu và nhu cầu cải tiến trong tương lai, như thêm tính năng mới, tích hợp các hệ thống khác hoặc tương tác với dữ liệu bên ngoài
3. Đối tượng, phạm vi nghiên cứu
Đối tượng nghiên cứu của đề tài là các tổ chức và doanh nghiệp có nhu cầuquản lý nhân viên và tiền lương trong môi trường công ty Đây có thể là cáccông ty vừa và nhỏ, các tổ chức phi lợi nhuận, hoặc các phòng ban quản lý nhân
sự trong các tổ chức lớn
Trang 5Phạm vi nghiên cứu tập trung vào việc phát triển và triển khai ứng dụng C#WinForms để quản lý thông tin nhân viên và tiền lương Nghiên cứu sẽ tậptrung vào việc xây dựng hệ thống quản lý nhân viên, bao gồm các chức năngnhư quản lý thông tin cá nhân của nhân viên, quản lý vị trí công việc, quản lýhợp đồng lao động, và quản lý các khoản phụ cấp.
Ngoài ra, nghiên cứu cũng sẽ tập trung vào quản lý tiền lương, bao gồm việctính toán tiền lương, quản lý các khoản thuế và các khoản khấu trừ, và phânphối tiền lương cho nhân viên Nghiên cứu cũng có thể mở rộng phạm vi để baogồm các tính năng báo cáo và thống kê liên quan đến nhân viên và tiền lương.Phạm vi đề tài sẽ tập trung vào việc nghiên cứu và triển khai ứng dụng C#WinForms cho quản lý nhân viên và tiền lương, và không đi sâu vào các vấn đềkhác như quản lý tài sản, quản lý nhân sự chi tiết, hay các tính năng phức tạpkhác
4 Phương pháp nghiên cứu
- Phương pháp nghiên cứu được áp dụng trong đề tài này là phương pháp nghiêncứu phát triển phần mềm Qua đó, sẽ tiến hành các bước sau:
+ Phân tích yêu cầu: Nghiên cứu sẽ bắt đầu bằng việc phân tích và thu thậpyêu cầu về quản lý nhân viên và tiền lương từ các tổ chức và doanh nghiệp.Qua đó, xác định được các chức năng, thông tin cần quản lý, và yêu cầu kỹthuật cần thiết
+ Triển khai ứng dụng: Sau khi hoàn thiện thiết kế, nghiên cứu sẽ triển khaiứng dụng C# WinForms dựa trên thiết kế đã được xác định Việc triển khaibao gồm việc xây dựng các module, chức năng và giao diện người dùngtheo yêu cầu đã thiết kế
+ Thiết kế hệ thống: Sau khi thu thập được yêu cầu, nghiên cứu sẽ tiến hànhthiết kế hệ thống, bao gồm thiết kế cơ sở dữ liệu, giao diện người dùng vàcác chức năng quản lý nhân viên và tiền lương Sử dụng các nguyên tắc thiết
kế phần mềm, nhằm đảm bảo tính linh hoạt, mở rộng và dễ bảo trì của hệthống
+ Kiểm thử và đánh giá: Để đảm bảo tính tin cậy và chất lượng của ứng dụng,nghiên cứu sẽ tiến hành kiểm thử hệ thống Điều này bao gồm kiểm tra tínhđúng đắn của các chức năng, xác nhận tính ổn định và hiệu suất của hệthống Đồng thời, đánh giá sự phù hợp và hiệu quả của ứng dụng trong việcquản lý nhân viên và tiền lương
+ Đánh giá kết quả và cải tiến: Sau khi hoàn thành quá trình triển khai và kiểmthử, nghiên cứu sẽ đánh giá kết quả đạt được so với yêu cầu ban đầu Nếucần thiết, sẽ tiến hành cải tiến và điều chỉnh để đảm bảo ứng dụng đáp ứngtốt nhu cầu của người dùng
Trang 6+ Phương pháp nghiên cứu này giúp đảm bảo quá trình phát triển ứng dụngC# WinForms cho quản lý nhân viên và tiền lương được có hệ thống, cóchất lượng và đáp ứng đúng yêu cầu của người sử dụng.
5. Ý nghĩa thực tiễn của đề tài
Tăng hiệu quả quản lý nhân viên: Hệ thống quản lý nhân viên giúp tổ chức có thể theodõi và quản lý thông tin nhân viên một cách tổ chức, tiện lợi và chính xác Thông quaviệc quản lý thông tin cá nhân, hồ sơ, công việc, kỹ năng, đào tạo và hiệu suất làmviệc, hệ thống giúp tăng cường khả năng định vị và phân công công việc, đồng thời cảithiện quy trình tuyển dụng và đánh giá nhân viên
Tối ưu hóa quá trình tính lương: Hệ thống quản lý tiền lương giúp tổ chức tự động hóaquá trình tính toán và xử lý lương, giảm thiểu công sức và thời gian cho việc tínhlương thủ công Hệ thống cung cấp tính năng quản lý bảng lương, các khoản phụ cấp,thuế và các yếu tố khác liên quan đến tiền lương Điều này giúp đảm bảo tính chínhxác, minh bạch và công bằng trong việc trả lương cho nhân viên
Nâng cao sự minh bạch và đáng tin cậy: Hệ thống quản lý nhân viên và tiền lươngcung cấp một nguồn thông tin tập trung và minh bạch về các hoạt động quản lý nhân
sự và tiền lương Thông qua giao diện người dùng thân thiện, người quản lý và nhânviên có thể truy cập và tra cứu thông tin một cách dễ dàng Điều này tạo ra sự đáng tincậy và tạo lòng tin cho nhân viên về quá trình quản lý và tính toán tiền lương
Tăng cường khả năng phân tích và báo cáo: Hệ thống cung cấp các công cụ phân tích
và báo cáo để giúp người quản lý có cái nhìn toàn diện về tình hình nhân sự và tiềnlương trong tổ chức Các báo cáo thống kê, biểu đồ và đánh giá hiệu suất giúp ngườiquản lý đưa ra quyết định thông minh và chiến lược về quản lý nhân sự và chi phí tiềnlương
Tăng sự linh hoạt và mở rộng: Hệ thống được phát triển trên nền tảng C# WinForms,cho phép dễ dàng tùy chỉnh, mở rộng và tích hợp với các hệ thống khác Điều nàymang lại khả năng linh hoạt trong việc thích nghi với các yêu cầu cụ thể của tổ chức vàkhả năng tích hợp với các ứng dụng và công nghệ khác
Tổng thể, đề tài này có ý nghĩa thực tiễn là cải thiện quá trình quản lý nhân viên vàtiền lương, tăng cường hiệu quả và đáng tin cậy, giúp tổ chức tiết kiệm thời gian, côngsức và tài nguyên, đồng thời nâng cao khả năng phân tích và quyết định chiến lược
Trang 7CHƯƠNG 1: CƠ SỞ LÍ THUYẾT
1.1. Giới thiệu chung về ngôn ngữ c#
Ngôn ngữ C# (C Sharp) là một ngôn ngữ lập trình phổ biến và mạnh mẽ đượcphát triển bởi Microsoft C# được ra đời vào những năm 2000 và là một phần của nềntảng phát triển ứng dụng NET Framework của Microsoft
C# được thiết kế nhằm hướng tới việc phát triển các ứng dụng đa nền tảng và đamôi trường Nó là một ngôn ngữ lập trình đối tượng (Object-Oriented Programming -OOP), cho phép lập trình viên tạo ra các đối tượng, kế thừa, đa hình và đóng gói Cúpháp của C# tương tự như các ngôn ngữ lập trình khác như C++ và Java, vì vậy việchọc và chuyển đổi giữa các ngôn ngữ này thường không quá khó khăn
Một trong những ưu điểm lớn của C# là nó hỗ trợ quản lý bộ nhớ tự động thôngqua Garbage Collector (GC), giúp giảm công việc của lập trình viên trong việc quản lý
bộ nhớ và giải phóng tài nguyên C# cũng hỗ trợ cú pháp linh hoạt và mạnh mẽ, cùngvới các thư viện chuẩn phong phú và cộng đồng lập trình đông đảo, tạo điều kiệnthuận lợi cho việc phát triển ứng dụng đa dạng
C# không chỉ được sử dụng trong phát triển các ứng dụng Windows thôngthường mà còn được sử dụng rộng rãi trong phát triển ứng dụng web, ứng dụng diđộng và các ứng dụng doanh nghiệp C# cung cấp hỗ trợ cho ASP.NET để phát triểncác ứng dụng web, cùng với Xamarin để phát triển ứng dụng di động đa nền tảng.Ngoài ra, C# còn được sử dụng trong lĩnh vực game và phát triển ứng dụng trên cácnền tảng khác như Unity
Với tính linh hoạt, hiệu năng cao và cộng đồng mạnh mẽ, C# là một trong nhữngngôn ngữ lập trình hàng đầu được lựa chọn để xây dựng các ứng dụng đa dạng trênnhiều nền tảng và môi trường khác nhau
Kiểu dữ liệu trong C#
- Kiểu số nguyên (Integer): Kiểu dữ liệu này được sử dụng để lưu trữ các sốnguyên Có một loạt các kiểu số nguyên khác nhau trong C#, bao gồm: int,long, short, byte Ví dụ: int number = 10;, long bigNumber = 1000000;
Trang 8- Kiểu số thực (Floating-Point): Kiểu dữ liệu này được sử dụng để lưu trữ các
số thực (số có phần thập phân) Có hai kiểu số thực chính trong C#: float vàdouble Ví dụ: float pi = 3.14f;, double value = 2.71828;
- Kiểu chuỗi (String): Kiểu dữ liệu này được sử dụng để lưu trữ các chuỗi ký
tự Để khai báo một chuỗi trong C#, bạn có thể sử dụng lớp string Ví dụ:string message = "Hello World";
- Kiểu logic (Boolean): Kiểu dữ liệu này chỉ có hai giá trị có thể nhận: true(đúng) và false (sai) Kiểu dữ liệu bool được sử dụng để biểu thị giá trịlogic Ví dụ: bool isTrue = true;, bool isFalse = false;
- Kiểu ký tự (Character): Kiểu dữ liệu này được sử dụng để lưu trữ một ký tựduy nhất Kiểu ký tự trong C# được biểu diễn bởi lớp char Ví dụ: char letter
= 'A';
Biến
Trong C#, biến là một vùng bộ nhớ được sử dụng để lưu trữ giá trị của một kiểu
dữ liệu cụ thể Mỗi biến có một tên duy nhất để xác định và truy cập nó trongchương trình Dưới đây là một số điểm quan trọng về biến trong C#:
- Khai báo biến: Để khai báo một biến trong C#, bạn cần xác định kiểu dữliệu của biến và sau đó đặt tên cho biến đó Ví dụ: int age;, string name;,double salary; Bạn cũng có thể khai báo và khởi tạo biến cùng một lúc: intcount = 0;
- Gán giá trị cho biến: Để gán giá trị cho biến, bạn sử dụng toán tử gán (=) Vídụ: age = 25;, name = "John";, salary = 5000.50; Bạn có thể gán giá trị chobiến ngay khi khai báo: int count = 10;
- Sử dụng biến: Sau khi khai báo và gán giá trị cho biến, bạn có thể sử dụngbiến đó trong các phép tính, điều kiện, vòng lặp và các câu lệnh khác trongchương trình Ví dụ: int sum = age + 5;, if (salary > 5000) { // thực hiện mộthành động }
- Quy tắc đặt tên biến: Trong C#, tên biến phải tuân theo một số quy tắc nhấtđịnh Tên biến phải bắt đầu bằng một chữ cái hoặc dấu gạch dưới và có thểchứa chữ cái, chữ số và dấu gạch dưới Tên biến phân biệt chữ hoa và chữthường (case-sensitive) Ví dụ: int studentCount;, string firstName;
- Phạm vi của biến: Biến có phạm vi, tức là nơi mà biến có thể được truy cập.Phạm vi của biến có thể là toàn cục (global), nghĩa là biến có thể được truycập từ bất kỳ đâu trong chương trình, hoặc phạm vi cục bộ (local), nghĩa làbiến chỉ có thể được truy cập trong một phạm vi cụ thể như một phươngthức hay một khối mã
C# (C Sharp) là một ngôn ngữ lập trình mạnh mẽ và linh hoạt được phát triểnbởi Microsoft Dưới đây là một số ưu điểm và nhược điểm của C#:
Ưu điểm của C#:
Trang 9- Độ tin cậy cao: C# được thiết kế để tạo ra các ứng dụng ổn định và antoàn Nó có cơ chế quản lý bộ nhớ tự động thông qua thu thập rác(garbage collection), giúp giảm nguy cơ xảy ra lỗi liên quan đến quản lý
bộ nhớ
- Đa nền tảng: C# hỗ trợ việc phát triển ứng dụng đa nền tảng thôngqua NET Framework Bạn có thể viết mã C# và chạy nó trên nhiều hệđiều hành như Windows, macOS và Linux
- Hỗ trợ mạnh mẽ cho lập trình hướng đối tượng: C# là một ngôn ngữ lậptrình hướng đối tượng đầy đủ, cho phép phát triển ứng dụng dễ dàng, rõràng và có khả năng tái sử dụng mã
- Thư viện chuẩn phong phú: C# đi kèm với một bộ thư viện chuẩn(Standard Library) mạnh mẽ, gồm các thành phần để xử lý đa luồng,giao diện người dùng, mạng, dữ liệu, XML và nhiều hơn nữa Điều nàygiúp giảm thời gian và công sức cần thiết cho phát triển ứng dụng
- Hỗ trợ công cụ phong phú: C# có sự hỗ trợ tốt từ các công cụ phát triểntích hợp mạnh mẽ như Visual Studio của Microsoft Các công cụ nàycung cấp nhiều tính năng hữu ích như gỡ lỗi, gợi ý mã, kiểm tra lỗi cúpháp và tạo giao diện người dùng dễ dàng
Nhược điểm của C#:
+ Giới hạn hệ thống nhúng: C# không phù hợp cho việc phát triển các ứngdụng nhúng (embedded systems) yêu cầu tài nguyên hạn chế hoặc không có
hệ điều hành tiêu chuẩn
+ Phụ thuộc vào nền tảng .NET Framework: C# phụ thuộc vào .NETFramework, điều này có thể tạo ra sự ràng buộc đối với việc triển khai vàphiên bản của NET Framework trên hệ thống mục tiêu
+ Tốn tài nguyên hệ thống: C# được biên dịch thành mã trung gian(Intermediate Language - IL) và yêu cầu môi trường thực thi NET để chạy
Do đó, ứng dụng C# có thể tốn nhiều tài nguyên hệ thống hơn so với một sốngôn ngữ khác
+ Tính chậm hơn so với C++: Mặc dù C# có hiệu suất tốt trong hầu hết cáctình huống, nhưng nó vẫn chậm hơn so với các ngôn ngữ biên dịch trực tiếpnhư C++
+ Giới hạn của Windows Phone: C# từng được sử dụng phổ biến trong pháttriển ứng dụng di động cho Windows Phone, nhưng hiện nay WindowsPhone đã không còn được hỗ trợ chính thức bởi Microsoft
+ Tuy nhiên, những nhược điểm trên không thể che đi sự phổ biến và mạnh
mẽ của C# trong việc phát triển ứng dụng Windows và hệ thống phần mềm
1.2. Giới thiệu phần mềm Visual Studio
Visual Studio là một phần mềm phát triển ứng dụng tích hợp (IntegratedDevelopment Environment - IDE) phổ biến được phát triển bởi Microsoft Được ra
Trang 10mắt lần đầu vào năm 1997, Visual Studio đã trở thành một trong những công cụ pháttriển phổ biến nhất và được lựa chọn hàng đầu bởi các lập trình viên trên toàn thế giới.
Với giao diện người dùng thân thiện và trực quan, Visual Studio cung cấp mộtloạt các công cụ và tính năng mạnh mẽ để hỗ trợ quá trình phát triển phần mềm Tínhnăng phong phú của nó cho phép lập trình viên làm việc trên nhiều ngôn ngữ lập trìnhnhư C#, C++, VB.NET, F#, Python và nhiều ngôn ngữ khác, phù hợp với nhu cầu và
sở thích của từng người dùng
Một trong những ưu điểm lớn của Visual Studio là khả năng tích hợp mạnh mẽvới NET Framework, một nền tảng phát triển ứng dụng rộng rãi được sử dụng choviệc xây dựng ứng dụng Windows và web Visual Studio cung cấp môi trường pháttriển toàn diện và dễ sử dụng cho việc tạo ra các ứng dụng NET đáng tin cậy và hiệuquả
Tính năng IntelliSense của Visual Studio là một trong những yếu tố quan trọnggiúp lập trình viên tăng năng suất IntelliSense tự động gợi ý cú pháp, hàm, thuộc tính
và các phần tử khác của ngôn ngữ lập trình, giúp giảm thiểu lỗi cú pháp và tăng tínhchính xác của mã nguồn Điều này giúp tiết kiệm thời gian và công sức trong quá trìnhviết mã
Visual Studio cũng có một loạt các công cụ mạnh mẽ để hỗ trợ quá trình gỡ lỗi
và kiểm tra lỗi trong quá trình phát triển Lập trình viên có thể theo dõi và sửa lỗi mộtcách dễ dàng trong mã nguồn của mình, đảm bảo tính ổn định và đúng đắn của ứngdụng
Một điểm mạnh khác của Visual Studio là khả năng tích hợp với các hệ thốngquản lý mã nguồn phổ biến như Git và Subversion Điều này cho phép lập trình viênquản lý và theo dõi phiên bản của mã nguồn và làm việc cộng tác với các thành viênkhác trong nhóm Việc tích hợp này giúp đảm bảo quản lý mã nguồn hiệu quả và quản
lý phiên bản của ứng dụng
Tuy nhiên, cũng có một số nhược điểm của Visual Studio cần được lưu ý Đầutiên, Visual Studio có yêu cầu phần cứng tương đối cao, đặc biệt là khi xử lý các dự ánlớn và phức tạp Điều này có thể gây khó khăn cho những máy tính có cấu hình yếu vàảnh hưởng đến hiệu suất và tốc độ làm việc
Thứ hai, Visual Studio có giao diện phức tạp và nhiều tùy chọn cấu hình, đòihỏi người dùng có một thời gian để làm quen và nắm vững các tính năng của nó Điềunày có thể tạo ra một thời gian học tập ban đầu và thách thức đối với người mới bắtđầu sử dụng nó
1.3. Giới thiệu chung về SqlServer
SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ (Relational DatabaseManagement System - RDBMS) được phát triển bởi Microsoft Nó cung cấp một môitrường robust và mạnh mẽ cho việc lưu trữ, truy xuất và quản lý cơ sở dữ liệu SQLServer đã trở thành một trong những hệ quản trị cơ sở dữ liệu phổ biến nhất trên thế
Trang 11giới và được sử dụng rộng rãi trong các ứng dụng doanh nghiệp và phát triển phầnmềm.
SQL Server hỗ trợ ngôn ngữ truy vấn SQL (Structured Query Language), chophép lập trình viên tạo, thao tác và truy xuất dữ liệu trong cơ sở dữ liệu quan hệ SQLServer hỗ trợ các tính năng quan trọng như khả năng lưu trữ dữ liệu cấp cao, quản lýquyền truy cập, giao dịch an toàn và sao lưu dữ liệu Nó cung cấp khả năng đáp ứngcho các ứng dụng có tải cao và có thể mở rộng để đáp ứng nhu cầu mở rộng của doanhnghiệp
SQL Server có một số phiên bản khác nhau, bao gồm phiên bản Express (miễnphí), phiên bản Standard và phiên bản Enterprise Mỗi phiên bản có các tính năng vàkhả năng khác nhau, tùy thuộc vào nhu cầu và quy mô của dự án
SQL Server cung cấp một môi trường quản lý dễ sử dụng thông qua giao diệnngười dùng đồ họa (SQL Server Management Studio - SSMS) SSMS cho phép ngườidùng tạo và quản lý cơ sở dữ liệu, thiết kế bảng, viết và thực thi truy vấn SQL, xem vàsửa đổi dữ liệu, cũng như thực hiện các tác vụ quản lý khác như sao lưu và phục hồi
dữ liệu
SQL Server có những ưu điểm vượt trội, bao gồm tính bảo mật cao, khả năng
mở rộng, hiệu suất tốt và khả năng tích hợp tốt với các công cụ phát triển phần mềmkhác của Microsoft như Visual Studio Nó cũng hỗ trợ các tính năng nâng cao như xử
lý dữ liệu phân tán, dữ liệu không gian (spatial data), phân tích dữ liệu và truy vấn dữliệu bằng ngôn ngữ R
Tuy nhiên, SQL Server cũng có một số hạn chế, bao gồm yêu cầu phần cứngcao và giá cả phần mềm khá đắt đỏ đối với các phiên bản cao cấp Ngoài ra, việc quản
lý và bảo trì SQL Server có thể đòi hỏi kiến thức chuyên môn và kỹ năng quản trị cơ
sở dữ liệu
Tóm lại, SQL Server là một hệ quản trị cơ sở dữ liệu quan hệ mạnh mẽ và linhhoạt được phát triển bởi Microsoft Với tính năng bảo mật, khả năng mở rộng, hiệusuất tốt và tích hợp tốt với các công cụ phát triển khác, nó là một lựa chọn tốt cho việcquản lý và truy xuất dữ liệu trong các ứng dụng doanh nghiệp và phát triển phần mềm
1.4. Kiến trúc mô hình MVC
a) Mô hình MVC trong c# là gì?
Mô hình MVC (Model-View-Controller) là một mô hình thiết kế phần mềm phổbiến trong phát triển ứng dụng web Nó giúp tách biệt các thành phần quan trọng trongứng dụng, bao gồm dữ liệu (Model), giao diện người dùng (View) và luồng điều khiển(Controller), để tăng tính module, dễ bảo trì và phát triển
Mô hình MVC tách biệt rõ ràng các thành phần trong ứng dụng, giúp tăng tínhmodule, dễ bảo trì và phát triển Nó cung cấp khả năng tái sử dụng cao, vì các thànhphần có thể được thay thế hoặc mở rộng mà không ảnh hưởng đến các thành phầnkhác Ngoài ra, nó cũng thúc đẩy việc phân chia công việc giữa các nhóm phát triển, ví
Trang 12dụ như nhóm phát triển giao diện người dùng, nhóm phát triển logic xử lý và nhómphát triển cơ sở dữ liệu.
Tuy nhiên, việc sử dụng mô hình MVC cũng có một số nhược điểm Việc phântách rõ ràng các thành phần có thể dẫn đến sự phức tạp và tăng độ phức tạp của mãnguồn Ngoài ra, việc phát triển trong mô hình MVC yêu cầu hiểu rõ về cấu trúc vàquy tắc của mô hình, đòi hỏi người phát triển có kiến thức và kỹ năng phù hợp
Tuy vậy, với sự phổ biến và sự hỗ trợ của các framework phát triển như ASP.NETMVC, mô hình MVC vẫn được sử dụng rộng rãi trong phát triển ứng dụng web Nógiúp tạo ra các ứng dụng có tổ chức tốt, dễ bảo trì và mở rộng, và cung cấp sự phânchia rõ ràng giữa các thành phần của ứng dụng
- Model (M): Model là thành phần chịu trách nhiệm cho việc xử lý dữ liệu vàtương tác với cơ sở dữ liệu Nó đại diện cho dữ liệu của ứng dụng và chứa cáclogic liên quan đến dữ liệu như truy xuất, cập nhật, xử lý và kiểm tra dữ liệu.Model không biết gì về giao diện người dùng và không phụ thuộc vào bất kỳthành phần nào khác trong mô hình
Ví dụ:
public class User
{
public int Id { get; set; }
public string Name { get; set; }
public string Email { get; set; }
View (V): View là thành phần chịu trách nhiệm hiển thị thông tin cho người dùng
và tương tác với họ Nó đại diện cho giao diện người dùng và có nhiệm vụ hiển thị dữ
Trang 13liệu từ Model và nhận các tương tác từ người dùng View không chứa bất kỳ logic xử
lý nào và chỉ nên biết cách hiển thị dữ liệu mà nó nhận được từ Model
public class UserController : Controller
Trang 14b) Ưu và nhược điểm của mô hình MVT
Ưu điểm của mô hình MVC:
Tách biệt logic: Mô hình MVC tách biệt logic của ứng dụng thành ba thànhphần chính là Model, View và Controller Điều này giúp giữ cho mã nguồn
dễ đọc, bảo trì và mở rộng
Tái sử dụng mã nguồn: Với việc tách biệt logic, các thành phần trong môhình MVC có thể được tái sử dụng dễ dàng Model có thể được sử dụng lạitrong các ứng dụng khác nhau, View có thể được thay đổi hoặc thêm mới
để phù hợp với yêu cầu hiển thị, và Controller có thể được sử dụng để xử lýlogic điều khiển trong các ứng dụng tương tự
Quản lý dễ dàng: Mô hình MVC giúp quản lý dễ dàng mã nguồn và pháttriển ứng dụng Việc tách biệt logic giúp phân chia rõ ràng nhiệm vụ củatừng thành phần và cho phép nhiều nhà phát triển làm việc đồng thời trêncác phần khác nhau của ứng dụng
Kiểm thử thuận tiện: Do mỗi thành phần trong mô hình MVC có nhiệm vụriêng, việc kiểm thử trở nên thuận tiện hơn Bạn có thể kiểm tra logic xử lý
dữ liệu trong Model, kiểm tra hiển thị và tương tác với người dùng trongView, và kiểm tra xử lý yêu cầu và điều khiển trong Controller một cáchđộc lập
Nhược điểm của mô hình MVC:
Phức tạp hóa: Mô hình MVC đòi hỏi sự hiểu biết và kỹ năng của nhà pháttriển để triển khai và sử dụng một cách hiệu quả Việc tách biệt logic thànhnhiều thành phần có thể làm tăng độ phức tạp và đòi hỏi quản lý mã nguồncẩn thận
Thời gian và công sức: Việc phân chia logic vào các thành phần riêng biệt
và xác định quy tắc giao tiếp giữa chúng có thể mất thời gian và công sức.Điều này đặc biệt đúng khi xây dựng các ứng dụng lớn và phức tạp
Khả năng mở rộng: Mặc dù mô hình MVC giúp quản lý dễ dàng và tái sửdụng mã nguồn, nhưng việc mở rộng ứng dụng có thể trở nên phức tạp hơnkhi có nhiều thành phần liên quan và sự phụ thuộc phức tạp giữa chúng
Trang 15 Sự ràng buộc: Mô hình MVC có một số ràng buộc về cách triển khai vàcách giao tiếp giữa các thành phần Điều này có thể giới hạn sự linh hoạt và
độ linh hoạt của ứng dụng trong một số trường hợp đặc biệt
1.5.Một số nguồn, trang mẫu tham khảo
1) Microsoft Docs: Trang chính thức của Microsoft cung cấp tài liệu chi tiết về môhình MVC trong C#:
Trang 16CHƯƠNG 2: PHÂN TÍCH THẾT KẾ HỆ THỐNG
2.1 Khảo sát hiện trạng hệ thống
2.1.1 Hệ thống hiện hành của cửa hàng
Quán cắt tóc hiện tại sử dụng một hệ thống quản lý nhân viên và tiền lương dựatrên các công cụ và phần mềm đơn giản Quy trình quản lý nhân viên bao gồm việc ghinhận thông tin cơ bản của nhân viên như tên, địa chỉ, số điện thoại, v.v Thông tin nàyđược lưu trữ trong một danh sách hoặc bảng dữ liệu để dễ dàng truy cập và cập nhật
Hệ thống cũng cho phép ghi nhận các thông tin khác liên quan đến nhân viênnhư vị trí công việc, thời gian làm việc, số giờ làm việc, v.v Những thông tin này giúpquản lý có cái nhìn tổng quan về hoạt động và hiệu suất làm việc của nhân viên
Tuy nhiên, hệ thống hiện hành còn một số nhược điểm cần được cải tiến Đầutiên, quy trình tính toán tiền lương vẫn được thực hiện bằng cách thủ công và có thểgây ra sai sót Việc tính toán tiền lương phải dựa trên các thông tin như số giờ làmviệc, mức lương cơ bản, các khoản phụ cấp, và khấu trừ thuế, nhưng việc tính toán này
có thể làm mất nhiều thời gian và dễ gây ra lỗi
Thứ hai, hệ thống hiện hành không cung cấp đầy đủ các báo cáo và thống kêliên quan đến quản lý nhân viên và tiền lương Điều này làm hạn chế khả năng đánhgiá hiệu suất làm việc của nhân viên và không cho phép quản lý có cái nhìn toàn diện
Tóm lại, hệ thống hiện hành của quán cắt tóc trong việc quản lý nhân viên vàtiền lương cần được cải thiện để đảm bảo tính chính xác và hiệu quả trong quản lý.Việc áp dụng một phần mềm quản lý nhân sự và tiền lương sẽ giúp tăng cường quytrình quản lý và cung cấp thông tin cần thiết để đưa ra quyết định quản lý tốt hơn
2.1.2 Hệ thống đề nghị
Để minh họa ví dụ về hệ thống quản lý nhân viên và tiền lương trong quán cắttóc, hãy xem xét ví dụ sau đây:
Về giao diện
- Quản lý thông tin nhân viên:
o Lưu trữ thông tin cơ bản của nhân viên như tên, địa chỉ, số điệnthoại, v.v
o Ghi nhận vị trí công việc và thông tin về kỹ năng của nhân viên
o Theo dõi lịch làm việc và thời gian làm việc của nhân viên
o Quản lý lương và tiền lương:
Ghi nhận mức lương cơ bản của từng nhân viên
Trang 17o Tính toán tổng số giờ làm việc của nhân viên trong mỗi kỳ tínhlương.
o Áp dụng các quy tắc tính lương như tỷ lệ lương theo giờ, khoảnphụ cấp và khấu trừ thuế (nếu có)
o Tự động tính toán và cung cấp thông tin về tiền lương cho từngnhân viên
o
- Báo cáo và thống kê:
o Tạo các báo cáo tổng hợp về hiệu suất làm việc của nhân viên,bao gồm số giờ làm việc, doanh thu tương ứng và số lượt kháchphục vụ
o Thống kê và so sánh hiệu suất làm việc của các nhân viên trongquán cắt tóc
o Cung cấp báo cáo về tổng số lượng khách hàng đã phục vụ vàdoanh thu hàng tháng, quý và năm
- Ghi nhận thông tin về các ngày nghỉ và nghỉ phép của nhân viên
o Tính toán số ngày làm việc thực tế và số ngày nghỉ để áp dụngcho tính lương
- Quản lý tài khoản người dùng:
o Xác thực và quản lý tài khoản người dùng cho quản lý và nhânviên
o Đảm bảo tính bảo mật và phân quyền truy cập vào hệ thống
o Tổng quan, hệ thống quản lý nhân viên và tiền lương trong quáncắt tóc sẽ giúp quản lý quán cắt tóc tiết kiệm thời gian và nỗ lựctrong việc quản lý nhân sự và tính toán tiền lương Nó cung cấpthông tin liên quan để đánh giá hiệu suất làm việc của nhân viên
và đảm bảo tính chính xác trong tính toán tiền lương Đồng thời,
hệ thống sẽ cung cấp các báo cáo và thống kê để hỗ trợ quản lýtrong việc đưa ra quyết định dựa trên dữ liệu số liệu hiệu quả vàchính xác
Trang 182.2 Sơ đồ phân cấp chức năng
Hình 2.1 Sơ đồ phân cấp chức năng
Quản lý nhân viên và tiền lương
- Quản lý nhân viên và tiền lương:
+ Chức năng chính của ứng dụng, cho phép quản lý nhân viên và tính toán tiềnlương
- Quản lý nhân viên:
+ Thêm nhân viên: Cho phép thêm thông tin của một nhân viên mới vào hệthống
+ Sửa thông tin nhân viên: Cho phép chỉnh sửa thông tin của một nhân viên đã
có trong hệ thống
+ Xóa nhân viên: Cho phép xóa một nhân viên khỏi hệ thống
+ Xem danh sách nhân viên: Hiển thị danh sách tất cả các nhân viên trong hệthống
- Quản lý tiền lương:
Trang 19+ Tính lương nhân viên: Tính toán lương cho một nhân viên dựa trên thông tinnhư số giờ làm việc, mức lương, và các yếu tố khác.
+ Xem bảng lương nhân viên: Hiển thị bảng lương của tất cả các nhân viêntrong một khoảng thời gian nhất định
+ Xóa khách hàng: Cho phép xóa một khách hàng khỏi hệ thống
+ Xem danh sách khách hàng: Hiển thị danh sách tất cả các khách hàng trong
hệ thống
- Quản lý dịch vụ:
+ Thêm dịch vụ: Cho phép thêm thông tin về một dịch vụ mới vào hệ thống.+ Sửa thông tin dịch vụ: Cho phép chỉnh sửa thông tin của một dịch vụ đã cótrong hệ thống
+ Xóa dịch vụ: Cho phép xóa một dịch vụ khỏi hệ thống
+ Xem danh sách dịch vụ: Hiển thị danh sách tất cả các dịch vụ có sẵn trong hệthống
2.3 Xác định các tác nhân của hệ thống
Các tác nhân trong hệ thống gồm có:
Tác nhân này có vai trò chính trong quản lý và điều hành hệ thống Người quản
lý có quyền truy cập vào các chức năng quản lý nhân viên và tiền lương, baogồm thêm, sửa, xóa thông tin nhân viên, tính toán tiền lương, và xem bảnglương Người quản lý có quyền kiểm soát và quản lý toàn bộ hệ thống
Nhân viên: Đây là tác nhân chính của hệ thống Nhân viên có thể sử dụng hệthống để xem thông tin cá nhân, cập nhật thông tin của mình (nếu có quyền), vàxem bảng lương cá nhân
Khách hàng: Tác nhân này có thể là khách hàng đang sử dụng dịch vụ cắt tóctại quán Họ có thể cung cấp thông tin cá nhân, thay đổi thông tin (nếu có), vàtham khảo bảng giá dịch vụ
Hệ thống: Đây là tác nhân không phải con người và đại diện cho ứng dụng quản
lý nhân viên và tiền lương Hệ thống xử lý các yêu cầu từ các tác nhân khác
Trang 20nhau, lưu trữ thông tin nhân viên, tiền lương, khách hàng và dịch vụ, và cungcấp các chức năng và giao diện cho các tác nhân sử dụng.
2.4 Biểu đồ Use case (Use case Diagram)
2.4.1. Use case tổng quát
Hình 2.2 Biểu đồ Use Case tổng quát
Web bán quần áo
lương, quản lý dịch vụ, quản lý ngày làm,Thống kê.
Dòng sự kiện chính - Customer, Admin đăng nhập vào hệ thống và thao tác
với các chức năng thuộc quyền quản lý của mình
- Hệ thống đưa ra các chức năng để người dùng thao tác
1 Thành công Vào trong hệ thống
2 Không thành công Hệ thống thông báo tài khoản/mật khẩu chưa đúng
2a Quản lý
Trang 212 Hệ thống cập nhật dữ liệu mới 3a Thêm, sửa, xóa, tìm kiếm
Bảng 2.1 Đạc tả Use case tổng quát
2.4.2. Use case đăng nhập
Hình 2.3 Use Case đăng nhập
Người dùng đăng nhập hệ thống để sử dụng chức năng
2a Đăng nhập thành công.
Điều kiện tiên
quyết
Thông tin đăng nhập (id, pass).