Python:图书管理系统

图书管理系统

Python:图书管理系统
功能简介

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

书籍信息以如下格式保存在txt文本文件格式下
Python:图书管理系统

源代码

#-*- coding=utf8 -*-
# @author:sololi
# date: 2020/10/24
# 文件说明 :
# 123文件存放 用户信息 456 文件存放猜拳结果
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("编号重复")
        else:
            book={}
            book["book_id"]=book_id
            book["book_name"]=book_name
            book["book_loc"]=book_loc
            books.append(book)
            write_book(book)
            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]
                        dell_file(book_id)
                        print("删除成功")
                        break
                    i+=1
                break
            j+=1
        else:
            print("输入的编号有误")

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("找不到图书名")

    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
                write_book(i)
                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 write_book(books):#将books里添加的内容放到文件文件里存储
    f = open('data', mode='a+', encoding='utf8')
    a = str(books)
    f.write("n")
    f.write(a)
    f.close()

def dell_file(key):#将books里面删除的内容更新到文本文件里
    f = open('data', 'r+',encoding='utf8')
    transit = ""  # 创立空的字符串用于储存文件
    for line in f:  # 使用迭代器读取每一段文本文件的内容
        if key in line:
            continue
        else:
            transit += line  # 将数据写入存储到字符串中
    f.close()
    nf = open('data', 'w+',encoding='utf8')  # 以清空原文本文件内容的方式打开文件写入
    nf.write(transit)
    nf.close()

if __name__=="__main__":#主要流程
    while True:
        data="data"
        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("您的输入有误,请重新输入")

还可以添加一个登录与注册系统:
https://blog.csdn.net/weixin_51322568/article/details/109477348

匿名

发表评论

匿名网友