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

Đề án nghiên cứu bộ môn lập trình nâng cao Đề tài báo cáo nghiên cứu tạo giao diện quản lí học sinh tiểu học

44 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

Thông tin cơ bản

Tiêu đề Báo Cáo Nghiên Cứu Tạo Giao Diện Quản Lí Học Sinh Tiểu Học
Tác giả Trần Văn Khánh, Phan Lê Minh, Lê Văn Thanh Tùng, Lê Hùng Duy
Người hướng dẫn ThS. Trần Thanh Nhã
Trường học Trường Đại Học Nguyễn Tất Thành
Chuyên ngành Lập Trình Nâng Cao
Thể loại Báo Cáo Cuối Kì
Định dạng
Số trang 44
Dung lượng 4,32 MB

Cấu trúc

  • Phần 1: Lý Do Chọn Đề Tài (0)
  • Phần 2 Mục Tiêu (7)
    • I. Mục tiêu (7)
    • II. Yêu cầu (8)
    • III. Gợi ý giao diện (8)
    • IV. Lưu ý (9)
  • Phần 3 Phạm Vi Đề Tài (9)
    • 2. Quản lý giáo viên (11)
  • Phần 4:Tổng quan các nghiên cứu có liên quan (13)
    • 1. Mẫu sổ tay quản lý học sinh (13)
    • 2. Mẫu quản lý học sinh trên file Excel (13)
    • 3. Mẫu quản lý học sinh trên phần mềm quản lý học sinh (13)
    • 4. Mẫu quản lý học sinh trên website (14)
    • 5. Mẫu quản lý học sinh trên ứng dụng di động (14)
  • Phần 5 nội dung nghiên cứu (20)
    • I. Mục tiêu nghiên cứu (21)
    • II. Nội dung nghiên cứu (22)
    • III. Phương pháp nghiên cứu (22)
      • 1. Cơ sở quản trị dữ liệu SQL lite (23)
  • Phần 6 KẾT LUẬN (39)
    • IV. Đội ngũ nghiên cứu (39)
    • VII. Phân chia trách nhiệm (40)
  • PHẦN 7 TÀI LIỆU THAM KHẢO (43)

Nội dung

Mục Lục:Mục Lục:...4 Phần 1: Lý Do Chọn Đề Tài...6 Phần 2 : Mục Tiêu...7 Đề tạo ra một giao diện đơn giản quản lý học sinh tiểu học tạo ra sự tiện lợi cho quản lí học sinh và có những ch

Mục Tiêu

Mục tiêu

 Tạo ra một giao diện đơn giản, dễ sử dụng để quản lý học sinh tiểu học.

Giao diện hệ thống cần đáp ứng các chức năng cơ bản như nhập thông tin học sinh mới, cập nhật thông tin học sinh, xem thông tin học sinh, quản lý điểm số và in báo cáo.

Yêu cầu

 Giao diện cần có bố cục rõ ràng, khoa học, dễ nhìn.

 Sử dụng các thuật ngữ đơn giản, dễ hiểu đối với học sinh tiểu học.

 Chức năng cần được thiết kế đơn giản, dễ sử dụng, hạn chế tối đa các thao tác phức tạp.

 Hệ thống cần có khả năng lưu trữ dữ liệu an toàn, bảo mật.

 Cần có hướng dẫn sử dụng chi tiết để người dùng có thể dễ dàng sử dụng hệ thống.

Gợi ý giao diện

 Hiển thị danh sách các chức năng chính của hệ thống như: o Quản lý học sinh o Quản lý điểm số o In báo cáo

 Hiển thị thông tin nhanh về số lượng học sinh, lớp học, giáo viên.

 Cho phép nhập thông tin học sinh mới: o Họ và tên o Ngày sinh o Giới tính o Lớp học o Địa chỉ o Thông tin phụ huynh

 Cho phép cập nhật thông tin học sinh đã có.

 Cho phép xem thông tin chi tiết của học sinh.

 Cho phép tìm kiếm học sinh theo tên, lớp học,

 Cho phép nhập điểm số cho từng môn học của học sinh.

 Cho phép cập nhật điểm số.

 Cho phép xem điểm số của học sinh theo từng môn học, học kỳ, năm học.

 Cho phép tính điểm trung bình cho học sinh.

 Cho phép in danh sách học sinh theo lớp học.

 Cho phép in bảng điểm của học sinh theo từng môn học, học kỳ, năm học.

 Cho phép in báo cáo kết quả học tập của học sinh.

Lưu ý

 Giao diện cần được thiết kế phù hợp với độ tuổi và trình độ nhận thức của học sinh tiểu học.

 Cần sử dụng hình ảnh, màu sắc và âm thanh một cách hợp lý để thu hút sự chú ý của học sinh.

 Hệ thống cần có khả năng hoạt động ổn định trên các trình duyệt web phổ biến.

 Có sự tiện dụng và có thể sử dụng trên mọi thiết bị và dễ tiếp cận không yêu cầu nhiều về mặt cài đặt

Phạm Vi Đề Tài

Quản lý giáo viên

Với giao diện đăng nhập với khả năng tạo ra liên kết với giao diện và có khả năng quản lý đăng nhập thông tin

Với hiển thị đăng nhập có khả năng nhập tài khoản và nhập mật khẩu

 Nhập đúng mật khẩu và đăng nhập

 Nhập sai mật khẩu với thông báo nhập sai mật khẩu và không thể đăng nhập

Hiển Thị Danh Sách Các Chức Năng Chính: Hệ thống cung cấp một loạt các chức năng quan trọng, bao gồm:

Quản lý giáo viên cho phép người dùng nhập và cập nhật thông tin giáo viên, đồng thời xem chi tiết và tìm kiếm theo tên hoặc lớp học Tính năng này giúp giáo viên dễ dàng quan sát và nâng cao tính minh bạch trong quản lý.

In Báo Cáo: Việc in danh sách giáo viên theo lớp học và bảng điểm theo từng môn học, học kỳ

Việc in danh sách học sinh theo lớp học giúp quản lý thông tin một cách hệ thống và có trình tự, mang lại lợi ích cho việc quản lý lớp học cũng như học sinh Đây còn là công cụ quan trọng trong việc lập kế hoạch giáo dục hiệu quả.

Hiển Thị Thông Tin Nhanh: Hệ thống cung cấp thông tin tổng quan nhanh chóng về số lượng của từng học sinh, lớp học, và giáo viên.

Quản Lý giáo viên: Mục này là trọng tâm của hệ thống, với các chức năng chi tiết như:

Nhập Thông Tin giáo viên: Bao gồm các trường thông tin cơ bản như họ và tên, ngày sinh, giới tính, lớp học, địa chỉ

Cập Nhật Thông Tin giáo viên: Cho phép chỉnh sửa thông tin của giáo viên đã có trong hệ thống.

Tất cả dữ liệu được lưu trữ dưới định dạng file JSON, cho phép kết nối với bảng dữ liệu xuất mà giáo viên và học sinh đã nhập qua giao diện.

quan các nghiên cứu có liên quan

Mẫu sổ tay quản lý học sinh

 Đây là mẫu truyền thống được sử dụng từ lâu đời.

 Mẫu sổ tay thường bao gồm các thông tin cơ bản về học sinh như họ và tên, ngày sinh, giới tính, địa chỉ, lớp học,

 Ngoài ra, sổ tay còn có thể ghi chép điểm số, kết quả thi cử, các hoạt động ngoại khóa, vi phạm kỷ luật của học sinh.

 Ưu điểm: Dễ sử dụng, chi phí thấp.

 Nhược điểm: Cồng kềnh, khó quản lý số lượng học sinh lớn, dễ bị thất lạc.

Mẫu quản lý học sinh trên file Excel

 Mẫu này sử dụng phần mềm Excel để lưu trữ và quản lý thông tin học sinh.

 Ưu điểm: Dễ sử dụng, có thể lọc, tra cứu thông tin nhanh chóng, có thể tạo biểu đồ, báo cáo.

 Nhược điểm: Cần có kiến thức cơ bản về Excel, khó chia sẻ dữ liệu với nhiều người cùng lúc.

Mẫu quản lý học sinh trên phần mềm quản lý học sinh

Hiện nay, có nhiều phần mềm quản lý học sinh được phát triển với nhiều tính năng đa dạng, bao gồm quản lý thông tin học sinh, theo dõi điểm số, lập lịch học và quản lý học phí.

 Ưu điểm: Tự động hóa nhiều thao tác, quản lý số lượng học sinh lớn hiệu quả, chia sẻ dữ liệu dễ dàng, có thể truy cập từ xa.

 Nhược điểm: Chi phí cao, cần có kiến thức về phần mềm, phụ thuộc vào nhà cung cấp phần mềm.

Mẫu quản lý học sinh trên website

 Mẫu này sử dụng website để lưu trữ và quản lý thông tin học sinh.

 Ưu điểm: Truy cập từ xa dễ dàng, chia sẻ dữ liệu dễ dàng, có thể tích hợp nhiều tính năng khác như diễn đàn, thư viện,

 Nhược điểm: Cần có kiến thức về lập trình web, chi phí duy trì website.

Mẫu quản lý học sinh trên ứng dụng di động

 Mẫu này sử dụng ứng dụng di động để quản lý thông tin học sinh.

 Ưu điểm: Tiện lợi, dễ sử dụng, có thể tra cứu thông tin mọi lúc mọi nơi.

 Nhược điểm: Cần có smartphone, phụ thuộc vào nhà phát triển ứng dụng.

Mẫu quản lý học sinh bằng excel

Quản lý học sinh tại các trung tâm giáo dục hiện nay đang áp dụng những phương pháp hiệu quả và tiện lợi, mặc dù là hình thức truyền thống Ưu điểm của phương pháp này là sự đơn giản trong cách sử dụng, phù hợp với mọi loại thiết bị và công cụ phổ biến, giúp nâng cao hiệu quả quản lý.

Nhược điểm của hệ thống là việc xuất nhập dữ liệu sữa thông tin học sinh gặp nhiều lỗi, cùng với một số hạn chế trong quản lý và bảo vệ dữ liệu Điều này xảy ra do bất kỳ ai cũng có thể đăng nhập và chỉnh sửa thông tin, dẫn đến nguy cơ mất an toàn cho dữ liệu.

Thiếu sự rõ ràng và cụ thể trong việc áp dụng giao diện đơn bảo mật có thể gây khó khăn cho nhiều cơ sở và thành phần Cần thiết phải đảm bảo tính an toàn và bảo mật thông tin trong các ứng dụng này để đáp ứng nhu cầu đa dạng của người dùng.

Excel là phần mềm bảng tính trong bộ công cụ Microsoft Office, được phát triển bởi Microsoft để phục vụ học sinh, sinh viên và người đi làm Giao diện của Excel bao gồm các hàng và cột, với phần giao nhau giữa chúng được gọi là ô.

Giao diện tạo bởi python

Hình 1.1 – Giao diện chính sau khi chạy code mẫu

Giao diện quản lý học sinh được phát triển bằng Python có thể được tùy chỉnh đa dạng dựa trên nhu cầu sử dụng và sở thích cá nhân Tuy nhiên, giao diện này thường bao gồm các thành phần chính như bảng điều khiển, danh sách học sinh, và các chức năng quản lý dữ liệu.

 Hiển thị tên phần mềm quản lý học sinh, logo nhà trường, tên người dùng hiện tại.

 Có thể thêm các nút chức năng như đăng xuất, thay đổi mật khẩu, trợ giúp.

 Cung cấp các chức năng chính của phần mềm như quản lý học sinh, quản lý điểm số, quản lý lịch học, quản lý tài chính,

 Mỗi chức năng chính có thể được chia thành các chức năng phụ.

 Hiển thị thông tin chi tiết về chức năng được chọn.

Khi sử dụng chức năng "Quản lý học sinh", người dùng có thể dễ dàng xem danh sách học sinh, thực hiện các thao tác tìm kiếm, thêm mới, chỉnh sửa hoặc xóa thông tin học sinh.

 Hiển thị thông tin trạng thái của phần mềm như phiên bản phần mềm, kết nối mạng,

 Cung cấp các công cụ hỗ trợ cho việc sử dụng phần mềm như lưu, in, xuất báo cáo,

6.giao diện quản lý học sinh còn có thể bao gồm các thành phần khác như:

 Thanh tìm kiếm Ưu điểm Nhược điểm

Dễ dàng học và sử dụng

Phù hợp và tiết kiệm thời gian đối với những dự án nhỏ

Chỉ có những chức năng cơ bản và có giới hạn

Bảng 1.2 – Ưu điểm và Nhược điểm

Trang web tham khảo cách tạo chức năng trên tkinter Đường dẫn: https://jscommands.com/building-a-tkinter-student- registration-and-management-system-part-1/

Một số chức năng cơ bản của tkinter như tạo tài khoản cho người dùng.

Hình 1.3 – Đoạn mã hướng dẫn tạo các chức năng

Công cụ sử dụng là python :

Python là một ngôn ngữ lập trình bậc cao, được sử dụng rộng rãi cho nhiều mục đích khác nhau như:

Python là ngôn ngữ lập trình phổ biến trong phát triển web, cho phép xây dựng từ các trang web đơn giản đến các ứng dụng web phức tạp Các framework nổi bật như Django và Flask, được viết bằng Python, hỗ trợ lập trình viên trong việc phát triển ứng dụng một cách hiệu quả.

Python sở hữu nhiều thư viện mạnh mẽ như Numpy, Pandas và Scikit-learn, giúp hỗ trợ phân tích dữ liệu, học máy và trí tuệ nhân tạo hiệu quả.

Lập trình khoa học với Python đang trở thành công cụ quan trọng trong nhiều lĩnh vực như vật lý, sinh học và kỹ thuật Nhờ vào sự phong phú của các thư viện, Python hỗ trợ tính toán khoa học, mô phỏng và trực quan hóa dữ liệu hiệu quả.

Tự động hóa: Python có thể được sử dụng để tự động hóa các tác vụ lặp đi lặp lại, giúp tiết kiệm thời gian và công sức.

Giáo dục: Python là ngôn ngữ lập trình phổ biến được sử dụng trong giáo dục vì nó dễ học, dễ đọc và dễ sử dụng.

Dưới đây là một số ưu điểm của Python:

Dễ học: Python có cú pháp đơn giản, dễ đọc và dễ hiểu, ngay cả đối với người mới bắt đầu.

Python là ngôn ngữ lập trình dễ sử dụng nhờ vào sự phong phú của các thư viện và framework có sẵn, giúp tiết kiệm thời gian và công sức cho lập trình viên trong quá trình viết code.

Miễn phí và mã nguồn mở: Python là ngôn ngữ miễn phí và mã nguồn mở, bạn có thể sử dụng và sửa đổi nó một cách tự do.

Python có một cộng đồng người dùng và nhà phát triển đông đảo, luôn sẵn sàng hỗ trợ khi bạn gặp khó khăn Ngoài ra, Python còn có khả năng chạy trên nhiều hệ điều hành khác nhau như Windows, macOS và Linux.

Python là một ngôn ngữ lập trình mạnh mẽ, linh hoạt và dễ sử dụng, lý tưởng cho nhiều mục đích khác nhau Nếu bạn đang tìm kiếm ngôn ngữ lập trình để bắt đầu, Python chính là lựa chọn tuyệt vời cho bạn.

Ngoài những thông tin trên, bạn có thể tham khảo thêm một số tài liệu sau: https://www.python.org/downloads/ https://realpython.com/ https://www.w3schools.com/python/

nội dung nghiên cứu

Mục tiêu nghiên cứu

 Phát triển ra giao diện quản lý học sinh.

Tkinter trong Python là gì?

Tkinter là một thư viện GUI (Graphical User Interface) tiêu chuẩn cho

Python cho phép bạn phát triển giao diện người dùng đồ họa cho ứng dụng của mình thông qua Tkinter, một bộ công cụ GUI mạnh mẽ Tkinter cung cấp nhiều widget như nút bấm, hộp thoại và menu, giúp bạn dễ dàng sắp xếp và thiết kế giao diện theo ý tưởng của mình Những ưu điểm nổi bật của Tkinter bao gồm tính đơn giản, khả năng tùy biến cao và hỗ trợ đa nền tảng.

 Dễ học, dễ sử dụng: Tkinter có cú pháp đơn giản, dễ hiểu, ngay cả đối với người mới bắt đầu học lập trình Python.

 Miễn phí và mã nguồn mở: Tkinter là thư viện miễn phí và mã nguồn mở, bạn có thể sử dụng và sửa đổi nó một cách tự do.

 Đa nền tảng: Tkinter có thể chạy trên nhiều hệ điều hành khác nhau như Windows, macOS, Linux.

 Cộng đồng lớn: Tkinter có cộng đồng người dùng và nhà phát triển lớn, luôn sẵn sàng hỗ trợ bạn khi gặp khó khăn.

 Giao diện không đẹp mắt: So với các thư viện GUI khác như PyQt,

Kivy, giao diện của Tkinter thường không được đẹp mắt và hiện đại.

 Hiệu suất chậm: Tkinter có thể hoạt động chậm hơn so với các thư viện GUI khác, đặc biệt là khi bạn tạo các giao diện phức tạp.

Nội dung nghiên cứu

 Xác định các đối tượng người dùng chính (giáo viên, học sinh, phụ huynh).

 Phân tích nhu cầu và mong muốn của từng đối tượng người dùng.

 Nghiên cứu các giao diện quản lý học sinh hiện có trên thị trường.

 Xác định các tính năng cần thiết cho giao diện quản lý học sinh mới.

 Thiết kế giao diện người dùng thân thiện, dễ sử dụng và trực quan.

 Sử dụng các nguyên tắc thiết kế phù hợp với từng đối tượng người dùng.

 Đảm bảo giao diện tương thích với nhiều thiết bị khác nhau (máy tính, máy tính bảng, điện thoại thông minh).

 Lựa chọn công nghệ phù hợp để phát triển phần mềm.

 Viết mã nguồn và kiểm thử phần mềm.

 Triển khai phần mềm và vận hành thử nghiệm.

4 Đánh giá và hoàn thiện:

 Thu thập phản hồi từ người dùng và đánh giá hiệu quả của giao diện quản lý học sinh.

 Phân tích dữ liệu thu thập được và đề xuất các giải pháp cải tiến.

 Cập nhật và hoàn thiện giao diện quản lý học sinh theo định kỳ.

Phương pháp nghiên cứu

1.Sự dụng phần mềm phython (tkinter)

Tkinter là thư viện GUI tiêu chuẩn cho Python, cho phép người dùng nhanh chóng và dễ dàng tạo ra các ứng dụng giao diện người dùng Với Tkinter, bạn có thể sử dụng giao diện hướng đối tượng để phát triển ứng dụng dựa trên bộ công cụ Tk.

Sau đây là các bước để tạo một ứng dụng Tkinter: import Tkinter module.

Tạo cửa sổ chính của ứng dụng GUI.

Thêm một hoặc nhiều widget nói trên vào ứng dụng GUI.

Gọi vòng lặp sự kiện chính để các hành động có thể diễn ra trên màn hình máy tính của người dùng.

1 Cơ sở quản trị dữ liệu SQL lite:

Cơ sở dữ liệu SQLite là gì?

SQLite là một hệ thống quản lý cơ sở dữ liệu quan hệ nhẹ và nhúng, cho phép tích hợp trực tiếp vào ứng dụng mà không cần máy chủ cơ sở dữ liệu riêng biệt Hệ thống này được phát triển bằng ngôn ngữ lập trình, mang lại sự tiện lợi và hiệu suất cao cho các ứng dụng.

C và được phát hành theo giấy phép mã nguồn mở https://www.gnu.org/licenses/gpl-3.0.en.html.

SQLite được sử dụng rộng rãi trong nhiều ứng dụng khác nhau, bao gồm:

SQLite là một giải pháp lưu trữ dữ liệu phổ biến cho ứng dụng di động nhờ vào kích thước nhỏ gọn, hiệu suất cao và không cần cài đặt máy chủ cơ sở dữ liệu.

SQLite là một giải pháp lý tưởng cho việc lưu trữ dữ liệu cục bộ trong các ứng dụng web, bao gồm dữ liệu bộ nhớ cache và thông tin người dùng.

SQLite là một công cụ dòng lệnh mạnh mẽ cho phép người dùng quản lý cơ sở dữ liệu hiệu quả, bao gồm các chức năng như tạo bảng, chèn dữ liệu và thực hiện các truy vấn dữ liệu.

SQLite là phần mềm nhúng phổ biến, thường được sử dụng trong các thiết bị như bộ định tuyến và máy in để lưu trữ dữ liệu cấu hình và dữ liệu nhật ký Ưu điểm của SQLite bao gồm tính nhẹ, dễ triển khai và khả năng hoạt động hiệu quả trên các hệ thống với tài nguyên hạn chế.

 Nhỏ gọn: Tệp cơ sở dữ liệu SQLite thường chỉ có vài kilobyte, khiến nó trở nên lý tưởng cho các thiết bị có bộ nhớ hạn chế.

 Hiệu quả: SQLite có hiệu suất truy vấn và thao tác dữ liệu cao.

 Dễ sử dụng: SQLite có cú pháp SQL đơn giản và dễ học.

 Miễn phí và mã nguồn mở: SQLite là miễn phí và mã nguồn mở, bạn có thể sử dụng và sửa đổi nó một cách tự do.

SQLite không cần cài đặt máy chủ cơ sở dữ liệu riêng biệt, giúp tiết kiệm thời gian và công sức cho người dùng.

 Kích thước cơ sở dữ liệu: SQLite không phù hợp cho các cơ sở dữ liệu lớn vì nó có giới hạn kích thước 5GB.

SQLite không hỗ trợ tính năng đa người dùng thực sự, do đó, nó không thích hợp cho các ứng dụng yêu cầu nhiều người dùng truy cập đồng thời vào cơ sở dữ liệu.

SQLite là một hệ thống quản lý cơ sở dữ liệu quan hệ nhỏ gọn, hiệu quả và dễ sử dụng Nó hoàn toàn miễn phí và phù hợp cho nhiều loại ứng dụng khác nhau.

Ngoài những thông tin trên, bạn có thể tham khảo thêm một số tài liệu sau:

 https://www.w3schools.com/sql/

 https://docs.oracle.com/en/database/oracle/oracle-database/19/sqlrf/ Introduction-to-Oracle-SQL.html

Với giao diện đăng nhập với khả năng tạo ra liên kết với giao diện và có khả năng quản lý đăng nhập thông tin

Với hiển thị đăng nhập có khả năng nhập tài khoản và nhập mật khẩu

 Nhập đúng mật khẩu và đăng nhập

 Nhập sai mật khẩu với thông báo nhập sai mật khẩu và không thể đăng nhập

 Tạo ra một giao diện đơn giản, dễ sử dụng để quản lý học sinh tiểu học.

Giao diện cần đáp ứng các chức năng cơ bản như nhập thông tin học sinh mới, cập nhật thông tin học sinh, xem thông tin học sinh và quản lý điểm số để đảm bảo hiệu quả trong việc quản lý dữ liệu học sinh.

Tạo giao diện đăng nhập với nội dung đăng nhập vào giao diện

Và có nút đăng nhập , nút chạy

Để đăng nhập thành công, người dùng cần nhập đúng tên đăng nhập và mật khẩu Nếu tên đăng nhập là "khanhcubu" và mật khẩu là "123", hệ thống sẽ hiển thị thông báo "Đăng nhập thành công!" Ngược lại, nếu thông tin không chính xác, thông báo "Tên đăng nhập hoặc mật khẩu không chính xác!" sẽ được hiển thị.

 Hiển thị danh sách các chức năng chính của hệ thống như: o Quản lý học sinh o Quản lý điểm số o In báo cáo

 Hiển thị thông tin nhanh về số lượng học sinh, lớp học, giáo viên.

 Cho phép nhập thông tin học sinh mới: o Họ và tên o Ngày sinh o Giới tính o Lớp học o Địa chỉ o Thông tin phụ huynh

 Cho phép cập nhật thông tin học sinh đã có.

 Cho phép xem thông tin chi tiết của học sinh.

 Cho phép tìm kiếm học sinh theo tên, lớp học,

 Cho phép nhập điểm số cho từng môn học của học sinh.

 Cho phép cập nhật điểm số.

 Cho phép xem điểm số của học sinh theo từng môn học, học kỳ, năm học.

 Cho phép tính điểm trung bình cho học sinh.

 Cho phép in danh sách học sinh theo lớp học.

 Cho phép in bảng điểm của học sinh theo từng môn học, học kỳ, năm học

 Cho phép in báo cáo kết quả học tập của học sinh.

 # Hàm để thêm học sinh mới

 hs_info {  'ho_ten': ho_ten_var.get(),

 'ngay_sinh': ngay_sinh_var.get(),

 'gioi_tinh': gioi_tinh_var.get(),

 'dia_chi': dia_chi_var.get(),

 'lop_hoc': lop_hoc_var.get(),

 'phu_huynh': phu_huynh_var.get(),

 # Thêm thông tin học sinh vào danh sách

 danh_sach_hs.append(hs_info)

 # Hàm để cập nhật thông tin học sinh

 def cap_nhat_thong_tin():

 messagebox.showerror("Lỗi", "Vui lòng chọn một học sinh để cập nhật.")

 selected_hs danh_sach_hs selected_index = [ [0]]

 selected_hs['ho_ten'] =ho_ten_var.get()

 selected_hs['ngay_sinh'] =ngay_sinh_var.get()

 selected_hs['gioi_tinh'] =gioi_tinh_var.get()

 selected_hs['dia_chi'] =dia_chi_var.get()

 selected_hs['diem'] =diem_var.get()

 selected_hs['lop_hoc'] =lop_hoc_var.get()

 selected_hs['phu_huynh'] =phu_huynh_var.get()

 # Hàm để lưu dữ liệu học sinh vào file

 with open('du_lieu_hs.json', 'w') file:as

 json.dump(danh_sach_hs, file)

 # Hàm để tìm kiếm học sinh

 tim_kiem_term tim_kiem_var = get()

 ket_qua_tim_kiem [= hs for in hs danh_sach_hs if tim_kiem_term.lower() in ['ho_ten'].lower() or hs tim_kiem_term in hs['lop_hoc']]

 cap_nhat_listbox(ket_qua_tim_kiem)

 # Hàm để xóa học sinh đã chọn

 messagebox.showerror("Lỗi", "Vui lòng chọn một học sinh để xóa.")

 # Xác nhận trước khi xóa

 xac_nhan =messagebox.askyesno("Xác Nhận" "Bạn có chắc chắn , muốn xóa học sinh này không?")

 del danh_sach_hs selected_index[ [ ]]0

 # Hàm để cập nhật listbox với dữ liệu học sinh

 def cap_nhat_listbox(danh_sach None= ):

 if danh_sach is None:

 danh_sach danh_sach_hs  listbox.delete(0, END)

 for hs danh_sach:in

 listbox.insert(END hs, ['ho_ten'] +" - " +hs['lop_hoc'])

 with open('du_lieu_hs.json', 'r') file:as

 # Tải dữ liệu học sinh

 danh_sach_hs =json.load(file)

 # Cập nhật listbox với dữ liệu mới

 messagebox.showerror("Lỗi", "Không tìm thấy file dữ liệu.")

 # Hàm để cập nhật listbox với dữ liệu học sinh

 def cap_nhat_listbox(danh_sach None= ):

 if danh_sach is None:

 danh_sach danh_sach_hs  listbox.delete(0, END)

 for hs danh_sach:in

 listbox.insert(END hs, ['ho_ten'] +" - " +hs['lop_hoc'])

 # Khởi tạo cửa sổ chính

 root.title('Quản Lý Học Sinh Tiểu Học')

 Label(root, text='Ứng Dụng Quản Lý Học Sinh', fg='red', font=('cambria', 16), width%).grid row( =0, columnspan=2)

 listbox =Listbox(root width, , height )

 Label(root, text='Họ và Tên:').grid(row=2, column=0)

 Entry(root, textvariable ho_ten_var= , width0).grid row=2, ( column=1)

 Label(root, text='Ngày Sinh:').grid(row=3, column=0)

 Entry(root, textvariable ngay_sinh_var= , width0).grid(row=3, column=1)

 Label(root, text='Giới Tính:').grid row=4, column=0( )

 Entry(root, textvariable gioi_tinh_var= , width0).grid(row=4, column=1)

 Label(root, text='Địa Chỉ:').grid row=5, column=0( )

 Entry(root, textvariable dia_chi_var= , width0).grid row=5, ( column=1)

 Label(root, text='Lớp Học:').grid row=6, column=0( )

 Entry(root, textvariable lop_hoc_var= , width0).grid row=6, ( column=1)

 Label(root, text='Thông Tin Phụ Huynh:').grid(row=7, column=0)

 Entry(root, textvariable phu_huynh_var= , width0).grid row=7, ( column=1)

 Label(root, text='Tìm Kiếm:').grid row=8, column=0( )

 Entry(root, textvariable tim_kiem_var= , width0).grid(row=8, column=1)

 Button(root text, ='Tìm', command=tim_kiem_hs).grid row( =8, column=2)

 Label(root, text='Điểm').grid(row=9, column=0)

 Entry(root, textvariable diem_var= , width1).grid row=9, ( column=1)

 Button(button_frame text, ='Thêm', command=them_hoc_sinh).pack side LEFT( = )

 Button(button_frame text, ='Cập Nhật', command_nhat_thong_tin).pack side LEFT( = )

 Button(button_frame text, ='Xóa', command=xoa_hoc_sinh).pack side LEFT( = )

 Button(button_frame text, ='Thoát', command root= quit).pack side LEFT( = )

 button_frame grid row ( , column=1)

 button_tai_du_lieu =Button(root text, ='Tải Dữ Liệu', command=tai_du_lieu)

 button_tai_du_lieu grid row ( , column=1)

 def chon_lua_chon(event):

 lua_chon combobox = get() # Lấy giá trị được chọn hiện tại

 print(f"Bạn đã chọn: {lua_chon}")

 combobox =ttk.Combobox(root values, =["Giỏi" "Khá" "Yếu", , ], width)

 combobox.current(0) # Chọn giá trị mặc định (lựa chọn đầu tiên)

 combobox.bind("", chon_lua_chon) # Gắn sự kiện khi chọn

 combobox grid row ( , column=5, sticky="w")

 def tinh_diem_trung_binh():

 """Tính điểm trung bình dựa trên điểm từng môn."""

 diem_toan =float(diem_toan_entry.get())

 diem_ly =float(diem_ly_entry.get())

 diem_hoa_ =float(diem_hoa_entry.get())

 diem_trung_binh (= diem_toan diem_ly diem_hoa_ + + ) /3

 diem_trung_binh_label config text ( =f"Điểm trung bình: {diem_trung_binh:.2f}")

 # Tạo nhãn và ô nhập điểm cho từng môn

 diem_toan_label =tk Label (root text, ="Điểm giữa:")

 diem_toan_label grid row ( =6, column=4)

 diem_toan_entry =tk Entry (root)

 diem_toan_entry grid row ( =6, column=5)

 diem_ly_label =tk Label (root text, ="Điểm cuối:")

 diem_ly_label grid row ( =7, column=4)

 diem_ly_entry =tk Entry (root)

 diem_ly_entry grid row ( =7, column=5)

 diem_hoa_label =tk Label (root text, ="Điểm Thường Xuyên:")

 diem_hoa_label grid row ( =8, column=4)

 diem_hoa_entry =tk Entry (root)

 diem_hoa_entry grid row ( =8, column=5)

 # Tạo nút tính điểm trung bình

 tinh_diem_trung_binh_button =tk Button (root text, ="Tính điểm trung bình", command=tinh_diem_trung_binh)

 tinh_diem_trung_binh_button grid row ( =9, column=5, columnspan=1)

 # Tạo nhãn hiển thị điểm trung bình

 diem_trung_binh_label =tk Label (root text, ="Điểm trung bình:")

 diem_trung_binh_label grid row ( , column=5, columnspan=1)

 Cho phép nhập thông tin học sinh mới: o Họ và tên o Ngày sinh o Giới tính o Lớp học o Địa chỉ o Thông tin giáo viên môn

 Cho phép cập nhật thông tin học giáo viên đã có.

 Cho phép xem thông tin chi tiết của giáo viên.

 Cho phép tìm kiếm giáo viên theo tên, lớp học,

 # Hàm để thêm học sinh mới

 hs_info {  'ho_ten': ho_ten_var.get(),

 'ngay_sinh': ngay_sinh_var.get(),

 'gioi_tinh': gioi_tinh_var.get(),

 'dia_chi': dia_chi_var.get(),

 'lop_hoc': lop_hoc_var.get(),

 # Thêm thông tin học sinh vào danh sách

 danh_sach_hs.append(hs_info)

 # Hàm để cập nhật thông tin học sinh

 def cap_nhat_thong_tin():

 messagebox.showerror("Lỗi", "Vui lòng chọn một học sinh để cập nhật.")

 selected_hs danh_sach_hs selected_index = [ [0]]

 selected_hs['ho_ten'] =ho_ten_var.get()

 selected_hs['ngay_sinh'] =ngay_sinh_var.get()

 selected_hs['gioi_tinh'] =gioi_tinh_var.get()

 selected_hs['dia_chi'] =dia_chi_var.get()

 selected_hs['lop_hoc'] =lop_hoc_var.get()

 selected_hs['thong tin'] =thongtingiaovien.get()

 # Hàm để lưu dữ liệu học sinh vào file

 with open('du_lieu_hs.json', 'w') file:as

 json.dump(danh_sach_hs, file)

 # Hàm để tìm kiếm học sinh

 tim_kiem_term tim_kiem_var = get()

 ket_qua_tim_kiem [= hs for in hs danh_sach_hs if tim_kiem_term.lower() in ['ho_ten'].lower() or hs tim_kiem_term in hs['lop_hoc']]

 cap_nhat_listbox(ket_qua_tim_kiem)

 # Hàm để xóa học sinh đã chọn

 messagebox.showerror("Lỗi", "Vui lòng chọn một học sinh để xóa.")

 # Xác nhận trước khi xóa

 xac_nhan =messagebox.askyesno("Xác Nhận" "Bạn có chắc chắn , muốn xóa học sinh này không?")

 del danh_sach_hs selected_index[ [ ]]0

 # Hàm để cập nhật listbox với dữ liệu học sinh

 def cap_nhat_listbox(danh_sach None= ):

 if danh_sach is None:

 danh_sach danh_sach_hs  listbox.delete(0, END)

 for hs danh_sach:in

 listbox.insert(END hs, ['ho_ten'] +" - " +hs['lop_hoc'])

 with open('du_lieu_hs.json', 'r') file:as

 # Tải dữ liệu học sinh

 danh_sach_hs =json.load(file)

 # Cập nhật listbox với dữ liệu mới

 messagebox.showerror("Lỗi", "Không tìm thấy file dữ liệu.")

 # Hàm để cập nhật listbox với dữ liệu học sinh

 def cap_nhat_listbox(danh_sach None= ):

 if danh_sach is None:

 danh_sach danh_sach_hs  listbox.delete(0, END)

 for hs danh_sach:in

 listbox.insert(END hs, ['ho_ten'] +" - " +hs['lop_hoc'])

 # Khởi tạo cửa sổ chính

 root.title('Quản Lý Học Sinh Tiểu Học')

 Label(root, text='giáo viên', fg='red', font=('cambria', 16), width%).grid row( =0, columnspan=2)

 listbox =Listbox(root width, , height )

 Label(root, text='Họ và Tên:').grid(row=2, column=0)

 Entry(root, textvariable ho_ten_var= , width0).grid row=2, ( column=1)

 Label(root, text='Ngày Sinh:').grid(row=3, column=0)

 Entry(root, textvariable ngay_sinh_var= , width0).grid(row=3, column=1)

 Label(root, text='Giới Tính:').grid row=4, column=0( )

 Entry(root, textvariable gioi_tinh_var= , width0).grid(row=4, column=1)

 Label(root, text='Địa Chỉ:').grid row=5, column=0( )

 Entry(root, textvariable dia_chi_var= , width0).grid row=5, ( column=1)

 Label(root, text='Lớp Học:').grid row=6, column=0( )

 Entry(root, textvariable lop_hoc_var= , width0).grid row=6, ( column=1)

 Label(root, text='Thông Tin Giáo Viên Môn:').grid row=7, ( column=0)

 Entry(root, textvariable thongtingiaovien= , width0).grid row=7, ( column=1)

 Label(root, text='Tìm Kiếm:').grid row=8, column=0( )

 Entry(root, textvariable tim_kiem_var= , width0).grid(row=8, column=1)

 Button(root text, ='Tìm', command=tim_kiem_hs).grid row( =8, column=2)

 Button(button_frame text, ='Thêm', command=them_hoc_sinh).pack side LEFT( = )

 Button(button_frame text, ='Cập Nhật', command_nhat_thong_tin).pack side LEFT( = )

 Button(button_frame text, ='Xóa', command=xoa_hoc_sinh).pack side LEFT( = )

 Button(button_frame text, ='Thoát', command root= quit).pack side LEFT( = )

 button_frame grid row ( =9, column=1)

 button_tai_du_lieu =Button(root text, ='Tải Dữ Liệu', command=tai_du_lieu)

 button_tai_du_lieu grid row ( , column=1)

Ngày đăng: 14/12/2024, 22:43

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

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN