linhda_nguyen

New Member

Download miễn phí Đồ án Tìm hiểu và xây dựng chương trình quản lý hộ khẩu cấp phường





MỤC LỤC

LỜI NÓI ĐẦU 3

Phần 1: CƠ SỞ LÝ THUYẾT 5

Chương 1: LÝ THUYẾT CƠ SỞ DỮ LIỆU 5

I. TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU 5

1. Khái niệm về cơ sở dữ liệu 5

2. Sự cần thiết của cơ sở dữ liệu 5

3. Hệ quản trị cơ sở dữ liệu 5

II. LÝ THUYẾT VỀ CƠ SỞ DỮ LIỆU QUAN HỆ 6

1. Khái niệm cơ bản về cơ sở dữ liệu quan hệ 6

2. Thành phần của CSDL 6

a. Các trường dữ liệu (Data fields) 6

b. Các bản ghi dữ liệu 6

c. Bảng dữ liệu(DataTable) 6

d. Các mỗi quan hệ trong (Relationship) 7

3. Lý thuyết thiết kế cơ sở dữ liệu quan hệ 8

Chương 2. GIỚI THIỆU VB.NET 21

2.1 Nguồn gốc của.NET 21

2.2 VB.NET 22

2.3 Những khác biệt giữa VB.NET với VB6 25

2.4 Namespaces 26

2.5 Local và Global Namespaces 28

2.6 Truy cập Variable/Class/Structure 35

2.7 Tạo một Class mới 46

Phần 2: XÂY DỰNG CHƯƠNG TRÌNH 52

Chương 1: GIỚI THIỆU HỆ THỐNG 52

I. KHÁI NIỆM HỆ THỐNG THÔNG TIN QUẢN LÝ(MIS) 52

II. Mục đích, ý nghĩa. 52

Chương 2: KHẢO SÁT HỆ THỐNG 54

I. MÔ TẢ HỆ THỐNG 54

1. Nhiệm vụ cơ bản 54

2. Cơ cấu tổ chức và sự phân công trách nhiệm 54

a) Cơ cấu tổ chức: 54

b) Quy trình xử lý 55

c) Quy tắc xử lý 56

3. Các mẫu biểu liên quan 56

a) Bản khai nhân khẩu 56

b) Phiếu báo thay đổi hộ khẩu 59

c) Giấy biên nhận hẹn ngày trả 61

d) Hóa đơn thanh toán 62

f) Giấy khai sinh: 65

g) Giấy khai tử: 66

h) Giấy chứng nhận kết hôn 67

II. MÔ HÌNH TIẾN TRÌNH NGHIỆP VỤ 68

Chương 3: PHÂN TÍCH HỆ THỐNG VỀ DỮ LIỆU 69

I. SƠ ĐỒ PHÂN RÃ CHỨC NĂNG 69

1. Các bước xây dựng 69

2. Kí hiệu sử dụng 69

3. Áp dụng bài toán 70

4. Biểu đồ phân cấp chức năng 73

II. SƠ ĐỒ LUỒNG DỮ LIỆU 74

1. Các bước xây dựng 74

2. Ký hiệu sử dụng 74

3. Mô hình quan hệ 80

Chương 4 :pHÂN TÍCH THIÊT KẾ HỆ THỐNG 83

I. THIẾT KẾ CƠ SỞ DỮ LIỆU 83

1. Cơ sở dữ liệu: Bảng “NHÂN KHẨU”: 83

2. Cơ sở dữ liệu: Bảng “HỘ KHẨU”: 84

3. Cơ sở dữ liệu: Bảng “KHAI SINH”: 84

4.2 Mô hình thực thể và quan hệ 86

Các modul xử lý 87

a. Sơ đồ khối quá trình đăng nhập 87

b. Sơ đồ khối quá trình nhập mới một hồ sơ. 87

c. Sơ đồ khối chức năng thống kê báo cáo. 88

II. GIAO DIỆN CHƯƠNG TRÌNH 89

a. Giao diện LoGin 89

b. Giao diện đăng nhập 89

c. Giao diên manu chính 90

d. Giao diện cập nhật nhân khẩu 90

e. Giao diện nhân khẩu 91

f. Giao diện Khen thưởng – kỷ luật 92

g. Giao diện khai sinh 93

III. MỘT SỐ ĐOẠN MÃ LỆNH CHÍNH CỦA CHƯƠNG TRÌNH 94

Phần modul 94

*Code của Form Kết Nối 94

*Code của Form nhân khẩu 95

*Code của Form Khai sinh 102

KẾT LUẬN 113

TÀI LIỆU THAM KHẢO 114

 

 





Để tải tài liệu này, vui lòng Trả lời bài viết, Mods sẽ gửi Link download cho bạn ngay qua hòm tin nhắn.

Ketnooi -


Ai cần tài liệu gì mà không tìm thấy ở Ketnooi, đăng yêu cầu down tại đây nhé:
Nhận download tài liệu miễn phí

Tóm tắt nội dung tài liệu:


i rõ ra (explicitly) mình muốn làm gì. Ta thử xem một thí dụ code trong VB6 như sau:
Private Sub Button1_Click()
Dim X1 As Variant
Dim X2 As Variant
X1 = "24.7"
X2 = 5
Debug.Print X1 + X2 ' Cộng hai số với operator +
Debug.Print X1 & X2 ' Ghép hai strings lại với operator &
End Sub
Kết quả hiển thị trong Immediate Window là:
29.7
24.75
Trong VB.NET, ta phải code cho rõ ràng hơn như sau để có cùng kết quả như trên hiển thị trong Output Window:
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim X1 As Object
Dim X2 As Object
X1 = "24.7"
X2 = 5
Console.WriteLine(CSng(X1) + CInt(X2))
Console.WriteLine(CStr(X1) & CStr(X2))
End Sub
CType Statement
Trong VB.NET có Option Strict by default. Nó bắt ta phải thận trọng trong cách dùng data types. Vì Object có thể chứa bất cứ thứ gì, khi ta muốn dùng nó như một loại data type hay class nào, ta phải đổi Object ra thứ ấy bằng CType, thí dụ:
Class Product
Public Description As String
End Class
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim X As Object
X = New Product()
' Treat X like an actual product
CType(X, Product).Description = "Soft Drink"
Console.WriteLine(CType(X, Product).Description)
End Sub
Mặc dù X được instantiated như một Product, nó vẫn được xem như một Object variable. Do đó mỗi khi muốn dùng nó như một Product ta phải nhờ đến CType. Từ chuyên môn trong programming gọi đó là Type Casting.
Thay đổi trong cách khai báo Variables
Khai báo nhiều Variables
Trong VB6 ta có thể Declare nhiều variables trên cùng một hàng như:
Dim i, j, k as Integer
Kết quả là chỉ có k là Integer, còn i và j là Variant (có thể đó là điều bạn không ngờ). Trong VB.NET thì cả ba i, j và k đều là Integer, và như thế hợp lý hơn.
Khai báo trị số khởi đầu
Trong VB6, sau khi declare variable ta thường cho nó một trị số khởi đầu như:
Dim X as Integer
X = 12
Bây giờ trong VB.NET ta có thể gọp chung hai statements trên lại như sau:
Dim X as Integer = 12
Khai báo Constants
Khi khai báo Constants trong VB.NET ta phải khai rõ Data type của nó là String, Integer, Boolean..v. v.:
Public Const myConstantString as String = "happy"
Public Const maxStudent as Integer = 30
Dim As New
Trong VB6 ta được khuyên không nên code:
Dim X as New Customer
vì VB6 không instantiate một Object Customer cho đến khi X được dùng đến - chuyện nầy rất nguy hiểm vì có thể tạo ra bug mà ta không ngờ.
Trong VB.NET ta có thể yên tâm code:
Dim X as New Customer()
vì statement nói trên lập tức tạo ra một Object Customer.
Khai báo Variable trong Scope của Block
Trong thí dụ dưới đây, variable X được declared trong một IF.. THEN... END IF block. Khi execution ra khỏi IF block ấy, X sẽ bị hủy diệt.
Do đó, VB.NET sẽ than phiền là X undefined vì nó không thấy X bên ngoài IF block. Luật nầy cũng áp dụng cho những Blocks khác như DO... LOOP, WHILE... END WHILE, FOR... NEXT,. v. v..
Private Sub Button1_Click(ByVal sender As System. Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim A As Integer = 5
Dim B As Integer = 5
If A = B Then
Dim X As Integer ' X is declared in this IF block
X = 12
End If
A = X ' X has been destroyed, so it is undefined here
End Sub
Có lẽ bạn hỏi Declare Variable trong FOR... LOOP có lợi gì, tại sao ta không Declare một lần duy nhất ở đầu? Thứ nhất là Block giới hạn scope (phạm vi hoạt động) của một variable để nó không đụng chạm ai dễ gây nên bug, thứ hai là trường hợp điển hình ta sẽ cần feature nầy là trong một FOR... LOOP, cứ mỗi iteration ta muốn instantiate một Object mới. Khi ấy ta cần Declare một Object variable, instantiate Object, rồi chứa nó vào một collection chẳng hạn.
2.6 Truy cập Variable/Class/Structure
Trong VB.NET ta có thể quyết định giới hạn việc truy cập một Variable, Class, Structure. v. v. bằng cách dùng các keywords sau:
Loại truy cập
Thí dụ
Chú thích
Public
Public Class ClassForEverybody
Cho phép ở đâu cũng dùng nó được. Ta chỉ có thể dùng Public ở mức độ Module, Namespace hay File. Tức là ta không thể dùng Public trong một Sub/Function.
Protected
Protected Class ClassForMyHeirs
Cho phép các classes con, cháu được dùng. Ta chỉ có thể dùng Protected ở mức độ Class.
Friend
Friend StringForThisProject As String
Cho phép code trong cùng một Project được dùng.
Private
Private NumberForMeOnly As Integer
Cho phép code trong cùng module, class, hay structure được dùng. Lưu ý là Dim coi như tương đương với Private, do đó ta nên dùng Private cho dễ đọc.
Ngoài ra, nhớ là nếu container (Object chứa) của một Variable/Class/Structure là Private thì dù ta có khai báo một Variable/Class/Structure nằm bên trong container là Public ta cũng không thấy nó từ bên ngoài.
Thay đổi trong Array
Array index từ 0
Trong VB.NET không có Option Base và mọi Array đều có index bắt đầu từ 0. Khi bạn khai báo một array như:
Dim myArray(10) as integer
Kết quả là một array có 11 elements và index từ 0 đến 10. UBound của array nầy là 10 và LBound của tất cả arrays trong VB.NET đều là 0.
Khai báo Array với những trị số khởi đầu
Bạn có thể khai báo Array với những trị số khởi đầu như sau:
Dim myArray() as Integer = { 1, 5, 8, 16 } ' Note the curly brackets
Statement làm hai chuyện: quyết định size của array và cho các elements trị số khởi đầu. Để dùng feature nầy, bạn không được nói rõ size của array, mà để cho program tự tính.
ReDim Preserve
Trong VB.NET bạn cũng có thể tiếp tục dùng Preserve keyword để giữ nguyên trị số của các elements trong một array khi bạn ReDim nó. Tuy nhiên có một giới hạn cho array với hơn một dimension - bạn chỉ có thể resize dimention cuối (bên phải), nên những hàng code sau đây hợp lệ:
Dim myArray(, ) As String
ReDim myArray(5, 5)
ReDim Preserve myArray(5, 8)
Thay đổi trong User-Defined Type
Ý niệm User-Defined Type (UDT) rất tiện cho ta gom các mảnh data liên hệ lại thành một data type có cấu trúc. Trong VB6 ta dùng nó như sau:
Public Type UStudent
FullName as String
Age as Integer
End Type
VB.NET cũng giữ y đặc tính của UDT nhưng thay đổi chữ Type thành Structure:
Public Structure UStudent
Public FullName as String
Public Age as Integer
End Structure
Lưu ý các Structure Members (như FullName, Age ) cần được Declared với keyword Dim, Public, Private hay Friend, nhưng không thể dùng Protected vì Structure không thể Inherit từ một Structure khác. Sở dĩ, có dùng Private là vì bên trong Structure có thể có Property, Sub/Function. v. v..
Thay đổi trong Collections
VB6 hổ trợ Collection và sau nầy Windows Scripting Host Library cho ta collection kiểu Dictionary. VB.NET cho ta một thành phần collection rất hùng hậu trong Namespace System.Collections. Vì Collection là một trong những công cụ rất thông dụng và hiệu năng trong VB.NET nên ta sẽ có một bài dành riêng cho collection sau nầy.
Dưới đây là danh sách các collections ta sẽ dùng thường xuyên:
Collection
Chức năng
ArrayList
Dynamic Array tự động lớn lên khi elements được bỏ vào.
BitArray
Array chứa trị số Boolean (True/False).
HashTable
Collection chứa những cặp key-value data, cho ta dùng làm tự điển.
Queue
Chứa một FIFO (First In, First Out) structure.Element có thể là bất cứ Object loại nào.
Stack
Chứa một LIFO (Last In, First Out) structure.
SortedList
Chứa một danh sách những cặp key-value data được sắp theo thứ tự.
Arithmetic Operators mới
VB.NET cho ta thêm cách viết Arithmetic Operator mới mà C programmers quen từ lâu nay.
X += 4 tương đương với X = X + 4
Mess &= " text" tương đương với Mess = Mess & " text"
Arithmetic Operation
Trong VB6
Cách viết tắc mới
Cộng
X = X +5
X += 5
Trừ
X = X - 10
X -= 10
Nhân
X = X * 7
X *= 7
Chia
X = X / 19
X /= 19
Chia Integer
X = X \ 13
X \= 13
Lũy thừa
X = X ^ 3
X ^= 3
Ghép Strings
X = X & "more text"
X &= "more text"
Ta vẫn có thể tiếp tục dùng cách viết trong VB6, nhưng bây giờ có thêm một cách viết gọn hơn.
Short Circuit trong IF.. THEN Statement
Trong VB6, nếu ta viết:
Dim myInt as Integer
myInt = 0
If (myInt 0) And (17 \ myInt < 5 ) Then
Thì sẽ bị Division by Zero error, vì mặc dầu phần (myInt 0) là False, nhưng VB6 vẫn tiếp tục tính phần (17 \ myInt < 5 ), và tạo ra error vì 17 chia cho một số 0.
Trong vài ngôn ngữ lập trình khác, khi (myInt 0) là False thì nó không tính thêm nữa, tức là nó nói rằng khi một phần của AND là False thì nhất định kết quả của Logical Statement trong IF phải là False. Ðặc tính nầy gọi là Short-Circuit (đi tắt).
Nếu ta dùng code nói trên trong VB.NET, nó vẫn cho Division by Zero error giống như VB6. Tuy nhiên, nếu ta muốn dùng đặc tính Short-Circuit thì ta chỉ cần thay thế chữ And bằng AndAlso như sau:
Dim myInt as Integer
myInt = 0
If (myInt 0) AndAlso (17 \ myInt < 5 ) Then
Short-Circuit cũng áp dụng cho Logical OR khi ta thay thế chữ Or bằng OrElse để n...

 
Các chủ đề có liên quan khác

Các chủ đề có liên quan khác

Top