1、使用本章介绍的知识设计一个“书籍出租管理系统",该系统包括以下功能。(1)菜单项“1”:显示书籍(包括书籍名称、价格和借出状态)。
(2)菜单项“2”:增加书籍(包括书籍名称和价格)。
(3)菜单项“3”:借出书籍(包括借出书籍名称和借出天数)。
(4)菜单项“4”:归还书籍(包括归还书籍名称和应付的租书费)。
(5)菜单项“5":统计书籍(包括借出书籍册数、未借出书籍册数和总册数)。
(6)菜单项“-1”:退出系统。
分析:
(1)定义书籍类Book,包括书籍名称、书籍价格和书籍状态。
(2)定义书籍管理类BookManager,包括构造方法_init_()、菜单方法 Menu()、查询书籍方法show_all_books()、添加书籍方法 add_books()、借出书籍方法 lend_books()、归还书籍方法return_books()、统计书籍方法 count_books()和检查书籍是否存在方法check books(),分别完成书籍初始化、创建菜单、查询书籍、添加书籍、借出书籍、归还书籍、统计书籍和检查书籍等功能。
(3)书籍存储在书籍管理类BookManager的书籍列表 books中。
#定义书籍类Book.
class Book:
#构造方法.
def __init__(self,Name,Price,State):
self.Name = Name #书籍名称.
self.Price = Price #书籍价格.
self.State = State #书籍状态.
def __str__(self):
State = '已借出'
if self.State == 1:
State = '未借出'
return '名称:《%s》, 单价: %.2f元, 状态: %s' % (self.Name,self.Price,State)
#定义书籍管理类bookManager.
class BookManager:
#书籍列表books,每个元素是一个书籍对象.
books = []
#构造方法.
def init(self):
self.books.append(Book('茶花女',32.6,0))
self.books.append(Book('傲慢与偏见',41.8,1))
self.books.append(Book('罗密欧与朱丽叶',29.5,1))
#菜单.
def Menu(self):
self.init()
print('\"书籍出租管理系统\"菜单:')
print('1.显示书籍')
print('2.增加书籍')
print('3.借出书籍')
print('4.归还书籍')
print('5.统计书籍')
print('-1.退出系统')
while (True):
menu_item = int(input('******请输入菜单编号: '))
if menu_item == 1:
self.show_all_books()
elif menu_item == 2:
self.add_books()
elif menu_item == 3:
self.lend_books()
elif menu_item == 4:
self.return_books()
elif menu_item == 5:
self.count_books()
elif menu_item == -1:
print('谢谢使用!')
break
else:
print("请输入-1,1~5范围的菜单项编号!")
#1. 查询并显示所有书籍.
def show_all_books(self):
for book in self.books:
print(str(book))
#2. 添加书籍.
def add_books(self):
book_name = input('请输入添加书籍名称: ')
ret = self.check_books(book_name)
if ret != None:
print('书籍已经存在!')
else:
book_price = float(input('请输入书籍价格: '))
new_book = Book(book_name,book_price,1)
self.books.append(new_book)
print('添加书籍成功!')
#3. 借出书籍.
def lend_books(self):
book_name = input('请输入借出书籍的名称: ')
ret = self.check_books(book_name)
if ret != None:
if ret.State == 0:
print('您要借的书籍已经借出去了')
else:
ret.State = 0
print('借书成功!')
else:
print('您要借的书籍不存在!')
#4. 归还书籍.
def return_books(self):
book_name = input('请输入归还书籍名称: ')
ret = self.check_books(book_name)
if ret == None:
print('您要归还的书籍不存在!')
else:
if ret.State == 1:
print('您要归还的书籍未借出!')
else:
lend_days = int(input('请输入借书天数: '))
fee = round(ret.Price * lend_days * 0.1,2) #保留2位小数.
print('借出 %d 天,应付租书费%.2f元. ' % (lend_days,fee))
while True:
pay = float(input('请输入支付金额: '))
if pay < fee:
print('您所输入的金额不够!')
else:
break
if pay >= fee:
print('找零: %.2f元.' % (pay - fee))
ret.State = 1
print('还书成功!')
#5. 统计书籍状况.
def count_books(self):
lend_count = 0
not_lend_count = 0
for item in self.books:
if item.State == 0:
lend_count = lend_count + 1
else:
not_lend_count = not_lend_count + 1
print("已借出书籍: %d 册."%lend_count)
print("未借出书籍: %d 册." %not_lend_count)
print("总书籍: %d 册." %len(self.books))
#检查书籍是否存在.
def check_books(self,Name):
for book in self.books:
if book.Name == Name:
return book
else:
return None
if __name__ == "__main__":
#创建BookManager类的实例.
manager = BookManager()
#调用Menu()方法.
manager.Menu()
2、设计一个“超市进销存管理系统”,要求如下:
(1)系统包括7种操作,分别是:1.查询所有商品;2.添加商品;3.修改商品;4.删除商品;5.卖出端口;6.汇总;-1.退出系统。
(2)选择操作序号“1”,显示所有商品。
(3)选择操作序号“2”,添加新的商品(包括商品名称、数量和进货价格)。
(4)选择操作序号“3",修改商品。
(5)操作序号“4”,删除商品。
(6)选择操作序号“5,卖出商品(包括商品名称、数量和售出价格)。
(7)选择操作序号“6",汇总当天卖出商品,包括每种销售商品名称、数量、进货总价、销售总价等。
(8)选择操作序号“-1”,退出系统。
import sys
class product:
name="" #商品名称
in_num=0 #添加商品的数量
storage=0 #商品库存
in_price=0 #添加商品的价格
sold_num=0 #卖出商品数量
sold_price=0 #卖出商品价格
in_sum=0
out_sum=0
def show(self):
if self.storage>0:
print("商品名称:",self.name,"商品库存:",self.storage)
"""构造函数"""
def __init__(self,name,in_num,in_price):
self.name=name
self.in_num=in_num
self.storage=in_num
self.in_price=in_price
self.in_sum=in_num*in_price
def sold(self,sold_num,sold_price):
if sold_num>self.storage:
print("出售数目大于库存!")
else:
self.sold_num+=sold_num
self.storage -= sold_num
self.out_sum += sold_num * sold_price
def show_soldproduct(self):
if self.sold_num>0:
print("商品名称:",self.name,"商品库存:",self.storage,"进货总价:",self.in_sum,"销售总价:",self.out_sum)
if __name__ == "__main__":
def showmenu():
print("************************************************************************")
print("************************欢迎进入超市进销存管理系统*************************")
print("1. 查询所有商品;2.增加新的商品;3.卖出商品;4.删除商品;5.汇总;-1.退出。")
print("************************************************************************")
option = int(input("请输入您需要的服务数字:"))
if option == 1:
for item in product_list:
item.show()
if option == 2:
name=input("请输入商品名称:")
in_num=int(input("请输入商品数量:"))
in_price=int(input("请输入商品单价:"))
new_product=product(name,in_num,in_price)
product_list.append(new_product)
if option == 3:
name=input("请输入卖出的商品名称:")
sold_num=int(input("请输入卖出的商品数量:"))
sold_price=int(input("请输入卖出的商品的价格:"))
for item in product_list:
if item.name == name:
item.sold(sold_num,sold_price)
if option == 4:
name=input("请输入想要删除的商品名称:")
for item in product_list:
if item.name == name:
item.storage=0
if option == 5:
for item in product_list:
item.show_soldproduct()
if option == -1:
sys.exit()
product_list=[]
a=product("test",0,0,)
product_list.append(a)
while True:
showmenu()