图书管理系统
1.每一本图书包含三条信息:图书编号,图书名称,存放位置
2.添加功能实现:依次输入图书编号 图书名 图书位置进行添加
3.删除功能实现:输入书名,删除图书。
4.显示所有书籍:显示出所有书本的信息(分行显示,每行显示一本)
5.图书信息另存储到文件中
图书管理系统改成函数版本,每个功能封装成一个函数,原来功能上扩展,启动程序首先提示功能选项:
源代码
b=1
while b==1:
f = open("1.txt", mode="r", encoding="utf8")
user = f.readlines()
f.close()
for i in range(0, len(user)):
user[i] = eval(user[i].replace("\n", ""))
choice = input("1.登入 2.注册")
if choice == '1':
uname = input('请输入用户名')
pwd = input('请输入密码')
for i in user:
if uname == i["name"]:
if pwd == i["passwd"]:
print("登入成功")
b=0
break
else:
print("密码错误")
else:
print("用户名不存在")
elif choice == '2':
uname = input("请输入用户名")
for i in user:
if uname == i["name"]:
print("用户名存在,注册失败")
break
else:
pwd = input("请输入密码")
pwd_again = input("请再次输入密码")
if pwd == pwd_again:
f = open("1.txt", mode="a+", encoding="utf8")
f.write("\n{")
f.write('"name":"{}","passwd":"{}"'.format(uname, pwd))
f.write("}")
f.close()
print("注册成功")
else:
print("两次密码不一致,注册失败")
else:
print('输入有误')
def write_book(book):#把图书添加到文件里
f = open("2.txt", mode="a+", encoding="utf8")
a=str(book)
f.write(a)
f.write("\n")
f.close()
def print_muen(): #显示导航显示 菜单
print("----菜单提示----")
print("[1]:添加图书")
print("[2]:查询图书")
print("[3]:删除图书")
print("[4]:显示所有图书")
print("[5]:修改图书")
print("[6]:退出")
def add_book(): #新增图书
bid=input("请输入图书编号")
bname=input("请输入图书名称")
bloc=input("请输入图书位置")
#编号不能重复
for i in books:
if bid == i["book_id"]:
return {"code":"101","message":"编号重复"}
else:
book={}
book["book_id"]=bid
book["book_name"]=bname
book["book_loc"]=bloc
books.append(book)
write_book(book)
return {"code": "200", "message": "新增成功"}
def del_book(): #删除图书
book_name = input("请输入要删除的图书名称:")
i=0
x=0
aa=[]
ext=0
while i < len(books):
if book_name==books[i]["book_name"]:
id=books[i]["book_id"]
aa.append(id)
ext=1
print("你输入图书编码为{}".format(id))
i+=1
if ext==0:
return {"code": "101", "message": "图书查询不到,删除失败"}
if ext==1:
book_id=input("请输入要删除的编码:")
i=0
while x<len(aa):
if aa[x]==book_id:
while i<len(books):
if book_id==books[i]["book_id"]:
del books[i]
new_file(books)
return {"code": "200", "message": "删除成功"}
i+=1
break
x+=1
else:
print("输入有误")
def new_file(books): # 将books的内容更新到文本文件里
i = 0
nf = open('2.txt', 'w+', encoding='utf8') # 以清空原文本文件内容的方式打开文件写入
while i < len(books):
new = str(books[i])
nf.write(new)
if i != len(books) - 1:
nf.write("\n")
i += 1
nf.close()
def all_book():#显示所有图书信息
for i in books:
print(i)
def chang_book():
book_name = input("请输入修改的图书名称")
i = 0
jg = 0
flag = []
while i < len(books):
if books[i]["book_name"] == book_name:
id = books[i]["book_id"]
flag.append(id)
print("图书编号:{}".format(id))
jg = 1
i += 1
if jg == 0:
return {"code": "101", "message": "图书查询不到,无法修改"}
book_id = input("请输入修改的图书编号,或者其他需要修改的图书编号")
for i in books:
if book_id == i["book_id"]:
New_id = input("新的图书编号")
if New_id == i["book_id"]:
print("输入编号重复")
break
else:
New_name = input("新的图书名称")
New_loc = input("新的图书位置")
i["book_id"] = New_id
i["book_name"] = New_name
i["book_loc"] = New_loc
new_file(books)
print(books)
return {"code": "200", "message": "修改成功"}
def find_book(): # 查找图书
book_name = input("请输入图书名字")
for i in books:
if book_name == i["book_name"]:
print(i)
return {"code": "200", "message": "查询成功"}
else:
return {"code": "101", "message": "无此图书"}
if __name__=="__main__":
print('欢迎进入图书管理系统')
f = open("2.txt", mode="r", encoding="utf8")
books = f.readlines()
f.close()
for i in range(0, len(books)):
books[i] = eval(books[i].replace("\n", ""))
while True:
print_muen()
choice=input("请输入您的选择")
if choice=='1':
add_continue = 1
while add_continue not in ['n','N']:
result=add_book()
if result["code"]=="101":
print(result["message"])
else:
print(result["message"])
add_continue=input('是否继续添加 任意键继续 n退出')
elif choice=='2':
find_continue = 1
while find_continue not in ['n', 'N']:
result = find_book()
if result["code"] == "101":
print(result["message"])
else:
print(result["message"])
find_continue = input('是否继续查找 任意键继续 n退出')
elif choice=='3':
del_continue = 1
while del_continue not in ['n', 'N']:
result = del_book()
if result["code"] == "101":
print(result["message"])
else:
print(result["message"])
del_continue = input('是否继续删除 任意键继续 n退出')
elif choice=='4':
all_book()
elif choice=='5':
chang_continue = 1
while chang_continue not in ['n', 'N']:
result = chang_book()
if result["code"] == "101":
print(result["message"])
else:
print(result["message"])
chang_continue = input('是否继续修改 任意键继续 n退出')
elif choice == '6':
print("再见")
exit()
else:
print("您的输入有误,请重新输入")