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. 《数据结构与算法之美》 <05>链表(下):如何轻松写出正确的链表代码?

    想要写好链表代码并不是容易的事儿,尤其是那些复杂的链表操作,比如链表反转.有序链表合并等,写的时候非常容易出错.从我上百场面试的经验来看,能把“链表反转”这几行代码写对的人不足 10%. 为什么链表代 ...

  2. 用.htaccess 禁止IP访问

    用.htaccess 禁止某IP访问 Order Allow,Deny Allow from all Deny from 1.1.1.1 2.2.2.2 3.3.3.3 允许所有,禁止xxxx,请将里 ...

  3. linux tcp server bind

    如果不是系统管理员: bind()函数 返回失败

  4. 用python计算最高投标限价

    题目是文绉绉的说法,背景来于群里提问,是一份文件里面关于最高投标限价的确定. 最高投标限价下浮率在开标前在开标现场采取逐标段摇珠方式确定,摇珠操作办法如下:在下浮率摇珠范围内,以0.1%为以一档次增序 ...

  5. i p _ i n s e r t o p t i o n s函数

    i p _ o u t p u t函数接收一个分组和选项.当 i p _ f o r w a r d调用该函数时,选项已经是分组的一部分,所以 i p _ f o r w a r d总是把一个空选项指 ...

  6. python_网络编程socketserver模块实现多用户通信

    服务端: import socketserver class MyServer(socketserver.BaseRequestHandler): def handle(self): #在这个函数里面 ...

  7. appium+python 【Mac】UI自动化测试封装框架介绍 <五>---脚本编写(多设备)

    目的: 通过添加设备号,则自动给添加的设备分配端口,启动对应的appium服务.注意:为了方便,将共用一个配置文件. 1.公共的配置文件名称:desired_caps.yaml platformVer ...

  8. 后代元素 span:first-child{...}

    <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8" ...

  9. P5043【模板】树同构([BJOI2015]树的同构)

    思路:树哈希 提交:1次 题解: 怕不是用的oi-wiki上的公式: \[f_u=size_u\times\sum f_{son_{u,i}}\times Base^{i-1}\] #include& ...

  10. animation-timing-function

    animation-timing-function 语法: animation-timing-function:<single-animation-timing-function>[,&l ...