图书管理系统设计----加深对while以及for和if的嵌套使用

一、图书管理系统设计

------图书管理系统------

  1. 首先要求学生登录或者注册(1.登录 2.注册),
  2. 注册: 输入用户名和密码,确认密码 则注册成功
  3. 登录:输入用户名和密码,如果匹配正确则登录成功,否则失败
  4. 登录成功 可以1.借书 2.还书 3. 修改密码 4.退出,否则只能查看图书
  5. 借书:输入书名 必须在books列表中存在的才可以借,如果借书成功,books中对应的number要减少1(注意不可以借阅同名书籍)
  6. 还书:输入书名,必须在你的所借书籍中存在,才可以还书成功!还书成功,对应books中的number要加1
  7. 修改密码:输入原有的密码,如果输入正确才可以,更新自己的登录密码
  8. 退出:退出学生管理系统
    要求:以上的每个点都要求定义成函数。通过函数完成

二、代码

希望各位码友在参考完以下代码后能够编写出你们自己的代码,这样对各位的编程能力以及Python中各各函数的使用有极大的提高。

#定义变量
hong_book_num = 6
shui_book_num = 3
xi_book_num = 5
san_book_num = 8
jian_book_num = 13
books_number = 35
def meun():#菜单首页
    print("************************************************************ 欢迎使用图书管理系统 ************************************************************")
    print("***************************************************************** 1:注册 *******************************************************************")
    print("***************************************************************** 2:登录 *******************************************************************")
    print("***************************************************************** 0:退出 *******************************************************************")
    print("************************************************************* 您可以进行以上操作**************************************************************")

def main():#主操作函数
    while True:
        meun()#引meun()函数
        a = eval(input("请输入你要选择的功能:"))
        if a == 1:#条件判断
            logon()#引用函数
            continue#继续循环
        elif a == 2:#条件判断
            login()#引用函数
            continue#继续循环
        elif a == 0:
            break#跳出循环
        else:
            print('请输入正确的命令,并重新运行系统')

def logon(): #注册函数
    while True:
        username = input("请输入用户名:")
        password = input("请输入密码:")
        repassword = input("请确认密码:")
        user = username + password #字符串相加成一个新变量,用于后面对于身份的一个认定变量
        with open("username.txt","r",encoding="UTF-8") as g:
            la = g.read().split(',')#先读取字符串,再转化成列表
            if username in la:
                print("用户名已被注册,请更换用户名!")
                continue
            elif repassword == password:
                print("注册成功")
                with open("User.txt","a",encoding="UTF-8") as f:
                    f.write(user)#写入新的注册用户及密码
                    f.write(' ')
                with open("username.txt","a",encoding="UTF-8") as g:
                    g.write(username)#写入新的用户名
                    g.write(',')
                while True:
                    a = eval(input("请选择您是否登录:(1:是,2:否)"))
                    if a == 1:
                        login()#引用函数
                        break #结束循环
                    elif a == 2:
                        break #结束循环
                    else:
                        print("请输入正确指令!")
                        continue #继续内循环
        break #结束外循环

def login():#登录
    username = input("请输入用户名:")
    password =input("请输入密码:")
    user = username + password
    with open("User.txt","r",encoding="UTF-8") as f:
        la = f.read().split(' ')#先读取字符串,再转化成列表
        if user in la:
            print("恭喜用户登陆成功")
            meun_1()#引用meun()函数
        else:
            print("密码错误,请输入正确的用户名及密码!")
            login()

def meun_1():#主要操作面板

    print("******** 您已登录成功,可进行以下操作 **********")
    print("****************** 1:借书 *****************")
    print("****************** 2:还书 *****************")
    print("****************** 3:修改密码 **************")
    print("****************** 4:退出 *****************")
    while True:
        with open("books.txt","r",encoding="UTF-8") as f:#读取文件内容
            print(f"图书馆中可以借阅的书有:{f.read()}")
        with open("bor_books.txt","r",encoding="UTF-8") as g:
            print(f"您正在借阅的书籍有:{g.read()}")
        print(f"红楼梦:{hong_book_num}本 、 水浒传:{shui_book_num}本 、 西游记:{xi_book_num}本 、 三国演义:{san_book_num}本 、 简爱:{jian_book_num}本,共计:{books_number}本。")
        b = eval(input("请输入你要选择的功能:"))
        if b not in [1,2,3,4]:
            print('请输入正确的命令,并重新运行系统!')
            continue
        elif b ==1:
            borbook()
            continue
        elif b ==2:
            rebook()
            continue
        elif b ==3:
            alter()
            break
        elif b == 4:
            print("您已退出个人账号!")
            break

def borbook():#借书函数
    global books_number #定义全局变量
    global hong_book_num
    global shui_book_num
    global xi_book_num
    global san_book_num
    global jian_book_num
    global books_number
    borbookname = str(input("请输入借书书名:"))
    with open("books.txt", "r",encoding="UTF-8") as f:
        la = f.read()#.split(' ')先读取字符串,再转化成列表
    with open("bor_books.txt", "r",encoding="UTF-8") as g:
        ls = g.read().split(' ')#先读取字符串,再转化成列表
    if borbookname in la and borbookname not in ls:
        books_number -= 1
        print("借书成功!!!")
        with open("bor_books.txt", "a",encoding="UTF-8") as y:
            y.write(borbookname)#添加正在借阅的书籍
            y.write(' ')
            if borbookname in "红楼梦":#进行书本数量的计算
                hong_book_num -= 1
            elif borbookname in "水浒传":
                shui_book_num -= 1
            elif borbookname in "西游记":
                xi_book_num -= 1
            elif borbookname in "三国演义":
                san_book_num -= 1
            elif borbookname in "简爱":
                jian_book_num -=1
    else:
        print("您已借了此书,请重新选择其它书籍!!")
        borbook()#引用函数

def rebook():#还书函数
    global books_number #定义全局变量
    global hong_book_num
    global shui_book_num
    global xi_book_num
    global san_book_num
    global jian_book_num
    rebookname = (input("请输入还书书名:"))
    with open("bor_books.txt", "r",encoding="UTF-8") as f:
        la = f.read().split(' ')#先读取字符串,再转化成列表
        if rebookname in la:
            print("***还书成功***")
            la.remove(rebookname)
            ls =" ".join(la)#将列表转化成相应字符串后再写入
            books_number += 1
            with open("bor_books.txt", "w",encoding="UTF-8") as g:
                g.write(ls)#重新写入还书后还借阅的书籍
            if rebookname in "红楼梦": #进行书本数量的计算
                hong_book_num += 1
            elif rebookname in "水浒传":
                shui_book_num += 1
            elif rebookname in "西游记":
                xi_book_num += 1
            elif rebookname in "三国演义":
                san_book_num += 1
            elif rebookname in "简爱":
                jian_book_num +=1

def alter():#修改密码
    while True:
        username = input("请输入用户名:")
        password = input("请输入旧密码:")
        new = input("请输入新密码:")
        user = username + password
        new_user = username + new
        with open("User.txt", "r",encoding="UTF-8") as f:
            la = f.read()#读出字符串
            la = la.split(' ')#字符串变列表
            if user in la:
                ls = [new_user if i == user else i for i in la]#替换指定元素(修改码)
                ls = " ".join(ls)#列表变字符串
                with open("User.txt", "w") as g:
                    g.write(ls)#重新写入修改后的内容
                    print("修改密码成功,请重新登录!")
                break
            else:
                print("请输入正确的用户名及密码!")


main()
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值