python 实验8

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()

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值