import sys
# 标志位
flag = False
# 存储学生信息字典,学生信息用字典存储,再用列表存储字典
name_list = [{"id": "20201001", "name": "残浔", "sex": "男", "book": "传说有两个地球"},{"id": "20201002", "name": "好家伙", "sex": "男", "book": "好家伙传记"}]
# 默认图书馆管理员信息
users = [['admin', '123456']]
# 主函数
def main():
print('\n\n **********************')
print(' *欢迎来到图书管理系统*')
print(' **********************\n')
print('*********************************')
print('****** 登录-------0 **********')
print('****** 注册-------1 **********')
print('****** 退出-------2 **********')
print('*********************************\n')
while True:
val = int(input('请输入对应数字:'))
if val == 0:
login()
elif val == 1:
register()
elif val == 2:
sys.exit(0)
# 管理员注册
def register():
username = input('请输入用户名:')
password = input('请输入用户密码:')
users.append([username, password])
print('注册成功!')
main()
# 管理员登录
def login():
print('请输入用户名:', end='')
username = input()
print('请输入用户密码:', end='')
password = input()
if [username, password] in users:
print('登录成功!')
interface()
else:
print('\n用户名不存在或密码错误!请重新登录!')
# 登录主界面
def interface():
print('\n***********************************************')
print('****** 进入书籍信息管理界面-------1 ********')
print('****** 进入学生信息管理界面-------2 ********')
print('****** 退出系统-------------------3 ********')
print('***********************************************\n')
val = int(input('请输入对应数字:'))
if val == 1:
Book()
elif val == 2:
Student()
elif val == 3:
sys.exit(0)
# 学生信息管理
def Student():
while True:
print("-" * 30)
print("1.添加学生信息")
print("2.删除学生信息")
print("3.修改学生信息")
print("4.查询单个学生信息")
print("5.查询所有学生信息")
print("6.返回主界面")
print("-" * 30)
val = int(input('请输入对应数字:\n'))
if val == 1:
new_info = {}
new_id = check_id(input("请输入学号:"))
new_info['id'] = new_id
new_name = input("请输入姓名:")
new_info['name'] = new_name
new_sex = check_sex(input("请输入性别(男/女):"))
new_info['sex'] = new_sex
new_book = input("请输入书名,以《》格式命名:")
new_info['book'] = new_book
name_list.append(new_info)
print("添加成功!")
elif val == 2:
del_name()
elif val == 3:
re_name()
elif val == 4:
find_name()
elif val == 5:
find_all()
elif val == 6:
# 返回主界面
interface()
# 检查性别是否合法
def check_sex(new_sex):
flag = True
while flag:
if new_sex == '男' or new_sex == '女':
flag = False
else:
new_sex = input("输入性别有误,请重新输入(男/女):")
return new_sex
# 默认已存在的图书书籍信息
books = [['红楼梦', '曹雪芹', 'F02'], ['三国', '罗贯中', 'A32'], ['西游记', '吴承恩', 'D82'],
['水浒传', '施耐庵', 'B56']]
# 书籍信息管理
def Book():
while True:
print('\n***************************************')
print('******** 增加书籍--------1 **********')
print('******** 删除书籍--------2 **********')
print('******** 查找书籍--------3 **********')
print('******** 修改书籍--------4 **********')
print('******** 查看所有书籍----5 **********')
print('******** 返回主界面------6 **********')
print('***************************************\n')
val = int(input('请输入对应的数字:\n'))
if val == 1:
bookname = input('请输入书名:')
author = input('请输入作者:')
Num = input('请输入编号:')
books.append([bookname, author, Num])
print('\n添加书籍成功!')
elif val == 2:
Num = input('请输入编号:')
j = 0
for i in books:
if i[2] == Num:
j = 1
books.remove([i[0], i[1], i[2]])
print('\n删除书籍成功!')
if j == 0:
print('该书籍不存在!自动返回...')
elif val == 3:
bookname = input('请输入书名:')
print()
j = 0
for i in books:
if i[0] == bookname:
j = 1
print('书名:', i[0], '作者:', i[1], '编号:', i[2])
if j == 0:
print('该书籍不存在!自动返回...')
print('\n查找结束!\n')
elif val == 4:
Num = input('请输入编号:')
j = 0
for i in books:
if i[2] == Num:
j = 1
i[0] = input('请输入修改后的书名:')
i[1] = input('请输入修改后的作者:')
i[2] = input('请输入修改后的编号:')
books.append([i[0], i[1], i[2]])
print('\n修改书籍成功!')
if j == 0:
print('该书籍不存在!自动返回...')
elif val == 5:
print('\n书名\t\t', '作者\t\t\t', '编号\n')
for i in books:
print(i[0], '\t\t', i[1], '\t\t', i[2])
print()
elif val == 6:
# 返回主界面
interface()
# 检查学号是否重复或者有误
def check_id(new_id):
flag = True
while flag:
# 先检查是不是纯数字再去考虑是否重复的事情,如果不是纯数字直接pass
if new_id.isdigit():
for i in range(len(name_list)):
if name_list[i]['id'] == new_id:
new_id = check_id(input("您输入的学号重复,请重新输入:"))
flag = False
else:
new_id = input("您输入的学号有误,请重新输入:")
return new_id
# 删除学生信息
def del_name():
del_id_is = input("请输入要删除的学生学号:")
flag = False
index = 0
for i in range(len(name_list)):
if name_list[i]['id'] == del_id_is:
flag = True
index = i
break
if flag:
name_list.pop(index)
print("删除成功!")
else:
print("学生未找到!请检查学号输入是否有误!")
# 修改学生信息
def re_name():
id_is = input("请输入要修改的学生学号:")
flag = False
index = 0
# 先找到要修改的学生的下标
for i in range(len(name_list)):
if name_list[i]['id'] == id_is:
flag = True
index = i
break
if flag:
choice_of_name(index)
print("修改成功!")
else:
print("修改失败,学生信息未找到!")
# 查询所有学生信息
def find_all():
print("=" * 50)
for name in name_list:
print(name['id'], name['name'], name['sex'], name['book'])
print("=" * 50)
# 查询单个学生信息
def find_name():
find_id_is = input("请输入要查询的学生学号:")
flag = False
index = 0
for i in range(len(name_list)):
if name_list[i]['id'] == find_id_is:
flag = True
index = i
break
if flag:
print("学生查询到,学生信息为:")
print(name_list[index]['id'], name_list[index]['name'],
name_list[index]['sex'], name_list[index]['book'])
else:
print("学生未找到!")
# 主程序入口
if __name__ == "__main__":
main()