单纯地用简单的代码流程来模拟图书馆系统,没有涉及到类的概念,仅仅用来练习简单的条件分支流程(if语句)和循环流程(for循环、while循环)等。
模拟图书馆系统包含的功能:
(1)登录注册(用户、管理员)
(2)查询书籍、借书、还书
(3)退出登录
附上我的代码部分:
users = [['123456', '123@163.com', '22325378']]
adminers = [['123456','123456']]
admin_state = 0#默认
books = [
#序号,书名,作者,出版社,ISBN,分类,库存,价格
[1,'西游记','吴承恩','大明出版社','0001','玄幻小说','999',998],
[2,'水浒传','施耐庵','大明出版社','0002','历史纪实','999',998],
[3,'数据结构','严蔚敏','清华大学出版社','0003','科教文娱','0',2],
[4,'时间简史','霍金','牛津大学出版社','0004','玄幻小说','777',50],
[5,'斗罗大陆','唐家三少','大明出版社','0005','玄幻小说','99999',18888]]
alpha_table = ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
'u', 'v', 'w', 'x', 'y', 'z', 'A', 'B', 'C', 'D',
'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 'N',
'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X',
'Y', 'Z', '0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
#用户注册:
def logon():
username = input("请输入用户名:")
if len(username) < 8 or len(username) > 16:
print("用户名长度为8~16位,请重新输入!")
logon()
else:
email = input("请输入邮箱:")
password = input("请输入密码:")
if len(password)<8 or len(password)>16:
print("密码长度为8~16位,请重新输入!")
else:
check_password = input("请确认密码:")
if password == check_password:
print("注册成功!")
# 函数调用,每追加一列数据都进行换行 每个数据之间都有空格
users.append([username,email,password])
print(users)
login_flags = input('是否登录?(yes/no)')
if login_flags =='yes':
login()
else:
pass
return True
else:
print("两次输入的密码不一致,请重新输入!")
# 递归调用
logon()
#用户登录
def login():
print("--------用户登录---------")
flags = input("是否已经注册?(yes/no)")
if flags =='yes':
status = int(input("请输入身份类型:"))
if status == 0:#管理员身份
admin_name = input("输入管理员账户:")
admin_password = input("输入管理员密码:")
for adminer in adminers:
if adminer[0] == admin_name and adminer[1] == admin_password:
print("登录成功!")
print("欢迎管理员",admin_name,"!")
operate_adminer()
else:
flag = input("管理员登录失败!是否重新登录?(yes/no)")
if flag == 'yes':
login()
elif flag == 'no':
print("欢迎再来!")
elif status == 1:
username = input("输入用户名:")
password = input("输入密码:")
for user in users:
if user[0] == username and user[2] == password:
print("登录成功!")
print("欢迎普通用户", username, "!")
operate_user()
elif user[0] == username and user[1] != password:
print("密码不正确!")
login()
else:
flag = input("登录失败!是否重新登录?(yes/no)")
if flag == 'yes':
login()
elif flag == 'no':
print("欢迎再来!")
else:
print("类型不存在!重新输入!")
else:
print("您还未注册,请先注册后再登录!")
# 递归
logon()
#个人信息
def person_information():
status = int(input("请确认身份类型:"))
name = input("请确认用户名:")
if status == 0:
print("欢迎管理员", name,"!")
elif status == 1:
print("欢迎普通用户",name,"!")
tips = input("请选择操作:\n 1.查看个人信息\n 2.修改个人信息\n 3.返回\n 4.退出")
tip = int(input(""))
if tip == 1:
if status == 0:
for adminer in adminers:
if adminer[0] == name:
print("用户名:", name, "\n密码:", adminer[2])
elif status == 1:
for user in users:
if user[0] == name :
print("用户名:",name,"\n邮箱:",user[1],"\n密码:",user[2])
elif tip == 2:
tip = int(input("请选择操作:\n 1.修改邮箱\n 2.修改密码\n"))
if tip == 1:
if status == 1:
for user in users:
if user[0] == name:
print("您目前的邮箱为:",user[1])
update = input("请输入要修改的邮箱:")
user[1] = update
print("邮箱已修改为:", user[1])
elif tip == 2:
if status == 0:
for adminer in adminers:
if adminer[0] == name:
print("您目前的密码为:", adminer[2])
update = input("请输入要修改的密码:")
adminer[2] = update
print("密码已修改为:", adminer[2])
elif status == 1:
for user in users:
if user[0] == name:
print("您目前的密码为:",user[2])
update = input("请输入要修改的密码:")
user[2] = update
print("密码已修改为:", user[2])
else:
print("重新输入!")
elif tip == 3:
if status == 0: # 管理员身份
operate_adminer()
elif status == 1:
operate_user()
elif tip == 4:
tip = input("确定退出系统吗?(yes/no)")
if tip == 'yes':
goout()
else:
print("重新输入!")
#查询图书
def find_books():
print("-----查看所有图书------")
for book in books:
print(book)
tip = ("---请选择操作:\n 1.根据书名查找\n 2.根据作者查找\n 3.根据分类查找\n 4.根据价格查找\n 5.返回\n 6.退出")
if tip == '1':
findByName()
elif tip == '2':
findByAuthor()
elif tip == '3':
findBySort()
elif tip == '4':
findByPrice()
elif tip == '5':
operate_user()
elif tip == '6':
tip = input("确定退出系统吗?(yes/no)")
if tip == 'yes':
goout()
def findByName():
# 根据书名查找
book_name = input("---请输入要查找到书名:")
for book in books:
if book[1] == book_name:
print(book)
def findByAuthor():
book_author = input("---请输入要查找到作者:")
for book in books:
if book[2] == book_author:
print(book)
def findBySort():
book_sort = input("---请输入要查找到分类:")
for book in books:
if book[5] == book_sort:
print(book)
def findByPrice():
max_book_price = input("---请输入要查找到价格最大范围:")
min_book_price = input("---请输入要查找到价格最小范围:")
for book in books:
if book[7] < max_book_price and book[7] > max_book_price:
print(book)
def add_book():
print("-----图书列表------")
for book in books:
print(book)
book_name = input("请输入添加图书名:")
book_author = input("请输入添加图书作者:")
book_publish = input("请输入添加图书出版社:")
book_isbn = input("请输入添加图书ISBN:")
book_sort = input("请输入添加图书分类:")
book_count = input("请输入添加图书库存量:")
book_price = int(input("请输入添加图书价格:"))
xuhao = len(books)+1
books.append([xuhao,book_name,book_author,book_publish,book_isbn,book_sort,book_count,book_price])
for book in books:
if book[1] == book_name:
print("添加图书成功!")
def update_book():
print("-----图书列表------")
for book in books:
print(book)
book_name = input("请输入修改图书名:")
book_author = input("请输入修改图书作者:")
book_publish = input("请输入修改图书出版社:")
book_isbn = input("请输入修改图书ISBN:")
book_sort = input("请输入修改图书分类:")
book_count = input("请输入修改图书库存量:")
book_price = int(input("请输入修改图书价格:"))
for book in books:
if book[1] == book_name:
print(book)
book[2] = book_author
book[3] = book_publish
book[4] = book_isbn
book[5] = book_sort
book[6] = book_count
book[7] = book_price
print("修改后的图书为:",book)
def del_book():
print("-----图书列表------")
for book in books:
print(book)
book_name = input("请输入要删除图书名:")
for book in books:
if book[1] == book_name:
print("要删除图书为:",book)
books.remove()
print("删除成功!")
def borrow_book():
print("-----图书列表------")
for book in books:
print(book)
book_name = input("请输入要借图书名:")
for book in books:
if book[1] == book_name:
print("要借图书为:",book)
book[6] = str(int(book[6])-1)
print(book)
print("借书成功!")
def return_book():
print("-----图书列表------")
for book in books:
print(book)
book_name = input("请输入要还图书名:")
for book in books:
if book[1] == book_name:
print("要还图书为:",book)
book[6] = str(int(book[6])+1)
print(book)
print("还书成功!")
#系统菜单页面
def operate_user():
while True:
msg = int(input("请选择操作:\n 1.查询图书\n 2.借书\n 3.归还图书\n 4.个人信息\n 5.退出\n"))
if msg == 1:
find_books()
elif msg == 2:
borrow_book()
elif msg == 3:
return_book()
elif msg == 4:
person_information()
elif msg == 5:
msg = input("确定退出登录吗?(yes/no)")
if msg == 'yes':
goout()
break
def operate_adminer():
while True:
msg = int(input("请选择操作:\n 1.查询图书\n 2.添加图书\n 3.修改图书\n 4.删除图书\n 5.借书\n 6.归还图书\n 7.个人信息\n 8.退出登录\n"))
if msg == 1:
find_books()
elif msg == 2:
add_book()
elif msg == 3:
update_book()
elif msg == 4:
del_book()
elif msg == 5:
borrow_book()
elif msg == 6:
return_book()
elif msg == 7:
person_information()
elif msg == 8:
msg = input("确定退出登录吗?(yes/no)")
if msg == 'yes':
goout()
break
else:
print("重新输入!")
def goout():
print("您已退出!")
while True:
print(users)
print("--------欢迎来到图书管理系统---------")
print("请选择:1.登录 2.注册")
result = int(input("请输入"))
#注册登录
if result == 1:
login()
elif result == 2:
logon()
else:
print("重新输入!")
下面是运行代码的效果: