婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av

主頁 > 知識庫 > Python實現學生管理系統的代碼(JSON模塊)

Python實現學生管理系統的代碼(JSON模塊)

熱門標簽:電話外呼系統招商代理 蘇州人工外呼系統軟件 電話機器人貸款詐騙 廣東旅游地圖標注 看懂地圖標注方法 佛山通用400電話申請 打印谷歌地圖標注 淮安呼叫中心外呼系統如何 京華圖書館地圖標注

構思

學生管理系統 應該包含老師注冊登錄 管理學生信息(增刪改查)還有數據持久化

因為數據存入JSON文件 增刪改查都需要讀取和修改文件
所以需要一個讀寫文件的方法文件 file_manager
密碼加密可以用到哈希模塊文件 tools
老師和學生的類文件 model
程序入口(主頁)文件index
核心增刪改查文件 student_manager

file_manager.py

"""
Project: ClassStudent
Creator: 貓貓
Create time: 2021-02-25 20:23
IDE: PyCharm
Introduction:https://blog.csdn.net/Cantevenl/article/details/115439530
"""
base_dir = 'files/'  # 定義一個變量 文件路徑


# 讀文件的函數
def read_file(file_name):
    try:
        with open(base_dir + file_name, 'r', encoding='utf8') as file:
            content = file.read()
            return content
    except FileNotFoundError:
        print('文件未找到')


def write_json(file_name, data):
    with open(base_dir + file_name, 'w', encoding='utf8') as file:
        import json
        json.dump(data, file)


def read_json(file_name, default_data):
    try:
        with open(base_dir + file_name, 'r', encoding='utf8') as file:
            import json
            return json.load(file)
    except FileNotFoundError:
        # print('文件未找到')
        return default_data

tools.py

"""
Project: ClassStudent
Creator: 貓貓
Create time: 2021-02-25 20:24
IDE: PyCharm
Introduction:https://blog.csdn.net/Cantevenl/article/details/115439530
"""
# 加密密碼
import hashlib

def encrypt_password(passwd, x='zhumaogouniu'):
    h = hashlib.sha256()
    h.update(passwd.encode('utf8'))
    h.update(x.encode('utf8'))
    return h.hexdigest()

model.py

"""
Project: ClassStudent
Creator: 貓貓
Create time: 2021-02-25 20:24
IDE: PyCharm
Introduction:https://blog.csdn.net/Cantevenl/article/details/115439530
"""
# 創建一個老師對象
class Teacher(object):
    def __init__(self, name, password):
        import tools
        self.name = name
        self.password = tools.encrypt_password(password)

class Student(object):
    def __init__(self, s_id, name, age, gender, tel):
        self.s_id = s_id
        self.name = name
        self.age = age
        self.gender = gender
        self.tel = tel

index.py

"""
Project: ClassStudent
Creator: 貓貓
Create time: 2021-02-25 20:25
IDE: PyCharm
Introduction:https://blog.csdn.net/Cantevenl/article/details/115439530
"""
import sys
import file_manager  # 導入自己寫的讀取文件模塊
import model
import student_manager

def register():
    # 讀取文件,查看文件里是否有數據。如果文件不存在,默認是一個字典
    data = file_manager.read_json('data.json', {})
    while True:
        teacher_name = input('請輸入賬號(3~6位):')
        if not 2 = len(teacher_name) = 6:
            print('賬號不符合要求,請重新輸入!')
        else:
            break
    if teacher_name in data:
        print('注冊失敗!該賬號已經被注冊!')
        return

    while True:
        password = input('請輸入密碼(6~12位):')
        if not 6 = len(password) = 12:
            print('密碼不符合要求,請重新輸入!')
        else:
            break

    # 用戶名密碼都已經輸入正確以后 將用戶名和密碼以key:value形式儲存
    # 可以創建一個teacher對象
    t = model.Teacher(teacher_name, password)
    data[t.name] = t.password
    file_manager.write_json('data.json', data)

def login():
    # 讀取文件,查看文件里是否有數據。如果文件不存在,默認是一個字典
    data = file_manager.read_json('data.json', {})
    teacher_name = input('請輸入老師賬號:')

    if teacher_name not in data:
        print('登錄失敗!該賬號沒有注冊!')
        return
    password = input('請輸入密碼:')
    import tools
    if data[teacher_name] == tools.encrypt_password(password):
        student_manager.name = teacher_name
        print('登錄成功')
        student_manager.show_manager()
    else:
        print('密碼錯誤,登陸失敗!')

def start():
    content = file_manager.read_file('welcome.txt')
    while True:
        operate = input(content + '\n請選擇(1-3):')
        if operate == '1':
            print('登錄')
            login()
        elif operate == '2':
            print('注冊')
            register()
        elif operate == '3':
            print('退出')
            # break   # 把循環退出
            # exit(0)   # 退出整個程序
            sys.exit(0)  # 退出程序
        else:
            print('輸入有誤!')

if __name__ == '__main__':
    start()

student_manager.py

"""
Project: ClassStudent
Creator: 貓貓
Create time: 2021-02-25 20:26
IDE: PyCharm
Introduction:https://blog.csdn.net/Cantevenl/article/details/115439530
"""
import file_manager
import model

name = ''


# 添加
def add_student():
    x = file_manager.read_json(name + '.json', {})
    if not x:
        students = []
        num = 0
    else:
        students = x['all_student']
        # s_id通過json字典里的num來生成
        num = int(x['num'])
    while True:
        s_name = input('請輸入學生姓名:')
        s_age = input('請輸入年齡:')
        s_gender = input('請輸入性別:')
        s_tel = input('請輸入電話號碼:')

        num += 1
        # 字符串的zfill方法,在字符串的前面補0
        s_id = 'student_id_' + str(num).zfill(3)

        # 創建一個Student對象
        s = model.Student(s_id, s_name, s_age, s_gender, s_tel)

        students.append(s.__dict__)
        # 拼接字典
        data = {'all_student': students, 'num': len(students)}
        # 把數據寫入到文件里 以老師名字.json 把data寫進去
        file_manager.write_json(name + '.json', data)
        choice = input('添加成功!\n1.繼續\n2.返回\n請選擇(1-2):')
        if choice == '2':
            break


# 顯示 查找
def show_student():
    choice = input('1.查看所有學生\n2.根據姓名查找\n3.根據學號查找\n其他:返回\n請選擇:')
    students = file_manager.read_json(name + '.json', {})
    
    all_students = students.get('all_student', [])  # get拿列表里的數據,拿不到默認是一個空列表[]
    if not all_students:
        print('該老師沒有學生,請添加學生')
        return

    if choice == '1':  # 查看所有學生
        pass
    elif choice == '2':  # 根據姓名查看
        s_name = input('請輸入學生的姓名:')
        all_students = filter(lambda s: s['name'] == s_name, all_students)  # students就只保留了指定名字的學生
    elif choice == '3':  # 學號查找
        s_id = input('請輸入學生的學號:')
        all_students = filter(lambda s: s['s_id'] == s_id, all_students)
    else:
        return

    if not students:
        print('未找到學生')
        return

    for student in all_students:
        print('學號:{s_id},姓名:{name},性別:{gender},年齡{age},電話號碼{tel}'.format(**student))


# 修改
def modify_student():
    key = value = ''
    m = file_manager.read_json(name + '.json', {})
    all_students = m.get('all_student', [])

    if not all_students:
        print('該老師沒有學生,請添加學生')
        return

    modify = input('1.根據姓名修改\n2.根據學號修改\n其他:返回\n請選擇:')
    if modify == '1':
        value = input('請輸入要修改的學生名字:')
        key = 'name'

    elif modify == '2':
        value = input('請輸入要修改的學生學號:')
        key = 's_id'

    else:
        return

    students = list(filter(lambda s: s[key] == value, all_students))
    if not all_students:
        print('沒有找到對應的學生')
        return

    for i, student in enumerate(students):
        print('{xiabiao} 學號:{s_id},姓名:{name},性別:{gender},年齡{age},電話號碼{tel}'.format(xiabiao=i, **student))

    n = int(input('請輸入需要修改的學生的標號(0~{}),q-->返回:'.format(len(students) - 1)))

    if not 0 = n = len(students):
        print('輸入的內容錯誤')
        return

    all_students.remove(students[n])

    students[n]['s_id'] = new_input((students[n]['s_id']), "請輸入修改后的學生學號[回車則不修改]:")
    students[n]['name'] = new_input((students[n]['name']), "請輸入修改后的學生姓名[回車則不修改]:")
    students[n]['gender'] = new_input((students[n]['gender']), "請輸入修改后的學生性別[回車則不修改]:")
    students[n]['age'] = new_input((students[n]['age']), "請輸入修改后的學生年齡[回車則不修改]:")
    students[n]['tel'] = new_input((students[n]['tel']), "請輸入修改后的學生電話號碼[回車則不修改]:")
    all_students.append(students[n])
    print(all_students)
    m['all_student'] = all_students
    file_manager.write_json(name + '.json', m)


# 刪除
def delete_student():
    y = file_manager.read_json(name + '.json', {})
    all_students = y.get('all_student', [])
    key = value = ''

    if not all_students:
        print('該老師沒有學生,請添加學生')
        return

    num = input('1.按照姓名刪除\n2.按照學號刪除\n其他:返回\n請選擇:')
    if num == '1':
        key = 'name'
        value = input('請輸入要刪除的學生名字:')

    elif num == '2':
        key = 's_id'
        value = input('請輸入要刪除的學生學號:')
    else:
        return

    students = list(filter(lambda s: s.get(key, '') == value, all_students))
    if not students:
        print('沒有找到對應的學生')
        return

    for i, student in enumerate(students):
        print('{xiabiao} 學號:{s_id},姓名:{name},性別:{gender},年齡{age},電話號碼{tel}'.format(xiabiao=i, **student))

    n = input('請輸入需要刪除的學生的標號(0~{}),q-->返回:'.format(len(students) - 1))

    if not n.isdigit() or not 0 = int(n) = len(students):
        print('輸入的內容錯誤')
        return

    # 將學生從all_students里刪除
    # all_students.pop(n)
    all_students.remove(students[int(n)])

    # 更新新的名單
    y['all_student'] = all_students
    file_manager.write_json(name + '.json', y)


# 顯示管理頁面
def show_manager():
    content = file_manager.read_file('students_page.txt') % name
    while True:
        print(content)
        operate = input('請選擇(1-5):')
        if operate == '1':
            add_student()
        elif operate == '2':
            show_student()
        elif operate == '3':
            modify_student()
        elif operate == '4':
            delete_student()
        elif operate == '5':
            break
        else:
            print('輸入錯誤!')


# 修改時用的input方法
def new_input(old, new):
    input_str = input(new)

    if len(input_str) > 0:
        return input_str
    else:
        return old

美化文本

通過自己寫的讀取文件方法可以直接讀取文本(類似界面)

welcome.txt

================================
    ** 歡迎來到學生管理系統**

           1. 登    錄
           2. 注    冊
           3. 退    出
    **                    **
================================

students_page.txt

================================
❀❀ 歡迎%s老師進入學生管理系統:

         1.  添加學生
         2.  查看學生
         3.  修改學生信息
         4.  刪除學生
         5.  返回
❀❀                          ❀❀
================================

執行效果



到此這篇關于Python實現學生管理系統的代碼(JSON模塊)的文章就介紹到這了,更多相關Python學生管理系統內容請搜索腳本之家以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • 教你用python實現一個無界面的小型圖書管理系統
  • python實現學生管理系統源碼
  • 基于python實現銀行管理系統
  • 基于python實現圖書管理系統
  • python實現簡易名片管理系統
  • python實現學生通訊錄管理系統
  • 使用python實現學生信息管理系統
  • 利用Python實現學生信息管理系統的完整實例
  • 教你用Python實現簡易版學生信息管理系統(含源碼)

標簽:中山 畢節 衡水 股票 呼和浩特 駐馬店 湖州 江蘇

巨人網絡通訊聲明:本文標題《Python實現學生管理系統的代碼(JSON模塊)》,本文關鍵詞  Python,實現,學生,管理系統,;如發現本文內容存在版權問題,煩請提供相關信息告之我們,我們將及時溝通與處理。本站內容系統采集于網絡,涉及言論、版權與本站無關。
  • 相關文章
  • 下面列出與本文章《Python實現學生管理系統的代碼(JSON模塊)》相關的同類信息!
  • 本頁收集關于Python實現學生管理系統的代碼(JSON模塊)的相關信息資訊供網民參考!
  • 推薦文章
    婷婷综合国产,91蜜桃婷婷狠狠久久综合9色 ,九九九九九精品,国产综合av
    欧美精品欧美精品系列| 国产一区欧美二区| 国产精品视频一二三区| 日韩精品一区二区三区在线播放| 欧美自拍偷拍一区| 色国产精品一区在线观看| 风间由美一区二区三区在线观看| 国产在线国偷精品产拍免费yy| 久久99久久久久| 黄页视频在线91| 国产夫妻精品视频| 成人av先锋影音| 91视频一区二区三区| 91同城在线观看| 欧美午夜免费电影| 欧美日韩第一区日日骚| 欧美一区二区三区公司| 欧美一级二级三级蜜桃| 欧美一级在线观看| 国产欧美日韩精品在线| 中文字幕在线不卡| 亚洲国产精品影院| 日韩高清在线电影| 国产不卡免费视频| 色综合天天综合狠狠| 欧美精品1区2区| 久久一日本道色综合| 捆绑调教一区二区三区| 久久99精品久久只有精品| 成人综合婷婷国产精品久久| 欧洲精品在线观看| 日韩一级片网站| 国产精品国产精品国产专区不蜜| 亚洲国产精品久久一线不卡| 毛片av一区二区三区| 国产馆精品极品| 在线看日韩精品电影| 亚洲精品一区二区三区福利| 亚洲图片另类小说| 极品美女销魂一区二区三区免费| 成人精品视频一区二区三区| 7777精品伊人久久久大香线蕉最新版| 亚洲精品一线二线三线| 亚洲欧美国产77777| 激情久久五月天| 欧美日韩不卡一区| 中文字幕视频一区| 久久精品国产免费看久久精品| 91一区在线观看| 久久夜色精品国产噜噜av| 亚洲精品成a人| 国产福利电影一区二区三区| 91精品国产综合久久久久 | 一区二区三区四区高清精品免费观看 | 日韩和欧美的一区| 成人免费高清在线| 日韩精品一区二区三区在线播放 | 精品免费一区二区三区| 亚洲欧美自拍偷拍色图| 久久99精品视频| 3atv一区二区三区| 亚洲一区二区三区免费视频| 波多野结衣一区二区三区 | 亚洲线精品一区二区三区| 国产呦萝稀缺另类资源| 91精品欧美一区二区三区综合在| 1024精品合集| 成人精品电影在线观看| 2023国产精品自拍| 狠狠v欧美v日韩v亚洲ⅴ| 欧美一级在线视频| 蜜臀av国产精品久久久久| 91麻豆精品国产91久久久使用方法 | 高清不卡在线观看| 国产偷国产偷精品高清尤物| 理论电影国产精品| 欧美精品第一页| 一区二区日韩电影| av在线一区二区三区| 国产欧美一区二区精品性色超碰 | 极品美女销魂一区二区三区 | 不卡av免费在线观看| 中文字幕av不卡| 成人免费视频视频| 亚洲视频综合在线| 成人动漫一区二区三区| 精品毛片乱码1区2区3区| 极品美女销魂一区二区三区 | 久久精子c满五个校花| 国产精品资源在线| 久久久不卡网国产精品二区| 成人爱爱电影网址| 日韩毛片视频在线看| 欧美色爱综合网| 蜜臀精品一区二区三区在线观看 | 欧美日韩国产综合视频在线观看| 亚洲精品伦理在线| 69堂亚洲精品首页| 国内成+人亚洲+欧美+综合在线| 国产午夜精品一区二区三区四区| 97se亚洲国产综合自在线| 亚洲影视在线播放| 337p日本欧洲亚洲大胆色噜噜| 东方aⅴ免费观看久久av| 亚洲人被黑人高潮完整版| 欧美一级精品大片| 国产成人av一区二区三区在线| 亚洲久草在线视频| 精品少妇一区二区三区在线播放 | 国产精品亚洲成人| 一区二区免费视频| 久久视频一区二区| 欧美在线短视频| 国产真实乱偷精品视频免| 亚洲美女屁股眼交| 日韩欧美在线123| 色偷偷88欧美精品久久久| 日本欧美一区二区三区| 亚洲欧美影音先锋| 精品国免费一区二区三区| 欧美唯美清纯偷拍| 国产suv精品一区二区6| 午夜精品久久久久久久久| 国产欧美日韩视频在线观看| 日韩三级电影网址| 欧美午夜精品电影| av男人天堂一区| 国产精品99久久久久久有的能看 | 欧美日韩在线免费视频| 国产不卡在线播放| 久久66热偷产精品| 麻豆一区二区三区| 亚洲妇熟xx妇色黄| 亚洲欧洲国产日韩| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 综合欧美亚洲日本| 久久久久久久久久久99999| 欧美精品在线观看播放| 91官网在线观看| 色婷婷精品大视频在线蜜桃视频| 国产成人亚洲综合a∨婷婷| 美女在线观看视频一区二区| 亚洲一级二级在线| 一区二区三区中文在线观看| 亚洲欧洲一区二区三区| 国产精品毛片a∨一区二区三区| 久久久三级国产网站| 精品国产乱码久久| 精品国产免费一区二区三区四区 | 色嗨嗨av一区二区三区| 91色综合久久久久婷婷| 99国产一区二区三精品乱码| 国产a视频精品免费观看| 东方欧美亚洲色图在线| 成人动漫在线一区| 91极品视觉盛宴| 欧美丝袜丝交足nylons| 欧美日本精品一区二区三区| 91精品国产综合久久福利| 日韩一区二区在线免费观看| 日韩免费福利电影在线观看| 精品999久久久| 久久精品网站免费观看| 国产精品免费视频一区| 亚洲色图欧美激情| 亚洲高清视频在线| 麻豆视频观看网址久久| 国产麻豆视频精品| 99国产精品视频免费观看| 91福利在线观看| 日韩精品一区二区三区在线播放| 精品国产一区二区三区久久影院 | 国产精品一区二区免费不卡 | 欧美精品日韩一区| 亚洲精品一区二区三区四区高清| 久久久不卡网国产精品一区| 亚洲日本青草视频在线怡红院 | 国产一区二区三区在线观看免费| 国产精品一二三四五| 99久久婷婷国产综合精品电影| 91美女在线看| 日韩欧美一区二区免费| 国产精品麻豆一区二区| 日韩中文欧美在线| 国产成人丝袜美腿| 欧美日韩一区二区三区在线| 久久久.com| 亚洲电影第三页| 国产电影一区在线| 欧美高清视频在线高清观看mv色露露十八| 亚洲精品一区二区三区香蕉| 亚洲午夜激情网站| 国产精品自在在线| 欧美丰满一区二区免费视频| 中文字幕亚洲一区二区av在线| 青草av.久久免费一区| 91老师国产黑色丝袜在线| 欧美精品一区二区三区很污很色的 | 成人av资源下载| 日韩一区二区免费高清|