INTRODUCTION
FLOW CONTROL
FUNCTIONS
DATATYPES
OBJECT & CLASS
ADVANCED TOPICS
BỔ SUNG
PYTHON CĂN BẢN
CÁC CHỦ ĐỀ
BÀI MỚI NHẤT
MỚI CẬP NHẬT

Chương trình quản lý sinh viên bằng class trong Python

Hãy viết chương trình quản lý sinh viên bằng class trong Python, bằng cách sử dụng nội dung của bài tập quản lý sinh viên cơ bản, tức là chuyển sang sử dụng hướng đối tượng class để giải.

test php

Bài giải

-------------------- ######## --------------------

Tương tự, vì các bạn đã biết cách giải bài này rồi nên trong bài tập này mình sẽ hướng dẫn chuyển nó sang class trong Python thôi nhé.

test php

banquyen png
Bài viết này được đăng tại freetuts.net, không được copy dưới mọi hình thức.
  • Chuyển biến lưu trữ sinh viên thành một thuộc tính private __data
  • Chuyển tất cả các hàm thành phương thức, đồng thời sửa lại theo cấu trúc của class.

Các bước thực hiện chuyển sang class như sau:

Bước 1: Tạo một file student.py cùng cấp với file main.py

tao file student class JPG

Bài viết này được đăng tại [free tuts .net]

Bước 2: Mở file student.py lên, sau đó nhập nội dung như sau.

class Student:

    # Chứa dữ liệu sinh viên
    __data = []

    def addStudent(self):
        """Hàm thêm một sinh viên"""
        print("*** THÊM SINH VIÊN ***")

        # Cấu trúc lưu trữ một sinh viên
        infor = {
            'id' : '',
            'name' : ''
        }

        # Nhập ID, có kiểm tra trùng ID thì nhập lại
        print("Nhập ID sinh viên:")
        id = input()

        while True:
            student = self.findStudent(id)
            if student != False:
                print("ID này đã tồn tại, vui lòng nhập lại:")
                id = input()
            else:
                break

        infor['id'] = id

        # Nhập tên
        print("Nhập tên sinh viên:")
        infor['name'] = input()

        # Lưu vào danh sách sv
        self.listStudents.append(infor)


    def findStudent(self, id):
        """Hàm tìm một sinh viên"""
        for i in range(0, len(self.listStudents)):
            if self.listStudents[i]['id'] == id:
                # Trả về mảng gồm 2 phần tử,
                # 0 là vị trí tìm thấy và 1 là dữ liệu
                return [i, self.listStudents[i]]
        return False

    def deleteStudent(self):
        """Hàm xóa sih viên"""
        print("*** XÓA SINH VIÊN ***")
        print("Nhập ID sinh viên cần xóa:")
        id = input()

        student = self.findStudent(id)

        if student != False:
            self.listStudents.remove(student[1])
            print("Xóa sinh viên thành công")
        else :
            print("Không tìm thấy sinh viên cần xóa")

    def showStudents(self):
        """Hàm hiển thị danh sách sv"""
        print("*** DANH SÁCH SINH VIÊN HIỆN TẠI ***")
        for i in range(0, len(self.listStudents)):
            print("[",self.listStudents[i]['id'],"]", "[",self.listStudents[i]['name'],"]",)

Bước 3: Sửa lại file main.py như sau.

# HỌC PYTHON TAI FREETUTS.NET
# AUTHOR: CƯỜNG NGUYỄN

# Import thư viện student
import student

# CHƯƠNG TRÌNH CHÍNH

s = student.Student()

action = 0

while action >= 0:
    if action == 1:
        s.addStudent()
    elif action == 2:
        s.deleteStudent()
    elif action == 3:
        s.editStudent()
    elif action == 4:
        s.showStudents()

    print("Chọn chức năng muốn thực hiện:")
    print("Nhập 1: Thêm sinh viên")
    print("Nhập 2: Xóa sinh viên")
    print("Nhập 3: Sửa sinh viên")
    print("Nhập 4: Xem danh sách sinh viên")
    print("Nhập 0: Thoát khỏi chương trình")
    action = int(input())
    if action == 0:
        break

Như bạn thấy, chương trình chính chỉ thay đổi phần import và khai báo một đối tượng Student.

Còn class student thì chuyển mọi thứ sang cấu trúc của class như: Sử dụng thuộc tính self, khai báo biến __ data ở trạng thái private.

Chạy lên kết quả vẫn không có gì khác biệt.

chuong trinh quan ly sinh vien python JPG

Danh sách bài tập

Cùng chuyên mục:

Cách sử dụng lớp PyQt QMenu để tạo menu

Cách sử dụng lớp PyQt QMenu để tạo menu

Cách sử dụng lớp QMainWindow của PyQt để tạo cửa sổ

Cách sử dụng lớp QMainWindow của PyQt để tạo cửa sổ

Cách dùng lớp PyQt QFileDialog để tạo hộp thoại chọn file

Cách dùng lớp PyQt QFileDialog để tạo hộp thoại chọn file

Cách dùng lớp PyQt QInputDialog để tạo một hộp thoại nhập liệu

Cách dùng lớp PyQt QInputDialog để tạo một hộp thoại nhập liệu

Cách sử dụng lớp PyQt QMessageBox để tạo một hộp thoại

Cách sử dụng lớp PyQt QMessageBox để tạo một hộp thoại

Cách sử dụng lớp PyQt QProgressBar để tạo một widget progress bar

Cách sử dụng lớp PyQt QProgressBar để tạo một widget progress bar

Cách dùng lớp PyQt QTextEdit để tạo một widget cho phép chỉnh sửa

Cách dùng lớp PyQt QTextEdit để tạo một widget cho phép chỉnh sửa

Cách dùng lớp PyQt QGroupBox để tạo một khung nhóm với tiêu đề

Cách dùng lớp PyQt QGroupBox để tạo một khung nhóm với tiêu đề

Cách dùng lớp PyQt QTabWidget để tạo một widget dạng tab

Cách dùng lớp PyQt QTabWidget để tạo một widget dạng tab

Cách dùng PyQt QWidget để làm container chứa các widget khác.

Cách dùng PyQt QWidget để làm container chứa các widget khác.

Cách sử dụng lớp PyQt QSlider để tạo một widget thanh trượt (slider).

Cách sử dụng lớp PyQt QSlider để tạo một widget thanh trượt (slider).

Cách tạo một widget nhập ngày và giờ sử dụng PyQt QDateTimeEdit

Cách tạo một widget nhập ngày và giờ sử dụng PyQt QDateTimeEdit

Cách tạo một widget nhập giờ sử dụng lớp PyQt QTimeEdit

Cách tạo một widget nhập giờ sử dụng lớp PyQt QTimeEdit

Cách tạo một widget nhập ngày sử dụng lớp PyQt QDateEdit

Cách tạo một widget nhập ngày sử dụng lớp PyQt QDateEdit

Cách sử dụng widget PyQt QSpinBox để tạo một spin box

Cách sử dụng widget PyQt QSpinBox để tạo một spin box

Sử dụng PyQt QComboBox để tạo Widget Combobox

Sử dụng PyQt QComboBox để tạo Widget Combobox

Cách sử dụng lớp PyQt QRadioButton

Cách sử dụng lớp PyQt QRadioButton

Cách sử dụng lớp QCheckBox trong PyQt

Cách sử dụng lớp QCheckBox trong PyQt

Cách sử dụng QFormLayout trong PyQt

Cách sử dụng QFormLayout trong PyQt

Cách sử dụng QGridLayout trong PyQt

Cách sử dụng QGridLayout trong PyQt

Top