日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

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

瀏覽:23日期:2022-06-23 09:07:44
構思

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

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

file_manager.py

'''Project: ClassStudentCreator: 貓貓Create time: 2021-02-25 20:23IDE: PyCharmIntroduction: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 jsonjson.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: ClassStudentCreator: 貓貓Create time: 2021-02-25 20:24IDE: PyCharmIntroduction:https://blog.csdn.net/Cantevenl/article/details/115439530'''# 加密密碼import hashlibdef encrypt_password(passwd, x=’zhumaogouniu’): h = hashlib.sha256() h.update(passwd.encode(’utf8’)) h.update(x.encode(’utf8’)) return h.hexdigest()

model.py

'''Project: ClassStudentCreator: 貓貓Create time: 2021-02-25 20:24IDE: PyCharmIntroduction:https://blog.csdn.net/Cantevenl/article/details/115439530'''# 創建一個老師對象class Teacher(object): def __init__(self, name, password):import toolsself.name = nameself.password = tools.encrypt_password(password)class Student(object): def __init__(self, s_id, name, age, gender, tel):self.s_id = s_idself.name = nameself.age = ageself.gender = genderself.tel = tel

index.py

'''Project: ClassStudentCreator: 貓貓Create time: 2021-02-25 20:25IDE: PyCharmIntroduction:https://blog.csdn.net/Cantevenl/article/details/115439530'''import sysimport file_manager # 導入自己寫的讀取文件模塊import modelimport student_managerdef 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_nameprint(’登錄成功’)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: ClassStudentCreator: 貓貓Create time: 2021-02-25 20:26IDE: PyCharmIntroduction:https://blog.csdn.net/Cantevenl/article/details/115439530'''import file_managerimport modelname = ’’# 添加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方法,在字符串的前面補0s_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’: breakelse: 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實現學生管理系統的代碼(JSON模塊)Python實現學生管理系統的代碼(JSON模塊)

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

標簽: Python 編程
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
国产一区二区高清| 色婷婷亚洲mv天堂mv在影片| 成人国产精品| 精品国产鲁一鲁****| 精品三级在线观看视频| 国产欧美日韩一区二区三区在线| 日韩超碰人人爽人人做人人添| 日韩精品成人在线观看| 日韩和欧美一区二区| 日韩精品久久久久久久软件91| 青草国产精品久久久久久| 欧美日韩午夜电影网| 国产精品一级| 日韩综合小视频| 欧美另类中文字幕| 国产经典一区| 97精品一区二区| 久久视频精品| 天堂成人国产精品一区| 日韩精品免费一区二区夜夜嗨| 欧美日本久久| 精品视频国内| 久久精品二区三区| 美女久久一区| 国产精品久久久久久久久免费高清| 久久亚洲黄色| 91精品在线观看国产| 久久aⅴ国产紧身牛仔裤| 最近国产精品视频| 国产麻豆精品| 欧美aa在线观看| 99精品99| 欧美一区91| 日韩理论视频| 日韩中文字幕亚洲一区二区va在线| 日韩三级精品| 久草精品视频| 91高清一区| 日本成人一区二区| 国产不卡精品在线| 免费视频久久| 老牛国内精品亚洲成av人片| 色老板在线视频一区二区| 在线国产一区二区| 日韩av电影一区| 丝袜美腿诱惑一区二区三区| 乱人伦精品视频在线观看| 国产精品多人| 蜜桃成人av| 久久精品99国产精品| 久久激情一区| 久久精品xxxxx| 久久久久久黄| 日韩有吗在线观看| 日本а中文在线天堂| 中文字幕亚洲影视| 日韩av自拍| 视频一区二区不卡| 国产精品二区影院| 伊人成人网在线看| 精品国产一区二| 一区二区国产在线| 亚洲天堂1区| 国产午夜一区| 午夜久久久久| 黄色网一区二区| 日韩影院在线观看| 电影91久久久| 综合欧美亚洲| 久久精品国产www456c0m| 国产欧美亚洲一区| 精品91久久久久| 精品国产乱码久久久| 99日韩精品| 日韩综合在线| 欧美亚洲综合视频| 野花国产精品入口| av在线资源| 久久国产精品美女| 亚洲人www| 精品一区欧美| 精品视频高潮| 国产欧美丝祙| 在线视频亚洲欧美中文| 日韩在线观看| 国产精区一区二区| 久久亚洲图片| 欧美 日韩 国产一区二区在线视频 | 日本不卡一区二区| 欧美中文一区二区| 久久精品国产成人一区二区三区| 中文字幕视频精品一区二区三区 | 亚洲欧洲一区| 快播电影网址老女人久久| 韩国女主播一区二区三区| 日韩精品亚洲专区在线观看| 国产精品白丝一区二区三区| 久久av国产紧身裤| 欧美日一区二区| 久久精品国产99国产精品| 日韩综合一区二区| 亚洲一区二区三区免费在线观看| 欧美日韩免费观看视频| 老司机精品视频网| 国产精品一区二区三区av麻| 亚州av一区| 视频一区二区三区中文字幕| 久久久久久久久丰满| 国产一区二区三区四区二区| 国产精品第十页| 国产农村妇女精品一二区| 亚洲成人精品| 麻豆成全视频免费观看在线看| 麻豆精品在线| 欧美成人aaa| 国产福利一区二区精品秒拍 | 久久久精品午夜少妇| 久久电影tv| 97欧美在线视频| 亚洲国产福利| 成人三级高清视频在线看| 精品国产欧美日韩| 精品九九久久| 成人片免费看| 久热综合在线亚洲精品| 亚洲女人av| 中文字幕av一区二区三区四区| 99热免费精品| 久久亚洲视频| 日韩精品三级| 国产精品v一区二区三区| 欧美国产专区| 日韩av在线播放网址| 日本一区二区高清不卡| 亚洲精品成人图区| 日韩欧美一区二区三区免费看| 中文字幕人成乱码在线观看| 神马午夜在线视频| 久久久久国产一区二区| 日韩精品永久网址| 亚洲手机视频| 亚洲一区二区毛片| 综合五月婷婷| 国产精品主播| 日韩在线二区| 黄色国产精品| 日韩精品免费观看视频| 欧美视频久久| 国语精品一区| 欧美日韩尤物久久| 亚洲欧美日韩视频二区| 亚洲三级视频| 久久99性xxx老妇胖精品| 国产一区二区三区视频在线| 成午夜精品一区二区三区软件| 韩国精品主播一区二区在线观看 | 91在线成人| 麻豆国产精品视频| 久久人人精品| 亚洲自拍另类| 国产精品亚洲一区二区在线观看| 亚洲精品乱码日韩| 欧美一区成人| 欧美13videosex性极品| 久久国产福利| 国产美女视频一区二区| 日韩电影二区| 亚洲欧美日韩综合国产aⅴ| 欧美一区精品| 日韩精品免费一区二区三区| 日韩在线卡一卡二| 狂野欧美性猛交xxxx| 激情综合激情| 欧美一区=区三区| 久久一区二区三区电影| 亚洲毛片在线| 不卡专区在线| 一区福利视频| 国产精品天堂蜜av在线播放| 亚洲成av人片一区二区密柚| 亚洲日本免费电影| 精品日韩一区| 爽好多水快深点欧美视频| 国产精品www.| 国产精品嫩草99av在线| 欧美经典一区| 性一交一乱一区二区洋洋av| 国产精品115| 欧美日韩精品免费观看视频完整| 日本va欧美va瓶| 91精品综合| 国产精品中文| 国产精品97| 久久99影视| 蜜臀久久99精品久久久久久9| 久久久久亚洲精品中文字幕| 99视频在线精品国自产拍免费观看| 久久久久亚洲精品中文字幕| 国产国产精品| 久久精品一区二区国产|