图书管理系统python语言-Python简易版图书管理系统

本文实例为大家分享了python图书管理系统的具体代码,供大家参考,具体内容如下

"""

图书管理系统

"""

import random

# books={书名:剩余数量, 书名:剩余数量}

import time

books = {"防脱发指南": 5, "颈椎康复指南": 3, "从删库到跑路": 0}

# students_books=[name,{书}]

students_books = {"赵路遥": []}

class book(object):

"""先传一个书名,以后可根据需要传 开始借书时间,书的详细信息,以及之前借书的人等等"""

def __init__(self, bookname):

super(book, self).__init__()

self.bookname = bookname

def getBookName(self):

return self.bookname

if __name__ == "__main__":

print("*" * 50)

print("欢迎来到遥遥哥的图书馆".center(50))

print("*" * 50)

while True:

choices = input(""" 请选择你所需要的功能

1.查询书籍 2.借书 3.还书 4.显示所有书籍 5.查询用户所借的书 6.退出系统:""")

if choices == "1":

# 查询书籍

print("--------查询书籍---------")

search_book = input("请输入要查询的书籍名称:")

# 遍历books

for book in books.keys():

if search_book in book:

print("正在查找,请稍等")

time.sleep(1)

if books[search_book] > 0:

print("你说查找的书,目前还有{}本".format(books[search_book]))

break

else:

print("你所查找的书,已经借完,请过段时间之后再来")

break

else:

print("对不起你所输入的书不存在,可联系管理员补充")

elif choices == "2":

# 借书

print("欢迎来到借书页面".center(50))

flag = True

while flag:

user_name = input("请输入用户名")

borrow_book = input("请输入你所借的书名")

for book in books.keys():

if borrow_book == book:

if user_name in students_books.keys():

if books[borrow_book] > 0:

if borrow_book not in students_books[user_name]:

print(r"你已经借书<<{}>>".format(borrow_book))

students_books[user_name].append(borrow_book)

books[borrow_book] -= 1

print(r"现在<<{}>>,剩余{}本".format(borrow_book, books[borrow_book]))

flag = False

break

else:

print("对不起,你已经借了一本")

flag = False

break

else:

print("对不起你所借的书剩余{}本,请下次再来".format(books[borrow_book]))

flag = False

break

else:

students_books[user_name] = []

students_books[user_name].append(borrow_book)

books[borrow_book] -= 1

print(r"新用户( {} )已经借书<< {} >>,目前此书剩余{}本".format(user_name, borrow_book, books[borrow_book]))

flag = False

break

else:

print("对不起你所查找的书,不存在,请联系管理员更新")

elif choices == "3":

flag=True

while flag:

user_name = input("请输入你的名字")

repay_book = input("情输入你所要还的书")

for name in students_books.keys():

#先去判断有没有这个人

if name==user_name:

#判断有没有这本书在不在该用户

if repay_book in students_books[name]:

#判断此本书书否在图书馆库里面

if repay_book in books.keys():

books[repay_book]+=1

students_books[name].remove(repay_book)

print("正在还书,请稍等")

time.sleep(1)

print("你已经还书了,这本书数量为{}".format(books[repay_book]))

flag=False

break

else:

print("此本书不在图书馆库里面,请重新输入")

break

else:

print("你所输入的书,并在你的借书目录里面,请重新输入")

break

else:

print("对不起你所输入的人不存在,请重新输入")

elif choices == "4":

# 显示所有书籍

print("图书馆目前所藏书籍如下:")

for bookkey, bookvalue in list(books.items()):

print(r"<<{}>>目前还有 {} 本".format(bookkey, bookvalue))

time.sleep(0.5)

elif choices=="5":

username=input(" 请输入你要查询的用户名")

for stu in students_books.keys():

if username== stu:

print("{}所借的书有{}".format(user_name,students_books[username]))

else:

print("你查找的用户不在")

elif choices == "6":

choice = ("确定是否退出,确认请输入yes,否则请输入no")

if choice == "yes":

print("感谢你的使用,再见")

break

else:

print("输入错误请重新输入....")

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/334551.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker 打包mysql_基于docker部署mysql的数据持久化问题

本人最近在使用docker部署mysql时&#xff0c;在持久化mysql数据时遇到了一个有趣的问题&#xff0c;将排查过程及思考记录在这里&#xff0c;以备后查。先简单描述下我遇到的问题&#xff1a;在mysql容器中创建了两个数据库&#xff0c;然后使用docker commit想要保存容器的修…

Linux 命令之 ls -- 列出指定目录下的内容

文章目录一、命令介绍二、语法格式三、常用选项四、参考示例&#xff08;一&#xff09;显示工作目录下&#xff08;当前目录&#xff09;所有的文件和目录&#xff08;二&#xff09;显示工作目录下所有的文件和目录&#xff08;三&#xff09;显示文件的详细信息&#xff0c;…

kotlin dsl_Spring Webflux – Kotlin DSL –实现的演练

kotlin dsl在以前的博客文章中&#xff0c;我描述了Spring Web Framework中的响应式编程支持Spring Webflux如何使用基于Kotlin的DSL使用户能够以非常直观的方式描述路由。 在这里&#xff0c;我想探索一些底层实现。 描述一组端点的样本DSL看起来像这样&#xff1a; package…

cad调了比例因子没反应_「室内设计」大神们都在用的9个CAD制图技巧,你会用几个?...

1、快捷特性面板如何调取&#xff1f;2、 如何快速恢复上一次删除物体&#xff1f;3、 如何快速关闭监视注释器&#xff1f;4、如何快速处理重复碎线&#xff1f;5、如何解决虚线在模型空间和布局空间显示不一致的问题&#xff1f;6、 如何快速更改图块名称&#xff1f;7、 PL线…

ubuntu 12下的apache+php+mysql_老司机传授Ubuntu下Apache+PHP+MySQL环境搭建攻略

一、首先安装MySql&#xff1a;对于MySql来讲在整个过程中是相对独立的安装&#xff0c;并且我的ubuntu在以前做开发的时候就已经安装了MySql&#xff0c;所以以下只给出安装步骤&#xff1a;1、安装MySql的服务&#xff1a;sudo apt-get install mysql-server要注意的是安装过…

Linux 命令之 mv -- 移动文件/重命名文件

文章目录命令介绍语法格式常用选项命令示例&#xff08;一&#xff09;文件重命名&#xff08;二&#xff09;目录重命名&#xff08;三&#xff09;移动目录&#xff08;四&#xff09;移动目录且重命名&#xff08;五&#xff09;将一个目录下的内容移动到另外一个目录下&…

jax-rs jax-ws_迟来总比没有好:SSE或服务器发送的事件现在已在JAX-RS中

jax-rs jax-ws服务器发送的事件 &#xff08;或简称为SSE &#xff09;是非常有用的协议&#xff0c;它允许服务器通过HTTP将数据推送到客户端。 这是我们的Web浏览器支持的年龄&#xff0c;但是令人惊讶的是&#xff0c; JAX-RS规范在很长一段时间内都忽略了这一点。 尽管Jers…

根据录入的计算公式计算_小规模纳税人增值税计算公式是什么,什么人能被称为小规模纳税人?- 理财技巧...

摘要&#xff1a; 想必大家都知道小规模纳税人在增值税的缴纳上能够享受到不少的优惠措施和政策&#xff0c;最终可以少交不少钱&#xff01;那么什么人能被称为小规模纳税人呢&#xff1f;小规模纳税人增值税计算公式又是什么呢&#xff1f;下面赢家财富网就带大家详细了解一下…

Linux 命令之 chmod -- 改变文件或目录权限

文章目录一、命令介绍二、语法格式三、常用选项四、权限表达式&#xff08;一&#xff09;采用权限字母和操作符表达式&#xff08;二&#xff09;采用权限数字表达式五、参考示例&#xff08;一&#xff09;为拥有者、所属群组以及其他人添加关于directory1的读、写和执行权限…

12章总结

一.集合类概述 java.util包中提供了一些集合类&#xff0c;这些集合类又被称为容器。 集合类与数组的不同之处&#xff1a; 数组的长度是固定的&#xff0c;集合的长度是可变的&#xff1a;数组用来存放基本类型的数据&#xff0c;集合用来存放对象的引用。 常…

java亮剑_黄金矿工3-太空版

快速搜索机型:诺基亚 N70系列(176208)7610 3230 6600 6260 6620 6630 6670 6680 6681 6682 N70 N72 ;松下: X700 X800 ;联想: P930诺基亚 N73系列(240320)N73 5320 5320XM 5320di_XM 5630XM 5700 5700XM 5710XM 5730XM 6110 6110N 6120 6120C 6120ci 6121 6122C 6124C 6210S 62…

怎么知道跟交换机互联的交换机_怎么选择POE交换机

工作的呢&#xff1f;48V供电的就是标准PoE吗&#xff1f;下面我们简单讲解一下标准PoE和MCU PoE交换机&#xff08;单片机&#xff09;及非标PoE设备是怎么工作的。标准PoE和MCU PoE交换机&#xff08;单片机&#xff09;以及非标准PoE产品定义首先我们来看一下什么是标准PoE、…

并发查询parallel_惯用并发:flatMap()与parallel()– RxJava常见问题解答

并发查询parallel简单&#xff0c;有效和安全的并发是RxJava的设计原则之一。 然而&#xff0c;具有讽刺意味的是&#xff0c;它可能是该库中最容易被误解的方面之一。 让我们举一个简单的例子&#xff1a;假设我们有一堆UUID并且对于每个UUID &#xff0c;我们必须执行一组任务…

java正则表达式 匹配()_学习Java正则表达式(匹配、替换、查找)

import java.util.ArrayList;import java.util.regex.Matcher;import java.util.regex.Pattern;public class test {public static void main(String[] args) {getStrings(); //用正则表达式获取指定字符串内容中的指定内容System.out.println("********************"…

Linux 命令之 chown -- 用来变更文件或目录的拥有者或所属群组

命令介绍 Linux/Unix 属于多用户多任务操作系统&#xff0c;所有的文件皆有拥有者。利用 chown 命令可以将指定文件的拥有者改为指定的用户或组&#xff0c;用户可以是用户名或者用户ID&#xff0c;组可以是组名或者组ID&#xff0c;文件是以空格分开的要改变权限的文件列表&a…

在excel中如何筛选重复数据_Excel中12招筛选使用大全,小白也能秒变高手

【温馨提示】亲爱的朋友&#xff0c;阅读之前请您点击【关注】&#xff0c;您的支持将是我最大的动力&#xff01;在日常使用Excel处理数据时&#xff0c;相信小伙伴们对于筛选功能已经是不陌生了&#xff0c;Excel筛选功能可以快速有效的帮助我们处理大量的数据&#xff0c;将…

静态内部类实现mysql连接_Java - 静态内部类

Java语言允许在类中再定义类&#xff0c;这种在其它类内部定义的类就叫内部类。内部类又分为&#xff1a;常规内部类、局部内部类、匿名内部类和静态嵌套类四种。1、静态内部类定义静态内部类&#xff0c;定义在类中&#xff0c;任何方法外&#xff0c;用static定义&#xff1b…

Linux 命令之 ll -- 列出当前文件或目录的详细信息

文章目录命令介绍常用选项参考示例&#xff08;一&#xff09;查看当前目录下所有文件的详细信息&#xff0c;且按创建时间排序&#xff08;二&#xff09;按时间倒序&#xff0c;分页排列文件&#xff08;三&#xff09;查看某个目录的详细信息&#xff08;四&#xff09;查看…

cli命令行界面 demo_Java命令行界面(第24部分):MarkUtils-CLI

cli命令行界面 demo本系列的第一篇 有关使用Java解析命令行参数的文章介绍了Apache Commons CLI库。 这是本系列中介绍的基于Java的命令行解析库中最古老的&#xff0c;而且可能是最常用的之一。 Apache Commons CLI确实显示了它的时代&#xff0c;特别是与一些更现代的基于Jav…

python打包成exe_【Python基础】一篇文件教你py文件打包成exe

场景:如果要将我们编写好的代码给别人使用,如果要他们直接使用我们的代码,就需要安装各种编译软件以及第三方模块,还要对软件操作,编程有一定的了解,这对使用者的要求比较高,不是很方便,为了解决这一问题,我们可以选择将我们编写的代码,编译成一个可执行文件,这样,就可以实现跨…