项目自动售货机

简介: 用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()

相关文章
|
供应链 安全 前端开发
【开题报告】基于JavaWeb的有机蔬菜销售系统的设计与实现
【开题报告】基于JavaWeb的有机蔬菜销售系统的设计与实现
238 0
|
4月前
|
监控 数据可视化 数据挖掘
点晴PMS码头港口集装箱管理系统精准预测高效调度
随着码头集装箱运输的不断发展,码头集装箱管理系统软件的市场前景广阔。对于码头企业来说,引入这样一套适合码头管理的系统,将能够提高运营效率、降低成本、增强安全性,更好地适应和应对市场需求。
67 8
|
5月前
|
监控 前端开发 JavaScript
楼层导视软件
楼层导视软件通过直观的3D地图和精准的实时定位功能,帮助用户快速找到目的地,大大节省了时间和精力。
63 0
楼层导视软件
|
8月前
|
传感器 数据采集 算法
LabVIEW鸡蛋品质智能分级系统
LabVIEW鸡蛋品质智能分级系统
50 5
|
8月前
|
新零售 人工智能 监控
无人便利店和自动售货机
无人便利店和自动售货机
297 5
|
8月前
|
前端开发 JavaScript Java
灾区物资救助系统|基于Springboot开发实现灾区物资救助系统
灾区物资救助系统|基于Springboot开发实现灾区物资救助系统
|
数据采集 机器人
八爪鱼RPA帮你搞定房屋征收管理信息系统数据录入
八爪鱼rpa可以自动完成重复繁琐的工作,大幅提升工作效率。例如,在房屋征收管理中,八爪鱼rpa可以自动将大量的房屋征收信息准确地录入到系统中,节省了大量的时间和精力。
|
存储 监控 数据可视化
高效可视化的港口码头集装箱管理系统
港口码头集装厂管理令许多管理者十分头疼。使用龙门吊或起重机装卸集装箱时,因设备操作员距离集装箱较远,为准确找到指定的集装箱,使得码头集装箱管理工作效率是否低下。
413 0
|
传感器 芯片
电子设计大赛简易自动入库小车设计
电子设计大赛简易自动入库小车设计
172 0
电子设计大赛简易自动入库小车设计
|
前端开发 物联网
6万平米高档商务区的停车场是怎样实现无人值守的?
进一步加速停车行业的数字化进程
1622 15
6万平米高档商务区的停车场是怎样实现无人值守的?