python基础实现图书馆管理系统

图书馆管理系统
python-列表-元组-字符串等基础语法实现
功能:
图书管理系统 LIBRARY_SYSTEM
1.登陆 —>1.登陆方式(1.账号(三次错误冻结) 2.ID(三次错误(1.使用身份证号找回账号ID 2.系统收回账号ID)))
3.注销账号
2.注册 —>验证码(2次) 密码安全性检查 (身份证 随机账号ID)
1.添加书籍 2.删除(1.书名 2.作者 3.价格) 3.修改 4.查找(1.书名 2.作者 3.价格)
5.查看 6.借阅 7.归还 8.主界面 0.退出

#830464
import sys
import time
import random
import copy

创建一个列表存储书籍信息

books = [[‘悲伤逆流成河’, ‘郭敬明’, 59], [‘从你的全世界路过’, ‘张嘉佳’, 68],
[‘左耳’, ‘安妮宝贝’, 68], [‘左耳’, ‘饶雪漫’, 55], [‘南极之恋’, ‘吴有音’, 76]]

创建一个空列表存储借阅的书籍

borrow_books = []

创建一个空列表存储账户ID

ID_book = []

创建一个身份证列表存储用户身份证

ID_cards = []

创建一个列表存储用户信息

users = [[‘kxq’, ‘123’], [‘cqq’, ‘456’]]

创建一个存储密码的列表

password_list = []

主界面

def main():
while True:
print(‘’)
print(’ 欢迎登陆图书管理系统 ')
print('
’)
print(‘’)
print('
登陆------1 ’)
print('
注册------2 ’)
print('
退出------0 ’)
print('
’)
print(’*******************************’)
n = int(input(‘请输入你的操作:’))

    if n == 1:
        login()
        time.sleep(2)
        function()
    if n == 2:
        register()
    if n == 0:
        sys.exit(0)

登陆系统(可修改密码) —1

count = 3
def login():
print(‘1.登陆方式 2.修改密码 3.注销账号’)
t = int(input(‘请输入:’))
#登陆方式(1.账号 2.ID)
if t == 1:
#1.账号 2.ID(ID忘记可用身份证找回)
print(‘请选择登陆方式:\t1.账号\t2.ID’)
e = int(input())
global count
#1.账号
if e == 1:
print(‘请输入用户名:’, end=’ ‘)
username = input()
print(‘请输入用户密码:’, end=’ ')
password = input()

        if [username,password] not in users:
            print('用户名或密码错误!')
            count = count - 1
            print('你还有%d次登陆机会' % count)
            time.sleep(2)

            if count <= 0:
                print('---------')
                print('输入错误次数超过3次,该账号被冻结')
                print('账号冻结3小时.')
                print('---------')
                time.sleep(10)
                count = 3
                login()

            else:
                login()
        else:
            if [username, password] in users:
                print('登陆成功!')
                time.sleep(2)
    #2.ID
    if e == 2:
        print('请输入账号ID:', end=' ')
        IDD = input()
        print('请输入用户密码:', end=' ')
        password = input()

        if [IDD,password] not in ID_book:
            print('账号ID或密码错误!')
            count = count - 1
            print('你还有%d次登陆机会' % count)
            time.sleep(2)
            #ID登陆3次机会用完,可以使用身份证找回ID
            if count <= 0:
                print('---------->')
                print('是否要找回账号ID?\t1.是 \t2.否')
                z = int(input())
                #1.是
                if z == 1:
                    print('请输入您的身份证号:',end=' ')
                    id_card = str(input())
                    for i in ID_cards:
                        if id_card == i:
                            print('身份证号验证正确')
                            time.sleep(1.5)
                            print('您的账号ID为:',ID)
                            print('请记好您的账号ID')
                            time.sleep(2)
                            login()
                #2.否(将会删除账号ID)
                if z == 2:
                    print('---------')
                    print('输入错误次数超过3次,该账号ID将被收回')
                    #收回账号ID(清空ID_book列表)
                    ID_book.clear()
                    print('该账号ID已被收回')
                    #收回后返回主界面
                    time.sleep(2)
                    main()
            else:
                login()
        else:
            if [IDD, password] in ID_book:
                print('登陆成功!')
                time.sleep(2)

#修改密码(1.根据账号密码  2.根据账号ID)
if t == 2:
    alter_password()

#注销账号
if t == 3:
    print('请选择注销内容:\t1.账号  2.ID',end=' ')
    n = int(input())
    #1.账号
    if n == 1:
        username = input('请输入要注销的账号:')
        password = input('请输入要注销的密码:')
        if [username, password] in users:
            users.remove([username, password])
            print('\t\t\t......')
            time.sleep(3)
            print('注销成功!')
            print('---------')
            print('\t\t---------')
            login()
        else:
            print('账号或密码错误')
            time.sleep(2)
            login()

    #2.ID
    if n == 2:
        IDD = input('请输入要注销的ID:')
        password = input('请输入要注销的密码:')
        if [IDD, password] in ID_book:
            users.remove([IDD, password])
            print('\t\t\t......')
            time.sleep(3)
            print('注销成功!')
            print('---------')
            print('\t\t---------')
            login()
        else:
            print('账号或密码错误')
            time.sleep(2)
            login()

注册系统 —2

def register():
global ID,password,n1,m1
ccount = 3
CCOUNT = 2
username = input(‘请输入用户名:’)
password = input(‘请输入用户密码:’)
#第一次输入密码就判断是否是数字开头
security_varify()
varify_password = input(‘请再次输入密码:’)
#如果两次密码不一样,退出注册系统,返回主界面main()
while True:
# 两次密码一样,继续注册
if password == varify_password:
ID_card = input(‘请输入身份证号:’)
ID_cards.append(ID_card)

        #调用密码安全性检测函数
        security_varify()
        #调用验证码函数
        auth_code_produce()
        #判断验证码 注册成功
        if n1 == m1:
            print('验证成功')
            time.sleep(2)
            users.append([username, password])
            #print('users:',users)
            print('恭喜您,注册成功!')

            #注册成功随机分配账号ID(三位)
            ID = random.randrange(100000,1000000)
            print('您的随机账号ID为:%d'%ID)
            #注意:写进列表时要将int转化为str
            ID = str(ID)
            ID_book.append([ID,password])
            time.sleep(2)
            main()
        #验证码错误 重新输入验证码
        else:
            while True:
                #第二次验证码正确
                if n1 == m1:
                    print('验证成功')
                    time.sleep(2)
                    users.append([username, password])
                    print('恭喜您,注册成功!')
                    time.sleep(2)
                #第二次验证码错误
                else:
                    print('验证码不正确,请重新输入')
                    CCOUNT -= 1
                    print('还有%d次机会重新输入' % CCOUNT)
                    print('\t\t------>')
                    if CCOUNT == 0:
                        time.sleep(1)
                        print('正在退出注册')
                        time.sleep(2)
                        main()
                    n = input('请再次输入验证码:')
                    # 输入内容转化为小写
                    n1 = n.lower()



    #两次密码不一样,返回主界面main()
    else:
        print('两次密码不一样,请重新输入')
        ccount -= 1
        print('还有%d次机会重新输入'%ccount)
        print('\t\t------>')
        if ccount == 0:
            time.sleep(1)
            print('正在退出注册')
            time.sleep(2)
            main()
        varify_password = input('请再次输入密码:')

#安全等级验证
def security_varify():
global password
# 定义数字,字母,特殊字符
number = ‘0123456789’
letter = ‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ’
symblo = r’~!@#$%^&*()|<>:;,.=-?[]{}’

# 当密码为空时,提示
while len(password) == 0 or password.isspace():
    print('您的密码为空,请重新输入!')
    password = input('请再次输入密码:')

# 判断密码的长度
# 低级
if len(password) <= 8:
    flag_len = 0
# 高级
elif len(password) > 16:
    flag_len = 2
# 中级
else:
    flag_len = 1

flag_con = 0
# 判断是否含有数字
for each in password:
    if each in number:
        flag_con += 1
        break
# 判断是否含有字母
for each in password:
    if each in letter:
        flag_con += 1
        break
# 判断是否含有特殊字符
for each in password:
    if each in symblo:
        flag_con += 1
        break
# 记录 低级密码重新输入的次数
count = 3
# 根据密码的长度和包含的字符种类判断结果
while count > 0:
    if (password[0] not in number and flag_len == 0) or (password[0] not in number and flag_con == 1):
        print('您的密码安全级别为:', end='')
        print('低(建议修改密码)')
        break
    elif flag_len == 2 and flag_con == 3 and password[0] in letter:
        print('您的密码安全级别为:', end='')
        print('高\n\n\n')
        break
    elif password[0] in number:
        print('密码不能以数字开头')
        count -= 1
        print('还有%d次机会重新输入' % count)
        if count == 0:
            print('正在退出注册')
            time.sleep(2)
            main()
        password = input('请重新输入密码:')

    else:
        print('您的密码安全级别为:', end='')
        print('中(安全性适中)')
        break

#生成验证码
def auth_code_produce():
global n1,m1
# 生成验证码 不区分大小写
l = []
# 通过for循环遍历asii追加到空列表中
for i in range(65, 91):
l.append(chr(i))
for j in range(97, 123):
l.append(chr(j))
for k in range(48, 58):
l.append(chr(k))
# 获取到的为列表
m = random.sample(l, 6)
# 将列表转化为字符串
m = ‘’.join(m)
print(’-------->’)
print(’\t\t\t请识别图中验证信息\t\t’, end=’ ‘)
print(’\33[4;32;43m %s\033[0m’ % m)
# 验证码转化为小写
m1 = m.lower()
n = input(‘请输入验证码:’)
# 输入内容转化为小写
n1 = n.lower()

#修改密码
def alter_password():
COUNT = 3
username = input(‘请输入要修改的账号:’)
password = input(‘请输入旧密码:’)

#循环遍历users
for i in users:
    for j in i:
        password_list.append(j)
while True:
    # 判断输入的密码是否正确,3次错误,冻结
    if password not in password_list:
        print('旧密码不正确')
        COUNT -= 1
        print('还有%d次机会重新输入'%COUNT)
        print('\t\t------>')
        if COUNT == 0:
            time.sleep(1)
            print('正在冻结账户')
            time.sleep(10)
            main()
        new_password = input('请再次输入密码:')

    # 密码正确,继续修改
    else:
        if [username, password] in users:
            users.remove([username, password])
            print('-------------------')
            username = input('请输入修改后的账号:')
            password = input('请输入新密码:')
            users.append([username, password])
            print('修改密码成功!')
            print('---------')
            print('\t\t---------')
            login()
        else:
            print('账号或密码错误')
            time.sleep(2)
            login()

主要功能

def function():
print(’*******************************’)
print(’***** 添加书籍------1 ’)
print('
删除书籍------2 ’)
print('
修改书籍------3 ’)
print('
查找书籍------4 ’)
print('
查看所有书籍—5 ’)
print('
借阅书籍------6 ’)
print('
归还书籍------7 ’)
print('
查看借阅书籍—8 ’)
print('
返回主界面-----9 ’)
print('
退出------0 *****’)

n = int(input('请输入你的操作:'))
#添加书籍
if n == 1:
    book_increase()
    time.sleep(2)
    function()

#删除书籍
elif n == 2:
    book_delete()
    time.sleep(2)
    function()

#修改书籍
elif n == 3:
    book_alter()
    time.sleep(2)
    function()

#查找书籍
elif n == 4:
    book_find_one()
    time.sleep(2)
    function()

#查看所有书籍
elif n == 5:
    book_find_all()
    time.sleep(2)
    function()

#借阅书籍
elif n == 6:
    book_borrow()
    time.sleep(2)
    function()

#归还书籍
elif n == 7:
    book_back()
    time.sleep(2)
    function()

#查看借阅书籍
elif n == 8:
    book_find_borrow()
    time.sleep(2)
    function()

#返回主界面
elif n == 9:
    main()
    time.sleep(2)

elif n == 0:
    exit()
else:
    print('请输入正确的操作')

#增加书籍 .append() —1
def book_increase():
bookname = input(‘请输入添加书籍的书名:’)
author = input(‘请输入添加书籍的作者:’)
price = int(input(‘请输入添加书籍的价格:’))
#如果不写作者,默认BLUE
if author == ‘’ or ’ ‘:
author = ‘BLUE’
# 添加操作 .append()
books.append([bookname, author, price])
print(‘添加书籍成功!’)
print(’\t\t\t您添加书籍的信息:’)
print(‘书名\t:%s\t’%bookname, ‘作者 :%s\t’%author, ‘价格 :%s’%price)
time.sleep(2)
#如果写作者,正常添加
else:
# 添加操作 .append()
books.append([bookname, author, price])
print(‘添加书籍成功!’)
print(’\t\t\t您添加书籍的信息:’)
print(‘书名\t:%s\t’%bookname, ‘作者\t:%s\t’%author, ‘价格\t:%s’%price)
time.sleep(2)

#删除书籍
#选择删除方式:1.根据书名 2.根据作者 3.根据价格区间
def book_delete():
global books
time.sleep(1)
print(‘1.书名删除 2.作者删除 3.价格删除’)
time.sleep(0.6)
u = int(input(‘请输入你的删除方式:’))
# 书名删除
if u == 1:
books_copy = copy.deepcopy(books)
bookname = input(‘请输入书名:’)
print()
j = 0
for i in books:
if i[0] == bookname:
j = 1
print(‘删除书籍信息:\t书名:’, i[0], ‘作者:’, i[1], ‘价格:’, i[2])
books_copy.remove(i)
books = books_copy
if j == 0:
print(‘该书籍不存在’)
print()
print(‘删除结束’)
time.sleep(2)
# 作者删除
if u == 2:
books_copy = copy.deepcopy(books)
author = input(‘请输入作者:’)
print()
j = 0
for i in books:
if i[1] == author:
j = 1
print(‘删除书籍信息:\t书名:’, i[0], ‘作者:’, i[1], ‘价格:’, i[2])
books_copy.remove(i)
books = books_copy
if j == 0:
print(‘该书籍不存在’)
print()
print(‘删除结束’)
time.sleep(2)
# 价格删除
if u == 3:
print(‘请输入价格区间:’)
price_qj = input(“输入区间值:”)
m, n = map(int, price_qj.split())
print(‘价格区间为:[%d,%d]’ % (m, n))
books_copy = copy.deepcopy(books)
print()
j = 0
for i in books:
if m <= i[2] <= n:
j = 1
print(‘书名:’, i[0], ‘作者:’, i[1], ‘价格:’, i[2])
books_copy.remove(i)
books = books_copy
if j == 0:
print(‘该书籍不存在!’)

    print('查找结束!')
    time.sleep(2)

#修改书籍
def book_alter():
bookname = input(‘请输入您要修改书籍的书名:’)
author = input(‘请输入您要修改书籍的作者:’)
price = int(input(‘请输入您要修改书籍的价格:’))
# 修改操作 .remove() .append()
if [bookname, author, price] in books:
books.remove([bookname, author, price])

    bookname = input('请输入修改书籍的书名:')
    author = input('请输入修改书籍的作者:')
    price = int(input('请输入修改书籍的价格:'))
    books.append([bookname, author, price])
    print('修改书籍成功!')

else:
    print('该书籍不存在!')
time.sleep(2)

#查找书籍
#选择查找方式:1.根据书名 2.根据作者 3.根据价格区间
def book_find_one():
time.sleep(1)
print(‘1.书名查找 2.作者查找 3.价格查找’)
time.sleep(0.6)
k = int(input(‘请输入你的查找方式:’))
# 书名查找
if k == 1:
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('查找结束!')
    time.sleep(2)
# 作者查找
if k == 2:
    author = input('请输入作者:')
    print()
    j = 0
    for i in books:
        if i[1] == author:
            j = 1
            print('书名:', i[0], '作者:', i[1], '价格:', i[2])
    if j == 0:
        print('该书籍不存在!')

    print('查找结束!')
    time.sleep(2)
# 价格区间查找  m < n
if k == 3:
    print('请输入价格区间:')
    price_qj = input("输入区间值:")
    m, n = map(int, price_qj.split())
    print('价格区间为:[%d,%d]' % (m, n))
    print()
    j = 0
    for i in books:
        if m <= i[2] <= n:
            j = 1
            print('书名:', i[0], '作者:', i[1], '价格:', i[2])
    if j == 0:
        print('该书籍不存在!')

    print('查找结束!')
    time.sleep(2)

#查看所有书籍
def book_find_all():
print(’\t书名:\t\t’.ljust(22), ‘作者:\t\t’.ljust(22), ‘价格:\n’.ljust(22))

for i in books:
    print(i[0].ljust(22), '\t\t', i[1].ljust(22), '\t\t', i[2])

print()
time.sleep(2)

#借阅书籍
def book_borrow():
bookname = input(‘请输入借阅的书籍:’)
author = input(‘请输入借阅书籍的作者:’)
price = int(input(‘请输入借阅书籍的价格:’))
# 借阅操作 .remove() .append()
if [bookname, author, price] in books:
books.remove([bookname, author, price])
borrow_books.append([bookname, author, price])
print(‘借阅成功!’)
print(‘您借阅的书籍:’, borrow_books)
else:
print(‘该书不存在!’)
time.sleep(2)

#归还书籍
def book_back():
bookname = input(‘请输入归还的书籍:’)
author = input(‘请输入归还书籍的作者:’)
price = int(input(‘请输入归还书籍的价格:’))
# 归还操作 .append()
if [bookname, author, price] in borrow_books:
books.append([bookname, author, price])
borrow_books.remove([bookname, author, price])
print(‘归还成功!’)
else:
print(‘该书不存在!’)

time.sleep(2)

#查看借阅书籍
def book_find_borrow():
print(’\t书名:\t\t\t’, ‘作者:\t\t\t’, ‘价格:’)

for i in borrow_books:
    print(i[0], '\t\t\t', i[1], '\t\t\t', i[2])

print()
time.sleep(2)

if name == ‘main’:
main()


  • 7
    点赞
  • 60
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值