Python編寫簡單的學生資訊管理系統

OneMan-zk發表於2020-11-08

初學Python,編寫簡單的學生資訊管理系統,望大牛能給出繼續編寫以及優化的建議。

# 學生資訊有姓名、性別、年齡、學號、班級。

# 基本功能展示:
"""
============================
歡迎使用【學生資訊管理系統】
    1.顯示所有學生資訊
    2.新建學生資訊
    3.查詢學生資訊
    4.修改學生資訊
    5.刪除學生資訊
    0.退出系統
============================

"""
# 所有學生資訊用一個列表模擬學生資料庫。
student_data = [
    {
        '姓名': '李明',
        '性別': '男',
        '年齡': 18,
        '學號': 20200001,
        '班級': '2001班',
    },
    {
        '姓名': '張華',
        '性別': '男',
        '年齡': 19,
        '學號': 20200002,
        '班級': '2002班',
    }
]


# 定義視窗函式:show_window()
def show_window():
    print("""
============================
歡迎使用【學生資訊管理系統】
    1.顯示所有學生資訊
    2.新建學生資訊
    3.查詢學生資訊
    4.修改學生資訊
    5.刪除學生資訊
    0.退出系統
============================
""")


# 定義顯示所有學生資訊的函式:show_all()
# 由於學生資訊資料為列表,所以需要用到for迴圈輸出
def show_all_stu():
    for student in student_data:
        print(student)


# 定義新建學生資訊的函式:create_stu()
def create_stu():
    name = input("請輸入學生姓名:")
    sex = input("請輸入學生性別:")
    age = int(input("請輸入學生年齡:"))
    stu_id = int(input("請輸入學生學號:"))
    class_id = input("請輸入學生班級:")
    student = {
        '姓名': name,
        '性別': sex,
        '年齡': age,
        '學號': stu_id,
        '班級': class_id
    }
    student_data.append(student)


# 定義查詢學生資訊的函式:find_stu()
def find_stu():
    name = input("請輸入要查詢的學生姓名:")
    for student in student_data:
        if student['姓名'] == name:
            print("該學生資訊已查到,資訊如下:",student)
            return student
        else:
            print("該學生不存在!")
        break


# 定義修改學生資訊函式:modify_stu()
def modify_stu():
    name = input("請輸入要修改資訊的學生姓名:")
    for student in student_data:
        if student['姓名'] == name:
            num = int(input("請確認需要修改該學生幾個資訊:"))
            if num == 1:
                infor = input("請輸入需要修改的資訊:")
                if infor == '姓名':
                    student['姓名'] = input("請輸入修改後的學生姓名:")
                elif infor == '性別':
                    student['性別'] = input("請輸入修改後的學生性別:")
                elif infor == '年齡':
                    student['年齡'] = int(input("請輸入修改後的學生年齡:"))
                elif infor == '學號':
                    student['學號'] = input("請輸入修改後的學生學號:")
                elif infor == '班級':
                    student['班級'] = input("請輸入修改後的學生班級:")
                print("該學生修改後的資訊為:", student)
            else:
                student['姓名'] = input("請輸入修改後的學生姓名:")
                student['性別'] = input("請輸入修改後的學生性別:")
                student['年齡'] = int(input("請輸入修改後的學生年齡:"))
                student['學號'] = int(input("請輸入修改後的學生學號:"))
                student['班級'] = input("請輸入修改後的學生班級:")
                print("該學生修改後的資訊為:",student)
        else:
            print("該學生不存在!")
        break


# 定義刪除學生資訊的函式:del_stu()
def del_stu():
    name = input("請輸入要刪除的學生姓名:")
    for student in student_data:
        if student['姓名'] == name:
            print("該學生資訊已查到,資訊如下:\n", student,"\n請確認是否需要刪除該學生的資訊?")
            infor = input("請輸入是or否:")
            if infor == "是":
                student_data.remove(student)
            elif infor == "否":
                break
        else:
            print("該學生不存在!")
        break


show_window()
# 用一個迴圈顯示執行視窗:
while True:
    opreation = input("請輸入操作序號:")
    if opreation == "1":
        show_all_stu()
    elif opreation == "2":
        create_stu()
    elif opreation == "3":
        find_stu()
    elif opreation == "4":
        modify_stu()
    elif opreation == "5":
        del_stu()
    elif opreation == "0":
        print("謝謝使用,再見!")
        break
    else:
        print("請按照指定序號輸入!")

執行結果:
執行結果

相關文章