You are on page 1of 18

TRƯỜNG ĐẠI HỌC BÁCH KHOA HÀ NỘI

VIỆN ĐIỆN TỬ - VIỄN THÔNG

ĐỒ ÁN THIẾT KẾ I
ĐỀ TÀI: LẬP TRÌNH APP ANDROID HIỂN THỊ THÔNG TIN DỰ BÁO
THỜI TIẾT TRÊN NỀN TẢNG FLUTTER

Giảng viên hướng dẫn: thầy Phan Xuân Vũ

Sinh viên thực hiện Lớp MSSV

Phạm Quang Huy Điện tử 11 – K65 20203456

Hà Nội, 7-2023
MỤC LỤC
LỜI NÓI ĐẦU..............................................................................................................3
DANH MỤC HÌNH VẼ..............................................................................................4
TÓM TẮT ĐỒ ÁN.......................................................................................................5
CHƯƠNG 1: LÝ THUYẾT..........................................................................................6
1.1 Giới thiệu về ..................................................................................................6
1.2 Ưu và nhược điểm của python.......................................................................7
1.3 Giới thiệu về phần mềm thiết kế giao diện Qt Designer.................................7
1.4 Chức năng và cài đặt thư viện được dùng trong chương trình........................8
CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH TÍNH CẦN THIẾT CỦA
HỆ THỐNG....................................................................................................................... 8
2.1 Khảo sát hiện trạng........................................................................................8
2.2 Mục đích đề tài..............................................................................................9
2.3 Yêu cầu đặt ra (đề tài sẽ giải quyết vấn đề gì)................................................9
2.4 Các chức năng chính:...................................................................................10
2.5 Mô tả chức năng của phần mềm...................................................................10
CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ HỆ THỐNG.................................................10
3.1 Sơ đồ chức năng hệ thống............................................................................10
3.2 Sơ đồ luồng dữ liệu......................................................................................11
CHƯƠNG 4: KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN...............................................13
4.1 Kết quả sản phẩm......................................................................................13
4.2 Hướng phát triển........................................................................................15
CHƯƠNG 5: KẾT LUẬN..........................................................................................17
LỜI NÓI ĐẦU
Hiện nay, ứng dụng công nghệ thông tin đang là vấn đề nóng của toàn thế giới.

DANH MỤC HÌNH VẼ

Hình 1: Sơ đồ chức năng hệ thống..............................................................................12


Hình 2: Sơ đồ mức ngữ cảnh......................................................................................13
Hình 3: Sơ đồ mức đỉnh..............................................................................................13
Hình 4: Giao diện hệ thống.........................................................................................14
Hình 5: Kiểu định dạng câu hỏi trong file...................................................................15
Hình 6: Lỗi không đúng định dạng file.......................................................................15
Hình 7: Nhắc nhở câu thiếu đáp án.............................................................................16
Hình 8: Thông tin chung của đề..................................................................................16
TÓM TẮT ĐỒ ÁN
Tên đề tài:“App android hiển thị thông tin dự báo thời tiết trên nền tảng flutter”.
Đối tượng nghiên cứu:
-Các app dự báo thời tiết hiện nay
-Công nghệ: Java
Phương pháp nghiên cứu:
Phương pháp khảo sát áp dụng:
- Tài liệu.
- Khảo sát theo các biểu mẫu, checklist phản hồi.
Phương pháp phân tích, tổng hợp: Mục đích để chứng minh từng luận điểm của đề tài
có tính thuyết phục hơn.

CHƯƠNG 1: LÝ THUYẾT
1.1 Giới thiệu về Java
Guido Van Rossum, một lập trình viên máy tính ở Hà Lan, đã tạo ra Python. Ông bắt
đầu phát triển ngôn ngữ này và đã trải qua 3 giai đoạn phát triển khác nhau tương ứng với
các version
Python được sử dụng trong rất nhiều lĩnh vực:
- Lập trình web
- Ứng dụng di động, app, trò chơi,...
- Sử dụng rộng dãi phổ biến trong nhiều ngành: tự dộng hóa, khoa học máy tính,
IOT,...

1.2 Ưu và nhược điểm của python


Ưu điểm:
-  Dễ dàng đọc và hiểu một chương trình Python vì ngôn ngữ này có cú pháp cơ bản
giống tiếng Anh
- Sử dụng ít dòng mã hơn để viết một chương trình
- Python có một thư viện tiêu chuẩn lớn, chứa nhiều dòng mã có thể tái sử dụng cho
hầu hết mọi tác vụ
- Python có thể được sử dụng trên nhiều hệ điều hành máy tính khác nhau, chẳng hạn
như Windows, macOS, Linux và Unix.
- Mạnh mẽ và hiệu quả
- Hỗ trợ rộng dãi, có thể tìm thấy nhiều nguồn tài liệu tham khảo
Nhược điểm
- Tốc độ thực thi chậm hơn so với một số ngôn ngữ lập trình khác
- Python có yêu cầu về bộ nhớ khá cao đối với một số ứng dụng mà yêu cầu xử lý dữ
liệu lớn hoặc phức tạp
- Vì ngôn ngữ này dễ học và viết code ngắn gọn, nên có thể dẫn đến việc lập trình
viên viết code không tối ưu hoặc khó hiểu
- Python không thể tận dụng tối đa tiềm năng của các bộ xử lý đa nhân so với một số
ngôn ngữ khác

1.3 Giới thiệu về phần mềm thiết kế giao diện Qt Designer.


Qt Designer là một công cụ tích hợp trong bộ công cụ phát triển ứng dụng Qt, được sử
dụng để thiết kế giao diện người dùng cho các ứng dụng Qt. Nó giúp bạn tạo các giao
diện người dùng đồ họa một cách dễ dàng và nhanh chóng mà không cần viết mã C++
hoặc QML.
Dưới đây là một số điểm nổi bật của Qt Designer:
1. Giao diện trực quan: Qt Designer cung cấp môi trường trực quan giúp bạn thiết kế
giao diện người dùng một cách thân thiện với người dùng. Bạn có thể kéo và thả các
thành phần (widgets) như nút bấm, hộp văn bản, danh sách, v.v. vào cửa sổ làm việc và
sắp xếp chúng theo ý muốn.
2. Hỗ trợ đa nền tảng: Qt Designer là một phần của bộ công cụ Qt đa nền tảng, do đó,
bạn có thể sử dụng nó để thiết kế giao diện người dùng cho ứng dụng chạy trên nhiều hệ
điều hành khác nhau.
3. Tích hợp dễ dàng với mã nguồn: Khi bạn thiết kế giao diện trong Qt Designer, nó
sẽ tạo ra các tệp tin ".ui" chứa thông tin về giao diện dưới dạng XML. Bạn sau đó có thể
tích hợp các tệp tin này vào mã nguồn C++ hoặc QML của ứng dụng thông qua trình biên
dịch của Qt.
4. Hỗ trợ các phong cách (styles) tùy chỉnh: Qt Designer cho phép bạn chọn và xem
trước các phong cách khác nhau cho giao diện của bạn, giúp bạn dễ dàng tạo giao diện
đẹp mắt và phù hợp với thiết kế tổng thể của ứng dụng.
5. Tích hợp với Qt Creator: Qt Designer tích hợp mạnh mẽ với Qt Creator - môi
trường phát triển tích hợp (IDE) chính thức của Qt. Bạn có thể mở giao diện được thiết kế
từ Qt Creator và tiếp tục phát triển các thành phần khác của ứng dụng trong cùng một
môi trường.

1.4 Chức năng và cài đặt thư viện được dùng trong chương trình.
+, Để sử dụng được chạy được file .ui bằng code python thì cần thêm thư viện qt5
và qt5tools. Bằng các cài:
Terminal: py -m pip install pyqt5
Terminal: py -m pip install pyqt5-tools
+, Để thao tác trên các file word và excel: py -m pip install python- docx và
py -m pip install openpyxl.
CHƯƠNG 2: KHẢO SÁT HIỆN TRẠNG VÀ XÁC ĐỊNH TÍNH
CẦN THIẾT CỦA HỆ THỐNG
2.1 Khảo sát hiện trạng
Ngày nay, ứng dụng máy tính cá nhân đang là vấn đề sôi động của toàn thế giới.
Không chỉ trong hoạt động khoa học kỹ thuật, lao động sản xuất mà đặc biệt trong lĩnh
vực đào tạo giáo dục, máy tính cũng đã trở thành công cụ trợ giúp đắc lực. Vượt ra ngoài
các ứng dụng chính như giải các bài tập, phân tích, tính toán thiết kế, học trên máy tính,
mô phỏng, tra cứu…, máy tính còn là công cụ để đánh giá kết quả đào tạo thông qua các
bài thi trắc nghiệm.
Trong quá trình đào tạo, đánh giá kết quả học tập bằng các kỳ thi, kiểm tra là công
việc phải tiến hành thường xuyên, không kém phần nặng nhọc cho người quản lý và khó
bảo đảm độ chính xác, tính công bằng khách quan đối với người học. Do đó,việc cải tiến
hệ thống thi, kiểm tra đã và đang được nhiều người quan tâm. Một trong những xu hướng
chung và đầy triển vọng, được nhiều cơ sở đào tạo trên thế giới cũng như trong nước đầu
tư nghiên cứu là áp dụng thi trắc nghiệm trên máy vi tính.
Bài thi trắc nghiệm sẽ giúp cho việc tổ chức kỳ thi một cách nhanh chóng,hiệu quả,
tiết kiệm và đặc biệt là có tính khách quan cao trong đánh giá kết quả của các học viên.
Ngoài ra nó cũng hỗ trợ cho việc kiểm tra kiến thức học viên nhằm nâng cao chất lượng
học tập.
Vậy chúng ta cần 1 phần mềm có thể xáo trộn ra nhiều đề và có chia mức độ khó.
Đảm bảo công bằng cho mọi thí sinh

2.2 Mục đích đề tài


Giáo viên có thể nhập câu hỏi vào ngân hàng. Tạo bộ đề cho riêng mình.
Phần mềm sẽ lựa chọn ngẫu nhiên trong ngân hàng dữ liệu số câu hỏi theo đúng cấu
trúc đề thi và tỷ lệ số câu trong ngân hàng, lấy ngẫu nhiên thứ tự xuất hiện và xáo trộn
đáp án rồi xuất ra thành một đề thi hoàn chỉnh cùng phiếu trả lời cũng như đáp án của
từng đề.
Đề ra hoàn toàn độc lập với ý muốn chủ quan của mỗi giáo viên.
Các đề hoàn toàn tương đương.
Cho phép sửa chữa, bổ sung, hoàn thiện ngân hàng câu hỏi bất cứ lúc nào và sử dụng
lại.
Tăng nhanh tốc độ chấm thi và loại bỏ hoàn toàn yếu tố cảm tính khi chấm.
Ngoài ra với cách soạn đề thi như trên còn tạo điều kiện cho trường không ngừng mở
rộng, tăng số lượng câu hỏi trong ngân hàng đề thi; đa dạng hóa các câu hỏi thi; làm các
nghiên cứu thống kê đánh giá độ khó và phù hợp của từng câu hỏi để tiến tới loại bỏ các
câu quá dễ hoặc quá khó.

2.3 Yêu cầu đặt ra (đề tài sẽ giải quyết vấn đề gì)
 Cho phép tạo nhiều dạng trắc nghiệm khách quan.
 Có giao diện đẹp mắt, chuyên nghiệp hơn.
 Tiện ích này thuận tiện cho giáo viên khi ra đề thi.
 Trắc nghịêm khách quan có khả năng bao quát kiến thức nhiều hơn.

2.4 Các chức năng chính:


 Nhập đề gốc.
 Tùy chọn trộn đề (chọn số lượng đề, trộn các nhóm, chọn kiểu câu)
 Nhập thông tin chung của đề
 Trộn đề
 Bộ đề ra hoàn toàn ngẫu nhiên (từ câu hỏi đến đáp án – tỉ lệ ra trùng 1 đề rất
khó)

2.5 Mô tả chức năng của phần mềm


Chương trình được thiết kế là một phần mềm trộn đề thi trắc nghiệm, chấm dứt tiêu
cực công khai trong thi cử, nâng cao chất lượng và đẩy mạnh trong việc đào tạo theo nhu
cầu xã hội ngày càng phát triển về công nghệ hiện đại, bằng cách trộn ra nhiều đề với 1
cách công bằng.
Chương trình bao gồm quyền sử dụng đó là quyền quản trị(admin)
Quyền quản trị: bao gồm các quyền thêm, xóa, sửa, các câu hỏi của bộ đề thi,cập nhật
các thông tin về bộ đề thi, và tạo thành file đề thi và có thể ứng dụng cho các môn thi
khác !
Chức chính là trộn đề thi bằng cách thêm câu hỏi và đáp án được thiết lập cho đúng
hoặc có thể lấy từ ngân hàng câu hỏi trắc nghiệm, có trong cơ sở dữ liệu, bằng cách thêm
ngẩu nhiên hoặc thêm bằng tay, ngoài ra người tạo đề có thể dùng chức năng tìm kiếm để
lọc ra các câu hỏi dạng dể hoặc khó và đánh dấu câu hỏi rồi them
CHƯƠNG 3: PHÂN TÍCH THIẾT KẾ HỆ THỐNG
3.1 Sơ đồ chức năng hệ thống

phần mềm xáo


trộn đề thi trăc
nghiệm

tùy chọn trộn nhập thông tin


nhập đề gốc trộn đề
đề chung

chọn số lượng
đề

trộn các nhóm

chọn kiểu câu

Hình 1: Sơ đồ chức năng hệ thống

3.2 Sơ đồ luồng dữ liệu


a) Sơ đồ luồng dữ liệu mức ngữ cảnh

Hình 2: Sơ đồ mức ngữ cảnh


b) Sơ đồ luồng dữ liệu mức đỉnh

Hình 3: Sơ đồ mức đỉnh


CHƯƠNG 4: KẾT QUẢ VÀ HƯỚNG PHÁT TRIỂN
4.1 Kết quả sản phẩm

Hình 4: Giao diện hệ thống


Người dùng nhấp vào nút ‘Đề cần trộn’ hệ thống sẽ mở File Explorer lên sau đó
người dùng chọn file có định dạng .docx để bắt đầu trộn đề.
Đề được nhập vào có các câu hỏi theo dạng:
Hình 5: Kiểu định dạng câu hỏi trong file
Câu hỏi được bắt đầu bằng chữ ‘Câu’ + số thứ tự câu + ‘:’ tiếp đó là nội dung câu
hỏi. Các đáp án được bắt đầu bằng các chữ cái A, B, C, D theo sau là nội dung của đáp
án, đáp án nào đúng được đánh dấu bằng cách gạch chân bên dưới của chữ cái của đáp án
đúng.
Về các sử dụng nhóm câu ta sử dụng <#g1> trước câu hỏi ta cần tạo nhóm và khi
gặp <#g1> một lần nữa thì các câu trong khoảng đấy được coi là chung một nhóm.
Khi nhập sai định dạng hoặc là có câu chưa được đánh dấu đáp án sẽ thông báo
cho người dùng.

Hình 6: Lỗi không đúng định dạng file.


Hình 7: Nhắc nhở câu thiếu đáp án.
Sau khi nhập đề thành công, các câu hỏi được hiển thị bên phải chương trình
(hình 4), người dùng sẽ chọn số đề cần in ra trong tùy chọn đề.
Trong thường hợp người dùng cần trộn đề theo nhóm, tích chọn ‘trộn các nhóm’,
khi đó các câu không thuộc nhóm nào sẽ được mặc định được trộn. Các câu trong cùng
một nhóm người dùng tùy chọn số lượng các câu được trộn ở phần spinBox của mỗi
nhóm. Người dùng cần một số câu được mặc định được trộn trong nhóm đó thì nhấp vào
câu cần mặc định được trộn trong nhóm đó, các câu đó sẽ được bao quanh khung xanh
(như hình 4), bấm lần nữa để hủy mặc định.
Lưu ý: Số lượng câu được trộn trong nhóm không được bé hơn số câu mặc định
được trộn trong nhóm đó

Sau khi đã sử dụng các tùy chọn, người dùng cần nhập thêm thông tin chung của
đề.

Hình 8: Thông tin chung của đề.


Cuối cùng khi bấm nút trộn đề, folder được trộn sẽ nằm trong thư mục hiện hành
4.2 Hướng phát triển
Mặc dù đã đạt được những yêu cầu của đề tài đề ra, nhưng để sản phẩm ngày càng được
hoàn thiện và tốt hơn, em xin được đề xuât một số hướng phát triển trong tương lai cho
sản phẩm:
- Cải tiến giao diện phần mềm trở nên đẹp mắt, thân thiện với người dùng hơn.
- Tạo chế độ tối, phù hợp với xu thế hiện nay.
- Tạo giao diện tương thích với các thiết bị smartphone, tablet,…
CHƯƠNG 5: KẾT LUẬN
Trên đây là toàn bộ nội dung của đồ án thiết kế I với đề tài xây dựng phần mềm
xóa trộn đề thi trắc nghiệm.
Quá trình thực hiện đồ án đã giúp chúng em hiểu biết được quy trình xây dựng
một phần mềm, nắm được cái phân tích thiết kế hệ thống, thiết kế cơ sở dữ liệu, các công
cụ để lập trình như python.
Trong suốt quá trình thực hiện đề tài, chúng em đã cố gắng, tích cực tìm hiểu và
học hỏi để có được kết quả tốt nhất. Sản phẩm về cơ bản đã được hoàn thành tuy nhiên
do trình độ và hiểu biết còn hạn chế nên sản phẩm không thể tránh khỏi những thiếu sót.
Chúng em mong nhận được những ý kiến đóng góp của cô để có thể tiến bộ hơn trên con
đường học tập.
TÀI LIỆU THAM KHẢO

[1] https://youngmix.vn/

You might also like