Cấu trúc hệ thống chương trình

Một phần của tài liệu Đồ án tốt nghiệp Xây dựng phần mềm quản lý nhân sự (Trang 27)

SVTT: Trần Thanh Vân MSSV: 508100212 1. Quản lý hồ sơ Chương Trình Quản Lý Nhân Sự 5. Thống kê báo cáo 2. Quản lý lương 1.1 Hồ sơ NV 2.2 Tính lương 1.2 Hợp Đồng 5.3 In KT-KL 5.2 In bảng lương 5.1 In danh sách NV 2.1 Chấm công 1.3 Quá trình đàotạo 1.4. Trình độ văn hóa 1.5 Khen thưởng 1.5 Kỷ luật 4. Danh mục 4.2 Chức vụ 4.1 Phòng ban 4.3 Tôn giáo 4.4 Dân tộc 4.5 Ngoại ngữ 3. Tìm kiếm 3.1 Theo tên NV 3.2 Theo chức vụ 24

CHƯƠNG 5: GIỚI THIỆU VỀ NGÔN NGỮ LẬP TRÌNH 5.1 Hệ quản trị cơ sở dữ liệu SQL Server 2005

Năm 1989, Microsoft hợp tác với công ty Sybase và Ashton-Tate để cho ra một sản phẩm thuộc loại hệ quản trị cơ sở dữ liệu có tên là SQL Server 1.0 for OS/2. Sau đó một thời gian, Sybase SQL Server 3.0 được phát triển để thực thi trên môi trường hệ điều hành UNIX và VMS. Microsoft SQL Server 4.2 được giới thiệu năm 1992. Và sau đó, Microsoft SQL Server 4.21 for Windows NT được ra đời cùng thời gian với Windows NT 3.1. Microsoft SQL Server 6.0 là phiên bản đầu tiên mà Microsoft phát triển độc lập không có sự hợp tác với các hãng khác.

Các phiên bản SQL Server tiếp theo là: 6.5, 7.0, 2000, 2005 và mới nhất là SQL Server 2008.

a. Các tính năng mới của SQL Server 2005 so với SQL Server 2000:

- Nâng cao tính bảo mật. - Mở rộng T_SQL.

- Tăng cường hỗ trợ người phát triển ứng dụng. - Tăng cường khả năng quản trị cơ sở dữ liệu. - Tăng cường khai thác thông tin.

- Nâng cao độ sẵn sàng và mở rộng của cơ sở dữ liệu.

b. Các ấn bản của SQL Server 2005:

- Microsoft SQL Server 2005 Enterprise Edition. - Microsoft SQL Server 2005 Standard Edition. - Microsoft SQL Server 2005 Workgroup Edition. - Microsoft SQL Server 2005 Developer Edition. - Microsoft SQL Server 2005 Express Edition

Giao diện làm việc với cơ sở dữ liệu Sql server 2005

5.2 Tìm hiểu ngôn ngữ lập trình C#

5.2.1 Giới thiệu về .Net Frame Work

a. Nền tảng của .NET

Nền tảng .Net là bộ khung phát triển ứng dụng mới, nó cung cấp một giao diện lập trình ứng dụng (Application Programming Interface - API) mới mẽ cho các dịch vụ và hệ điều hành Windows, nó cũng mang lại nhiều kỹ thuật khác nổi bật của Microsoft suốt từ những năm 90 tới nay. Nền tảng .NET bao gồm bốn nhóm sau:

- Một tập các ngôn ngữ, bao gồm C#. Net và Visual Basic .Net.

- Một tập các công cụ phát triển bao gồm Visual Studio .Net

- Một tập đầy đủ các thư viện phục vụ cho việc xây dựng các ứng dụng web, các dịch vụ web và các ứng dụng Windows

- CLR - Common Language Runtime: (ngôn ngữ thực thi dùng chung) để thực thi các đối tượng được xây dựng trên bô khung này.

Một tập các Server .Net như SQL Server. Exchange, BizTalk, … chúng cung cấp các chức năng cho việc lưu trữ dữ liệu quan hệ, thư điện tử, thương mại điện tử B2B, …

b. NET Framework

.NET Framework hỗ trợ tích hợp nhiều ngôn ngữ, tức là ta có thể kế thừa các lớp, bắt các biệt lệ, đa hình thông qua nhiều ngôn ngữ. .NET Framework thực hiện được việc này nhờ vào đặc tả Common Type System - CTS (hệ thống kiểu chung) mà tất cả các thành phần .Net đều tuân theo, ví dụ, mọi thứ trong .Net đều là hướng đối tượng, thừa kế từ lớp gốc “System.Object”. Ngoài ra .Net còn bao gồm Common Language Specification - CLS (đặc tả ngôn ngữ chung). Nó cung cấp các quy tắc cơ bản mà ngôn ngữ muốn tích hợp phải thỏa mãn. CLS chỉ ra các yêu cầu tối thiểu của ngôn ngữ hỗ trợ .Net.

đối tượng khác. Bộ thư viện lớp của khung ứng dụng (Framework Class Library - FCL) có thể được dùngbởi bất kỳ ngôn ngữ nào tuân theo CLS. .NET Framework nằm ở tầng trên của hệ điều hành (bất kỳ hệ điều hành nào không chỉ là Windows). .NET Framework bao gồm:

Bốn ngôn ngữ chính thức: C#, VB.Net, C++, và Jscript.NET• Common Language Runtime - CLR, nền tảng hướng đối tượng cho phát triểnứng dụng Windows và web mà các ngôn ngữ có thể chia sẻ sử dụng.

Bộ thư viện Framework Class Library - FCL.

5.2.2 Giới thiệu về ngôn ngữ C#

Ngôn ngữ C# có khoảng 80 từ khóa và hơn mười mấy kiểu dữ liệu được xây dựng sẵn. Ngôn ngữ C# có ý nghĩa cao khi nó thực thi những khái niệm lập trình hiện đại. C# bao gồm tất cả những hỗ trợ cho cấu trúc, thành phần component, lập trình hướng đối tượng. Những tính chất đó hiện diện trong một ngôn ngữ lập trình hiện đại.

Ngôn ngữ C# được phát triển bởi đội ngũ kỹ sư của Microsoft, trong đó người dẫn đầu là Andres Hejlsberg và Scrott Wiltamull. Cả hai người này đều là những người lập trình nổi tiếng, trong đó AndresHejlsberg được biết đến là tác giả của turbo Pascal, một ngôn ngữ lập trình PC phổ biến. Và ông đứng đầu nhóm thiết kế Borland Delphi, một trong những thành công đầu tiên của việc xây dựng môi trường phát triển tích hợp (IDE) cho lập trình Client/ Server.

Trong ngôn ngữ C# mọi thứ liên quan đến khai báo lớp đều được tìm thấy trong phần khai báo của nó. Định nghĩa một lớp trong C# không đòi hỏi phải chia ra tập tin Header và tập tin nguồn giống như trong C++. Hơn thế nữa, ngôn ngữ C# hỗ trợ kiểu XML, cho phép chèn các tag XML để phát sinh tự động các document cho lớp.

C# hỗ trợ giao diện WindownFromAppication, nó được xem như một cam kết với một lớp cho những dịch vụ mà giao diện quy định. Trong ngôn ngữ C#, một lớp chỉ có thể kế thừa từ duy nhất một lớp cha, tức là không cho đa kế thừa như trong ngôn ngữ C++. Khi một lớp thực thi một giao diện thì nó sẽ cung cấp chức năng thực thi giao diện. (adsbygoogle = window.adsbygoogle || []).push({});

Trong ngôn ngữ C#, những cấu trúc cũng được hỗ trợ, nhưng khái niệm về ngữ nghĩa của nó có thể thay đổi khác với C++. Trong C#, một cấu trúc được giới hạn, là kiểu dữ liệu nhỏ gọn và khi tạo thể hiện thì nó yêu cầu ít hơn về hệ điều hành và bộ nhớ so với một lớp. Một cấu trúc thì không thể kế thừa từ một lớp hay được kế thừa. Nhưng một cấu trúc có thể thực thi một giao diện.

5.2.3 Tại sao phải sử dụng ngôn ngữ C#

Nhiều người tin rằng không cần thiết có một ngôn ngữ lập trình mới. Java, C++, Microsoft Visual Basic, và những ngôn ngữ khác được nghĩ rằng đã cung cấp tất cả chức năng cần thiết.

Ngôn ngữ C# là một ngôn ngữ được dẫn xuất từ C và C++, nhưng nó được tạo từ nền tảng phát triển hơn. Microsoft đưa ra một số mục đích khi xây dựng ngôn ngữ này. Những mục đích được tóm tắt như sau:

- C# là ngôn ngữ hiện đại.

- C# là ngôn ngữ hướng đối tượng. - C# là ngôn ngữ mạnh mẽ và mềm dẻo. - C# là ngôn ngữ hướng module.

5.2.3 Thuộc tính, phương thức và sự kiện

Các hành vi của một lớp được gọi là các phương thức thành viên (gọi tắt là phương thức) của lớp đó. Một phương thức là một hàm (phương thức thành viên còn gọi là hàm thành viên). Các phương thức định nghĩa những gì

thức giống hoàn toàn với Java và C++. Trong ví dụ trên có một phương thức đặc biệt là phương thức Main() (như hàm main() trong C++) là phương thức bắt đầu của một ứng dụng C#. Mỗi một chương trình (assembly) có thể có nhiều phương thức Main nhưng khi đó phải chỉ định phương thức Main() nào sẽ bắt đầu chương trình.

5.2.4 Môi trường phát triển tích hợp Visual studio .NET 2010

Thiết kế giao diện trước khi viết chương trình: Bên cạnh trình soạn mã, .NET còn cung cấp một bộ các công cụ kéo thả để làm việctrong môi trường phát triển tích hợp IDE ( Intergrate Development Enviroment ), IDE cho phép kéo thả rồi tự động phát sinh mã tương ứng.Ta sẽ tạo lại ứng dụng trên bằng cách dùng bộ công cụ trong Visual Studio, ta mở Visual Studio và chọn ‘New Project’. Trong cửa sổ ‘New Project’, chọn loại dự án là Visual C# và kiểu ứng dụng là ‘Windows Applications’ và đặt tên cho ứng dụng (Quan_ly_nhan_su)

Visual studio .NET sẽ tạo ra một ứng dụng windows mới và đặt chúng vào IDE như hình dưới:

5.2.4 Biến và hằng

a. Biến

Biến là đại diện lưu trữ dữ liệu. Mỗi biến thuộc về một kiểu dữ liệu. Trong C#, trước khi dùng một biến thì biến đó phải được khai báo nếu không trình biên dịch sẽ báo lỗi khi biên dịch. Ta có thể khai báo biến trước, sau đó khởi tạo và sử dụng; hay khai báo biến và khởi gán trong lúc khai báo.

int x; // Khai báo biến trước.

x = 5; // Sau đó khởi gán giá trị và sử dụng. int y = x;

// Khai báo và khởi gán cùng lúc. b. Hằng:

Là một biến nhưng giá trị không thay đổi theo thời gian. Khi cần thao tác trên một giá trị xác định ta dùng hằng. Khai báo hằng tương tự khai báo

biến và có thêm từ khóa const ở trước. Hằng một khi khởi động song không thể thay đổi được nữa.

Const int hang_so = 100;

5.2.6 Các kiểu dữ liệu

Kiểu Kích thước (byte) Kiểu .Net Mô tả - giá trị

Byte 1 Byte Không dấu (0..255)

Char 1 Char Mã kí tự Unicode

Bool 1 boolean True hay false

Sbyte 1 sbyte Có dấu( -128 .. 127)

Short 2 Int16 Có dấu (-32768 .. 32767)

ushort 2 Uint16 Không dấu (0 .. 65535)

Int 4 Int32 Có dấu (-2147483647 ... (adsbygoogle = window.adsbygoogle || []).push({});

2147483647)

Uint 4 Uint32 Không dấu (0 .. 294967295)

Float 4 Single Số thực (≈ ±1.5*10-45 ... ≈

±3.4*1038)

double 8 Double Số thực (≈ ±5.0*10-324 ... ≈ ±1.7*10308)

Decimal 8 Decimal số có dấu chấm tĩnh với 28 ký số

và dấu chấm

long 8 Int64 Số nguyên có dấu (-

9223372036854775808 ... 9223372036854775807)

Ulong 8 Uint64 Số nguyên không dấu (0 ...

0xffffffffffffffff.)

5.2.7 Các cấu trúc lệnh

Cũng như trong C++ và Java một chỉ thị hoàn chỉnh thì được gọi là một câu lệnh. Chương trình gồm nhiều câu lệnh, mỗi câu lệnh kết thúc bằng dấu “ ; ”.

Ví dụ:

int x; // Là một câu lệnh x = 23; // Một câu lệnh khác

Ngoài các câu lệnh bình thường như trên, có các câu lệnh khác là: lệnh rẽ nhánh không điều kiện, rẽ nhánh có điều kiện và lệnh lặp.

a. Các lệnh rẽ nhánh không điều kiện:

Có hai loại câu lệnh rẽ nhánh không điều kiện. Một là lệnh gọi phương thức: khi trình biên dịch thấy có lời gọi phương thức nó sẽ tạm dừng phương thức hiện hành và nhảy đến phương thức được gọi cho đến hết phương thức này sẽ trở về phương thức cũ.

b. Lệnh rẽ nhánh có điều kiện:

Các từ khóa if-else, while, do-while, for, switch-case, dùng để điều khiển dòng chảy chương trình. C# giữ lại tất cả các cú pháp của C++, ngoại trừ switch có vài cải tiến.

Lệnh If … else …Cú pháp: If (biểu thức logic) Khối lệnh; Hoặc If (biểu thức logic) Khối lệnh 1; Else Khối lệnh 2;

Ghi chú: Khối lệnh là một tập các câu lện trong cặp dấu “{…}”. Bất kỳ nơi đâu có câu lệnh thì ở đó có thể viết bằng một khối lệnh.

Lệnh Switch: Cú pháp: Switch (biểu_thức_lựa_chọn) { Case biểu_thức_hằng: Khối lệnh; Lệnh nhảy; [Default: SVTT: Trần Thanh Vân 34 MSSV: 508100212

Khối lệnh; Lệnh nhảy;] }

c. Lệnh lặp:

Lặp goto: Lệnh goto có thể dùng để tạo lệnh nhảy nhưng nhiều nhà lập trình chuyên nghiệp khuyên không nên dùng câu lệnh này vì nó phá vỡ tính cấu trúc của chương trình. Cách dùng câu lệnh này như sau: (giống như trong C++) b1: Tạo một nhãn. b2: Goto đến nhãn đó.

d. Vòng lặp While:

Cú pháp:

While (biểu_thức_logic) Khối lệnh;

Khối lệnh sẽ được thực hiện cho đến khi nào biểu thức còn đúng. Nếu ngay từ đầu biểu thức sai, khối lệnh sẽ không được thực thi. (adsbygoogle = window.adsbygoogle || []).push({});

e. Vòng lặp Do… While:

Cú pháp:

Do

Khối lệnh

While (biếu_thức_logic)

Biểu thức được kiểm tra. Nếu biểu thức đúng khối lệnh lại được thực hiện.

f. Vòng lặp for :

Cú pháp:

For ( [khởi_tạo_biến_đếm]; [biểu_thức]; [gia_tăng_biến_đếm] ) Khối lệnh;

g. Câu lệnh break, continue, return :

Cả ba câu lệnh break, continue, return rất quen thuộc trong C++ và Java, trong C#, ý nghĩa và cách sử dụng chúng hoàn toàn giống với hai ngôn ngữ này.

CHƯƠNG 6: THIẾT KẾ VẬT LÝ 6.1 Cơ sở dữ liệu vật lý

6.1.1 Bảng Hợp đồng

HopDong

Tên trường Kiểu dữ liệu

Kích thước

Ràng

buộc Ghi chú

Ma_nhan_vien Varchar 10 Primary Key

Mã nhân viên

Loai_hop_dong Varchar 10 Not Null Loại hợp đồng

Ngay_bat_dau Datetime Not Null Ngày bắt đầu

Ngay_ky_HD Datetime Not Null Ngày ký hợp đồng

Noi_dung Varchar 200 Nội dung

6.1.2 Bảng Chấm công

ChamCong

Tên trường Kiểu dữ liệu

Kích thước

Ràng

buộc Ghi chú (adsbygoogle = window.adsbygoogle || []).push({});

Ma_cham_cong Varchar 10 Primary Key

Mã chấm công

Ma_nhan_vien Varchar 10 Not Null Mã nhân viên

Ma_phong_ban Varchar 10 Not Null Mã phòng ban

Thang_nam_CC Datetime Not Null Tháng năm chấm

công

Tong_ngay_cong Int Not Null Tổng ngày công

tháng

Tong_ngay_nghi Int Not Null Tổng ngày nghỉ

6.1.3 Bảng Khen thưởng

KhenThuong

Tên trường Kiểu dữ liệu

Kích thước

Ràng

buộc Ghi chú

Ma_khen_thuong Varchar 10 Primary Key

Mã khen thưởng

Ma_nhan_vien Varchar 10 Foreign

key

Mã nhân viên

Ngay_khen_thuong Datetime Not Null Ngày khen thưởng

Ly_do_KT Varchar 100 Not Null Lý do khen

thưởng

Ngay_ky_hop_dong Datetime Not Null Ngày ký hợp đồng

Tien_thuong Float Tiền thưởng

6.1.4 Bảng Kỷ luật

KyLuat

Tên trường Kiểu dữ liệu Kích

thước Ràng buộc Ghi chú

Ma_ky_luat Varchar 10 Primary (adsbygoogle = window.adsbygoogle || []).push({});

Key

Mã kỷ luật

Ma_nhan_vien Varchar 10 Foreign

key

Mã nhân viên

Ngay_ky_luat Datetime Not Null Ngày kỷ luật

Hinh_thuc Varchar 200 Not Null Hình thức

Ly_do Varchar 200 Not Null Lý do

6.1.5 Bảng Quá trình đào tạo

QuaTrinhDaoTao

Tên trường Kiểu dữ liệu

Kích

thước Ràng buộc Ghi chú Ma_nhan_vien Varchar 10 Primary

Key

Mã nhân viên

Hoc_van Varchar 10 Foreign

key

Học vấn

Chuyen_mon Varchar 100 Not Null Chuyên môn

He_dao_tao Varchar 100 Not Null Hệ đào tạo

6.1.6 Bảng Hồ sơ nhân viên

HoSoNhanVien

Tên trường Kiểu dữ liệu

Kích

thước Ràng buộc Ghi chú

Ma_nhan_vien Vachar 10 Primary Key Mã nhân viên

Ten_nhan_vien Varchar 50 Not Null Tên nhân viên

Ngay_sinh Datetime Not Null Ngày sinh

Gioi_tinh Varchar 5 Not Null Giới tính

Anh Varchar 200 Not Null Ảnh (adsbygoogle = window.adsbygoogle || []).push({});

Nguyen_quan Varchar 200 Not Null Nguyên quán

Ma_TDVH Varchar 10 Not Null Mã học vấn

Ma_chuc_vu Varchar 10 Mã chức vụ

Ma_phong_ban Varchar 10 Mã phòng ban

Ho_khau_TT Varchar 100 Hộ khẩu thường trú

So_CMND Varchar 15 Số chứng minh nhân

dân

Ngay_cap Datetime Ngày cấp

Noi_cap Varchar 100 Nơi cấp

Ma_ngoai_ngu Varchar 10 Mã ngoại ngữ

Ma_ton_giao Varchar 10 Mã tôn giáo

Ma_dan_toc Varchar 10 Mã dân tộc

So_dien_thoai Varchar 50 Số điện thoại

Ngay_vao_lam Datetime Ngày vào làm

Ngay_thoi_lam Datetime Ngày thôi làm

6.1.7 Bảng Trình độ văn hóa

TrinhDoVanHoa

Tên trường Kiểu dữ liệu Kích

thước Ràng buộc Ghi chú

Ma_TDVH Varchar 10 Primary

Key

Mã trình độ văn hóa

Ten_TDVH Varchar 20 Not Null Trình độ văn hóa

6.1.8 Bảng Phòng ban

PhongBan

Tên trường Kiểu dữ liệu

Kích thước

Ràng

buộc Ghi chú

Ma_phong_ban Varchar 10 Primary Key (adsbygoogle = window.adsbygoogle || []).push({});

Mã phòng ban

Ten_phong_ban Varchar 100 Not Null Tên phòng ban

6.1.9 Bảng Lương

BangLuong

Tên trường Kiểu dữ liệu

Kích

Ma_bang_luong Varchar 10 Primary Key

Mã bảng lương

Ma_nhan_vien Varchar 10 Foreign key Mã nhân viên

Ngay_linh_luong Datetime Not Null Ngày lĩnh lương

Ma_cham_cong Varchar 10 Not Null Mã chấm công

Phu_cap Float Not Null Phụ cấp

Luong Float Not Null lương

He_so_luong Float Not Null Hệ số lương

Thuong Float Not Null Thưởng

Bao_hiem_XH Float Not Nul Bảo hiểm xã hội

Bao_hiem_YT Float Not Null Bảo hiểm y tế

Thue_THCN Float Not Null Thuế thu nhập cá

nhân

Tong_luong Float Not Null Tổng lương

6.1.10 Bảng Tôn giáo

TonGiao

Tên trường Kiểu dữ liệu Kích

thước Ràng buộc Ghi chú Ma_ton_giao Varchar 10 Primary

Key

Mã tôn giáo

Ten_ton_giao Varchar 100 Not Null Tên tôn giáo

6.1.11 Bảng ngoại ngữ

NgoaiNgu

Tên trường Kiểu dữ liệu (adsbygoogle = window.adsbygoogle || []).push({});

Kích thước

Ràng

buộc Ghi chú

Ma_ngoai_ngu Varchar 10 Primary Key

Mã ngoại ngữ

Ten_ngoai_ngu Varchar 30 Not Null Tên ngoại ngữ

6.1.12 Bảng Chức vụ

Một phần của tài liệu Đồ án tốt nghiệp Xây dựng phần mềm quản lý nhân sự (Trang 27)