图书管理系统

图书管理系统在这里插入图片描述

1.每一本图书包含三条信息:图书编号,图书名称,存放位置
2.添加功能实现:依次输入图书编号 图书名 图书位置进行添加
3.删除功能实现:输入书名,删除图书。
4.显示所有书籍:显示出所有书本的信息(分行显示,每行显示一本)
5.图书信息另存储到文件中
图书管理系统改成函数版本,每个功能封装成一个函数,原来功能上扩展,启动程序首先提示功能选项:

源代码

b=1
while b==1:
    f = open("1.txt", mode="r", encoding="utf8")
    user = f.readlines()
    f.close()
    for i in range(0, len(user)):
        user[i] = eval(user[i].replace("\n", ""))

    choice = input("1.登入 2.注册")
    if choice == '1':
        uname = input('请输入用户名')
        pwd = input('请输入密码')
        for i in user:
            if uname == i["name"]:
                if pwd == i["passwd"]:
                    print("登入成功")
                    b=0
                    break
                else:
                    print("密码错误")
        else:
            print("用户名不存在")
    elif choice == '2':
        uname = input("请输入用户名")
        for i in user:
            if uname == i["name"]:
                print("用户名存在,注册失败")
                break
        else:
            pwd = input("请输入密码")
            pwd_again = input("请再次输入密码")
            if pwd == pwd_again:
                f = open("1.txt", mode="a+", encoding="utf8")
                f.write("\n{")
                f.write('"name":"{}","passwd":"{}"'.format(uname, pwd))
                f.write("}")
                f.close()
                print("注册成功")
            else:
                print("两次密码不一致,注册失败")
    else:
        print('输入有误')


def write_book(book):#把图书添加到文件里
    f = open("2.txt", mode="a+", encoding="utf8")
    a=str(book)
    f.write(a)
    f.write("\n")
    f.close()



def print_muen():                    #显示导航显示 菜单
    print("----菜单提示----")
    print("[1]:添加图书")
    print("[2]:查询图书")
    print("[3]:删除图书")
    print("[4]:显示所有图书")
    print("[5]:修改图书")
    print("[6]:退出")

def add_book():           #新增图书
    bid=input("请输入图书编号")
    bname=input("请输入图书名称")
    bloc=input("请输入图书位置")
    #编号不能重复
    for i in books:
        if bid == i["book_id"]:
            return {"code":"101","message":"编号重复"}

    else:
        book={}
        book["book_id"]=bid
        book["book_name"]=bname
        book["book_loc"]=bloc
        books.append(book)
        write_book(book)
        return {"code": "200", "message": "新增成功"}


def del_book():              #删除图书
    book_name = input("请输入要删除的图书名称:")
    i=0
    x=0
    aa=[]
    ext=0
    while i < len(books):
        if book_name==books[i]["book_name"]:
            id=books[i]["book_id"]
            aa.append(id)
            ext=1
            print("你输入图书编码为{}".format(id))
        i+=1
    if ext==0:
        return {"code": "101", "message": "图书查询不到,删除失败"}
    if ext==1:
        book_id=input("请输入要删除的编码:")
        i=0
        while x<len(aa):
            if aa[x]==book_id:
                while i<len(books):
                    if book_id==books[i]["book_id"]:
                        del books[i]
                        new_file(books)
                        return {"code": "200", "message": "删除成功"}
                    i+=1
                break
            x+=1
        else:
            print("输入有误")





def new_file(books):  # 将books的内容更新到文本文件里
    i = 0
    nf = open('2.txt', '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()
def all_book():#显示所有图书信息
    for  i  in books:
        print(i)

def chang_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:
        return {"code": "101", "message": "图书查询不到,无法修改"}
    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)
                print(books)
                return {"code": "200", "message": "修改成功"}

def find_book():                #    查找图书
    book_name = input("请输入图书名字")
    for i in books:
        if book_name == i["book_name"]:
            print(i)
            return {"code": "200", "message": "查询成功"}

    else:
        return {"code": "101", "message": "无此图书"}


if __name__=="__main__":
    print('欢迎进入图书管理系统')
    f = open("2.txt", mode="r", encoding="utf8")
    books = f.readlines()
    f.close()
    for i in range(0, len(books)):
        books[i] = eval(books[i].replace("\n", ""))
    while True:
        print_muen()
        choice=input("请输入您的选择")
        if choice=='1':
            add_continue = 1
            while add_continue not in ['n','N']:
                result=add_book()
                if result["code"]=="101":
                    print(result["message"])
                else:
                    print(result["message"])
                    add_continue=input('是否继续添加 任意键继续 n退出')

        elif choice=='2':
            find_continue = 1
            while find_continue not in ['n', 'N']:
                result = find_book()
                if result["code"] == "101":
                    print(result["message"])
                else:
                    print(result["message"])
                    find_continue = input('是否继续查找 任意键继续 n退出')

        elif  choice=='3':
            del_continue = 1
            while del_continue not in ['n', 'N']:
                result = del_book()
                if result["code"] == "101":
                    print(result["message"])
                else:
                    print(result["message"])
                    del_continue = input('是否继续删除 任意键继续 n退出')
        elif  choice=='4':
            all_book()
        elif  choice=='5':
            chang_continue = 1
            while chang_continue not in ['n', 'N']:
                result = chang_book()
                if result["code"] == "101":
                    print(result["message"])
                else:
                    print(result["message"])
                    chang_continue = input('是否继续修改 任意键继续 n退出')
        elif choice == '6':
            print("再见")
            exit()
        else:
            print("您的输入有误,请重新输入")







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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值