项目自动售货机

简介: 用python语言编写项目自动售货机。

项目自动售货机:

学校里的自动售货机只能买一个东西付一次帐,不能同时选几个商品,同时付帐!
写一个程序自动售货机的程序可以实现同时选择商品且能同时付账的程序!
已知商品及商品价格的字典如下:
{'方便面':'4.5','香肠':'2','锅巴':'3','磨片':'3','可乐':'3','雪碧':'3','鸡蛋':'3','蛋卷':'5','派':'4.5'}
要求:
1、定义class来实现。
2、输入要买的商品名及个数且可输入多个商品,返回总价。
3、类要有商品清单的属性,以返回实例所购买的商品名称个数单价及总价
4、每次购买成功后,流水要保存到excel表格。
import openpyxl, datetime

class SaleMachine:
def init(self):
self.sale_goods = {'方便面':'4.5','香肠':'2','锅巴':'3','磨片':'3','可乐':'3','雪碧':'3','鸡蛋':'3','蛋卷':'5','派':'4.5'}
self.buy_dict = {}
self.excel = openpyxl.load_workbook('a.xlsx')
self.buy_goods()

def buy_goods(self):
    print("------------欢迎光临------------")
    while True:
        g = input('请输入想要购买的商品名称:')
        n = input('请输入想要购买的数量:')
        if g not in self.sale_goods.keys():
            print("该商品目前没有货, 买点别的吧~")
            continue
        try:
            new_n = int(n)
            if new_n <= 0:
                print("该数量不正确哦, 请重新输入~")
                continue
        except:
            print("该数量不正确哦, 请重新输入~")
            continue
        self.buy_dict[g] = new_n
        keep = input('~~~~~~~~~~~还买点别的吗?~~~~~~~~~~~`')
        if keep == "否":
            print('总价格:', self.add_price())
            self.save_excel()
            break

def save_excel(self):
    wb = self.excel.active
    row = wb.max_row
    for k, v in self.buy_dict.items():
        cell_a = wb["A%d" % (row+1)]
        cell_a.value = k
        cell_b = wb["B%d" % (row+1)]
        cell_b.value = v
        cell_c = wb["C%d" % (row+1)]
        cell_c.value = datetime.datetime.now()
        row += 1
    self.excel.save('a.xlsx')

def add_price(self):
    all_price = 0
    for k, v in self.buy_dict.items():
        price = self.sale_goods[k]
        all_price = all_price + (float(price) * v)
    return all_price

if name == "main":
g = SaleMachine()

相关文章
|
12月前
|
供应链 安全 前端开发
【开题报告】基于JavaWeb的有机蔬菜销售系统的设计与实现
【开题报告】基于JavaWeb的有机蔬菜销售系统的设计与实现
200 0
|
Python
项目商场储物柜
用python语言编写项目商场储物柜。
88 0
|
Java 关系型数据库 MySQL
小区物业管理信息系统设计与实现(论文+源码)
随着互联网的发展,网络技术的发展变得极其重要,所以依靠计算机处理业务成为了一种社会普遍的现状。管理方式也自然而然的向着现代化技术方向而改变,所以纯人工管理方式在越来越完善的现代化管理技术的比较之下也就显得过于繁琐,会在未来的发展中被淘汰也是意料之中的事情,并逐渐从人们的生活中消失。该设计所设计的内容围绕的正是一种对管理方式的设计,而且小区物业业主管理系统也是应时而生,事半功倍。
96 0
|
3月前
|
监控 前端开发 JavaScript
楼层导视软件
楼层导视软件通过直观的3D地图和精准的实时定位功能,帮助用户快速找到目的地,大大节省了时间和精力。
50 0
楼层导视软件
|
4月前
|
数据可视化 定位技术 vr&ar
商场3D楼层导视软件功能详解与实施效益
**维小帮3D楼层导视软件**提供创新的商场导航体验:3D地图清晰呈现楼层布局,跨楼层导航智能规划路径;实时定位防止迷路;AR实景导航增强沉浸感;广告推送及可视化招商平台助力商业运营。软件结合VR、AR技术,优化顾客导航,促进营销,实现智慧化管理与招商,引领商场服务升级。
93 0
商场3D楼层导视软件功能详解与实施效益
|
算法 数据挖掘 TensorFlow
现货跟单/合约跟单/一键跟单系统开发(币安/OK交易所开发)/项目搭建
现货跟单/合约跟单/一键跟单系统开发(币安/OK交易所开发)/项目搭建
|
运维 前端开发 关系型数据库
为小区物业开发一个停车位租赁系统
为小区物业开发一个停车位租赁系统
133 5
为小区物业开发一个停车位租赁系统
|
开发框架 Rust 安全
Stepn跑鞋趣步跑步运动系统开发(开发逻辑)丨Stepn跑鞋链游项目系统开发(详情及玩法)/成熟技术/源码版
在DApp开发中,智能合约是不可或缺的一部分。智能合约通常使用Solidity语言编写,并且运行在以太坊或其他区块链平台上。在智能合约中,开发人员可以编写代码来定义合约的逻辑和执行流程。智能合约的执行是通过区块链网络的节点共识机制来完成的,保证了其不可篡改性和安全性。
|
传感器 芯片
电子设计大赛简易自动入库小车设计
电子设计大赛简易自动入库小车设计
157 0
电子设计大赛简易自动入库小车设计
|
存储 区块链
字画系统拍卖竞拍开发定制技术实现方案及需求
数字藏品是NFT的一个分支,NFT(Non-fungible token),是一种基于以太坊区块链的“非同质化代币”,数字藏品就是NFT的一种应用形式, 即使用区块链技术,对应特定的作品、艺术品生成的唯一数字凭证,在保护其数字版权的基础上,实现真实可信的数字化发行、购买、收藏和使用。数字藏品具有唯一性,被永久存储在区块链上,无法被复制和随意纂改,可以追根溯源和明确版权。
字画系统拍卖竞拍开发定制技术实现方案及需求