Python:图书管理系统

发布于:2023-07-04 ⋅ 阅读:(115) ⋅ 点赞:(0)

图书管理系统

在这里插入图片描述
功能简介

  • 添加图书时,图书ID不能重复,图书名可重复
  • 删除,查询,修改功能,输入图书名之后提供所有的同名的图书,用户可以按照图书序号对具体的一本书进行操作
  • 显示书籍,分行显示,每行一本书的信息

书籍信息以如下格式保存在txt文本文件下

{"book_id":"001","book_name":"三体","book_loc":"0-0-1"}
{"book_id":"002","book_name":"三体","book_loc":"0-0-2"}

在这里插入图片描述

源代码

#-*- coding=utf8 -*-
# @author:sololi
# date: 2020/11/12
# 文件说明 : data 为存储的图书信息
import sys
def print_muen():
    print("----菜单提示----")
    print("[1]:添加图书")
    print("[2]:查询图书")
    print("[3]:删除图书")
    print("[4]:修改图书信息")
    print("[5]:显示所有图书")
    print("[6]:退出")

def add_book():
        book_id=input("请输入图书编号")
        book_name=input("请输入图书名称")
        book_loc=input("请输入图书位置")
        for i  in books:
            if book_id==i["book_id"]:
                print("编号重复")
                break
        else:
            book={}
            book["book_id"]=book_id
            book["book_name"]=book_name
            book["book_loc"]=book_loc
            books.append(book)
            new_file(books)
            print("添加成功")

def find_book():
    jg=0
    while True:
        book_name=input("输入要找的书名")
        for i in books:
            if book_name==i["book_name"]:
                print(i)
                jg=1
        if jg==0:
            print("查找失败请重新输入")
            continue
        elif jg==1:
            break

def dell_book():
    book_name =input("请输入图书书名")
    i=0
    j=0
    jg=0
    flag=[]
    while i<len(books):
        if books[i]["book_name"]==book_name:
            id=books[i]["book_id"]
            flag.append(id)
            print("图书编号:{}".format(id))
            jg=1
        i+=1
    if jg==0:
        print("找不到图书名")
    if jg==1:
        book_id=input("请输入删除的图书编号")
        i=0
        while j < len(flag):
            if flag[j] == book_id:
                while i < len(books):
                    if books[i]["book_id"] == book_id:
                        del books[i]
                        new_file(books)
                        print("删除成功")
                        break
                    i+=1
                break
            j+=1
        else:
            print("输入的编号有误")
    return books

def modify_book():
    book_name = input("请输入修改的图书名称")
    i = 0
    jg = 0
    flag = []
    while i < len(books):
        if books[i]["book_name"] == book_name:
            id = books[i]["book_id"]
            flag.append(id)
            print("本书图书编号:{}".format(id))
            jg = 1
        i += 1
    if jg == 0:
        print("找不到图书名")
    elif jg == 1:
        book_id = input("请输入修改的图书编号,或者其他需要修改的图书编号")
        for i in books:
            if book_id == i["book_id"]:
                New_id = input("新的图书编号")
                if New_id == i["book_id"]:
                        print("输入编号重复")
                        break
                else:
                    New_name = input("新的图书名称")
                    New_loc = input("新的图书位置")
                    i["book_id"] = New_id
                    i["book_name"] = New_name
                    i["book_loc"] = New_loc
                    new_file(books)
                    break
        else:
            print("输入有误")

def all_book():
    for  i  in books:
        print(i)

def read_book(data):#将文本文件里的图书信息读取到books中
    f = open(data, mode="r", encoding="utf8")
    books = f.readlines()
    f.close()
    for i in range(0, len(books)):
        books[i] = eval(books[i].replace("\n", ""))
    return books

def new_file(books):#将books的内容更新到文本文件里
    i=0
    nf = open(data, 'w+',encoding='utf8')  # 以清空原文本文件内容的方式打开文件写入
    while i<len(books):
        new=str(books[i])
        nf.write(new)
        if i !=len(books)-1:
            nf.write("\n")
        i+=1
    nf.close()

if __name__=="__main__":#主要流程

    data = str(input(r"请输入您的图书信息路径(例如:D:\books.txt):")) #读取数据信息

    while True:
        books=read_book(data)
        print_muen()
        choice=input("请输入您的选择")
        if choice=='1':
            add_book()
            all_book()
        elif choice=='2':
            find_book()
        elif  choice=='3':
            dell_book()
            all_book()
        elif  choice=='4':
            modify_book()
            all_book()
        elif choice == '5':
            all_book()
        elif choice == '6':
            print("感谢您的使用")
            sys.exit(0)
        else:
            print("您的输入有误,请重新输入")

还可以添加一个登录与注册系统:点击此处


网站公告

今日签到

点亮在社区的每一天
去签到