BỘ GIÁO DỤC VÀ ĐÀO TẠOTRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH KHOA CÔNG NGHỆ THÔNG TIN ĐỒ ÁN MÔN HỌC LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG XÂY DỰNG CHỨC NĂNG ANDROID ĐĂNG NHẬP GOOGLE Giảng viên giảng
Trang 1BỘ GIÁO DỤC VÀ ĐÀO TẠO
TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH
KHOA CÔNG NGHỆ THÔNG TIN
ĐỒ ÁN MÔN HỌC LẬP TRÌNH TRÊN THIẾT BỊ DI ĐỘNG
XÂY DỰNG CHỨC NĂNG ANDROID ĐĂNG
NHẬP GOOGLE
Giảng viên giảng dạy : ThS Bùi Tiến Đức
Sinh viên thực hiện : Nguyễn Văn Mạnh
Mã số sinh viên : 1900008503
Lớp :19DTH1A
Tp.HCM, tháng 01/2022
Trang 22
Trang 3TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH
TRUNG TÂM KHẢO THÍ HỌC KỲ III NĂM HỌC 2020 - 2021 KỲ THI KẾT THÚC HỌC PHẦN
PHIẾU CHẤM THI TIỂU LUẬN/BÁO CÁO
Môn thi: Lập Trình Trên Thiết Bị Di Động Lớp học phần: 19DTH1A
Sinh viên thực hiện: Nguyễn Văn Mạnh MSSV: 1900008503
Đề tài tiểu luận/báo cáo của sinh viên: Chức năng đăng nhập google
Phần đánh giá của giảng viên (căn cứ trên thang rubrics của môn học):
Tiêu chí (theo CĐR
- Các nội dung thành
Giảng viên chấm thi
(ký, ghi rõ họ tên)
I
BM-ChT-11
Trang 4Giảng viên chấm thi 1 Điểm:
Nhận xét:
Giảng viên chấm thi 2 Điểm:
Nhận xét:
TRƯỜNG ĐẠI HỌC NGUYỄN TẤT THÀNH
KHOA CÔNG NGHỆ THÔNG TIN
CỘNG HÒA XÃ HỘI CHỦ NGHĨA VIỆT NAM
II
Trang 5Độc lập – Tự do – Hạnh phúc
NHIỆM VỤ ĐỒ ÁN MÔN HỌC
(Sinh viên phải đóng tờ này vào cuốn báo cáo)
Họ và tên: NGUYỄN VĂN MẠNH MSSV: 1900008503
Chuyên ngành: Kỹ thuật phần mềm Lớp: 19DTH1D
Email: manhnguyen.210598@gmail.com SĐT: 0387708853
Tên đề tài: XÂY DỰNG CHỨC NĂNG ANDROID ĐĂNG NHẬP GOOGLE
Giảng viên giảng dạy: ThS Bùi Tiến Đức
Thời gian thực hiện: 11/11/2021 đến 26/12/2021
Nhiệm vụ: Thiết kế xây dựng chức năng đăng nhập google
Nội dung:
Tìm hiểu ngôn ngữ java
Tìm hiểu về đề tài chức năng đăng nhập google
Xây dựng giao diện
Lập trình xử lý các sự kiện
Phương pháp: sử dụng ngôn ngữ java để thực hiện đề tài chức năng đăng nhập google
Nội dung và yêu cầu đã được thông qua Bộ môn.
TRƯỞNG BỘ MÔN
(Ký và ghi rõ họ tên)
ThS.Phạm Văn Đăng
Tp.HCM, ngày tháng năm 2021
GIẢNG VIÊN GIẢNG DẠY
(Ký và ghi rõ họ tên)
ThS Bùi Tiến Đức
III
Trang 6LỜI CẢM ƠN
Em chân thành cám ơn Giảng viên hướng dẫn Bùi Tiến Đức, người đã hướng dẫn tận tình, đóng góp các ý kiến chuyên môn của đồ án môn học Thầy đã động viên tinh thần em cố gắng hoàn thành những nghiên cứu đặt ra Thầy cũng cung cấp một số tài liệu liên quan đến đồ án môn học mà em đang nghiên cứu và ân cần nhắc nhở em đến tiến độ thực hiện đồ án môn học này
Em cũng chân thành gửi lời cám ơn đến các Thầy Cô khoa Công nghệ thông tin trường Đại học Nguyễn Tất Thành đã giảng dạy, hướng dẫn, trang bị các kiến thức cho em từ các kiến thức cơ bản đến các vấn đề chuyên sâu
Em xin gửi lời cám ơn đến anh, chị, bạn bè, đồng nghiệp bằng nhiều hình thức khác nhau đã giúp đỡ
em trong quá trình học tập cũng như trong thời gian hoàn thành đồ án môn học
Em xin chân thành cảm ơn!
Sinh viên thực hiện (Ký tên)
Nguyễn Văn Mạnh
IV
Trang 7LỜI MỞ ĐẦU
Hiện nay,điện thoại thông minh đã trở nên cực kì phổ biến và hầu như không thể thiếu trong đời sống hiện nay,và việc ngày càng có nhiều phần mềm trên thiết bị di động giúp giải quyết các công việc khác nhau một cách nhanh gọn lẹ,tiết kiệm thời gian và độ chính xác.Mỗi ứng dụng,chức năng được tạo ra với nhiệm vụ khác nhau như giải trí,học tập,tra cứu thông tin, … Bên cạnh đó cùng với sự phát triển của công nghệ thông tin, nhu cầu ứng dụng công nghệ ngày càng phát triển mạnh và đem lại rất nhiều lợi ích Vì vậy cần phải xây dựng các chức năng đăng nhập để đảm bảo an toàn và quản lý người sử dụng,ở đây là android,còn ở nền tảng IOS
Và một số nền tảng khác
Từ những yêu cầu trên cùng với sự góp ý của các giảng viên và bạn bè, em quyết định chọn đề tài
“XÂY DỰNG CHỨC NĂNG ANDROID ĐĂNG NHẬP GOOGLE”
V
Trang 8NHẬN XÉT CỦA GIẢNG VIÊN HƯỚNG DẪN
TP Hồ Chí Minh, ngày … tháng … năm 2021
GIẢNG VIÊN HƯỚNG DẪN
(Ký tên)
MỤC LỤC
VI
Trang 9CHƯƠNG I: TỔNG QUAN ĐỀ TÀI 1
1.1 Giới thiệu đề tài: 1
1.2 Lý do chọn đề tài 1
1.3 Mục tiêu đề tài 1
1.4 Các công cụ hỗ trợ 1
CHƯƠNG II: CƠ SỞ LÝ THUYẾT 2
2.1 Ngôn ngữ C# 2
2.1.1 Biến và kiểu dữ liệu trong C# 2
2.1.2 Kiểu tham chiếu trong C# 3
2.1.3 Toán tử trong C# 5
2.1.3.1 Toán tử gán: 5
2.1.3.2 Toán tử tăng giảm tiền tố và hậu tố: 5
2.1.3.3 Toán tử quan hệ: 5
2.1.3.4 Toán tử logic: 6
2.1.3.5 Toán tử điều kiện: 6
2.1.4 Các cấu trúc điều khiển trong C# 6
2.1.4.1 Cấu trúc if: 6
2.1.4.2 Cấu trúc if-else: 7
2.1.4.3 Cấu trúc if - else lồng nhau: 7
2.1.4.4 Cấu trúc if - else lồng nhau: 7
2.1.4.5 Cấu trúc switch: 8
2.1.4.6 Cấu trúc for: 8
2.1.4.7 Cấu trúc while: 8
2.1.4.8 Cấu trúc do … while: 9
2.1.5 Câu lệnh break và continue trong C# 9
2.1.5.1 Câu lệnh break: 9
2.1.5.2 Câu lệnh continue: 9
2.2 NET 10
2.2.1 Một số điểm nổi bật của NET 11
2.2.2 Những điều bạn phải làm để nâng cao kỹ năng của mình trong NET 11
2.2.3 Những kỹ năng cần có của một lập trình viên NET 11
2.3 Cơ Sở Dữ Liệu và Mô Hình n-layer 11
2.3.1 Cơ Sở Dữ Liệu là gì? 11
2.3.2 Mô hình Single-TierArchitecture: 13
2.3.3 Mô hình Two-TierArchitecture: 13
VII
Trang 102.3.4 Mô hình Three-TierArchitecture: 14
2.4 Giới Thiệu ADO.NET 16
Chương III : MÔ HÌNH HÓA CƠ SỞ DỮ LIỆU 19
1.Sơ đồ Lớp 19
2 Chuyển đổi lớp sang mô hình cơ sở dữ liệu quan hệ 19
3.Thiết kế Cơ sở dữ liệu 19
3.1 Mô tả lại lớp có đầy đủ kiểu dữ liệu 19
3.2 Thiết kế các bảng: 21
5.3 Database Diagrams: 23
CHƯƠNG IV:THIẾT KẾ GIAO DIỆN(FORM) 24
3.1.Phân cấp chức năng: 24
3.2.Đặc tả giao diện 25
3.2.1 Giao diện đăng nhập: 25
3.2.3.Giao diện quản lý nhân viên: 26
3.2.4 Giao diện quản lý khách hàng: 30
3.2.5 Giao diện quản lý hóa đơn 33
3.2.6 Quản lý hàng hóa: 35
3.2.7 Đăng xuất: 39
3.3.kết nối CSDL: 40
CHƯƠNG V: KẾT LUẬN VÀ NHẬN XÉT 42
4.1 Kết quả đạt được: 42
4.2 Việc chưa làm được: 42
4.3 Hướng phát triển đề tài: 42
CHƯƠNG VI:TÀI LIỆU THAM KHẢO 43
VIII
Trang 11DANH MỤC CÁC BẢNG BIỂU
Bảng 1 Biến và kiểu dữ liệu trong C# 15
Bảng 2 Toán tử gán 17
Bảng 3 Toán tử quan hệ 17
Bảng 4 Toán tử Logic 18
Bảng 5 Toán tử điều kiện 18
IX
Trang 12DANH MỤC CÁC BẢNG HÌNH
Hình 1:Ví dụ về khai báo biến trong C# 2
Hình 2:Mô tả tham chiếu Object 4
Hình 3:Cú pháp khai báo biến kiểu dynamic 4
Hình 4:Mô tả kiểu tham chiếu string 4
Hình 5:Mô tả khai báo hằng 4
Hình 6:Mô tả toán tử tăng giảm tiền tố và hậu tố 5
Hình 7:Cấu trúc if 6
Hình 8:Cấu trúc if-else 7
Hình 9:Cấu trúc if-else lồng nhau 7
Hình 10:Cấu trúc switch 8
Hình 11:Cấu trúc for 8
Hình 12:Cấu trúc while 8
Hình 13:Cấu trúc do…while 9
Hình 14:Ví dụ câu lệnh break 9
Hình 15:Kết quả ví dụ câu lệnh break 9
Hình 16:Ví dụ câu lệnh continue 10
Hình 17:Kết quả ví dụ câu lệnh continue 10
Hình 18:Mô tả cơ sở dữ liệu 12
Hình 19:Mô hình Single-TierArchitecture 13
Hình 20:Mô hình Two-TierArchitecture 13
Hình 21:Mô hình 3-layer 14
Hình 22:Mô tả ADO.NET 16
Hình 23:Kiến trúc truy cập dữ liệu 17
Hình 24:Sơ đồ lớp 19
Hình 25:Thiết kế bảng tài khoản 21
Hình 26:Thiết kế bảng khách hàng 22
Hình 27:Thiết kế bảng sản phẩm 22
Hình 28:Thiết kế bảng sẩn phầm 22
Hình 29:Thiết kế bảng hóa đơn 22
Hình 30:Thiết kế bảng thông tin hóa đơn 23
Hình 31:Database diagrams 23
Hình 32:Sơ đồ phân cấp 24
Hình 33:Mô hình 3-layer 24
Hình 34:mô hình 3 layer 24
Hình 35:Giao Diện đăng nhập 25
Hình 36:Giao diện trang chủ của phần mềm 26
Hình 37:Giao diện quản lý nhân viên 27
Hình 38:Mô tả chức năng thêm nhân viên 28
Hình 39:mô tả chức năng thêm nhân viên(2) 28
Hình 40:Mô tả chức năng xóa nhân viên 29
Hình 41:Mô tả chức năng xóa nhân viên (2) 29
Hình 42:Mô tả chức năng sửa thông tin nhân viên 30
Hình 43:Giao diện quản lý khách hàng 30
Hình 44:Mô tả chức năng thêm khách hàng 31
Hình 45:Mô tả chức năng thêm khách hàng(2) 31
Hình 46:Mô tả chức năng xóa khách hàng 32
Hình 47:Mô tả chức năng xóa khách hàng (2) 32
Hình 48:Mô tả chức năng sửa thông tin khách hàng 33
X
Trang 13Hình 49:Giao diện quản lý hóa đơn 33
Hình 50:Mô tả chức năng thêm hóa đơn 34
Hình 51:Mô tả chức năng xóa hóa đơn 34
Hình 52:Mô tả chức năng xóa hóa đơn 35
Hình 53:Giao diện quản lý hàng hóa 35
Hình 54:Mô tả chức năng thêm hàng hóa 36
Hình 55:mô tả chức năng thêm hàng hóa (2) 36
Hình 56 Mô tả chức năng xóa hàng hóa 37
Hình 57:Mô tả chức năng xóa hàng hóa (2) 37
Hình 58:Mô tả chức năng sửa thông tin hàng hóa 38
Hình 59:Mô tả chức năng sửa thông tin hàng hóa (2) 39
Hình 60:Giao diện chức năng đăng xuất 40
Hình 61:tạo kết nối với SQL 40
XI
Trang 14CHƯƠNG I: TỔNG QUAN ĐỀ TÀI
1.1 Giới thiệu đề tài:
Tên đề tài: Xây dựng chức năng đăng nhập vào tài khoản google
Giới thiệu: Ứng dụng cho phép người dùng đăng nhập vào hệ thống và thực hiện các chức năng của google
1.2 Lý do chọn đề tài
Hiện nay,điện thoại thông minh đã trở nên cực kì phổ biến và hầu như không thể thiếu trong đời sống hiện nay,và việc ngày càng có nhiều phần mềm trên thiết bị di động giúp giải quyết các công việc khác nhau một cách nhanh gọn lẹ,tiết kiệm thời gian và độ chính xác.Mỗi ứng dụng,chức năng được tạo ra với nhiệm vụ khác nhau như giải trí,học tập,tra cứu thông tin, … Bên cạnh đó cùng với
sự phát triển của công nghệ thông tin, nhu cầu ứng dụng công nghệ ngày càng phát triển mạnh và đem lại rất nhiều lợi ích Vì vậy cần phải xây dựng các chức năng đăng nhập để đảm bảo an toàn và quản lý người sử dụng,ở đây là android,còn ở nền tảng IOS Và một số nền tảng khác
1.3 Mục tiêu đề tài
Xây dựng ứng dụng android theo nhu cầu của khách hàng
Giao diện đơn giản dễ sử dung
Ứng dụng thực hiện được chức năng đăng nhập
1.4 Các công cụ hỗ trợ
- JDK 8
- Android Studio
12
Trang 15CHƯƠNG II: CƠ SỞ LÝ THUYẾT 2.1.Môi trường phát triển ứng dụng
2.1.1.Smartphone
5 hệ điều hành phổ biến hiện nay:Android,IOS,Windows Phone,Blackberry OS, Firefox OS
* Android
- Ưu điểm:
+ Có mã nguồn mở, khả năng tuỳ biến cao, có thể tùy ý chỉnh sửa mà không có sự can thiệp từ Google
+ Kho ứng dụng Google Play Store đồ sộ
+ Khả năng đa nhiệm, chạy cùng lúc nhiều ứng dụng cao
- Nhược điểm:
+ Dễ nhiễm phần mềm độc hại và virus
+ Kho ứng dụng quá nhiều dẫn đến khó kiểm soát chất lượng => thiếu các ứng dụng thật sự tốt
Sự phân mảnh lớn
+ Cập nhật không tự động với tất cả thiết bị
* IOS
- Ưu điểm:
+ Nền tảng ổn định
+ Ứng dụng trên IOS hoạt động rất mượt mà
+ Độ tin cậy và tính bảo mật cao
- Nhược điểm:
+ Trao đổi dữ liệu cần phải qua iTunes nên dễ gây bất tiện, tốn thời gian
+ Khả năng tuỳ chỉnh còn hạn chế
+ iOS chỉ hoạt động trên các thiết bị công nghệ độc quyền của Apple
* Windows Phone
- Ưu điểm:
+ Giao diện quen thuộc, dễ sử dụng
+ Khả năng đồng bộ danh bạ, email tốt
+ Có phần mềm bản đồ Here Maps khá tốt, có thể xem offline được
- Nhược điểm:
+ Windows Phone không cho phép thay đổi giao diện, chủ đề (themes) nên dễ gây chán
+ Kho ứng dụng nghèo nàn, ứng dụng miễn phí rất ít
+ Không thể đổi DNS (hay IP) để vào 1 số web bị chặn
* Blackberry OS
- Ưu điểm:
+ Hoạt động ổn định, giao diện đơn giản
+ hỗ trợ Push Mail, xử lý công việc tốt và tính bảo mật rất cao
+ Bàn phím QWERTY giúp soạn thảo nhanh và chính xác
+ Blackberry OS cho khả năng nén dữ liệu xuống chỉ còn bằng một nửa kích thước ban đầu, giúp tiết kiệm chi phí băng thông
+Tính bảo mật cao
- Nhược điểm:
BlackBerry OS không thân thiện và khó sử dụng đối với những người không am hiểu công nghệ
13
Trang 16* Firefox OS
- Ưu điểm:
+ Giao diện dễ sử dụng, trông giống như một sự kết hợp hài hòa giữa Android và iOS
+ Firefox OS có những thư mục rất thông minh, có thể tự thu thập những ứng dụng, game theo từng thể loại khác nhau, cũng như tính chất những công việc riêng biệt mà bản thân nó được phát triển - Nhược điểm:
+ Giao diện Firefox OS đã vay mượn khá nhiều từ iOS, thường gặp nhiều bất cập bởi phụ thuộc nhiều vào nút Home (màn hình chủ)
2.1.2 Giới thiệu về hệ điều hành android
* Các lớp gồm:
- Linux Kernel : Đây là lớp thấp nhất, nhiệm vụ của nó là xử lý tiếp nhận các thiết bị ngoại vi như: bàn phím, camera, màn hình, wifi,
- Libraries: Chứa các thư viện gốc như WebKit, OpenGL, FreeType, SQLite, Media, v.v., Thư viện WebKit chịu trách nhiệm hỗ trợ trình duyệt, SQLite dành cho cơ sở dữ liệu,
- Android Runtime: Trong Android Runtime, có các thư viện lõi và DVM (Máy ảo Dalvik) chịu trách nhiệm chạy ứng dụng Android DVM giống như JVM nhưng nó được tối ưu hóa cho các thiết
bị di động Nó tiêu thụ ít bộ nhớ hơn và cung cấp hiệu suất nhanh
- Application Framework: Android framework bao gồm các API của Android như UI (Giao diện người dùng), điện thoại, tài nguyên, địa điểm,
- Applications: Ứng dụng chạy trên các Android framework Ví dụ: cài đặt, trò chơi, trình duyệt
2.1.3 Ứng dụng của ngôn ngữ Java
- Các ứng dụng cho hệ điều hành Android
- Các ứng dụng bảo mật cao: Java là ngôn ngữ lập trình có tính bảo mật cao nên nó thường được sử dụng vào trong các dịch vụ tài chính, ngân hàng
- Các ứng dụng web Java: Lập trình Java không chỉ được sử dụng trên thiết bị di động mà còn được biết đến là nền tảng của của các ứng dụng website
- Các công cụ phần mềm: Hiện nay có rất nhiều các công cụ phát triển và phần mềm hữu ích được viết bằng Java, ví dụ: Eclipse, InetelliJ Idea và Netbans IDE
- Khái niệm về lập trình hướng đối tượng trong java: Lập trình hướng đối tượng (Object Oriented Programing – OOP) là một phương pháp để thiết kế một chương trình bởi sử dụng các lớp và các đối tượng
- Java là một ngôn ngữ lập trình hướng đối tượng vì vậy nó cũng hỗ trợ các đặc tính của lập trình hướng đối tượng: Đa hình (Polymorphism) Thừa kế (Inheritance) Đóng gói (Encapsulation) Trừu tượng (Abstraction)
- Đối tượng là một thực thể có trạng thái và hành vi Nó có thể mang tính vật lý hoặc logic
- Lớp (Class) có thể xem lớp như một khuôn mẫu (template) của đối tượng (Object)
- Package: package (gói) trong java là một nhóm các kiểu tương tự của các lớp, giao diện và các package con
- Package trong java có thể được phân loại theo hai hình thức, package được dựng sẵn và package
do người dùng định nghĩa
- Có rất nhiều package được dựng sẵn như java, lang, net, io, util, sql, … Package do người dùng tự định nghĩa
- Constructor: constructor trong java là một dạng đặc biệt của phương thức được sử dụng để khởi tạo các đối tượng
14
Trang 17- Java Constructor được gọi tại thời điểm tạo đối tượng Nó khởi tạo các giá trị để cung cấp dữ liệu cho các đối tượng
- Khai báo của Constructor giống với khải báo của method (phương thức) Nó phải có cùng tên với class (lớp) và không có giá trị trả về
- Có 2 kiểu của constructor: Constructor mặc định (không có tham số truyền vào – default
constructors) Constructor tham số (parameterized constructors)
- Phạm vi truy cập (Access modifier) Có hai loại modifier trong java: access modifiers và non-access modifiers
- Có 4 kiểu của java access modifiers: private (Mặc định) protected public
- Các non-access modifiers: static, abstract, synchronized, native, volatile, transient, v.v
2.2.Các thành phần ứng dụng của android
1 Activity
Activity là một trong 4 thành phần quan trọng của ứng dụng Android gồm: Activity, Service,
Content Provider, Broadcast receivers
- Activity là gì?
Mỗi Activity thường hoạt động độc lập với nhau nhưng có thể tương tác và truyển dữ liệu qua nhau thông qua Intent
Chính vì Activity hoạt động độc lập nên sẽ có vòng đời riêng từ lúc được khởi tạo cho đến lúc được huỷ đi
onCreate(): Được gọi bởi OS khi activity được tạo(chỉ gọi duy nhất một lần) Dùng để khởi tạo
giao diện hoặc dữ liệu để dùng cho sau này
onStart(): Ngay trước khi activity được chạy và tương tác với người dùng thì hàm được gọi Thông
thường, tại hàm này chúng ta sẽ khởi tạo animation cho UI( nếu có), Audio, hay bất kì đối tượng nào cần thiết để activity có thể hiển thị cho người dùng
onResume(): Hàm này được gọi khi activity chuẩn bị chạy hoặc activity được kích hoạt trở lại từ
trạng thái stop
onPause(): Hàm này được gọi khi ứng dụng chuyển sang chạy nền
onStop(): Hàm này được ngay sau onPause(), khi activity không còn tương tác với người dùng onRestart(): Được gọi sau khi activity bị tạm dừng và giờ được kích hoạt trở lại
onDestroy(): Đây là hàm cuối cùng trong vòng đời của activity Có 2 cách để hàm được gọi: một là
bạn gọi hàm finish() để chủ động tắt một activity, hai là được gọi tự động bởi OS khi tài nguyên cạn kiệt để tránh bị lỗi Memory Leak
2.Toast Notification
- Toast là một message, có dạng như một popup, xuất hiện trên màn hình trong 1 khoảng thời gian ngắn và tự biến mất sau đó
- Toast có thể được tạo và hiển thị trong Activity hoặc trong Servive
- Không cho phép người sử dụng tương tác
- Khi hiển thị sau khoảng thời gian nào đó sẽ tự đóng lại
- Có 2 giá trị mặc định: hằng số Toast.LENGTH_SHORT hiển thị trong 2 giây
Toast.LENGTH_LONG hiển thị trong 3.5 giây
- Sử dụng:
15