天天看點

學生管理系統(檔案版)                                                                   -------  知識無價,汗水有情,如需搬運請注明出處,謝謝!

import time
import os

# 定一個清單,用來存儲所有的學生資訊(每個學生是一個字典)
info_list = []


def print_menu():
    print("---------------------------")
    print("      學生管理系統 V1.0")
    print(" 1:添加學生")
    print(" 2:删除學生")
    print(" 3:修改學生")
    print(" 4:查詢學生")
    print(" 5:顯示所有學生")
    print(" 6:儲存資料")
    print(" 7:退出系統")
    print("---------------------------")


def add_new_info():
    """添加學生資訊"""
    global info_list

    new_name = input("請輸入姓名:")
    new_tel = input("請輸入手機号:")
    new_qq = input("請輸入QQ:")

    for temp_info in info_list:
        if temp_info['name'] == new_name:
            print("此使用者名已經被占用,請重新輸入")
            return  # 如果一個函數隻有return就相當于讓函數結束,沒有傳回值

    # 定義一個字典,用來存儲使用者的學生資訊(這是一個字典)
    info = {}

    # 向字典中添加資料
    info["name"] = new_name
    info["tel"] = new_tel
    info["qq"] = new_qq

    # 向清單中添加這個字典
    info_list.append(info)


def del_info():
    """删除學生資訊"""
    global info_list

    del_num = int(input("請輸入要删除的序号:"))
    if 0 <= del_num < len(info_list):
        del_flag = input("你确定要删除麼?yes or no")
        if del_flag == "yes":
            del info_list[del_num]
    else:
        print("輸入序号有誤,請重新輸入")


def modify_info():
    """修改學生資訊"""
    global info_list

    modify_num = int(input("請輸入要修改的序号:"))
    if 0 <= modify_num < len(info_list):
        print("你要修改的資訊是:")
        print("name:%s, tel:%s, QQ:%s" % (info_list[modify_num]['name'],
            info_list[modify_num]['tel'],info_list[modify_num]['qq']))
        info_list[modify_num]['name'] = input("請輸入新的姓名:")
        info_list[modify_num]['tel'] = input("請輸入新的手機号:")
        info_list[modify_num]['qq'] = input("請輸入新QQ:")
    else:
        print("輸入序号有誤,請重新輸入")


def search_info():
    """查詢學生資訊"""
    search_name = input("請輸入要查詢的學生姓名:")
    for temp_info in info_list:
        if temp_info['name'] == search_name:
            print("查詢到的資訊如下:")
            print("name:%s, tel:%s, QQ:%s" % (temp_info['name'],
                temp_info['tel'], temp_info['qq']))
            break
    else:
        print("沒有您要找的資訊....")


def print_all_info():
    """周遊學生資訊"""
    print("序号\t姓名\t\t手機号\t\tQQ")
    i = 0
    for temp in info_list:
        # temp是一個字典
        print("%d\t%s\t\t%s\t\t%s" % (i, temp['name'], temp['tel'], temp['qq']))
        i += 1


def save_data():
    """加載之前存儲的資料"""
    f = open("info_data.data", "w")
    f.write(str(info_list))
    f.close()


def load_data():
    """加載之前存儲的資料"""
    global info_list
    f = open("info_data.data")
    content = f.read()
    info_list = eval(content)
    f.close()

def main():
    """用來控制整個流程"""

    # 加載資料(1次即可)
    load_data()

    while True:
        # 1. 列印功能
        print_menu()

        # 2. 擷取使用者的選擇
        num = input("請輸入要進行的操作(數字):")

        # 3. 根據使用者選擇,做相應的事情
        if num == "1":
            # 添加學生
            add_new_info()
        elif num == "2":
            # 删除學生
            del_info()
        elif num == "3":
            # 修改學生
            modify_info()
        elif num == "4":
            # 查詢學生
            search_info()
        elif num == "5":
            # 周遊所有的資訊
            print_all_info()
        elif num == "6":
            # 儲存資料到檔案中
            save_data()
        elif num == "7":
            # 退出系統
            exit_flag = input("親,你确定要退出麼?~~~~(>_<)~~~~(yes or no) ")
            if exit_flag == "yes":
                break
        else:
            print("輸入有誤,請重新輸入......")

            os.system('cls')
# 程式的開始
main()
      

  

                                                                   -------  知識無價,汗水有情,如需搬運請注明出處,謝謝!