综合练习:图书管理系统
图书管理模块
1.登陆:输入密码错误超过三次锁定账户,密码使用加密
2.信息查看
3.添加
4.修改
5.删除
注:
Excel文件位置:e://book.xls
sheet1(user):id, username, password, state
sheet2(book):id, name, publisher, price, author, state
模块文件:libmodu01.py
import xlrd #读取excel文件
from xlutils.copy import copy
import hashlib #加密
def login(username, password):
book = xlrd.open_workbook(“e://book.xls”)
sheet = book.sheet_by_name(“user”) #操作book.xls中的user(sheet1)
r = sheet.nrows #行
c = sheet.ncols #列
flag = False
m = 0 #username在列下标
p = 0 #password……
q = 0 #state……
for j in range(c):
if sheet.cell(0,j).value == "username":
m = j
elif sheet.cell(0,j).value == "password":
p = j
elif sheet.cell(0,j).value == "state":
q = j
password=hashlib.md5(password.encode("utf-8")).hexdigest() #输入密码加密后与数据库中储存加密好的密码比对
for i in range(1, r):
if sheet.cell(i, q).value == "0" and sheet.cell(i, m).value == username and sheet.cell(i, p).value == password:
flag = True
break
return flag
def showBooks():
book = xlrd.open_workbook(“e://book.xls”)
sheet = book.sheet_by_name(“book”)
r = sheet.nrows
c = sheet.ncols
q = 0
for j in range©:
if sheet.cell(0,j).value == “state”:
q = j
for i in range(1,r):
if sheet.cell(i,q).value == “1”:
continue
for k in range©:
if k == q:
continue
print(sheet.cell(i,k).value,end="")
print()
def addBook(a):
book = xlrd.open_workbook(“e://book.xls”)
sheet = book.sheet_by_name(“book”)
r = sheet.nrows
c = sheet.ncols
book_copy = copy(book)
sheet_copy =book_copy.get_sheet(1)
for i in range©:
try:
sheet_copy.write(r,i,a[i])
except:
break
book_copy.save(“book.xls”)
def updateBook(a):
book = xlrd.open_workbook(“e://book.xls”)
sheet = book.sheet_by_name(“book”)
r = sheet.nrows
c = sheet.ncols
book_copy = copy(book)
sheet_copy = book_copy.get_sheet(1)
for i in range®:
if sheet.cell(i,0).value == a[0]:
cr = i
break
for i in range©:
try:
sheet_copy.write(cr,i,a[i])
except:
break
book_copy.save(“book.xls”)
def deleteBook(id):
book = xlrd.open_workbook(“e://book.xls”)
sheet = book.sheet_by_name(“book”)
r = sheet.nrows
c = sheet.ncols
book_copy = copy(book)
sheet_copy = book_copy.get_sheet(1)
cr = 0 #要修改的行号
for i in range®:
if sheet.cell(i,0).value == id:
cr = i
break
sheet_copy.write(cr,c-1,“1”)
book_copy.save(“book.xls”)
#图书管理系统
import libmodu01 as book
import xlrd, hashlib
from xlutils import copy as cy #from 库 import 模块 as 简称
print("==欢迎登陆图书管理系统")
count = 0
while count < 3:
username = input(“请输入用户名:”)
password = input(“请输入密码:”)
result = book.login(username, password)
if result:
print(“1–查看图书信息”) #显示增删改删操作
print(“2–添加图书信息”)
print(“3–修改图书信息”)
print(“4–删除图书信息”)
op = input(“请输入操作编号:”)
if op == " 1 ":
book.showBooks()
break
elif op == “2”:
a = input(“请输入图书编号:”)
b = input(“请输入书名:”)
c = input(“请输入图书出版社:”)
d = input(“请输入图书价格:”)
e = input(“请输入图书作者:”)
book_ = [a, b, c, d, e, “0”]
book.addBook(book_)
break
elif op == “3”:
a = input(“请输入图书编号:”)
b = input(“请输入书名:”)
c = input(“请输入图书出版社:”)
d = input(“请输入图书价格:”)
e = input(“请输入图书作者:”)
book_ = [a, b, c, d, e]
book.updateBook(book_)
break
elif op == "4":
id = input("请输入图书编号:")
book.deleteBook(id)
break
else:
print("密码或用户名错误")
count += 1
if count == 3: #锁户
book = xlrd.open_workbook(“book.xls”)
sheet = book.sheet_by_name(“user”)
r = sheet.nrows
c = sheet.ncols
book_copy = cy.copy(book)
sheet_copy = book_copy.get_sheet(0)
for i in range®:
if sheet.cell(r, 1).value == username:
sheet_copy.write(r, 3, “1”)
break
book_copy.save(“e://book.xls”)