1,主页面函数(01-mainpage.py)

import json
import file_manager
import student_system
''' '''
# 全局变量
file_name='user_info.json' key_user_name='user_name'
key_password='password' #=====================注册=======================
'''
为了下次打开系统的时候能够正常登录,注册成功的信息需要保存。保存用户名和密码
一个系统可以注册多个用户,可以用列表保存多个用户,通过字典来保存每个用户的用户名和密码
[
{'user_name':用户名,'password':密码}
]
保存到user_info.json中
'''
#
def is_register(username):
all_user = file_manager.read_json_file(file_name)
if not all_user:
return False
for user in all_user:
if user[key_user_name]==username:
return True
return False def get_all_user(): if not file_manager.read_json_file(file_name):
return []
return file_manager.read_json_file(file_name) def register():
while True:
user_name=input('请输入用户名(3~10位)')
# 判断是否符合格式要求
if not 3<=len(user_name)<=10:
print('重新输入')
continue
# 判断是否被注册过
if is_register(user_name):
print('用户名%s已被注册,请重新输入' % (user_name))
continue
print('用户名可用')
break # 2密码 while True:
password = input('请输入密码:')
if not 6 <= len(password) <= 16:
print('密码输入有误')
continue
re_password = input('确认密码')
if password != re_password:
print('密码不同,请重新输入')
continue
break all_user=get_all_user()
all_user.append({key_user_name:user_name,key_password:password})
file_manager.write_json_file(all_user,file_name) print('zhucechenggong') #============================登录=========================
def loging():
user_name=input('请输入用户名')
password=input('请输入密码')
# 用户名是否注册
all_user=get_all_user()
for user in all_user:
if user[key_user_name]==user_name:
if user[key_password]==password:
print('登陆成功')
return user_name
print('密码错误')
return None
print('用户名未注册')
return None #=====================主页=======================
def show_main_page():
while True:
print(file_manager.read_text_file('loging.txt'))
value=int(input('请选择(1~3):')) #1,退出
if value==3:
break
#2,注册
elif value==2:
register() #3,登录
elif value==1:
user_name=loging()
if user_name:
student_system.user_name=user_name
student_system.main_page() else:
print('重新选择') if __name__ == '__main__':
show_main_page()

2,学生系统函数(student_system.py)

import file_manager

user_name=''

#====================ADD===========
'''
一个账号对应管理不同的学生-----不同用户对应不同json文件
json格式
{'name':'','number':个数,
'all_students':[
{'name': ,'age': ,'tel' ,}
]
} '''
key_number='number'
key_all_students='all_students'
key_name='name'
key_age='age'
key_tel='tel'
key_id='id' def get_system_info():
system_info=file_manager.read_json_file(user_name+'.json')
if system_info:
return system_info
return {} def creat_id():
system_info=get_system_info()
number=system_info.get(key_number,0)
number+=1
id='stu'+str(number).rjust(4,'0')
return id,number
#更新系统中的数据 def add_student():
while True:
name=input('姓名')
age=input('年龄')
tel=input('电话') #id
id,number=creat_id() #3创建学生
student={key_name:name,key_age:age,key_tel:tel,key_id:id} #4保存学生信息
system_info=get_system_info()
all_student=system_info.get(key_all_students,[])
all_student.append(student) #5保存
system_info[key_all_students]=all_student
system_info[key_number]=number
re=file_manager.write_json_file(system_info,user_name+'.json') if re:
print('添加成功')
else:
print('添加失败')
print('1,继续添加','2,返回')
x=input('选择')
if x=='1':
continue
elif x=='2':
break # ====================查找学生===================
def find_student():
while True:
print('1,查看所有学生')
print('2,根据姓名查找学生')
print('3,根据学号查找学生') system_info=get_system_info()
all_students=system_info[key_all_students]
if not all_students:
print('no stu')
return value = input('请选择:') if value=='1':
for student in all_students:
print('学号:%s,姓名:%s,年龄:%s,电话:%s'\
%(student[key_id],student[key_name],student[key_age],student[key_tel])) if value=='2':
name = input('姓名')
for student in all_students:
if name==student[key_name]:
print('学号:%s,姓名:%s,年龄:%s,电话:%s' \
% (student[key_id], student[key_name], student[key_age], student[key_tel])) if value=='3':
id = input('学号')
for student in all_students:
if id==student[key_id]:
print('学号:%s,姓名:%s,年龄:%s,电话:%s' \
% (student[key_id], student[key_name], student[key_age], student[key_tel])) print('1,继续', '2,返回')
x = input('选择')
if x == '1':
continue
elif x == '2':
break # ===========================删除学生===========================
def delete():
while True:
print('1,根据姓名删除学生')
print('2,根据学号删除学生')
wait_dele=[] system_info=get_system_info()
all_student=system_info.get(key_all_students,[])
value=input('请选择:')
if value=='1':
name = input('姓名')
count=0
for stu in all_student[:]: if stu[key_name]==name:
count += 1
wait_dele.append(stu)
print('%d,学号:%s,姓名:%s,年龄:%s,电话:%s' \
% (count,stu[key_id], stu[key_name], stu[key_age], stu[key_tel])) option=int(input('请选择删除项:'))
all_student.remove(wait_dele[option-1])
system_info[key_all_students]=all_student
file_manager.write_json_file(system_info,user_name+'.json') if value == '2':
id = input('学号')
for stu in all_student[:]: if stu[key_id] == id: print('学号:%s,姓名:%s,年龄:%s,电话:%s' \
% (stu[key_id], stu[key_name], stu[key_age], stu[key_tel]))
dele_stu=stu
option = input('是否删除:1,是;2,否')
if option==1:
all_student.remove(dele_stu) system_info[key_all_students] = all_student
file_manager.write_json_file(system_info, user_name + '.json') print('1,继续', '2,返回')
x = input('选择')
if x == '1':
continue
elif x == '2':
break # ==========================修改=======================================
def revise():
while True:
print('1,根据姓名修改学生')
print('2,根据学号修改学生') wait_revise=[] system_info = get_system_info()
all_student = system_info.get(key_all_students, [])
value = input('请选择:')
if value == '1':
name = input('姓名')
count = 0
index=-1
for stu in all_student[:]:
index+=1
if stu[key_name] == name:
count += 1
wait_revise.append(index)
print('%d,学号:%s,姓名:%s,年龄:%s,电话:%s' \
% (count, stu[key_id], stu[key_name], stu[key_age], stu[key_tel])) option = int(input('请选择修改项:'))
index=wait_revise[option-1]
name = input('姓名')
age = input('年龄')
tel = input('电话')
all_student[index][key_name]=name
all_student[index][key_age] = age
all_student[index][key_tel] = tel system_info[key_all_students] = all_student
file_manager.write_json_file(system_info, user_name + '.json') if value == '2':
id = input('学号')
index1=-1
for stu in all_student[:]:
index1+=1
if stu[key_id] == id:
print('学号:%s,姓名:%s,年龄:%s,电话:%s' \
% (stu[key_id], stu[key_name], stu[key_age], stu[key_tel]))
index = index1
option = input('是否修改:1,是;2,否')
if option == 1:
name = input('姓名')
age = input('年龄')
tel = input('电话')
all_student[index][key_name] = name
all_student[index][key_age] = age
all_student[index][key_tel] = tel system_info[key_all_students] = all_student
file_manager.write_json_file(system_info, user_name + '.json') print('1,继续', '2,返回')
x = input('选择')
if x == '1':
continue
elif x == '2':
break #====================zhuye================
def main_page():
while True:
print(file_manager.read_text_file('system.txt'))
value = int(input('请选择(1~5):')) if value ==5:
break
elif value ==1: #添加
add_student()
elif value ==2: #查找
find_student()
elif value == 3: # 删除
delete()
elif value == 4: # 修改
revise()

3,自定义模块函数(file_manager.py)

import json

'''   '''

def read_text_file(file_name):
'''
获取文本文件的内容
:param file_name:文件名
:return:
'''
try:
with open('./files/'+file_name,encoding='utf-8') as f:
return f.read()
except:
print('文件不存在')
return None def write_json_file(content,filename):
'''
写入json文件
:param filename: 文件名
:param content:写入内容
:return:
'''
try:
with open('./files/'+filename,'w',encoding='utf-8') as f:
json.dump(content,f)
return True
except:
return None def read_json_file(filename):
'''
读json文件
:param filename:
:return:
'''
try:
with open('./files/'+filename,encoding='utf-8') as f:
return json.load(f)
except:
return None

python 学生表的更多相关文章

  1. Python进阶----表与表之间的关系(一对一,一对多,多对多),增删改查操作

    Python进阶----表与表之间的关系(一对一,一对多,多对多),增删改查操作,单表查询,多表查询 一丶表与表之间的关系 背景: ​ ​ ​  ​ ​ 由于如果只使用一张表存储所有的数据,就会操作数 ...

  2. Django学习路8_学生表和班级表级联并相互查询信息

    在创建好的 app3 目录下的 models.py 中 创建对 数据表(学生和班级)的描述 分析: 学生和班级是一对多的关系 班级表的设计 class Grade(models.Model): # 设 ...

  3. sql面试题(学生表_课程表_成绩表_教师表)

    原帖链接:http://bbs.csdn.net/topics/280002741 表架构 Student(S#,Sname,Sage,Ssex) 学生表 Course(C#,Cname,T#) 课程 ...

  4. 设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。

    一.            设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表( ...

  5. 2014-11-9------- 设有一数据库,包括四个表:学生表(Student)、课程表(Course)、成绩表(Score)以及教师信息表(Teacher)。

    一.            设有一数据库,包括四个表:学生表(Student).课程表(Course).成绩表(Score)以及教师信息表(Teacher).四个表的结构分别如表1-1的表(一)~表( ...

  6. 学生表sid,sname,结果表cid,cname,学生成绩表sid,cid,cscore,最高要求的分数输出候补课程专门命名

    --1.建表SQL: --学生表: -- Createtable createtable STUDENT ( SID   NUMBERnotnull, SNAME NVARCHAR2) ) table ...

  7. python打印表格式数据,留出正确的空格和段落星号或注释

    python打印表格式数据,留出正确的空格,格式化打出 代码如下: def printPicnic(itemsDict,leftWidth,rightWidth): print('PICNIC ITE ...

  8. SQL Server 基础之《学生表-教师表-课程表-选课表》(二)

    表结构 --学生表tblStudent(编号StuId.姓名StuName.年龄StuAge.性别StuSex) --课程表tblCourse(课程编号CourseId.课程名称CourseName. ...

  9. 关于面试总结2-SQL学生表

    前言 接着上一篇https://www.cnblogs.com/yoyoketang/p/10065424.html,继续学生表SQL 1.计算每个人的平均成绩, 要求显示字段: 学号,姓名,平均成绩 ...

随机推荐

  1. PAT Basic 1070 结绳 (25 分)

    给定一段一段的绳子,你需要把它们串成一条绳.每次串连的时候,是把两段绳子对折,再如下图所示套接在一起.这样得到的绳子又被当成是另一段绳子,可以再次对折去跟另一段绳子串连.每次串连后,原来两段绳子的长度 ...

  2. wav音频的剪切

    wav格式音频剪切功能的完美实现方案. import java.io.*; import javax.sound.sampled.*; public class AudioFileProcessor ...

  3. 快看,那个学SLAM 的崩溃了!

    点"计算机视觉life"关注,置顶更快接收消息! 本文列举了当前优秀SLAM方案,点出了SLAM学习者的困境,最后打算搞点大事 请把此文转发给你认识的SLAM大神,愿你头发浓密,心 ...

  4. python3 虚拟环境

    一.python中的虚拟环境 1.虚拟环境:局部的,独立的python环境,完全模拟系统全局python环境的使用 二.安装 http://virtualenv.pypa.io/en/latest/u ...

  5. Tensorflow2.0学习(一)

    站长资讯平台:今天学习一下Tensorflow2.0 的基础 核心库,@tf.function ,可以方便的将动态图的语言,变成静态图,在某种程度上进行计算加速 TensorFlow Lite Ten ...

  6. python面向对象基础(四)内置方法 __xx__之new与init

    __init__和__new__方法 __new__() 是在新式类中新出现的方法,它作用在构造方法建造实例之前,可以这么理解,在 Python 中存在于类里面的构造方法 __init__() 负责将 ...

  7. C# Transaction 事务处理

    class //student [Serializable] public class Student { public string FirstName { get; set; } public s ...

  8. C# Dynamic动态对象

    1.ExpandoObject dynamic expObj = new ExpandoObject(); expObj.FirstName = "Daffy"; expObj.L ...

  9. Python 15__屏幕抓取

  10. django 内置标签

    1.autoescape 自动转义开关 官网:https://docs.djangoproject.com/en/2.2/ref/templates/builtins/ 作用:将 html 内容解析成 ...