小型图书管理系统

一、背景

某图书馆馆长觉得管理图书的方式过于低效,需要设计一个图书管理的系统,以实现对图书信息的管理。

二、功能

本系统应包含用户登录功能(只需要admin用户,密码随意),图书的增功能,图书借阅/还书功能,退出功能

三、要求

  1. 本系统能够完成对图书信息的静态存储,当系统启动时,应读取所有的图书信息到动态存储(20分)

     2.图书信息的格式为:(10分)

图书编号

图书类别

图书名称

出版社

图书价格

入库时间

是否被借阅

3.对于增功能:(15分)

使用完整的信息添加内容,要求:可以将编号加密,且可以还原。

4.对于删功能:(15分)

应包含按编号查询 ,按类别查询,按名称查询,按出版社查询。

5.对于改功能:(15分)

应包含修改指定编号的内容

6.对于查功能:(15分)

应包含按编号查询 ,按类别查询,按名称查询,按出版社查询。

7.界面要求:(10分 根据美观度打分)

  代码展示



import json
from datetime import datetime

#自定义一个.json图书存放数据文件
#自定义一个.json用户数据文件
data_file = 'book_data.json'
user_accounts_file = 'user_accounts.json'

#额外可以增加对图书信息的加密
#加载图书信息
def load_books():
    try:
        with open(data_file, 'r') as file:
            book_data = json.load(file)
            return book_data
    except FileNotFoundError:
        return []

#保存图书信息
def save_books(book_data):
    with open(data_file, 'w') as file:
        json.dump(book_data, file)

#用户登录
def login():
    while True:
        username = input("请输入用户名:")
        password = input("请输入密码:")
        if username == "admin" or 'kkx' and password=='888888':
            print("登录成功!")
            return
        else:
            print("用户名或密码错误,请重新输入。")
# 增加图书信息
def add_book():
    books = load_books()
    book = {}
    book['编号'] = int(input("请输入图书编号:"))
    book['类别'] = input("请输入图书类别:")
    book['名称'] = input("请输入图书名称:")
    book['出版社'] = input("请输入出版社:")
    book['价格'] = float(input("请输入图书价格:"))
    book['入库时间'] = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
    book['是否被借阅'] = False
    books.append(book)
    save_books(books)
    print("图书信息添加成功!")

# 删除图书信息
def delete_book():
    books = load_books()
    print("请选择删除方式:")
    print("1. 按编号查询")
    print("2. 按类别查询")
    print("3. 按名称查询")
    print("4. 按出版社查询")
    option = input("请输入您的选择:")

    if option == '1':
        number = int(input("请输入要删除的图书编号:"))
        books = [book for book in books if book['编号'] != number]
    elif option == '2':
        category = input("请输入要删除的图书类别:")
        books = [book for book in books if book['类别'] != category]
    elif option == '3':
        name = input("请输入要删除的图书名称:")
        books = [book for book in books if book['名称'] != name]
    elif option == '4':
        publisher = input("请输入要删除的出版社:")
        books = [book for book in books if book['出版社'] != publisher]

    save_books(books)
    print("图书信息删除成功!")

# 修改图书信息
def modify_book():
    books = load_books()
    number = int(input("请输入要修改的图书编号:"))
    for book in books:
        if book['编号'] == number:
            print("请选择要修改的信息:")
            print("1. 图书类别")
            print("2. 图书名称")
            print("3. 出版社名称")
            print("4. 图书价格")
            option = input("请输入您的选择:")
            if option == '1':
                book['类别'] = input("请输入新的图书类别:")
            elif option == '2':
                book['名称'] = input("请输入新的图书名称:")
            elif option == '3':
                book['出版社'] = input("请输入新的出版社:")
            elif option == '4':
                book['价格'] = float(input("请输入新的图书价格:"))
            save_books(books)
            print("图书信息修改成功!")
            return
        print("找不到对应的图书编号,修改失败!")

        # 查询图书信息

def search_book():
        books = load_books()
        print("请选择查询方式:")
        print("1. 按编号查询")
        print("2. 按类别查询")
        print("3. 按名称查询")
        print("4. 按出版社查询")
        option = input("请输入您的选择:")

        if option == '1':
            number = int(input("请输入要查询的图书编号:"))
            found_books = [book for book in books if book['编号'] == number]
        elif option == '2':
            category = input("请输入要查询的图书类别:")
            found_books = [book for book in books if book['类别'] == category]
        elif option == '3':
            name = input("请输入要查询的图书名称:")
            found_books = [book for book in books if book['名称'] == name]
        elif option == '4':
            publisher = input("请输入要查询的出版社:")
            found_books = [book for book in books if book['出版社'] == publisher]

        print("查询结果:")
        for book in found_books:
            print(book)

        # 界面显示

def display_menu():
        print("*********************************************************")
        print("              Chanbey图书管理系统                    ")
        print("输入1, 增加图书信息")
        print("输入2, 删除图书信息")
        print("输入3, 修改图书信息")
        print("输入4, 查询图书信息")
        print("输入0, 退出图书管理系统")
        print("*********************************************************")

        # 主程序

def main():
        login()  # 用户登录
        while True:
            display_menu()
            option = input("请输入您的选择:")
            if option == '1':
                add_book()
            elif option == '2':
                delete_book()
            elif option == '3':
                modify_book()
            elif option == '4':
                search_book()
            elif option == '0':
                print("感谢使用Chanbey图书管理系统!")
                break
            else:
                print("无效的选择,请重新输入!")

        # 运行主程序

if __name__ == '__main__':
        main()

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

库库新

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值