2020-03-03学生管理系统-python语言,由思路到代码

首先这个学生管理系统具有数据存储功能,考察了文件的存储和内容的提取,实现了多页面之间利用函数进行跳转,用户密码的加密,但是因为还没有涉及到存储到数据库,实现的仅是较少数量的学生信息的增删改查功能,非常适合学完python基础的朋友进行练手,很考验逻辑性。写这个页面的要注意的是:并不是一个页面一个页面写的,而是需要来回切换。

第一部分:

以下先用思维导图展示代码的思考过程。


第二部分

接下来是每个页面的代码:

首先:第一个页面:

在index.py页面。也就是首页:

要实现主页面:


import sys

import file_manager

name =''

import model

import student_manager

def register():

data = file_manager.read_json('data.json.txt',{})

while True:

teacher_name =input('请输入账号:(3-6位)')

if not 3 <=len(teacher_name) <=6:

print('账号不符合要求,请重新输入')

else:

break

    if teacher_namein data:

print('注册失败!该用户已存在')

return

    while True:

password =input('请输入密码:(6-12位)')

if not 6 <=len(password) <=12:

print('密码不符合要求,请重新输入')

else:

break

    t = model.Teacher(teacher_name,password)

data[t.name] = t.password

#data[teacher_name] =password

    file_manager.write_json('data.json.txt', data)

def login():

data = data = file_manager.read_json('data.json.txt',{})

teacher_name  =input('请输入老师账号:')

if teacher_namenot in data:

print('登录失败!该账号没有注册')

return

    password =input('请输入密码')

import tools

if data[teacher_name] == tools.encrypt_password(password):

student_manager.name = teacher_name

student_manager.show_manager()

else:

print('密码错误,登录失败')

def start():

file_manager.base_dir ='./files/'

    content = file_manager.read_file('welcome')

while True:

operator=input(content +'\n 请选择1-3:')

if operator =='1':

login()

elif operator =='2':

register()

elif operator =='3':

sys.exit(0)

else:

print('输入有误!')

if __name__ =='__main__':

start()


第二个页面

第二个页面:我命名为file_manager.py

功能主要为存储和读取内容的页面:

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('文件不存在')

print(default_data)


第三个页面:我命名为students_manager.py

import file_manager

import model

name =''

def add_student():

x = file_manager.read_json(name +'.json',{})

if not x:

students  = []

else:

students = x['all_students']

while True:

s_name =input('请输入学生名字')

s_age =input('请输入年龄')

s_gender =input('请输入学生性别')

s_tel =input('请输入电话号码')

#创建student对象

        s = model.Student(s_name,s_age,s_gender,s_tel)

students.append(s.__dict__)

data = {'all_students':students,'num':len(students)}

print(data)

file_manager.write_json(name+'.json',data)

choice =input('添加成功!\n1.继续\n2返回\n请选择(1-2)')

if choice ==2:

break

def show_student():

x =input('1.查看所有学生\n2.根据姓名查找\n3.根据学号查找\n其他:返回\n请选择:')

y = file_manager.read_json(name +'.json',{})

students = y.get('all_students',[])

if not students:

print('该老师还没有学员,请添加学员')

return

    key = value =''

    if x =='1':

pass

    elif x =='2':

value =input('请输入学员姓名:')

key ='name'

    elif x =='3':

value =input('请输入学员的id:')

key ='s_id'

    else:

return

    students =filter(lambda s:s.get(key,'') == value,students)

if not students:

print('未找到学员')

for studentin students:

print('学号:{s_id},姓名:{name},性别:{gender},年龄:{age},电话{tel}'.format(**student))

def modify_student():

pass

def del_student():

y = file_manager.read_json(name +'.json', {})

all_students = y.get('all_students',[])

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,sin enumerate(students):

print('{x} 学号:{s_id}, 姓名:{name},性别:{gender},年龄{age},电话{tel}'.format(x=i,**s))

n =input('请输入需要删除的学生的标号(0-{}),q-返回:'.format(i))

if not n.isdigit()or not 0 <=int(n) <= i:

print('输入的内容不合法')

return

    all_students.remove(students[int(n)])

y['all_students'] = all_students

file_manager.write_json(name +'.json',y)

def show_manager():

# print('显示管理页面')

    content = file_manager.read_file('students_page.txt')%name

print(content)

while True:

operator =input('请选择(1-5):')

if operator =='1':

add_student()

elif operator =='2':

show_student()

elif operator =='3':

modify_student()

elif operator =='4':

del_student()

elif operator =='5':

break

        else:

print('输入有误')

 第四个页面

我命名为tools.py

import hashlib

def encrypt_password(passwd,x='hfgber'):

h = hashlib.sha256 ()

h.update(passwd.encode('utf8'))

h.update(x.encode('utf8'))

return h.hexdigest()


第五个页面

命名为 model.py

import model

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,tel):

self.name = name

self.age = age

self.gender = gender

self.tel =tel

#student 对象



还有用到的两个txt文件内容:

文件1.students_pages.py

🌹🌹欢迎%s老师进入学生管理系统:

❤️1.添加学生

❤️2.查看学生

❤️3.修改学生信息

❤️4.删除学生

❤️5.返回

文件2.welcome


版权声明:本文为CSDN博主「BraveYangerer」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。

原文链接:https://blog.csdn.net/BraveYangerer/article/details/104623904

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容