lOMoARcPSD| 58728417
Đề kiểm tra cuối kỳ: Thiết kế ứng dụng C# Windows Forms theo mô hình Three Layers Yêu cầu:
1. Mô hình Three Layers (Ba Tầng):
o Presentaon Layer (UI): Giao diện người dùng, cho phép người dùng tương tác
với ứng dụng.
o Business Logic Layer (BLL): Chứa các logic xử , ràng buộc dữ liệu, và các quy tắc
nghiệp vụ.
o Data Access Layer (DAL): Chịu trách nhiệm kết nối, thực hiện các thao tác với cơ
sở dữ liệu.
2. Chức năng chính:
o Thêm, sửa, xóa nhân viên: Một nhân viên có thể được thêm mới, chỉnh sửa thông
n hoặc xóa khỏi hệ thống.
o Thêm, sửa, xóa phòng ban: Tương tự, người dùng thể thêm mới, chỉnh sửa
hoặc xóa phòng ban. o Lọc dliệu: Cho phép người ng m kiếm, lọc dữ liệu
nhân viên theo các êu chí như tên, phòng ban, v.v.
3. Quan hệ dữ liệu:
o Một nhân viên chỉ thuộc một phòng ban duy nhất.
o Một phòng ban có thể có nhiều nhân viên.
ớng dẫn chi ết:
1. Thiết kế cơ sở dữ liệu:
o Bảng Nhân Viên (Employees):
ID: int, primary key
Name: nvarchar(50)
Age: int
DepartmentID: int, foreign key references Departments(ID) o Bảng Phòng
Ban (Departments):
ID: int, primary key
Name: nvarchar(50) Descripon: nvarchar(200)
2. Data Access Layer (DAL):
o Kết nối cơ sở dữ liệu, thực hiện các thao tác CRUD (Create, Read, Update, Delete).
o Ví dụ: EmployeeDAL và DepartmentDAL cho các thao tác liên quan đến bảng nhân
viên và phòng ban.
3. Business Logic Layer (BLL):
o Chứa các logic xử lý như kiểm tra ràng buộc, xác thực dữ liệu.
o Ví dụ: EmployeeBLL và DepartmentBLL cho các logic nghiệp vụ liên quan đến nhân
viên và phòng ban.
4. Presentaon Layer (UI):
o Thiết kế giao diện sử dụng Windows Forms, cho phép người dùng tương tác với
các chức năng thêm, sửa, xóa và lọc dữ liệu.
o Các Form chính có thể bao gồm: EmployeeForm,
DepartmentForm, MainForm.
5. Các bước triển khai cụ th:
lOMoARcPSD| 58728417
Step 1: Tạo project C# Windows Forms với mô hình Three Layers.
o Tạo các lớp tương ứng trong DAL: EmployeeDAL,
DepartmentDAL.
o Tạo các lớp tương ứng trong BLL: EmployeeBLL, DepartmentBLL.
o Thiết kế các form trong UI.
Step 2: Xây dựng lớp DAL cho nhân viên và phòng ban.
public class EmployeeDAL
{
public void AddEmployee(Employee employee) { /*...*/ } public void
UpdateEmployee(Employee employee) { /*...*/ } public void
DeleteEmployee(int employeeID) { /*...*/ } public List<Employee>
GetEmployees() { /*...*/ }
}
public class DepartmentDAL
{
public void AddDepartment(Department department) { /*...*/ } public void
UpdateDepartment(Department department) { /*...*/ } public void
DeleteDepartment(int departmentID) { /*...*/ } public List<Department>
GetDepartments() { /*...*/ } }
Step 3: Xây dựng lớp BLL cho nhân viên và phòng ban.
lOMoARcPSD| 58728417
public class EmployeeBLL
{
private EmployeeDAL employeeDAL = new EmployeeDAL();
public void AddEmployee(Employee employee)
{
// Business logic validaon if
(employee.Age < 18)
throw new Excepon("Employee must be at least 18 years old.");
employeeDAL.AddEmployee(employee);
}
public void UpdateEmployee(Employee employee) { /*...*/ } public void
DeleteEmployee(int employeeID) { /*...*/ } public List<Employee>
GetEmployees() { return employeeDAL.GetEmployees(); }
}
public class DepartmentBLL
{
private DepartmentDAL departmentDAL = new DepartmentDAL(); public void
AddDepartment(Department department) { /*...*/ }
public void UpdateDepartment(Department department) { /*...*/ } public void
DeleteDepartment(int departmentID) { /*...*/ } public List<Department>
GetDepartments() { return departmentDAL.GetDepartments(); }
}
Step 4: Thiết kế giao diện người dùng (UI).
o Form chính (MainForm) đđiều hướng đến các chức năng quản nhân viên
phòng ban.
o Form EmployeeForm để thêm, sửa, xóa, và lọc nhân viên.
o Form DepartmentForm để thêm, sửa, xóa, và lọc phòng ban.
Step 5: Kết nối giữa UI và BLL.
lOMoARcPSD| 58728417
public paral class EmployeeForm : Form
{
private EmployeeBLL employeeBLL = new EmployeeBLL();
public EmployeeForm()
{
InializeComponent();
}
private void btnAdd_Click(object sender, EventArgs e)
{
Employee employee = new Employee { /*...*/ };
employeeBLL.AddEmployee(employee);
LoadEmployees(); }
private void LoadEmployees()
{
var employees = employeeBLL.GetEmployees(); // Bind
employees to UI
}
}
Gợi ý thêm:
Kiểm tra ràng buộc dữ liệu để tránh việc xóa phòng ban khi còn nhân viên thuộc phòng
ban đó.
Sử dụng DataGridView để hiển thị danh sách nhân viên và phòng ban.
Sử dụng các điều khiển (controls) như TextBox, ComboBox, Buon để người dùng tương
tác.
MS SQL SERVER
Đây các lệnh SQL để tạo sở dữ liệu các bảng Nhân Viên (Employees) Phòng Ban
(Departments) trên SQL Server, cùng với một số dữ liệu mẫu để kiểm thử.
Tạo Cơ Sở Dữ Liệu
CREATE DATABASE QuanLyNhanVien;
GO
USE QuanLyNhanVien;
GO
Tạo Bảng Phòng Ban (Departments)
CREATE TABLE Departments (
ID INT PRIMARY KEY IDENTITY(1,1),
Name NVARCHAR(50) NOT NULL,
Descripon NVARCHAR(200)
);
lOMoARcPSD| 58728417
Tạo Bảng Nhân Viên (Employees)
CREATE TABLE Employees (
ID INT PRIMARY KEY IDENTITY(1,1),
Name NVARCHAR(50) NOT NULL,
Age INT NOT NULL, DepartmentID INT,
CONSTRAINT FK_Department FOREIGN KEY (DepartmentID) REFERENCES
Departments(ID)
);
Thêm Dữ Liệu Mẫu vào Bảng Phòng Ban (Departments)
INSERT INTO Departments (Name, Descripon) VALUES
('Phòng Kế Toán', 'Phụ trách các công việc liên quan đến kế toán'),
('Phòng Nhân Sự', 'Phụ trách các công việc liên quan đến nhân sự'),
('Phòng IT', 'Phụ trách các công việc liên quan đến công nghệ thông n');
Thêm Dữ Liệu Mẫu vào Bảng Nhân Viên (Employees)
INSERT INTO Employees (Name, Age, DepartmentID) VALUES
('Nguyễn Văn A', 30, 1),
('Trần Thị B', 25, 2),
('Lê Văn C', 35, 3),
('Phạm Thị D', 28, 1),
('Hoàng Văn E', 24, 2);
Kiểm Tra Dữ Liệu Đã Thêm
SELECT * FROM Departments;
SELECT * FROM Employees;
Ràng Buộc Dữ Liệu
Đảm bảo rằng khi bạn xóa một phòng ban thì không có nhân viên nào thuộc phòng ban đó. Bạn
có thể sử dụng lệnh sau để thiết lập ràng buộc:
ALTER TABLE Employees
ADD CONSTRAINT FK_Department
FOREIGN KEY (DepartmentID) REFERENCES Departments(ID)
ON DELETE CASCADE;

Preview text:

lOMoAR cPSD| 58728417
Đề kiểm tra cuối kỳ: Thiết kế ứng dụng C# Windows Forms theo mô hình Three Layers Yêu cầu:
1. Mô hình Three Layers (Ba Tầng):
o Presentation Layer (UI): Giao diện người dùng, cho phép người dùng tương tác với ứng dụng.
o Business Logic Layer (BLL): Chứa các logic xử lý, ràng buộc dữ liệu, và các quy tắc nghiệp vụ.
o Data Access Layer (DAL): Chịu trách nhiệm kết nối, thực hiện các thao tác với cơ sở dữ liệu.
2. Chức năng chính:
o Thêm, sửa, xóa nhân viên: Một nhân viên có thể được thêm mới, chỉnh sửa thông
tin hoặc xóa khỏi hệ thống.
o Thêm, sửa, xóa phòng ban: Tương tự, người dùng có thể thêm mới, chỉnh sửa
hoặc xóa phòng ban. o Lọc dữ liệu: Cho phép người dùng tìm kiếm, lọc dữ liệu
nhân viên theo các tiêu chí như tên, phòng ban, v.v.
3. Quan hệ dữ liệu:
o Một nhân viên chỉ thuộc một phòng ban duy nhất.
o Một phòng ban có thể có nhiều nhân viên.
Hướng dẫn chi tiết:
1. Thiết kế cơ sở dữ liệu:
o Bảng Nhân Viên (Employees): ID: int, primary key Name: nvarchar(50) Age: int
DepartmentID: int, foreign key references Departments(ID) o Bảng Phòng Ban (Departments): ID: int, primary key
Name: nvarchar(50) Description: nvarchar(200)
2. Data Access Layer (DAL):
o Kết nối cơ sở dữ liệu, thực hiện các thao tác CRUD (Create, Read, Update, Delete).
o Ví dụ: EmployeeDAL và DepartmentDAL cho các thao tác liên quan đến bảng nhân viên và phòng ban.
3. Business Logic Layer (BLL):
o Chứa các logic xử lý như kiểm tra ràng buộc, xác thực dữ liệu.
o Ví dụ: EmployeeBLL và DepartmentBLL cho các logic nghiệp vụ liên quan đến nhân viên và phòng ban.
4. Presentation Layer (UI):
o Thiết kế giao diện sử dụng Windows Forms, cho phép người dùng tương tác với
các chức năng thêm, sửa, xóa và lọc dữ liệu.
o Các Form chính có thể bao gồm: EmployeeForm, DepartmentForm, MainForm.
5. Các bước triển khai cụ thể: lOMoAR cPSD| 58728417
Step 1: Tạo project C# Windows Forms với mô hình Three Layers.
o Tạo các lớp tương ứng trong DAL: EmployeeDAL, DepartmentDAL.
o Tạo các lớp tương ứng trong BLL: EmployeeBLL, DepartmentBLL.
o Thiết kế các form trong UI.
Step 2: Xây dựng lớp DAL cho nhân viên và phòng ban. public class EmployeeDAL {
public void AddEmployee(Employee employee) { /*...*/ } public void
UpdateEmployee(Employee employee) { /*...*/ } public void
DeleteEmployee(int employeeID) { /*...*/ } public List GetEmployees() { /*...*/ } } public class DepartmentDAL {
public void AddDepartment(Department department) { /*...*/ } public void
UpdateDepartment(Department department) { /*...*/ } public void
DeleteDepartment(int departmentID) { /*...*/ } public List
GetDepartments() { /*...*/ } }
Step 3: Xây dựng lớp BLL cho nhân viên và phòng ban. lOMoAR cPSD| 58728417 public class EmployeeBLL {
private EmployeeDAL employeeDAL = new EmployeeDAL();
public void AddEmployee(Employee employee) {
// Business logic validation if (employee.Age < 18)
throw new Exception("Employee must be at least 18 years old.");
employeeDAL.AddEmployee(employee); }
public void UpdateEmployee(Employee employee) { /*...*/ } public void
DeleteEmployee(int employeeID) { /*...*/ } public List
GetEmployees() { return employeeDAL.GetEmployees(); } } public class DepartmentBLL {
private DepartmentDAL departmentDAL = new DepartmentDAL(); public void
AddDepartment(Department department) { /*...*/ }
public void UpdateDepartment(Department department) { /*...*/ } public void
DeleteDepartment(int departmentID) { /*...*/ } public List
GetDepartments() { return departmentDAL.GetDepartments(); } }
Step 4: Thiết kế giao diện người dùng (UI).
o Form chính (MainForm) để điều hướng đến các chức năng quản lý nhân viên và phòng ban.
o Form EmployeeForm để thêm, sửa, xóa, và lọc nhân viên.
o Form DepartmentForm để thêm, sửa, xóa, và lọc phòng ban.
Step 5: Kết nối giữa UI và BLL. lOMoAR cPSD| 58728417
public partial class EmployeeForm : Form {
private EmployeeBLL employeeBLL = new EmployeeBLL(); public EmployeeForm() { InitializeComponent(); }
private void btnAdd_Click(object sender, EventArgs e) {
Employee employee = new Employee { /*...*/ };
employeeBLL.AddEmployee(employee); LoadEmployees(); } private void LoadEmployees() {
var employees = employeeBLL.GetEmployees(); // Bind employees to UI } } Gợi ý thêm:
Kiểm tra ràng buộc dữ liệu để tránh việc xóa phòng ban khi còn nhân viên thuộc phòng ban đó. •
Sử dụng DataGridView để hiển thị danh sách nhân viên và phòng ban. •
Sử dụng các điều khiển (controls) như TextBox, ComboBox, Button để người dùng tương tác. MS SQL SERVER
Đây là các lệnh SQL để tạo cơ sở dữ liệu và các bảng Nhân Viên (Employees) và Phòng Ban
(Departments) trên SQL Server, cùng với một số dữ liệu mẫu để kiểm thử.
Tạo Cơ Sở Dữ Liệu
CREATE DATABASE QuanLyNhanVien; GO USE QuanLyNhanVien; GO
Tạo Bảng Phòng Ban (Departments) CREATE TABLE Departments (
ID INT PRIMARY KEY IDENTITY(1,1), Name NVARCHAR(50) NOT NULL, Description NVARCHAR(200) ); lOMoAR cPSD| 58728417
Tạo Bảng Nhân Viên (Employees) CREATE TABLE Employees (
ID INT PRIMARY KEY IDENTITY(1,1), Name NVARCHAR(50) NOT NULL,
Age INT NOT NULL, DepartmentID INT,
CONSTRAINT FK_Department FOREIGN KEY (DepartmentID) REFERENCES Departments(ID) );
Thêm Dữ Liệu Mẫu vào Bảng Phòng Ban (Departments)
INSERT INTO Departments (Name, Description) VALUES
('Phòng Kế Toán', 'Phụ trách các công việc liên quan đến kế toán'),
('Phòng Nhân Sự', 'Phụ trách các công việc liên quan đến nhân sự'),
('Phòng IT', 'Phụ trách các công việc liên quan đến công nghệ thông tin');
Thêm Dữ Liệu Mẫu vào Bảng Nhân Viên (Employees)
INSERT INTO Employees (Name, Age, DepartmentID) VALUES ('Nguyễn Văn A', 30, 1), ('Trần Thị B', 25, 2), ('Lê Văn C', 35, 3), ('Phạm Thị D', 28, 1), ('Hoàng Văn E', 24, 2);
Kiểm Tra Dữ Liệu Đã Thêm SELECT * FROM Departments; SELECT * FROM Employees;
Ràng Buộc Dữ Liệu
Đảm bảo rằng khi bạn xóa một phòng ban thì không có nhân viên nào thuộc phòng ban đó. Bạn
có thể sử dụng lệnh sau để thiết lập ràng buộc: ALTER TABLE Employees ADD CONSTRAINT FK_Department
FOREIGN KEY (DepartmentID) REFERENCES Departments(ID) ON DELETE CASCADE;