Khi chúng ta biết quản lí thời gian, chúng ta sẽ làm được rất nhiều công việc khác nhau, đồng thời tăng thêm năng suất lao động Trên cơ sở đó, cùng với các kiến thức được học trong nhà t
Trang 1HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN MÔN HỌC
THỰC TẬP CƠ SỞ
Đề tài:
Xây dựng ứng dụng quản lí thời gian
cá nhân trên Desktop
Sinh viên thực hiện: HOÀNG ANH NHẬT AT150640
PHAN XUÂN TÍNH AT150654 NGUYỄN TIẾN HƯNG AT150621 Nhóm 34
Giảng viên hướng dẫn: TS NGUYỄN PHƯƠNG ANH
Trang 2Hà Nội, 10-2021
Trang 3MỤC LỤC
CHƯƠNG 1: GIỚI THIỆU CHUNG 3
1 LÝ DO CHỌN ĐỀ TÀI: 3
2 MỤC TIÊU CỦA ĐỀ TÀI: 4
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG 5
1 PHÂN TÍCH CÁC CHỨC NĂNG CHÍNH CỦA ỨNG DỤNG: 5
1.1 CHỨC NĂNG ĐĂNG KÍ 5
1.2 CHỨC NĂNG HIỂN THỊ LỊCH (THEO TUẦN THÁNG): 5
1.3 CHỨC NĂNG THÊM VÀ SỬA LỊCH 5 2 PHÂN TÍCH VÀ ĐẶC TẢ CÁC YÊU CẦU: 5
2.1 USE CASE DIAGRAM 5 2.2 ACTIVITY DIAGRAM 6 2.2.1 Đăng kí 6
2.2.2 Đăng nhập 8
2.2.3 Tạo công việc 8
2.2.4 Chỉnh sửa thông tin 9
2.2.5 Hiển thị thông tin 11
2.3 ĐẶC TẢ CA SỬ DỤNG 11
2.3.1 Use case đăng nhập 12
2.3.2 Use-case Tạo tài khoản 12
2.3.3.Use-case Tạo công việc 13
2.3.4 Use case chỉnh sửa công việc 14
2.3.5 Use-case hiển thị thông tin 14
3 THIẾT KẾ GIAO DIỆN 15
CHƯƠNG 3: THÀNH PHẦN HỆ THỐNG 16
Trang 41 TỔNG QUAN VỀ NGÔN NGỮ VÀ CÁC CÔNG CỤ HỖ TRỢ 16
1.1TỔNG QUAN VỀ C++ 16
1.2TỔNG QUAN VỀ LẬP TRÌNH WINFORM 16
1.3TỔNG QUAN VỀ THƯ VIÊN MFC 17
1.4TỔNG QUAN VỀ MYSQL: 17
CHƯƠNG 4: KIỂM THỬ 18
1 KIỂM THỬ TRÊN CÔNG CỤ 18
1.1KIỂM THỬ CHỨC NĂNG 18
1.2KIỂM THỬ GIAO DIỆN 18
1.3KIỂM THỬ KHẢ NĂNG TƯƠNG THÍCH 18
1.4KIỂM THỬ BẢO MẬT 18
TÀI LIỆU THAM KHẢO 18
CHƯƠNG 1: GIỚI THIỆU CHUNG
1 Lý do chọn đề tài:
Bối cảnh lựa chọn đề tài:
Trang 5Ông cha ta có câu: Thời gian là vàng là bạc Bởi vậy, thời gian là thứ một khi đã trôi qua
là không thể lấy lại được Tuy nhiên, thời xa xưa, con người ta chưa phát minh ra đồng hồ hay những thứ có thể xác định rõ ràng thời gian như điện thoại thông minh, laptop hay đồng
hồ thông minh Vì vậy trước khi có đồng hồ con người xem giờ như thế nào, các cụ thường nói “ Đêm năm canh sáu khắc”, tức là coi “canh” và “khắc” là đơn vị để tính giờ trong ngày Hoặc công cụ thông qua quan sát ánh mặt trời để định nghĩa thời gian – Nhật quỹ, được tao thành từ một chiếc kim quỹ và đĩa bàn, trên đĩa bàn có 24 khắc hoặc 12 khắc đều nhau Bên cạnh đó, người Ai Cập cổ đại cũng phát minh ra rất nhiều loại đồng hồ thô sơ như đồng hồ sao, đồng hồ nước Quen thuộc hơn là đồng hồ cát do tu sĩ người Pháp chế tạo Tóm lại, chúng ta sáng tạo ra những loại đồng hồ thô sơ để xác định giờ giấc 1 cách cách chính xác hơn và quản lí nó tốt hơn
Sau đó, chiếc đồng hồ được phát minh đầu tiên là đồng hồ bỏ túi, xuất hiện vào năm 1574 tại Thụy Sĩ Được cấu tạo với một chiếc kim giờ, kim phút được thêm vào năm 1680 và khoảng một thập kỉ sau đó thì kim giây xuất hiện Vào thế kỉ 19, đồng hồ đeo tay trở nên phổ biến hơn và trở thành một phụ kiện độc quyền cho nữ giới
Khi xã hội phát triển, công nghệ cũng ngày một trở nên hiện đại hơn, những chiếc đồng hồ đeo tay cũng được tạo nên với nhiều mục đích khác nhau và tinh xảo hơn Nó không chỉ là một phương tiện để xem giờ mà nó còn có thể là một phương tiện để theo dõi sức khỏe, theo dõi số giờ vận động… của người đeo Thêm vào đó, trên những chiếc điện thoại di động mà chúng ta mang theo bên mình hằng ngày cũng được tích hợp đồng hồ Nhưng không phải ai cũng có thể quản lí thời gian của mình một cách hợp lí và khôn ngoan Nói cách khác, không
ít người không hề biết cách quản lí thời gian và làm lãng phí thứ vàng bạc này Khi chúng ta biết quản lí thời gian, chúng ta sẽ làm được rất nhiều công việc khác nhau, đồng thời tăng thêm năng suất lao động
Trên cơ sở đó, cùng với các kiến thức được học trong nhà trường và tìm kiếm thông tin từ các website, với mong muốn giúp mọi người quản lí thời gian cá nhân một cách hợp lí nhất,
em đã quyết định chọn đề tài “Xây dựng ứng dụng quản lí thời gian cá nhân trên Desktop”
Người dùng chỉ cần một vài thao tác đơn giản là đã có thể lập một kế hoạch chi tiết cho một ngày làm việc đầy hiệu quả
Giúp người dùng xác định được đâu là việc quan trọng và cần phải hoàn thành trước, sắp xếp thời gian và công việc một cách tối ưu nhất
Có nhiều thời gian để thư giãn hơn khi đã làm theo kế hoạch cụ thể
Trang 62 Mục tiêu của đề tài:
Ứng dụng quản lý thời gian cá nhân trên Desktop được thực hiện dựa trên hai mục đích chính sau:
Thứ nhất là nghiên cứu các công nghệ lập trình như: lập trình ứng dụng Desktop với C++
Thứ hai là phát triển ứng dụng có tính thực tiễn cao, có thể áp dụng vào thực tế, giúp người dùng quản lý thời gian một cách hiệu quả
Nhóm em hy vọng dựa trên nền tảng lý thuyết đã được thầy cô truyền thụ lại, kết hợp với sự tìm hiểu cá nhân về công nghệ, đề tài của bọn em sẽ đạt được mục tiêu như mong đợi
CHƯƠNG 2: PHÂN TÍCH VÀ THIẾT KẾ HỆ THỐNG
1 Phân tích các chức năng chính của ứng dụng:
Trong phần này chúng em dự định trình bày về:
Một số chức năng chính của ứng dụng:
1.1 Chức năng đăng kí
- Chức năng này cho phép người dùng sử dụng đăng ký 1 tài khoản để sử dụng ứng dụng và đồng bộ
- Thông tin đăng kí gồm email, họ tên hoặc có thể liên kết với tài khoản Facebook hoặc Gmail
1.2 Chức năng hiển thị lịch (theo tuần tháng):
- Chức năng này cho phép người dùng hiển thị lịch thực hiện công việc theo tuần hoặc tháng
- Cho phép hiển thị công việc theo từ khóa tìm kiếm
- Cho phép đánh dấu những công việc đã được thực hiện và chưa
1.3 Chức năng thêm và sửa lịch
- Chức năng này cho phép người dùng có thể thêm, chỉnh sửa, xóa lịch
2 Phân tích và đặc tả các yêu cầu:
Trang 72.1 Use case diagram
Biểu đồ ca sử dụng( use case diagram) là biểu đồ chỉ ra số lượng các tác nhân ngoại cảnh và mối liên kết của chúng đối với use case mà hệ thống cung cấp Một use case miêu tả một chức năng của
hệ thống Trong hệ thống này chỉ ra tác nhân chính là người dùng, người dùng sẽ tương tác trực tiếp lên hệ thống Trong hệ thống gồm có các chức năng chính như: đăng nhập, đăng ký, tạo công việc, chỉnh sửa công việc, hiển thị công việc Trong chức năng tạo công việc ta lại có các chức năng phụ gồm: cài đặt thời gian cho công việc, lập danh sách công việc Với chức năng chỉnh sửa công việc gồm có các chức năng phụ như: tick đã hoàn thành, update công việc, hủy công việc(xóa công việc) Còn với chức năng hiển thị công việc gồm có: hiển thị công việc hôm nay, hiển thị công việc ngày mai, hiển thị công việc đã hoàn thành, hiển thị công việc quá hạn
Trang 82.2 Activity diagram
2.2.1 Đăng kí
Biểu đồ hoạt động(activity diagram) là biểu đồ mô tả tiến trình xử lý và trình tự những hành động trong tiến trình xử lý
Biểu đồ hoạt động của chức năng đăng ký diễn tả từng bước xử lý của hệ thống Đầu tiên sau khi người dùng click vào nút “đăng kí” thì hệ thống sẽ hiển thị form để yêu cầu người dùng điền các thông tin bắt buộc như email và mật khẩu, tiếp theo đó khi người dùng đã điền xong thì hệ thống sẽ tiến hành xác thực Đối với emai hệ thống sẽ kiểm tra xem email có đúng hay không, đối với mật khẩu thì xem người dùng đã đặt đúng định dạng chưa(có từ 6 kí tự trở lên gồm chữ, số, kí tự đặc biệt) Nếu như người dùng chưa làm đúng các yêu cầu của hệ thống hay chưa điền một hai trường
Trang 9bắt buộc là email và mật khẩu thì yêu cầu nhập lại Người dùng có hai sự lụa chọn là tiếp tục điền tiếp để hoàn tất đăng kí tài khoản hoặc có thể thoát nếu như không muốn đăng kí Nếu người dùng đăng kí thành công sẽ đưa đến trang chủ của hệ thống
2.2.2 Đăng nhập
Biểu đồ hoạt động(activity diagram) của chức năng đăng nhập diễn tả từng bước của hệ thống Khi người dùng click vào nút đăng nhập thì hệ thống sẽ gửi về form gồm email và mật khẩu, người dùng
sẽ tiến hành điền tất cả các thông tin đó Sau khi người dùng điền xong thì hệ thống sẽ kiểm tra để xác thực trên database xem email đã được đăng kí hay chưa, mật khẩu đã có đúng hay không Nếu như người dùng điền sai hay không điền một trong hai ô bắt buộc thì hệ thống sẽ yêu cầu nhập lại thông tin, lúc này người dùng có hai sự lựa chọn một là tiếp tục điền thông tin đến khi chính xác hai
Trang 10là có thể thoát Còn nếu người dùng đã điền chính xác các thông tin trên thì hệ thống sẽ đưa đến trang chủ
2.2.3 Tạo công việc
Biểu đồ hoạt động(activity diagram) của chức năng tạo công việc diễn tả từng bước của
hệ thống khi thực hiện chức năng tạo công việc Khi người dùng click vào tạo công việc thì hệ thống sẽ gửi form để người dùng điền thông tin của những công việc mà mình muốn lên lịch để theo dõi và thực hiện Sau khi người dùng điền xong thì hệ thống sẽ lưu vào database để sau này hiển thị ra cho người dùng xem lại hoặc chỉnh sửa Nếu người dùng không điền thì có thể thoát để quay về trang chủ của hệ thống
2.2.4 Chỉnh sửa thông tin
Trang 11Biểu đồ hoạt động(activity diagram) của chức năng chỉnh sửa thông tin diễn tả từng bước của chức năng chỉnh sửa thông tin Sau khi người dùng click vào chỉnh sửa thì hệ thống sẽ hiển thị ra một form để người dùng có thể chỉnh sửa: tick đã hoàn thành, thay đổi một số thuộc tính của công việc(thời gian bắt đâu, kết thúc, ở đâu,…) hoặc xóa hay thay đổi công việc khác Khi người dùng đã thay đổi thì hệ thống sẽ tiến hành update lên database để hiển thị cho người dùng sau này Nếu người dùng không muốn chính sửa có thể thoát để quay về trang chủ của hệ thống
Trang 122.2.5 Hiển thị thông tin
Biểu đồ hoạt động(activity diagram) của chức năng hiển thị thông tin diễn tả từng bước hoạt động của chức năng hiển thị thông tin Sau khi người dùng click vào hiển thị thông tin thì hệ thống sẽ gửi
về một list danh sách công việc mà người dùng đã tạo hay chỉnh sửa Trên list đó nó sẽ hiển thị theo yêu cầu từ người dùng: hiện thị công việc hôm nay thì sẽ hiển thị công việc đã lên ngày hôm nay, hiển thị xem đã hoàn thành được bao nhiêu hay còn thời gian bao lâu để hoàn thành Hoặc có thể hiển thị ngày mai hoặc những công việc đã hoàn thành Ở chức năng này sẽ hiển thị theo yêu cầu vè những gì được lưu trên database Chức năng này sẽ giúp người dùng biết rõ mình đã làm được gì và chưa được gì để có kế hoạch hoàn thành Nếu người dùng xem xong có thể thoát để quay về trang chủ
2.3 Đặc tả ca sử dụng
Trang 132.3.1 Use case đăng nhập
Brief Description Use Case này diễn tả cách người dùng đăng nhập vào hệ
thống
Basic flows Use Case này được kích hoạt khi User click vào ô đăng
nhập
1. user nhập email đăng kí và mật khẩu.
2. Hệ thống xác thực tài khoản và cho phép user được đăng nhập vào vào hệ thống.
Alternative flows 1. Thông tin tài khoản nhập vào không chính xác
Người dùng nhập vào email không hợp lệ hoặc mật khẩu sai, hệ thống hiển thị thông báo lỗi User có thể chọn một
là đăng nhập lại hoặc là kết thúc phiên đăng nhập
2. Thiếu thông tin email hoặc mật khẩu Nếu một trong hai trường dùng bắt buộc email và mật khẩu chưa được điền thông tin , hệ thống sẽ hiển thị thông báo lỗi yêu cầu user nhập đầy đủ các trường nếu muốn tiếp tục hoặc kết thúc phiên đăng nhập
Post-conditions Nếu đăng nhập thành công user sẽ được truy cập vào hệ
thống và hiển thị trang chủ của app , nếu thất bại không có
gì thay đổi với lúc chưa đăng nhập
Special-requirements Không có
2.3.2 Use-case Tạo tài khoản
Trang 14Actor User
Brief Description Use case diễn tả người dùng tạo tài khoản
Basic flows Ca sử dụng này được áp dụng khi người dùng click vào ô
tạo tài khoản
1 Người dùng nhập email và mật khẩu để đăng kí tài
khoản
2 Hệ thống tiến hành kiểm tra thông tin người dùng
nhập vào và tiến hành tạo tài khoản người dùng trong database
Alternative flows 1 Người dùng nhập vào thông tin đăng kí không hợp
lệ(email không đúng,mật khẩu ít hơn 6 kí tự) ,hệ thống hiển thị thông báo lỗi yêu cầu người dùng nhập lại thông tin chính xác , Người dùng có thể quyết định nhập lại thông tin hoặc kết thúc
2 Người dùng nhập chưa đủ thông tin ở các trường ,
hệ thống hiển thị thông báo lỗi và yêu cầu người dùng nhập đủ thông tin các trường để đăng kí Người dùng có thể quyết định nhập lại thông tin hoặc kết thúc
Post-conditions Nếu đăng kí tài khoản thành công thì người dùng sẽ được
truy cập vào hệ.Nếu thất bại thì giao diện màn hình vẫn giữ nguyên
Special-requirements Không có
2.3.3.Use-case Tạo công việc
Brief Description Use Case này diễn tả người dùng tạo công việc
Basic flows Ca sử dụng này được kích hoạt khi User click vào ô tạo
công việc
Trang 151 Người dùng lập danh sách công việc sẽ làm trong
ngày(cài đặt các thông tin cần thiết cho các công việc)
2 Hệ thống tiến hành lưu thông tin các công việc lên
database
Alternative flows Người dùng không lên lịch hoặc chưa nhớ ra mình cần
làm gì thì có thể thoát
Post-conditions 1 Nếu người dùng đã điền thông tin lên form thì hệ
thống sau khi lưu sẽ hiển thị thông báo “tạo công việc thành công”
2 Nếu người dùng muốn thoát thí quay về trang chủ
của hệ thống
Special-requirements Không có
2.3.4 Use case chỉnh sửa công việc
Brief Description Use case này diễn tả người dùng muốn chỉnh sửa thông tin
công việc
Pre-conditions Đã tạo công việc
Basic flows Ca sử dụng này được kích hoạt khi User click vào ô chỉnh
sửa công việc
1 Người dùng tiến hành thay đổi một số thuộc
tính(thời gian hoàn thành,địa điểm,…) của công việc hoặc chỉnh sửa thành công việc khác
2 Hệ thống tiến hành update thông tin lên database
Alternative flows Người dùng không muốn thay đổi nữa thì có thể
thoát
Post-conditions 1 Nếu hệ thống update xong thì hiển thị thông báo
“update thành công”
2 Nếu người dùng muốn thoát thì quay về trang chủ
Special-requirements Không có
Trang 162.3.5 Use-case hiển thị thông tin
Brief Description Use case này miêu tả cách người dùng muốn xem những
công việc mình đã hoàn thành hay chưa hoặc thời gian hạn,…
Pre-conditions Đã tạo công việc
Basic flows Ca sử dụng này được kích hoạt khi User click vào ô hiển
thị thông tin
1 Người dùng muốn xem tiến độ các công việc mình
đã lập từ trước
2 Hệ thống hiển thị các thông tin của công việc
Alternative flows Người dùng không muốn xem có thể thoát
Post-conditions
Không có
Special-requirements Không có
3 Thiết kế giao diện
Trang 17CHƯƠNG 3: THÀNH PHẦN HỆ THỐNG
1 Tổng quan về ngôn ngữ và các công cụ hỗ trợ
Trong phần này chúng em dự định trình bày về:
1.1 Tổng quan về C++
C++ là một ngôn ngữ lập trình, có các tính năng bắt buộc và hướng đối tượng Nó cũng
được gọi là ngôn ngữ lập trình trung cấp C++ được phát triển bởi Bjarne Stroustrup tại
phòng thí nghiệm Bell từ năm 1979 Là ngôn ngữ lập trình hướng đối tượng (OOP
– Object-oriented programming) C++ là ngôn ngữ lập trình được phát triển trên nền tảng của ngôn ngữ lập trình C Do đó, C++ có song song 2 phong cách lập trình hướng cấu trúc giống C và có thêm phong cách hướng đối tượng
Do đó, ngôn ngữ C++ được xem là một ngôn ngữ “lai tạo“ Ngôn ngữ C++ là một ngôn ngữ lập trình cấp trung Bởi vì nó có các tính chất của cả ngôn ngữ lập trình bậc thấp (Pascal, C,
…) và ngôn ngữ lập trình bập cao (C#, Java, Python,…) Ngôn ngữ lập trình C++ (C plus
plus) có đuôi mở rộng là cpp.
Ưu điểm của C++:
Sử dụng ở mọi nơi và kế thừa được các điểm mạnh truyền thống của ngôn ngữ C như uyển chuyển, tương thích với các thiết bị phần cứng
Với cấu trúc module cho phép sử dụng nhiều lần các chương trình con dưới dạng các hàm
Có nhiều thư viện sẵn có cho việc thêm các chức năng
1.2 Tổng quan về lập trình Winform
Windows Forms là một khung giao diện người dùng để xây dựng các ứng dụng Windows dành cho máy tính để bàn Nó cung cấp một trong những cách hiệu quả nhất để tạo ứng dụng dành cho máy tính để bàn dựa trên trình thiết kế trực quan được cung cấp trong Visual Studio Các chức năng như kéo và thả vị trí của các điều khiển trực quan giúp bạn dễ dàng tạo các ứng dụng dành cho máy tính để bàn.
Với Windows Forms, bạn phát triển các ứng dụng đồ họa phong phú, dễ triển khai, cập nhật và làm việc khi ngoại tuyến hoặc khi kết nối với internet Ứng dụng