Xây dựng ứng dụng hỗ trợ quản lý lịch của giảng viên cho cán bộ phụ trách bộ môn khoa CN ĐTTT - Pdf 42

LỜI CẢM ƠN
Trước hết em xin bày tỏ lòng cảm ơn sâu sắc đến Cô giáo Ngô Thị Vinh đã
tận tình chỉ bảo em để em hoàn thành đồ án tốt nghiệp này.
Em xin chân thành cảm ơn các thầy giáo, cô giáo trường Đại học Công nghệ
thông tin và truyền thông – Đại học Thái Nguyên đã cho em những kiến thức, kinh
nghiệm quý báu trong suốt thời gian học tập tại trường.
Đồng thời em xin chân thành cảm ơn bạn bè đã động viên khích lệ em rất
nhiều trong quá trình em làm đồ án tốt nghiệp này.
Mặc dù đã cố gắng hết sức, nhưng do chưa có kinh nghiệm nên đồ án của em
không thể tránh khỏi những thiếu sót nhất định. Em rất mong nhận được những ý
kiến đóng góp quý báu của các thầy cô giáo và bạn bè để em có thể hoàn thiện đề
tài này.
Em xin chân thành cảm ơn!
Thái Nguyên, tháng 06 năm 2016
Sinh viên

Nguyễn Thị Thảo

i


LỜI CAM ĐOAN
Để hoàn thành đồ án tốt nghiệp đúng thời gian quy định và đáp ứng được yêu
cầu đề ra, em đã cố gắng tìm hiểu, học hỏi, tích lũy kiến thức từ trường học cũng
như từ quá trình tìm đọc tài liệu khi làm đồ án tốt nghiệp. Em có tham khảo một số
tài liệu đã nêu trong phần “Tài liệu tham khảo” không sao chép nội dung từ bất kỳ
đồ án nào khác. Toàn bộ đồ án do bản thân nghiên cứu, xây dựng dưới sự hướng
dẫn của cô Ths. Ngô Thị Vinh.
Em xin cam đoan những lời khai trên là đúng, mọi thông tin sai lệch em xin
hoàn toàn chịu trách nhiệm trước Hội đồng.


2.2.1. Biểu đồ dữ liệu mức khung cảnh ..........................................................20
2.2.2. Biểu đồ dữ liệu mức đỉnh .....................................................................21
2.2.3. Thiết kế cơ sở dữ liệu ...........................................................................22
2.3. Thiết kế module chương trình .....................................................................23
CHƯƠNG 3: KẾT QUẢ THỰC NGHIỆM ...........................................................40
KẾT LUẬN ...........................................................................................................54
TÀI LIỆU THAM KHẢO .....................................................................................55

iii


DANH MỤC HÌNH ẢNH
Hình 1.1: Mô hình ORM/Hibernate .........................................................................9
Hình 1.2: Kiến trúc tổng quát của Hibernate ..........................................................10
Hình 1.3: Kiến trúc của Hibernate..........................................................................11
Hình 2.1: Biểu đồ dữ liệu mức khung cảnh ............................................................20
Hình 2.2: Biểu đồ dữ liệu mức đỉnh .......................................................................21
Hình 2.3: Sơ đồ lớp dữ liệu....................................................................................22
Hình 2.4: Default package .....................................................................................23
Hình 2.5: Module data ...........................................................................................23
Hình 2.6: Module db..............................................................................................28
Hình 2.7: Module main..........................................................................................31
Hình 2.8: Module model ........................................................................................35
Hình 3.1. Bảng kết quả 1 .......................................................................................40
Bảng 3.2: Bảng kết quả 2.......................................................................................40
Bảng 3.3: Bảng kết quả 3.......................................................................................41
Bảng 3.4: Bảng kết quả 4.......................................................................................41
Bảng 3.5: Bảng kết quả 5.......................................................................................42
Bảng 3.6: Bảng kết quả 6.......................................................................................42
Bảng 3.7: Bảng kết quả 7.......................................................................................43

càng giữ vai trò quan trọng trong các lĩnh vực khoa học kĩ thuật và đời sống.
Internet, nói một cách đơn giản, Internet là một tập hợp máy tính nối kết với nhau,
là một mạng máy tính toàn cầu mà bất kì ai cũng có thể kết nối bằng máy PC của
họ. Với mạng Internet, tin học thật sự tạo nên một cuộc cách mạng trao đổi thông
tin trong mọi lĩnh vực văn hóa, xã hội, chính trị, kinh tế...
Trong thời đại ngày nay, thời đại mà ngôn ngữ java là ngôn ngữ lập trình
mạnh và được sử dụng đông đảo trong phát triển phần mềm, các trang web, game
hay ứng dụng trên các thiết bị di động thì việc có một chương trình để quản lý lịch
của giảng viên sử dụng ngôn ngữ lập trình java không còn khó khăn nữa. Thông qua
chương trình có thể dễ dàng quản lý lịch của giảng viên một cách nhanh chóng và
hiệu quả.
Với công nghệ Mysql để lưu cơ sở dữ liệu, công nghệ Hibernate framework
giúp cho java kết nối với Mysql, sẽ giúp xem lịch của giảng viên một cách dễ dàng
nhờ các công cụ hỗ trợ và ngôn ngữ lập trình java. Sự ra đời của các ngôn ngữ lập
trình cho phép xây dựng được chương trình đáp ứng được các yêu cầu của người sử
dụng.
Với lí do đó, được sự hướng dẫn và giúp đỡ của cô Th.S Ngô Thị Vinh, em
đã chọn đề tài “Xây dựng ứng dụng hỗ trợ quản lý lịch của giảng viên cho cán
bộ phụ trách bộ môn Khoa CN ĐT&TT” làm đề tài cho đồ án tốt nghiệp của
mình.
Trong quá trình thực hiện đồ án này em đã nhận được sự giúp đỡ chỉ bảo tận
tình của các thầy, cô giáo, Em xin chân thành cảm ơn cô Th.S Ngô Thị Vinh đã
hướng dẫn trong quá trình làm đồ án.

1


CHƯƠNG 1: CƠ SỞ LÝ THUYẾT
1.1. Cơ sở dữ liệu MySQL
1.1.1. Giới thiệu cơ sở dữ liệu MySQL

 MySQL
 Người

được sử dụng cho các ứng dụng web.

dùng có thể sử dụng giao diện đồ họa hay dùng dòng lệnh để thực

hiện các thao tác trên CSDL.
 Khi

truy vấn tới CSDL MySQL phỉ cung cấp tên truy cập và mật khẩu của

tài khoản có quyền sử dụng CSDL đó. Nếu không sẽ không làm gì được cả giống
như quyền chứng thực người dùng trong SQL Server vậy.

2


1.1.2. Mục đích sử dụng cơ sở dữ liệu
Mục đích sử dụng cơ sở dữ liệu bao gồm các chức năng như: chức năng lưu
trữ (storage), chức năng truy cập (accessibility), chức năng tổ chức (organization)
và chức năng xử lí (manipulation).
Chức năng lưu trữ:
Lưu trữ trên đĩa và có thể chuyển đổi dữ liệu từ cơ sở dữ liệu này sang cơ sở
dữ liệu khác, nếu bạn sử dụng cho quy mô nhỏ, bạn có thể chọn cơ sở dữ liệu nhỏ
như: Microsoft Exel, Microsoft Access, MySQL, Microsoft Visual FoxPro… Nếu
ứng dụng có quy mô lớn, bạn có thể chọn cơ sở dữ liệu có quy mô lớn như: Oracle,
SQL Server…
Chức năng truy cập:
Truy cập dữ liệu phụ thuộc vào mục đích và yêu cầu của người sử dụng, ở


Tinyint

-127 đến 128 hay 0 đến

1

Số nguyên rất nhỏ

2

Số nguyên nhỏ

3

Số nguyên vừa

4

Số nguyên

8

Số nguyên lớn

255
Smallint

-32768 đến 32767 hay
0 đến 65535

Single hay Double

Float(M, D)

Double(M, D)

±1. 175494351E-38

2

Số thập phân dạng

±3. 40282346638

Single

±1. 7976931348623157308 8

Số thập phân dạng

±2. 2250738585072014E-

Double

308
Float(M[, D])

Số chấm động lưu
dưới dạng char


hh:mm:ss.

1000-01-01
00:00:00

Date và Time trình bày dưới
dạng yyyy-mm-dd hh:mm:ss.

9999-12-31
23:59:59
TimeStamp[(M)]

1970-01-01
00:00:00

Year[(2|4)]

TimeStamp trình bày dưới
dạng yyyy-mm-dd hh:mm:ss.

1970-2069

Year trình bày dưới dạng 2 số

1901-2155

hay 4 số

Trình bày đại diện của TimeStamp
Loại hiển thị

YY

----------------------------------------------------------------(Y=năm, M=tháng, D=ngày)
5


1.1.3.3. Loại dữ liệu String
Kiểu dữ liệu String chia làm 3 loại: loại thứ nhất như char (chiều dài cố định)
và varchar (chiều dài biến thiên); loại thứ hai là Text hay Blob, Text cho phép lưu
chuỗi rất lớn, Blob cho phép lưu đối tượng nhị phân; loại thứ ba là Enum và Set.
Kiểu dữ liệu String
Kiểu dữ

Miền giá

liệu

trị

Char

1-255

Mô tả
Chiều dài của chuỗi lớn nhất 255 ký tự.

characters
Varchar

1-255


Mediumblob

224-1

Khai báo cho Field chứa kiểu blob vừa khoảng 16,
777, 215 characters

Mediumtext

224-1

Khai báo cho Field chứa kiểu chuỗi dạng văn bản vừa
khoảng 16, 777, 215
characters

Longblob

232-1

Khai báo cho Field chứa kiểu blob lớn khoảng 4, 294,
967, 295 characters.

Longtext

232-1

Khai báo cho Field chứa kiểu chuỗi dạng văn bản lớn
khoảng 4, 294, 967, 295 characters.


Hàm Sum: Hàm trả về tổng các giá trị của trường, cột trong câu truy vấn.
1.1.5.2. Các hàm xử lí chuỗi:
Hàm ASCII: Hàm trả về giá trị mã ASCII của kí tự bên trái của chuỗi.

7


Hàm Char: Hàm này chuyển đổi kkiểu mã ASCII từ số nguyên sang dạng
chuỗi.
Hàm UPPER: Hàm này chuyển đổi chuỗi sang kiểu chữ hoa
Hàm LOWER: Hàm này chuyển đổi chuỗi sang kiểu chữ thường.
Hàm Len: Hàm này trả về chiều dài của chuỗi.
Thủ tục LTRIM: Thủ tục loại bỏ khoảng trắng bên trái của chuỗi
Thủ tục RTRIM: Thủ tục loại bỏ khỏang trắng bên phải của chuỗi
Hàm Left(str, n): Hàm trả về chuỗi bên trái tính từ đầu cho đến vị trí n
Hàm Right(str, n): Hàm trả về chuỗi bên phải tính từ đầu cho đến vị trí n
Hàm Instrt: Hàm trả về chuỗi vị trí bắt đầu của chuỗi con trong chuỗi xét.
1.1.5.3. Các hàm xử lí về thời gian
Hàm CurDate(): Hàm trả về ngày, tháng và năm hiện hành của hệ thống.
Hàm CurTime(): Hàm trả về giờ, phút và giây hiện hành của hệ thống.
Hàm Period_Diff: Hàm trả về số ngày trong khoảng thời gian giữa 2 ngày.
Hàm dayofmonth: Hàm trả về ngày thứ mấy trong tháng
1.1.5.4. Các hàm về toán học
Hàm sqrt: Hàm trả về là căn bậc hai của một biểu thức.
Hàm CurDate(): Hàm trả về ngày, tháng và năm hiện hành của hệ thống.
1.2. Tổng quan công nghệ Hibernate framework
1.2.1. Giới thiệu về Hibernate framework
Framework trong phát triển phần mềm là một khái niệm dùng để chỉ những
"cấu trúc hỗ trợ được định nghĩa" mà trong đó những dự án phần mềm khác có thể
được sắp xếp vào đó và phát triển. Thông thường, một framework bao gồm những

Ưu điểm của Hibernate:
Hibernate chịu trách nhiệm ánh xạ giữa các lớp Java đến các bảng trong
CSDL dùng các file XML mà không cần phải viết bất kỳ dòng mã lệnh nào.

9


Hibernate cung cấp các API đơn giản để lưu trữ, truy xuất trực tiếp các đối
tượng Java và CSDL. Nếu có bất kỳ thay đổi nào trong CSDL thì chỉ cần thay đổi
file XML. Ngoài ra, công nghệ này còn cung cấp đầy đủ các tiện ích, tính năng truy
vấn dữ liệu đơn giản, hiệu quả. Thao tác, xử lý được các quan hệ phức tạp của các
đối tượng trong CSDL. Hibernate giảm thiểu sự truy cập đến CSDL đến mức thấp
nhất nhờ có chiến lược tìm, nạp thông minh.
Hibernate hỗ trợ hầu hết các RDBMS quan trọng như: HSQL Database
Engine, DB2/NT, MySQL, PostgreSQL, Oracle, Microsoft SQL Server Database,…
Hibernate hỗ trợ một số công nghệ sau: XDoclet Spring, J2EE, Eclipse plugins, Maven
1.2.2. Kiến trúc Hibernate
Hibernate sử dụng các file cấu hình để cung cấp các dịch vụ và đối tượng
persistence cho ứng dụng.

Hình 1.2: Kiến trúc tổng quát của Hibernate

10


Hình dưới cho thấy chi tiết hơn kiến trúc của hibernate.

Hình 1.3: Kiến trúc của Hibernate
Hibernate dùng rất nhiều loại Java API có sẵn như JDBC, Java Transaction
API (JTA) và Java Naming and Directory Interface (JNDI). JDBC cung cấp các



NHibernate: Hibernate cho .NET Framework.



Jboss Seam: Một Java EE 5.0 framework cho phát triển các ứng dụng JSF,

Ajax và EJB 3.0 với sự hỗ trợ của Hibernate. Seam hiện rất mới và tỏ ra rất mạnh
để phát triển các ứng dụng Web 2.0. Nó tích hợp đầy đủ tất cả các công nghệ "hot"
nhất hiện nay.
1.3. Tổng quan về ngôn ngữ lập trình Java
1.3.1. Lịch sử phát triển của ngôn ngữ lập trình Java
Java là ngôn ngữ lập trình hướng đối tượng (tựa C++) do Sun Microsystem
đưa ra vào giữa thập niên 90.
Chương trình viết bằng ngôn ngữ lập trình java có thể chạy trên bất kỳ hệ
thống nào có cài máy ảo java (Java Virtual Machine).
Ngôn ngữ lập trình Java do James Gosling và các công sự của Công ty Sun
Microsystem phát triển.
Đầu thập niên 90, Sun Microsystem tập hợp các nhà nghiên cứu thành lập
nên nhóm đặt tên là Green Team. Nhóm Green Team có trách nhiệm xây dựng công
nghệ mới cho ngành điện tử tiêu dùng. Để giải quyết vấn đề này nhóm nghiên cứu
phát triển đã xây dựng một ngôn ngữ lập trình mới đặt tên là Oak tương tự như C++
nhưng loại bỏ một số tính năng nguy hiểm của C++ và có khả năng chạy trên nhiều
nền phần cứng khác nhau. Cùng lúc đó world wide web bắt đầu phát triển và Sun đã
thấy được tiềm năng của ngôn ngữ Oak nên đã đầu tư cải tiến và phát triển. Sau
đó không lâu ngôn ngữ mới với tên gọi là Java ra đời và được giới thiệu năm 1995.
Java là tên gọi của một hòn đảo ở Indonexia, Đây là nơi nhóm nghiên cứu
phát triển đã chọn để đặt tên cho ngôn ngữ lập trình Java trong một chuyến đi tham
quan và làm việc trên hòn đảo này. Hòn đảo Java này là nơi rất nổi tiếng với nhiều

java (Java Virtual Machine). Viết một lần chạy mọi nơi (write once run anywhere).
1.3.2.4. Hướng đối tượng
Hướng đối tượng trong Java tương tự như C++ nhưng Java là một ngôn ngữ
lập trình hướng đối tượng hoàn toàn. Tất cả mọi thứ đề cập đến trong Java đều liên
quan đến các đối tượng được định nghĩa trước, thậm chí hàm chính của một chương
trình viết bằng Java (đó là hàm main) cũng phải đặt bên trong một lớp. Hướng đối
tượng trong Java không có tính đa kế thừa (multi inheritance) như trong C++ mà thay
vào đó Java đưa ra khái niệm interface để hỗ trợ tính đa kế thừa. Vấn đề này sẽ
được bàn chi tiết trong chương 3.

13


1.3.2.5. Đa nhiệm - đa luồng (MultiTasking - Multithreading)
Java hỗ trợ lập trình đa nhiệm, đa luồng cho phép nhiều tiến trình, tiểu trình
có thể chạy song song cùng một thời điểm và tương tác với nhau.
1.3.2.6. Khả chuyển (portable)
Chương trình ứng dụng viết bằng ngôn ngữ Java chỉ cần chạy được trên máy
ảo Java là có thể chạy được trên bất kỳ máy tính, hệ điều hành nào có máy ảo Java.
“Viết một lần, chạy mọi nơi” (Write Once, Run Anywhere).
1.3.2.7. Hỗ trợ mạnh cho việc phát triển ứng dụng
Công nghệ Java phát triển mạnh mẽ nhờ vào “đại gia Sun Microsystem” cung
cấp nhiều công cụ, thư viện lập trình phong phú hỗ trợ cho việc phát triển nhiều loại
hình ứng dụng khác nhau cụ thể như: J2SE (Java 2 Standard Edition) hỗ trợ phát
triển những ứng dụng đơn, ứng dụng client-server; J2EE (Java 2 Enterprise Edition)
hỗ trợ phát triển các ứng dụng thương mại, J2ME (Java 2 Micro Edition) hỗ trợ phát
triển các ứng dụng trên các thiết bị di động, không dây, …
1.3.3. Hướng đối tượng trong Java
OOP là một trong những tiếp cận mạnh mẽ, và rất hiệu quả để xây dựng nên
những chương trình ứng dụng trên máy tính. Từ khi ra đời cho đến nay lập trình

{
// khai báo những thuộc tính của lớp
<tiền tố> <kiểu dữ liệu> field1;
// …
}
Để xác định quyền truy xuất của các đối tượng khác đối với vùng dữ liệu của
lớp người ta thường dùng 3 tiền tố sau:
public: có thể truy xuất từ tất cả các đối tượng khác
private: một lớp không thể truy xuất vùng private của 1 lớp khác.
protected: vùng protected của 1 lớp chỉ cho phép bản thân lớp đó và những
lớp dẫn xuất từ lớp đó truy cập đến.
Lưu ý: Thông thường để an toàn cho vùng dữ liệu của các đối tượng tránh
dùng tiền tố public, mà thường chọn tiền tố private để ngăn cản quyền truy cập đến
vùng dữ liệu của một lớp từ các phương thức bên ngoài lớp đó.
Hàm – Phương thức lớp (Method)
Hàm hay phương thức (method) trong Java là khối lệnh thực hiện các chức
năng, các hành vi xử lý của lớp lên vùng dữ liệu.

15


Khai báo phương thức:
<Tiền tố> <kiểu trả về> <Tên phương thức> (<danh sách đối số>)
{
<khối lệnh>;
}
Để xác định quyền truy xuất của các đối tượng khác đối với các phương thức
của lớp người ta thường dùng các tiền tố sau:
public: phương thức có thể truy cập được từ bên ngoài lớp khai báo.
protected: có thể truy cập được từ lớp khai báo và những lớp dẫn xuất từ nó.

các giá trị mặc định (số: thường là giá trị 0, kiểu luận lý là giá trị false, kiểu đối
tượng giá trị null, …)
Lưu ý: Thông thường để an toàn, dễ kiểm soát và làm chủ mã nguồn chương
trình nên khai báo một constructor cho lớp.
Biến this
Biến this là một biến ẩn tồn tại trong tất cả các lớp trong ngông ngữ java. Một
class trong Java luôn tồn tại một biến this, biến this được sử dụng trong khi chạy và
tham khảo đến bản thân lớp chứa nó.
Khai báo chồng phương thức (overloading method)
Việc khai báo trong một lớp nhiều phương thức có cùng tên nhưng khác
tham số (khác kiểu dữ liệu, khác số lượng tham số) gọi là khai báo chồng phương
thức (overloading method).
1.3.3.2. Đặc điểm hướng đối tượng trong java
Hỗ trợ những nguyên tắc cơ bản của lập trình hướng đối tượng, tất cả các
ngôn ngữ lập trình kể cả java đều có ba đặc điểm chung: tính đóng gói
(encapsulation), tính đa hình (polymorphism), và tính kế thừa (inheritance).
Tính đóng gói (encapsulation)
Cơ chế đóng gói trong lập trình hướng đối tượng giúp cho các đối tượng dấu
đi một phần các chi tiết cài đặt, cũng như phần dữ liệu cục bộ của nó, và chỉ công bố
ra ngoài những gì cần công bố để trao đổi với các đối tượng khác. Hay chúng ta có
thể nói đối tượng là một thành tố hỗ trợ tính đóng gói.
Đơn vị đóng gói cơ bản của ngôn ngữ java là class. Một class định nghĩa hình
thức của một đối tượng. Một class định rõ những thành phần dữ liệu và các đoạn mã
cài đặt các thao tác xử lý trên các đối tượng dữ liệu đó. Java dùng class để xây
dựng những đối tượng. Những đối tượng là những thể hiện (instances) của một class.

17


Một lớp bao gồm thành phần dữ liệu và thành phần xử lý. Thành phần dữ

18


1.3.3.4. Giao diện (interface)
Khái niệm interface
Như đã biết một lớp trong java chỉ có một siêu lớp trực tiếp hay một cha duy
nhất (đơn thừa kế). Để tránh đi tính phức tạp của đa thừa kế (multi - inheritance)
trong lập trình hướng đối tượng, Java thay thế bằng giao tiếp (interface). Một lớp có
thể có nhiều giao tiếp (interface) với các lớp khác để thừa hưởng thêm vùng dữ liệu
và phương thức của các giao tiếp này.
Khai báo interface
Interface được khai báo như một lớp. Nhưng các thuộc tính của interface là
các hằng (khai báo dùng từ khóa final) và các phương thức của giao tiếp là trừu
tượng (mặc dù không có từ khóa abstract). Trong các lớp có cài đặt các interface
phải tiến hành cài đặt cụ thể các phương thức này.
Có một vấn đề khác với lớp là một giao diện (interface) không chỉ có một
giao diện cha trực tiếp mà có thể dẫn xuất cùng lúc nhiều giao diện khác (hay có
nhiều giao diện cha). Khi đó nó sẽ kế thừa tất cả các giá trị hằng và các phương thức
của các giao diện cha. Các giao diện cha được liệt kê thành chuỗi và cách nhau bởi
dấu phẩy “,”. Khai báo như sau:
public interface InterfaceName extends interface1, interface2, interface3
{
// …
}

19


CHƯƠNG 2: PHÂN TÍCH, THIẾT KẾ BÀI TOÁN
2.1. Bài toán quản lý lịch của giảng viên


Nhờ tải bản gốc

Tài liệu, ebook tham khảo khác

Music ♫

Copyright: Tài liệu đại học © DMCA.com Protection Status