1. Trang chủ
  2. » Luận Văn - Báo Cáo

đồ án môn công nghệ java đề tài nghiên cứu và xây dựng phần mềm quản lý công việc todolist

39 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Nội dung

DANH MỤC HÌNH ẢNHHình 1.1: Ảnh minh họa ngôn ngữ lập trình JavaHình 1.2: Ảnh minh họa ứng dụng TodolistHình 2.1: Biểu đồ use case toàn hệ thốngHình 2.2: Biểu đồ use case chức năng đăng n

Trang 1

TRƯỜNG ĐẠI HỌC KIẾN TRÚC HÀ NỘIKHOA CÔNG NGHỆ THÔNG TIN

ĐỒ ÁN MÔN CÔNG NGHỆ JAVA

ĐỀ TÀI: NGHIÊN CỨU VÀ XÂY DỰNG PHẦN MỀM QUẢN LÝCÔNG VIỆC TODOLIST

Chuyên ngành: Công nghệ thông tin

Giảng viên hướng dẫn: Th.S Nguyễn Hồng ThanhSinh viên thực hiện: Đỗ Thế Hoàn

Đậu Đức Thắng Nguyễn Thái Học

Hà Nội, Ngày 12 Tháng 01 Năm 2024.

Trang 2

MỤC LỤC

DANH MỤC HÌNH ẢNH 5

DANH MỤC TỪ VIẾT TẮT 6

LỜI NÓI ĐẦU 7

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT 8

1.1 Tổng quan về ngôn ngữ lập trình java 8

1.1.1 Khái niệm 8

1.1.2 Đặc điểm của ngôn ngữ lập trình java 8

1.1.3 Máy ảo java 11

1.1.4 Các loại ứng dụng được phát triển sử dụng java 11

1.2 Giới thiệu về Java Swing 12

2.2.3 Chức năng thêm mới todo 16

2.2.3.1 Sơ đồ use case 16

2.2.3.2 Mô tả chức năng 17

2.2.4 Chức năng sửa todo 17

2.2.4.1 Sơ đồ use case 17

Trang 3

2.2.4.2 Mô tả chức năng 18

2.2.5 Chức năng xóa todo 18

2.2.5.1 Sơ đồ use case 18

2.2.5.2 Mô tả chức năng 18

2.2.6 Chức năng hoàn thành todo 18

2.2.6.1 Sơ đồ use case 18

3.2.2.1 Giao diện form đăng nhập 35

3.2.2.2 Giao diện form đăng ký 36

3.2.2.3 Giao diện form trang chủ 36

3.2.2.4 Giao diện form thông báo 37

KẾT LUẬN 38

1 Đánh giá 38

Trang 4

2 Hướng phát triển 38TÀI LIỆU THAM KHẢO 39

Trang 5

DANH MỤC HÌNH ẢNH

Hình 1.1: Ảnh minh họa ngôn ngữ lập trình JavaHình 1.2: Ảnh minh họa ứng dụng Todolist

Hình 2.1: Biểu đồ use case toàn hệ thống

Hình 2.2: Biểu đồ use case chức năng đăng nhậpHình 2.3: Biểu đồ use case chức năng đăng ký

Hình 2.4: Biểu đồ use case chức năng thêm mới todoHình 2.5: Biểu đồ use case chức năng sửa thông tin todoHình 2.6: Biểu đồ use case chức năng hoàn thành todoHình 2.7: Biểu đồ use case chức năng sắp xếp todoHình 3.1: Cấu trúc thư mục của phần mềm

Hình 3.2: Giao diện form đăng nhậpHình 3.3: Giao diện form đăng kýHình 3.4: Giao diện form trang chủHình 3.5: Giao diện form thông báo

Trang 6

DANH MỤC TỪ VIẾT TẮT

JVM Java Virtual Machine WORA Write Once, Run Anywhere

GUI Graphical User InterfaceAPI Application Programming Interface

Trang 7

LỜI NÓI ĐẦU

Trên con đường phát triển ngày nay, cuộc sống của chúng ta đầy rẫy với sự nhanh chóng, vận tốc và cả những thách thức khó lường Với sự bận rộn và áp lực từ côngviệc, học tập và cuộc sống cá nhân, chúng ta đôi khi cảm thấy khó khăn để duy trì một sự tổ chức hiệu quả và kiểm soát công việc cá nhân.

Đó là lý do tại sao nhóm em đưa ra ý tưởng về một ứng dụng Todolist Todolist không chỉ là một ứng dụng đơn giản, mà còn là một công cụ mạnh mẽ giúp người dùng quản lý và sắp xếp công việc cá nhân một cách tổ chức và tiện lợi nhất.Giới thiệu về dự án Todolist, đây là một ứng dụng được xây dựng dựa trên nền tảng Java với mục tiêu cung cấp một giao diện thân thiện và tính năng linh hoạt Todolist cho phép người dùng tạo danh sách công việc, lập kế hoạch, gắn thẻ và sắp xếp theo độ ưu tiên Bên cạnh đó, nhóm em cũng tích hợp các tính năng như nhắc nhở, theo dõi tiến độ và quản lý công việc một cách hiệu quả nhất.

Qua quá trình phát triển dự án Todolist, nhóm đã học được rất nhiều từ việc áp dụng kiến thức Java vào thực tế, từ việc xây dựng giao diện người dùng đến quản lý dữ liệu và tương tác với người dùng Sự hỗ trợ và chỉ dẫn từ thầy giáo đã chính là động lực lớn để nhóm hoàn thiện dự án.

Nhóm chúng em muốn gửi lời cảm ơn chân thành tới thầy giáo Nguyễn Hồng Thanh đã dành thời gian và kiến thức để hướng dẫn nhóm em trong dự án này Sự đóng góp và sự hỗ trợ của thầy đã giúp nhóm em trải qua một hành trình học tập vàphát triển đầy ý nghĩa.

Trang 8

CHƯƠNG 1: CƠ SỞ LÝ THUYẾT1.1 Tổng quan về ngôn ngữ lập trình java

1.1.1 Khái niệm

Java là một trong những ngôn ngữ lập trình hướng đối tượng Nó được sử dụngtrong phát triển phần mềm, trang web, game hay ứng dụng trên các thiết bị diđộng.

Java được khởi đầu bởi James Gosling và bạn đồng nghiệp ở Sun MicroSystemnăm 1991 Ban đầu Java được tạo ra nhằm mục đích viết phần mềm cho các sảnphẩm gia dụng, và có tên là Oak.

Java được phát hành năm 1994, đến năm 2010 được Oracle mua lại từ SunMicroSystem.

Java được tạo ra với tiêu chí “Viết (code) một lần, thực thi khắp nơi” (Write

Once, Run Anywhere – WORA) Chương trình phần mềm viết bằng Java có thểchạy trên mọi nền tảng (platform) khác nhau thông qua một môi trường thực thivới điều kiện có môi trường thực thi thích hợp hỗ trợ nền tảng đó.

Hình 1.1: Ảnh minh họa ngôn ngữ lập trình Java

1.1.2 Đặc điểm của ngôn ngữ lập trình java

*Tương tự C++, hướng đối tượng hoàn toàn.

Trong quá trình tạo ra một ngôn ngữ mới phục vụ cho mục đích chạy được trênnhiều nền tảng, các kỹ sư của Sun MicroSystem muốn tạo ra một ngôn ngữ dễ học

Trang 9

và quen thuộc với đa số người lập trình Vì vậy họ đã sử dụng lại các cú pháp củaC và C++.

Tuy nhiên, trong Java thao tác với con trỏ bị lược bỏ nhằm đảo bảo tính an toàn vàdễ sử dụng hơn Các thao tác overload, goto hay các cấu trúc như struct và unioncũng được loại bỏ khỏi Java.

*Độc lập phần cứng và hệ điều hành.

Một chương trình viết bằng ngôn ngữ Java có thể chạy tốt ở nhiều môi trường khácnhau Gọi là khả năng “cross-platform” Khả năng độc lập phần cứng và hệ điềuhành được thể hiện ở 2 cấp độ là cấp độ mã nguồn và cấp độ nhị phân.

Ở cấp độ mã nguồn: Kiểu dữ liệu trong Java nhất quán cho tất cả các hệ điều hànhvà phần cứng khác nhau Java có riêng một bộ thư viện để hỗ trợ vấn đề này.Chương trình viết bằng ngôn ngữ Java có thể biên dịch trên nhiều loại máy khácnhau mà không gặp lỗi.

Ở cấp độ nhị phân: Một mã biên dịch có thể chạy trên nhiều nền tảng khác nhaumà không cần dịch lại mã nguồn Tuy nhiên cần có Java Virtual Machine để thôngdịch đoạn mã này.

Ưu điểm: Phương pháp này giúp các đoạn mã viết bằng Java có thể chạy được trênnhiều nền tảng khác nhau Với điều kiện là JVM có hỗ trợ chạy trên nền tảng này.

Trang 10

Nhược điểm: Cũng như các ngôn ngữ thông dịch khác, quá trình chạy các đoạn mãJava là chậm hơn các ngôn ngữ biên dịch khác (tuy nhiên vẫn ở trong một mứcchấp nhận được).

*Cơ chế thu gom rác tự động.

Khi tạo ra các đối tượng trong Java, JRE sẽ tự động cấp phát không gian bộ nhớcho các đối tượng ở trên heap.

Với ngôn ngữ như C C++, bạn sẽ phải yêu cầu hủy vùng nhớ mà bạn đã cấp phát,để tránh việc thất thoát vùng nhớ Tuy nhiên vì một lý do nào đó, bạn không hủymột vài vùng nhớ, dẫn đến việc thất thoát và làm giảm hiệu năng chương trình.Ngôn ngữ lập trình Java hỗ trợ cho bạn điều đó, nghĩa là bạn không phải tự gọihủy các vùng nhớ Bộ thu dọn rác của Java sẽ theo vết các tài nguyên đã được cấp.Khi không có tham chiếu nào đến vùng nhớ, bộ thu dọn rác sẽ tiến hành thu hồivùng nhớ đã được cấp phát.

*Đa luồng

Java hỗ trợ lập trình đa tiến trình (multithread) để thực thi các công việc đồng thời.Đồng thời cũng cung cấp giải pháp đồng bộ giữa các tiến trình (giải pháp sử dụngpriority…).

*Tính an toàn và bảo mật.

 Tính an toàn

- Ngôn ngữ lập trình Java yêu cầu chặt chẽ về kiểu dữ liệu.- Dữ liệu phải được khai báo tường minh.

- Không sử dụng con trỏ và các phép toán với con trỏ.

Java kiểm soát chặt chẽ việc truy nhập đến mảng, chuỗi Không cho phép sử dụngcác kỹ thuật tràn Do đó các truy nhập sẽ không vượt quá kích thước của mảnghoặc chuỗi.

Quá trình cấp phát và giải phóng bộ nhớ được thực hiện tự động.Cơ chế xử lý lỗi giúp việc xử lý và phục hồi lỗi dễ dàng hơn.

 Tính bảo mật

Java cung cấp một môi trường quản lý chương trình với nhiều mức khác nhau.Mức 1: Chỉ có thể truy xuất dữ liệu cũng như phương phức thông qua giao diện màlớp cung cấp.

Mức 2: Trình biên dịch kiểm soát các đoạn mã sao cho tuân thủ các quy tắc củangôn ngữ lập trình Java trước khi thông dịch.

Trang 11

Mức 3: Trình thông dịch sẽ kiểm tra mã byte code xem các đoạn mã này có đảmbảo được các quy định, quy tắc trước khi thực thi.

Mức 4: Java kiểm soát việc nạp các lớp vào bộ nhớ để giám sát việc vi phạm giớihạn truy xuất trước khi nạp vào hệ thống.

1.1.3 Máy ảo java

Java Virtual Machine (JVM) hay còn gọi là máy ảo Java – một chương trìnhthông dịch bytecode của Java thành mã máy tương ứng với từng hệ điều hành vàphần cứng khác nhau bằng cách cung cấp một môi trường để thực thi quá trình

Một trong những điểm mạnh mà Java sở hữu đó là chạy được trên nhiều nềntảng như Window, Linux, IOS…Sở dĩ Java làm được điều đó là do nó được hỗ trợJVM trên nhiều nền tảng Với những tính năng nổi bật, JVM là một trong nhữngcông cụ được các nhà phát triển tập đoàn Java và cộng đồng nguồn mở sử dụngphổ biến

Ngoài cung cấp phương tiện để ngôn ngữ lập trình Java có thể chạy ở bất cứmôi trường nào thì JVM còn có khả năng duy trì và tối ưu hóa bộ nhớ chươngtrình Java ra đời với triết lý “viết một lần, chạy mọi nơi” là một sự đột phá làmthay đổi toàn cảnh phát triển chương trình Nếu trước đây các chương trình chỉchạy trên một nền tảng cụ thể thì code java tương thích với hầu hết các hệ điềuhành, nhiều nền tảng khác nhau.

Khi nhắc tới JVM người dùng sẽ thường có hai cách hiểu về nó Cách hiểu thứnhất xem JVM là một chương trình phần mềm cung cấp môi trường để code javađược thực thi Cách hiểu thứ hai đó là JVM sử dụng các cài đặt cấu hình để kiểmsoát và quản lý tài nguyên cho java trong quá trình thực thi.

1.1.4 Các loại ứng dụng được phát triển sử dụng java

Java là một ngôn ngữ lập trình mạnh mẽ và linh hoạt, được sử dụng rộng rãi trong việc phát triển nhiều ứng dụng khác nhau, từ các ứng dụng di động đến các hệ thống máy chủ phức tạp Dưới đây là một số ứng dụng nổi tiếng được phát triển bằng Java:

- Ứng dụng di động: Các ứng dụng Android được viết bằng Java hoặc Kotlin (ngônngữ chính thức của Android, có thể sử dụng chung với Java).

Trang 12

- Hệ thống quản lý cơ sở dữ liệu: Một số hệ quản trị cơ sở dữ liệu như Oracle, MySQL, hay Apache Derby được viết hoàn toàn hoặc một phần bằng Java.

- Ứng dụng máy tính: Nhiều ứng dụng máy tính như Adobe Creative Suite, IntelliJ IDEA, Eclipse, và NetBeans được phát triển bằng Java.

- Ứng dụng máy chủ: Các hệ thống máy chủ như Apache Tomcat (một máy chủ web) và JBoss (một ứng dụng máy chủ ứng dụng enterprise) được viết bằng Java.- Game: Một số framework game như LibGDX, jMonkeyEngine, và các game nổi tiếng như Minecraft cũng được phát triển bằng Java.

- Ứng dụng desktop đa nền tảng: Java cũng được sử dụng để phát triển các ứng dụng như JDownloader (download manager), Vuze (BitTorrent client), và OpenOffice.

Java có tính di động cao và khả năng chạy trên nhiều nền tảng khác nhau, điều này làm cho nó trở thành một lựa chọn phổ biến cho việc phát triển các ứng dụng đa dạng và phức tạp.

1.2 Giới thiệu về Java Swing1.2.1 Java Swing là gì?

Java Swing là cách gọi rút gọn khi người ta nhắc đến Swing của Java

dựng các ứng dụng tối ưu dùng cho window (bao gồm các thành phần như nút, thanh cuộn,…).

nhiên, nó lại khác với AWT ở chỗ bộ công cụ này thuộc loại nền tảng độc lập, bao gồm các thành phần nhẹ và phức tạp hơn AWT.

Các gói javax.swing bao gồm các lớp cho Java Swing API như JMenu, JButton, JTextField, JRadioButton, JColorChooser,…Việc xây dựng ứng dụng sẽ

trở nên dễ dàng hơn với Java Swing vì chúng ta có các bộ công cụ GUI giúp đỡ

công việc.Swing được chính thức phát hành vào tháng 3/1998 Nó đi kèm với thư viện Swing 1.0 với hơn 250 lớp, 80 giao tiếp Hiện nay con số này đã được tăng lên, ở phiên bản Swing 1.4 có 451 lớp và 85 giao tiếp Các bản phát hành Java 2 (SDK 1.2 và các phiên bản mới hơn) đều bao gồm Swing trong runtime

environment.

Trang 13

1.2.2 Ứng dụng của Java Swing

Java Swing được dùng để hỗ trợ tạo giao diện đồ hoạ người dùng (với

Java).Bộ công cụ này cung cấp các bộ điều khiển nâng cao như thanh trượt, colorpicker, Tree, TabbedPane và bảng điều khiển,

Trong quá trình thực hiện đề tài, nhóm đã nghiên cứu và phát triển những phần như:

- Nghiên cứu nhu cầu người dùng: Đánh giá và hiểu rõ nhu cầu của

người dùng khi quản lý công việc hàng ngày Phân tích các tính năng mà họ muốn và cần trong một ứng dụng To-Do List.

- Thiết kế và Phát triển: Xây dựng giao diện người dùng thân thiện và dễ

sử dụng, bao gồm việc thiết kế cả cho ứng dụng di động và máy tính để bàn Phát triển các tính năng quản lý công việc như tạo danh sách công việc, đặt thời hạn, đánh dấu độ ưu tiên, và thông báo nhắc nhở.

- Tính năng và Hiệu suất: Đảm bảo tính năng và hiệu suất của ứng dụng

Kiểm tra và tối ưu hóa để đảm bảo ứng dụng hoạt động mượt mà và ổn định.

- Tính Linh hoạt và Mở rộng: Xem xét việc tích hợp các tính năng tiên

tiến như trí tuệ nhân tạo hoặc tích hợp với các nền tảng khác như email và lịch làm việc để tăng tính linh hoạt và mở rộng khả năng sử dụng.

Trang 14

- Kiểm thử và Phản hồi: Thử nghiệm với người dùng thực để thu thập

phản hồi và cải thiện sản phẩm dựa trên ý kiến của họ.

Hình 1.2: Ảnh minh họa ứng dụng Todolist

Trang 15

CHƯƠNG 2: PHÂN TÍCH HỆ THỐNG2.1 Biểu đồ use case tổng quát

Hình 2.1: Biểu đồ use case toàn hệ thống

2.2 Phân tích các chức năng2.2.1 Chức năng đăng nhập2.2.1.1 Sơ đồ use case

Hình 2.2: Biểu đồ use case chức năng đăng nhập

Trang 16

Hình 2.3: Biểu đồ use case chức năng đăng ký2.2.2.2 Mô tả chức năng

 Điều kiện đầu ra: Lưu tài khoản khách hàng đã đăng kí và thông báo thành công

2.2.3 Chức năng thêm mới todo2.2.3.1 Sơ đồ use case

Trang 17

Hình 2.4: Biểu đồ use case chức năng thêm mới todo

- Người dùng chọn tùy chọn "Add task" trên màn hình chính.

- Họ cung cấp tên nhiệm vụ, mô tả, thời gian và chọn độ ưu tiên của nhiệm vụ.- Hệ thống kiểm tra các thông tin đã nhập có hợp lệ không.

 Các sự kiện khác:

- Hệ thống thông báo 1 trong các thông tin người dùng nhập chưa hợp lệ

 Điều kiện đầu ra: Thêm nhiệm vụ thành công, hệ thống sẽ cập nhật lại danhsách todo và thêm thông báo mới

2.2.4 Chức năng sửa todo2.2.4.1 Sơ đồ use case

Hình 2.5: Biểu đồ use case chức năng sửa thông tin todo

Trang 18

2.2.4.2 Mô tả chức năng

 Tác nhân: Người dùng

 Mô tả: Người dùng sẽ chọn vào 1 todo bất kì và sửa chúng. Các dòng sự kiện chính:

- Người dùng chọn tùy chọn vào 1 hàng bất kì trong bảng.

- Tích đúp vào cột thông tin muốn chỉnh sửa và nhập nội dung mới.- Ấn Enter trên bàn phím để xác nhận

 Các sự kiện khác:

- Hệ thống thông báo 1 trong các thông tin người dùng nhập chưa hợp lệ

 Điều kiện đầu ra: Cập nhật nhiệm vụ thành công, hệ thống sẽ cập nhật lại danhsách todo.

2.2.5 Chức năng xóa todo2.2.5.1 Sơ đồ use case

Hình 2.5: Biểu đồ use case chức năng xóa todo

Trang 19

Hình 2.6: Biểu đồ use case chức năng hoàn thành todo

Hình 2.7: Biểu đồ use case chức năng sắp xếp todo

Trang 20

Hình 2.7: Biểu đồ use case chức năng sắp xếp todo

Trang 21

CHƯƠNG 3: LẬP TRÌNH VÀ TRIỂN KHAI PHẦN MỀM3.1 Xây dựng phần mềm

Cấu trúc phần mềm bao gồm như sau:

Hình 3.1: Cấu trúc thư mục chính của dự án

3.1.1 Form đăng nhập

- Thư viện java.io.file: được sử dụng để thao tác với tệp.

- Thư viện java.io.IOException: được sử dụng để xử lý ngoại lệ các vấn đề liên quan đến đọc và ghi dữ liệu vào các luồng (streams) hoặc tệp tin (files).

- Thư viện java.util.logging.Level: là một enum trong Java được sử dụng trong APIlogging (gửi thông tin log) của Java, cụ thể là java.util.logging package Enum này định nghĩa một số mức độ (levels) khác nhau của log, từ mức độ thấp nhất đến cao nhất, để xác định mức độ quan trọng của thông điệp log.

- Thư viện java.util.logging.logger: là một lớp trong Java cung cấp cơ sở hạ tầng ghi log (loggin infrastructure) để hỗ trợ ghi thông điệp (log messages) từ ứng dụng.

Trang 22

- Dùng events FocusGained và FocusLost:

FocusGained là sự kiện xảy ra khi một thành phần hoặc đối tượng nhận được focus, tức là trở thành đối tượng chính để nhận input từ bàn phím hoặc chuột.FocusLost là sự kiện xảy ra khi một thành phần hoặc đối tượng mất focus, tức là không còn là đối tượng chính để nhận input nữa.

- Về phần button login thì dùng events MouseClicked để nhấn

- Khi nhấn button log in thì gọi một file tệp có tên là login.txt tệp này lưu trữ tên người dùng và mật khẩu của người dùng đăng nhâp và file logged.txt để lưu tên username đã đăng nhập.

Ngày đăng: 22/07/2024, 16:27

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w