""" ******************** 图书管理系统 ****************** # @Time : 2020/02/02 # @Author : Dobot # @File name : LibSystem.py # Demo说明: ****************************************************** """ import sys # 标志位 flag = False # 默认已存在的图书书籍信息 books=[['红楼梦','曹雪芹','F02'],['三国','罗贯中','A32'],['西游记','吴承恩','D82'],['水浒传','施耐庵','B56']] # 默认图书馆管理员信息 users=[['Jack','123'],['Mike','321']] # 存储学生信息字典,学生信息用字典存储,再用列表存储字典 name_list = [] # 检查学号是否重复或者有误 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 check_sex(new_sex): flag = True while flag: if new_sex == '男' or new_sex == '女': flag = False else: new_sex = input("输入性别有误,请重新输入(男/女):") return new_sex # 修改学生信息明细 def choice_of_name(index): while True: choice = input("请输入要修改学生的(1.学号 2.姓名 3.性别 4.书名,5.全部修改):") if choice == '5': new_id = input("请输入新的学号:") name_list[index]['id'] = new_id new_name = input("请输入新的姓名:") name_list[index]['name'] = new_name new_sex = check_sex(input("请输入性别(男/女):")) name_list[index]['sex'] = new_sex new_book = input("请输入书名,以《》格式命名:") name_list[index]['book'] = new_book break elif choice == '1': new_id = input("请输入新的学号:") name_list[index]['id'] = new_id break elif choice == '2': new_name = input("请输入新的姓名:") name_list[index]['name'] = new_name break elif choice == '3': new_sex = check_sex(input("请输入性别(男/女):")) name_list[index]['sex'] = new_sex break elif choice == '4': new_book = input("请输入书名,以《》格式命名:") name_list[index]['book'] = new_book break 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("学生未找到!") # 修改学生信息 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 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 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 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 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 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 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) # 主程序入口 if __name__ == "__main__": main()