猫史档案馆


【Python作品分享】py图书馆【作品秀】

用户:Mickey_1095Mickey_1095查看:0 回复:0 评论:0 创建时间:2023-05-24T21:08:06


【作品展示】

center_image

 

【作品介绍】

python图书馆

快来体验

可以创建自己的用户

也可以自己创建一本书

还可以以图书管喵为身份,查看其它用户的信息

*******************************

本版本是1.0 后续更新

有BUG可以提出来

 

【作品源代码】

#!/usr/bin/python3
#  -*- coding: utf-8 -*-
"""
图书管理系统
1. 创建一个列表存储书籍信息,包括书名,作者名,价格
2. 创建一个列表存储用户信息,包括用户名,密码
3. 制作一个注册登录系统,登录后可以使用添加书籍,删除书籍,
修改书籍信息,查询单本书籍信息,查询所有书籍信息等功能
4. 图书信息、用户信息存入文件中 (新增)


图书管理系统操作说明
一、普通用户
    1.先注册
    2.登录到系统
    3.进行功能操作    (增、删、改、查书籍)
    4.退出系统
二、管理者
    1.使用管理者账户登陆(zzh:123456)
    2.管理普通用户    (删、改、查用户)
    3.退出系统
"""

import json
import os

# 本系统保存信息的文件名
file_name_books = "books-fxm.json"
file_name_users = "users-fxm.json"


# 主菜单
def menu():
    print('*' * 40)
    print('*' * 10, '欢迎来到图书管理系统 1.0 ')
    print('*' * 40)
    print('请选择:')
    print("1: 注册新用户:")
    print("2. 已有账户,登陆:")
    print("3. 退出本系统")


# 用户小屋(功能页面)
def user_menu(self):
    print('*' * 40)
    print('欢迎%s!   来到图书小屋' % self)
    print('请选择您所需的功能:')
    print('1. 添加书籍')
    print('2. 删除书籍')
    print('3. 修改书籍信息')
    print('4. 查询单本书籍信息')
    print('5. 查询所有书籍信息')
    print('6. 退出您的图书小屋')


# 管理者页面
def manger():
    print('*' * 40)
    print('欢迎本系统管理者!!!')
    print('*' * 40)
    print('请选择您所需的功能:')
    print('1. 删除一个用户')
    print('2. 修改用户密码')
    print('3. 查看一个用户信息')
    print('4. 查看全部用户信息')
    print('5. 退出管理者页面')


# 删除用户
def del_user():
    user_name = input('请输入要删除的用户名:')
    count = 0
    index = 0
    for i in users:
        if user_name == i['name']:
            count = 1
            del users[index]
            print('删除成功!!!')
        index += 1
    if count == 0:
        print('查无此人!!!')


# 修改用户
def edit_user():
    user_name = input('请输入要修改密码的用户名:')
    count = 0
    index = 0
    for i in users:
        if user_name == i['name']:
            count = 1
            del users[index]
            new_user_name = user_name
            new_user_password = input('请输入修改后的密码:')
            new_user = {'name': new_user_name, 'password': new_user_password}
            users.append(new_user)
            print('修改成功!!!')
        index += 1
    if count == 0:
        print('查无此人!!!')


# 查看一个用户
def look_user():
    user_name = input('请输入要查看的用户名:')
    count = 0
    print('用户名\t密码\t')
    for i in users:
        if user_name == i['name']:
            count = 1
            print('%s\t\t%s\t' % (i['name'], i['password']))
    if count == 0:
        print('查无此人!!!')


# 查看全部用户
def look_users():
    print('用户名\t密码\t')
    for i in users:
        print('%s\t\t%s\t' % (i['name'], i['password']))


# 注册页面
def sign_up():
    user_name = input("请输入您的用户名:")
    # 检验用户名是否重复
    for i in users:
        if user_name == i['name']:
            print("用户名已存在!!!")
            return
    user_password = input("请输入您的密码:")
    user = {'name': user_name, 'password': user_password}
    users.append(user)
    print("注册成功!!!")


# 登陆页面
def login():
    user_name = input("请输入您的用户名:")
    user_password = input("请输入您的密码:")
    count = 0
    for i in users:
        if user_name == i['name']:
            count = 1
            if user_password == i['password']:
                print("登陆成功!!!")
                return user_name
            else:
                print("密码错误!!!")
                print("请重试。")
    if count == 0:
        print("用户名不存在!!!")
        print("请重试。")


# 添加书籍
def add_book():
    book_name = input('请输入要添加书籍的名字:')
    # 检验书籍名是否重复
    for i in books:
        if book_name == i['name']:
            print("该书已存在!!!")
            return
    book_author = input('请输入要添加书籍的作者:')
    book_price = input('请输入要添加书籍的价格:')
    book = {'name': book_name, 'author': book_author, 'price': book_price}
    books.append(book)
    print('添加成功!!!')


# 删除书籍
def del_book():
    book_name = input('请输入要删除书籍的名字:')
    count = 0
    index = 0
    for i in books:
        if book_name == i['name']:
            count = 1
            del books[index]
            print('删除成功!!!')
        index += 1
    if count == 0:
        print('查无此书!!!')


# 修改书籍
def edit_book():
    book_name = input('请输入要修改书籍的名字:')
    count = 0
    index = 0
    for i in books:
        if book_name == i['name']:
            count = 1
            del books[index]
            new_book_name = input('请输入修改后书籍的名字:')
            new_book_author = input('请输入修改后书籍的作者:')
            new_book_price = input('请输入修改后书籍的价格:')
            new_book = {'name': new_book_name,
                        'author': new_book_author, 'price': new_book_price}
            books.append(new_book)
            print('修改成功!!!')
        index += 1
    if count == 0:
        print('查无此书!!!')


# 查看一本书籍
def look_book():
    book_name = input('请输入要查看书籍的名字:')
    count = 0
    print('书名\t\t作者\t价格\t')
    for i in books:
        if book_name == i['name']:
            count = 1
            print('%s\t%s\t%s\t' % (i['name'], i['author'], i['price']))
    if count == 0:
        print('查无此书!!!')


# 查看全部书籍
def look_books():
    print('书名\t\t作者\t价格\t')
    for i in books:
        print('[%s]\t%s\t%s\t' % (i['name'], i['author'], i['price']))


# 初始状态读取文件
def get_init_data():
    if (not os.path.exists(file_name_users)) | (not os.path.exists(file_name_books)):
        raise print("缺少必要文件:", file_name_books, file_name_users)
    with open(file_name_books, 'r', encoding='utf-8') as f:
        books_json = json.load(f)
    with open(file_name_users, 'r', encoding='utf-8') as f:
        users_json = json.load(f)
    return books_json, users_json


# 结束程序更新数据文件
def set_init_data():
    with open(file_name_books, 'w', encoding='utf-8') as f:
        f.write(json.dumps(books, ensure_ascii=False, indent=4))
    with open(file_name_users, 'w', encoding='utf-8') as f:
        f.write(json.dumps(users, ensure_ascii=False, indent=4))


# 用户与管理者
def while_user(name):
    while name:  # 根据是否登陆成功,进入用户菜单

        if name == 'zzh':  # 判断是否为管理者
            manger()  # 管理者页面
            manger_n = input()
            if manger_n == '1':
                del_user()  # 删除一个用户
            elif manger_n == '2':
                edit_user()  # 修改用户密码
            elif manger_n == '3':
                look_user()  # 查看一个用户信息
            elif manger_n == '4':
                look_users()  # 查看全部用户信息
            elif manger_n == '5':
                break  # 退出管理者页面
            else:
                print("非法输入!!!")
                print("请再次选择:")

        else:
            user_menu(name)  # 普通用户页面
            user_n = input()
            if user_n == '1':
                add_book()  # 添加书籍
            elif user_n == '2':
                del_book()  # 删除书籍
            elif user_n == '3':
                edit_book()  # 修改书籍信息
            elif user_n == '4':
                look_book()  # 查询单本书籍信息
            elif user_n == '5':
                look_books()  # 查询所有书籍信息
            elif user_n == '6':
                break  # 退出普通用户页面
            else:
                print("非法输入!!!")
                print("请再次选择:")


# 主函数
def main():
    # 循环菜单主页面
    while True:
        menu()  # 主菜单页面
        menu_n = input()
        if menu_n == '1':
            sign_up()
        elif menu_n == '2':
            # 循环用户菜单页面
            name = login()  # 用户登陆后返回值name

            while_user(name)  # 用户与管理者

        elif menu_n == '3':
            set_init_data()
            break
        else:
            print("非法输入!!!")
            print("请再次选择:")


if __name__ == '__main__':
    # 初始信息读取
    books, users = get_init_data()
    # 调用主函数
    main()

 

【提示】

部分含有Python第三方库相关内容的作品,在海龟编辑器网页端无法运行哦!如遇到这种情况,可以打开下面的链接,下载海龟编辑器客户端:

https://python.codemao.cn


回复

上一页1 页 / 共 0下一页