[python](5)----图书管理系统

这是一个介绍如何使用Python构建图书管理系统的教程,包括用户登陆的加密处理、图书信息的查看、添加、修改和删除等功能。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

图书管理系统

1.登陆(加密)
2.信息查看
3.添加
4.修改
5.删除

import xlrd
from xlutils.copy import copy
import hashlib                              #加密
def login(username, password):
    #读取excel信息
    book = xlrd.open_workbook("book.xls")
    sheet = book.sheet_by_name("user")
    r = sheet.nrows     #行数
    c = sheet.ncols     #列数
    flag = False        #状态
    '''
    m--username在的列下标
    p--passord在的列下标
    q--state在的列下标
    '''
    m = 0       #username用户名所在的列数
    p = 0       #密码所在的列数
    q = 0       #状态所在的列数
    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("book.xls")
    sheet = book.sheet_by_name("book")
    r = sheet.nrows#行数
    c = sheet.ncols#列数
    q = 0   #状态
    for j in range(c):#循环列,看哪一列是用户名或者密码
        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(c):
            if k==q:
                continue
            print(sheet.cell(i,k).value,end=" ")
        print()
def addBook(a):                                      #添加
    book = xlrd.open_workbook("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(c):
        try:
            sheet.copy.write(r,i,a[i])
        except:
            break
    book_copy.save("book.xls")
def updateBook(a):                                  #修改
    book = xlrd.open_workbook("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(r):#目的是找到当前行号
        if sheet.cell(i,0).value==a[0]:#找行号
            cr = i
            break
    for i in range(c):
        try:
            sheet.copy.write(r, i, a[i])
        except:
            break
    book_copy.save("book.xls")
def deleteBook(id):#删除
    book = xlrd.open_workbook("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(r):
        if sheet.cell(i, 0).value == id:
            cr = i
            break
    sheet_copy.write(cr,c-1,"1")
    book_copy.save("book.xls")



import test1 as book
import hashlib
import xlrd
from xlutils import copy
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("请输入正确编号")
            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 = copy.copy(book)
    sheet_copy = book_copy.get_sheet(0)
    for i in range(r):
        if sheet.cell(i,1).value == username:
            sheet_copy.write(i,3,"1")
            break
    book_copy.save("book.xls")

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值