Pythonは学生管理システムの完全コードを実現する(対象に向ける)
前言
これは対象に向けた方法で書くだけの発想です。学生管理システム(JSONモジュール)と同じです。
file_manager.py
ここでPythonについて学生管理システムの完全なコード(対象に向かって)を実現する記事を紹介します。これに関連して、もっと多くのpython学生管理システムの内容を紹介します。私達の以前の文章を検索してください。または下記の関連記事を引き続きご覧ください。これからもよろしくお願いします。
これは対象に向けた方法で書くだけの発想です。学生管理システム(JSONモジュール)と同じです。
file_manager.py
"""
Project: ClassStudent
Creator:
Create time: 2021-03-04 08:18
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_file(file_name):
with open(base_dir + file_name, 'w', encoding='utf8') as file:
pass
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-03-04 08:20
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-03-04 08:18
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, name, age, gender):
self.name = name
self.age = age
self.gender = gender
def __str__(self):
return f'{self.name},{self.age},{self.gender}'
index.py
"""
Project: ClassStudent
Creator:
Create time: 2021-03-04 12:08
IDE: PyCharm
Introduction:https://blog.csdn.net/Cantevenl/article/details/115439530
"""
# 1.
import sys
import file_manager #
import model
import managerSystem
def register():
# , 。 ,
data = file_manager.read_json('data.json', {})
while True:
teacher_name = input(' (2~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):
managerSystem.name = teacher_name
print(' ')
student_manager= managerSystem.StudentManager()
student_manager.run()
else:
print(' , !')
def start():
content = file_manager.read_file('welcome.txt')
while True:
operate = input(content + '
(1-3):')
if operate == '1':
print(' ')
login()
elif operate == '2':
print(' ')
register()
elif operate == '3':
print(' ')
# break #
# exit(0) #
sys.exit(0) #
else:
print(' !')
# 2.
# : if -- run
if __name__ == '__main__':
start()
manager System.py
"""
Project: ClassStudent
Creator:
Create time: 2021-03-04 16:12
IDE: PyCharm
Introduction:https://blog.csdn.net/Cantevenl/article/details/115439530
"""
import file_manager
from model import *
name = ''
class StudentManager(object):
def __init__(self):
# --
self.student_list = []
# .
def run(self):
# 1.
self.load_student()
while True:
# 2.
self.show_menu()
# 3.
menu_num = input(' :')
# 4.
if menu_num == '1':
self.add_student()
elif menu_num == '2':
self.del_student()
elif menu_num == '3':
self.modify_student()
elif menu_num == '4':
self.search_student()
elif menu_num == '5':
self.show_student()
elif menu_num == '6':
self.sava_student()
elif menu_num == '7':
break
else:
print(' ')
# 。
# 2.1 ----
@staticmethod
def show_menu():
content = file_manager.read_file('students_page.txt')
print(content)
#
def add_student(self):
# 1.
name = input(' :')
age = input(' :')
gender = input(' :')
# 2. -- student ,
student = Student(name, age, gender)
# 3.
self.student_list.append(student)
print(self.student_list)
print(student)
#
def del_student(self):
del_name = input(' :')
#
for i in self.student_list:
if i.name == del_name:
self.student_list.remove(i)
break
else:
print(' ')
print(self.student_list)
#
def modify_student(self):
modify_name = input(' :')
for i in self.student_list:
if i.name == modify_name:
i.name = self.new_input(i.name, ' [ ]:')
i.age = self.new_input(i.age, ' [ ]:')
i.gender = self.new_input(i.gender, ' [ ]:')
print(f' , {i.name}, {i.age}, {i.gender}')
break
else:
print(' ')
#
def search_student(self):
search_name = input(' :')
for i in self.student_list:
if i.name == search_name:
print(f' {i.name}, {i.age}, {i.gender}')
break
else:
print(' ')
#
def show_student(self):
print(' \t\t \t ')
for i in self.student_list:
print(f'{i.name}\t\t{i.age}\t\t{i.gender}')
#
def sava_student(self):
# 1.
file = open('files/student.data', 'w')
# 2.
# 2.1 [ ] [ ]
#
new_list = [i.__dict__ for i in self.student_list]
# 2.2
file.write(str(new_list))
file.close()
#
def load_student(self):
try:
file = open('files/student.data', 'r')
except FileNotFoundError:
file = open('files/student.data', 'w')
else:
# 1.
data = file.read()
# 2. ,
#
new_list = eval(data)
#
self.student_list = [Student(i['name'], i['age'], i['gender']) for i in new_list]
finally:
pass
# 3.
file.close()
# input
def new_input(self, old, new):
input_str = input(new)
if len(input_str) > 0:
return input_str
else:
return old
効果を実行ここでPythonについて学生管理システムの完全なコード(対象に向かって)を実現する記事を紹介します。これに関連して、もっと多くのpython学生管理システムの内容を紹介します。私達の以前の文章を検索してください。または下記の関連記事を引き続きご覧ください。これからもよろしくお願いします。