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. require.js 加载 js 文件 404 处理(配置无效)

    main.js 是 配置文件,data-main 是异步加载,如果在main.js未加载完成的时候,使用了require去加载文件,就会导致配置无效  main.js

  2. ARP、Proxy ARP、Gratuitous ARP

    Proxy ARP 什么是Proxy ARP? 一个主机A(通常是路由器)有意应答另一个主机B的ARP请求(ARP requests).主机A通过伪装其身份,承担起将分组路由到真实目的地的责任.代理A ...

  3. Django drf:序列化增删改查、局部与全局钩子源码流程、认证源码分析、执行流程

    一.序列化类的增.删.改.查 用drf的序列化组件   -定义一个类继承class BookSerializer(serializers.Serializer):   -写字段,如果不指定source ...

  4. 10_Azkaban案例实践3_Command操作HDFS

    HDFS操作任务 1.创建job描述文件 # fs.job type=command command=/usr/local/src/hadoop-2.6.4/bin/hadoop fs -mkdir ...

  5. 跨域详解之jsonp,底层的实现原理

    分享一下跨域,不仅是因为现在的工作中遇到的越来越多,而且在面试中也经常被问到. 那么什么是跨域呢,我们来看官方给出的解释:浏览器不能执行其他网站的脚本.它是由浏览器的同源策略造成的(所谓同源是指,域名 ...

  6. Auth2.0 例子【转载】

    本文转载自:https://www.cnblogs.com/flashsun/p/7424071.html 1.引言 本篇文章是介绍OAuth2.0中最经典最常用的一种授权模式:授权码模式 非常简单的 ...

  7. Jmeter练习

    首页 新随笔 管理   Jmeter接口测试实例-牛刀小试   本次测试的是基于HTTP协议的接口,主要是通过Jmeter来完成接口测试,借此熟悉Jmeter的基本操作. 本次实战,我是从网上找的接口 ...

  8. VSCode 的PHP常用插件及安装

    一.在程序中打断点调试:PHP Debug 二.高级自动完成和重构支持(代码智能提示):PHP IntelliSense 配置: "php.suggest.basic": fals ...

  9. Jquery 实现table标题点击复制整列td内容到剪贴板

    <!DOCTYPE html> <html> <head> <meta charset="utf-8"> <title> ...

  10. IntelliJ IDEA必装插件以及SpringBoot使用小技巧合集

    IntelliJ IDEA必装插件 有不知道怎么安装的吗?File-->settings打开设置面板,找到plugins,输入想要安装的插件回车即可 1.背景图片 目前,IDEA支持设置背景图片 ...