用python写项目之图书管理系统
1、功能介绍:
(1)、添加新书:输入要添加的书名、存放的书架号、价格。
(2)、修改书架:输入要书名,然后对其修改书架号、价格
(3)、删除书架:输入书名,然后对应删除书名、书架号、价格
(4)、查询书架:展示所有的书籍
(5)、退出系统:退出系统
2、代码
# 创建一个dict,存放图书
books={"倚天屠龙记":{"id":1,"price":100.00},
"好吗好的":{"id":2,"price":200.00},
"告别薇安":{"id":3,"price":300.00},
"穆斯林的葬礼":{"id":4,"price":400.00}
}
# 创建一个list
menu=["1、添加新书","2、修改书架","3、删除书架","4、查询书架","5、退出系统"] # 系统启动+菜单展示
def start():
print("欢迎使用图书馆管理系统")
# 菜单展示
for i in menu:
print("**%s**" % i)
choose() # 功能选择
def choose():
choosenum = input("请选择一个功能:")
# 添加新书
if choosenum=="":
print("添加新书中....")
while True:
add_bookname = input("输入要添加的书名:")
# 如果图书馆已经有这本书
if ifexist(bookname=add_bookname):
s=input("已经有这本书了!\n请输入0重新选择功能,输入1继续添加新书:")
# 输入0回到choose()
if s=="":
return choose()
# 输入1停止剩余的语句,继续下一次的循环
elif s=="":
continue
else:
print("输入有误,已退出!")
# 退出系统
exit()
# 如果图书馆没有这本书,跳出while循环
else:
break
while True:
add_bookid = input("请输入要放得书架号:")
# 如果书架号已经被占用
if ifexist(bookid=add_bookid):
s=input("这个书架已经被占用了!\n请输入0重新选择功能,输入1继续添加书架:")
if s=="":
return choose()
elif s=="":
continue
else:
print("输入有误,已退出!")
exit()
# 如果书架号没有被占用,跳出while循环
else:
break
# 输入书的价格
add_bookprice=input("请输入书的价格:")
# 创建一个dict
add_bookidprice={"id":add_bookid,"price":add_bookprice}
# 往图书馆中添加新书
newbook(add_bookname,**add_bookidprice)
# 展示所有的图书
showbooks(**books)
# 修改书架
elif choosenum=="":
# 输入书名
update_bookname=input("请输入要修改的书名:")
# 对着书名,修改其书架号和价格
updatebook(update_bookname)
# 删除书架
elif choosenum=="":
# 输入书名
del_bookname = input("请选择要删除的书名:")
# 删除这本书的所有的记录
deletebook(del_bookname)
# 查询书架
elif choosenum=="":
# 展示所有的图书
showbooks(**books)
# 退出系统
elif choosenum=="":
print("退出系统!")
# 退出系统
exit()
else:
# 输入的功能不是1、2、3、4、5,抛出“输入的参数有误”
if isinstance(choosenum, str):
raise TypeError("输入参数有误!")
else:
# 退出系统
exit() # 修改书架
def updatebook(bookname):
# 查看书本是否已经存在
if ifexist(bookname=bookname):
num=input("你想修改什么呢?输入1修改书架号,输入2修改价格,输入其他退出:")
# 修改书的书架号
if num=="":
while True:
updatebook_id=input("你想放几号书架?:")
# 查看书架号是否被占用
if ifexist(bookid=updatebook_id):
print("这个书架已经满了!")
# 停止剩下的语句,继续下一次循环
continue
else:
# 修改书架号
books[bookname]["id"]=int(updatebook_id)
print("成功修改书架号!")
# 展示所有的图书
showbooks(**books)
# 修改书的价格
elif num=="":
updatebook_price=float(input("输入新的价格:"))
# 修改输的价格
books[bookname]["price"]=updatebook_price
print("成功修改价格!")
# 展示所有的图书
showbooks(**books)
else:
# 退出系统
exit()
# 图书馆没有这本书,返回主键面
else:
print("图书馆没有这本书!")
return choose()
#删除书架
def deletebook(bookname):
# 查看图书馆是否有这本书
if ifexist(bookname=bookname):
# 删除这本书
books.pop(bookname)
print("已删除%s" % bookname)
# 返回主键面
return choose()
else:
print("图书馆没有这本书!")
return choose() # 新书存入图书馆
def newbook(bookname,**kwargs):
# 新书存入图书馆中
books[bookname]=kwargs
print("添加成功了!") # 展示图书馆的所有的图书
def showbooks(**kwargs):
# 遍历books
for i in kwargs:
print("name=%s,id=%d,price=%.2f" % (i,int(books[i]["id"]),float(books[i]["price"])))
# 遍历完返回主键面
return choose() # 判断书名或者id是否存在于图书馆系统中
def ifexist(bookname='',bookid=''):
# 书名不为空
if bookname != '':
# 如果图书馆有这本书,返回True
if bookname in books:
return True
# 图书馆没有这本书,返回False
else:
return False
else:
# 遍历一个dict
for i in books:
# 如果输入参数bookid等于某个图书馆书架的id,返回True
if int(bookid)==books[i]['id']:
return True
return False
# 程序启动
start()
结果演示:
**1、添加新书**
**2、修改书架**
**3、删除书架**
**4、查询书架**
**5、退出系统**
请选择一个功能:1
添加新书中....
输入要添加的书名:哈哈
请输入要放得书架号:4
这个书架已经被占用了!
请输入0重新选择功能,输入1继续添加书架:1
请输入要放得书架号:6
请输入书的价格:50
添加成功了!
name=倚天屠龙记,id=1,price=100.00
name=好吗好的,id=2,price=200.00
name=告别薇安,id=3,price=300.00
name=穆斯林的葬礼,id=4,price=400.00
name=哈哈,id=6,price=50.00
请选择一个功能:2
请输入要修改的书名:哈哈
你想修改什么呢?输入1修改书架号,输入2修改价格,输入其他退出:1
你想放几号书架?:2
这个书架已经满了!
你想放几号书架?:7
成功修改书架号!
name=倚天屠龙记,id=1,price=100.00
name=好吗好的,id=2,price=200.00
name=告别薇安,id=3,price=300.00
name=穆斯林的葬礼,id=4,price=400.00
name=哈哈,id=7,price=50.00
请选择一个功能:3
请选择要删除的书名:哈哈
已删除哈哈
请选择一个功能:4
name=倚天屠龙记,id=1,price=100.00
name=好吗好的,id=2,price=200.00
name=告别薇安,id=3,price=300.00
name=穆斯林的葬礼,id=4,price=400.00
请选择一个功能:5
退出系统!
Process finished with exit code 0
用python写项目之图书管理系统的更多相关文章
- C项目实践--图书管理系统(2)
前面在<<C项目实践-图书管理系统(1)>>中把系统中的三大功能模块中可能涉及到的常量,结构体及相关函数进行了声明定义,下来就来实现它们. 执行系统首先从登录到系统开始,所以首 ...
- javaWeb项目之图书管理系统(附视频讲解)
视频播放地址:javaWeb图书系统 本系统为"Swing项目之图书管理系统"(此源码已共享)的Web版,网页框架用采用EasyUI 数据库为MysqL,写Web项目摒弃了火狐浏览 ...
- C项目实践--图书管理系统(3)
接下来将要实现用户管理模块的相关功能,用户管理模块的主要功能包括增加用户,查找用户以及保存用户等功能,查找用户时,如果查找成功,充许对查找到用户进行更新或删除操作.如果查找不成功,则给出相应的提示信息 ...
- C项目实践--图书管理系统(1)
1.功能需求分析 图书管理系统主要用于对大量的图书信息,包括书名.作者.出版社.出版日期.ISBN(书号)等进行增.删.改.查以及保存等操作.同时也包括对用户的管理,用户包括管理员和普通用户两种权限, ...
- 新建Django项目示例--图书管理系统
知识点: Django 1. 安装 1. Django版本 1.11.xx 2. 安装方式 1. 命令行 --> Python环境(双版本,pip的使用) 2. PyCharm安装 2. 创建D ...
- C项目实践--图书管理系统(4)
前面已经把图书管理系统的所有功能模块都已实现完毕了,下面通过运行来分析该系统的操作流程并检验是否符合逻辑设计要求. 3.系统操作过程 F5 运行 1.登录系统 系统运行之后,提示输入用户名和密码,系统 ...
- 【WPF on .NET Core 3.0】 Stylet演示项目 - 简易图书管理系统(3) - 使用Conductor切换页面
前两章中, 我们已经实现了这个图书管理系统的登录窗口, 并实施了完善的单元测试. 该是时候回过头来关注我们的主窗口了. 一个功能丰富的系统一般会有多个页面, 我们图书管理系统虽然是"简易&q ...
- 44.Python实现简易的图书管理系统
首先展示一下图书管理系统的首页: 这是图书管理系统的发布图书页面: 最后是图书管理系统的图书详情页已经图书进行删除的管理页. 该图书管理系统为练习阶段所做,能够实现图书详情的查询.图书的添加.图书的删 ...
- Java小项目迷你图书管理系统
package 迷你图书管理系统; import java.util.Scanner; public class BookMgr { public static void main(String[] ...
随机推荐
- Map - 与君初相识
前言 生活中,我们常会看到这样一种集合:IP地址与主机名,身份证号与个人等,这种一 一对应的关系,就叫做映射.Java提供了专门的集合类用来存放这种对应关系的对象,即 java.util.Map 接口 ...
- centOS 6.5 yum升级 gcc4.8 然后又退回来4.4
CentOS 6.5 用了很多年了,一直舍不得省7 . 由于要用到 c++ 11 ,所以决定升级一下. 为了省事我选择用 yum 方式升级,结果最后还是不能用,差点搞坏,这是真机,重装麻烦了. get ...
- JAVA生成EXCEL模板
JAVA生成excel模板,支持1.必填字段前加 红色 * 2.定义可选值下拉列表 valList3.定义名称并通过名称设置可选值 refName(名称在sheet2,sheet2自动隐藏)4.支持设 ...
- Vue2.0 【第三季】第1节 propsData Option 全局扩展的数据传递
目录 Vue2.0 [第三季]第1节 propsData Option 全局扩展的数据传递 第1节 propsData Option 全局扩展的数据传递 Vue2.0 [第三季]第1节 propsDa ...
- Netty源码分析之ChannelPipeline—出站事件的传播
上篇文章中我们梳理了ChannelPipeline中入站事件的传播,这篇文章中我们看下出站事件的传播,也就是ChannelOutboundHandler接口的实现. 1.出站事件的传播示例 我们对上篇 ...
- HTML5 history-hash 随机选择彩票
<!doctype html> <html> <head> <meta charset="utf-8"> <title> ...
- Scrapy同时启动多个爬虫
1. 在项目文件夹中新建一个commands文件夹 2. 在command的文件夹中新建一个文件 crawlall.py 3.在crawlall.py 中写一个command类,该类继承 scrapy ...
- this.current = params.page || 1 (前提是params对象一定要存在)
this.current = params.page || 1 (前提是params对象一定要存在)
- appium移动自动化详解
1移动自动化简介 移动自动化就是通过代码来控制手机,模拟人的动作,对手机进行一些点击,输入等操作,那python代码如何能控制到手机呢?目前的思路应该是python代码->Appium-pyth ...
- 在ASP.NET MVC中如何预防Cookie的窃取攻击(转载)
Cookie Cookie is a small piece of data sent by a web server to a web browser. The browser stores thi ...