python实现自动售货机

本文实例为大家分享了python实现自动售货机的具体代码,供大家参考,具体内容如下

自动售货机代码

while True:
 n=input('请选择操作:')
 if n=='r':
   l=input('请输入货物数量:')
   v=l.split('-')
   numA1=int(v[0])
   numA2=int(v[1])
   numA3=int(v[2])
   numA4=int(v[3])
   numA5=int(v[4])
   numA6=int(v[5])
   t=input('请输入硬币数量:')
   u=t.split('-')
   yiyuan=int(u[0])
   liangyuan=int(u[1])
   wuyuan=int(u[2])
   shiyuan=int(u[3])
   print('S001:Initialization is successful')
 elif n=='q':
     print('会员管理'.center(50,'*'))

     print("""
               操作目录
               0-货物剩余量
               1-钱盒""")
     while True:
       c=input()
       if c=='0':

         print('A1 %d A2 %d A3 %d A4%d A5 %d A6 %d' %(numA1,numA2,numA3,numA4,numA5,numA6))
       elif c=='1':
         print('1yuan coin number=%d 2yuan coin number=%d 5yuan coin number=%d 10 yuan coin number=%d' %(yiyuan,liangyuan,wuyuan,shiyuan))
 elif n=='p':
  counname=input('请选择商品:')
  if counname=='1':
    if numA1<=0:
            print('E007:The goods sold out')
    else:
         m=input('请输入现金:')
         if m=='1':
            print('S003:Buy success,balance=1')
            print('E009:Work failure')
            numA1-=1
            yiyuan+=1
         elif m=='2':
            print('S003:Buy success,balance=1')
            numA1-=1
            liangyuan+=1
            yiyuan-=1
            print('找您一元')
         elif m=='5':
             if yiyuan*1+liangyuan*2<5:
                 print('E003:Change is not enough,pay fail')
             else:
                 print('S002:Pay success,balance=1')
                 print('S003:Buy success,balance=1')
                 numA1-=1
                 wuyuan+=1
                 liangyuan-=2
                 print('找您4元')
         elif m=='10':
             if yiyuan*1+liangyuan*2<10:
                 print('E003:Change is not enough,pay fail')
             else:
                 print('S002:Pay success,balance=1')
                 print('S003:Buy success,balance=1')
                 shiyuan+=1
                 wuyuan-=1
                 liangyuan-=2
                 print('找您9元')
         else:
             print('E002:Denomination error')

  elif counname == '2':
     if numA2 <= 0:
         print('E007:The goods sold out')
     else:
         m=input('请输入现金:')
         if m == '1':
             print('E008:Lack of balance')
         elif m == '2':
             print('S003:Buy success,balance=1')
             print('E009:Work failure')
             numA2 -= 1
             liangyuan += 1
         elif m == '5':
             if yiyuan * 1 + liangyuan * 2 < 5:
                 print('E003:Change is not enough,pay fail')
             else:
                 print('S002:Pay success,balance=2')
                 print('S003:Buy success,balance=1')
                 wuyuan+=1
                 yiyuan-=1
                 liangyuan-=1
                 print('找您三元')
         elif m == '10':
             if yiyuan * 1 + liangyuan * 2  < 10:
                 print('E003:Change is not enough,pay fail')
             else:
                 print('S002:Pay success,balance=2')
                 print('S003:Buy success,balance=1')
                 numA2-=1
                 shiyuan+=1
                 wuyuan-=1
                 yiyuan-=1
                 liangyuan-=2
                 print('找您8元')
         else:
             print('E002:Denomination error')
  elif counname == '3':
     if numA3 <= 0:
         print('E007:The goods sold out')
     else:
         m=input('请输入现金:')
         if m == '1':
             print('E008:Lack of balance')
         elif m == '2':
             print('E008:Lack of balance')
         elif m == '5':
             if yiyuan * 1 + liangyuan * 2 < 5:
                 print('E003:Change is not enough,pay fail')
             else:
                 print('S002:Pay success,balance=3')
                 print('S003:Buy success,balance=1')
                 numA3-=1
                 wuyuan += 1
                 liangyuan -= 1
                 print('找您三元')
         elif m == '10':
             if yiyuan * 1 + liangyuan * 2  < 10:
                 print('E003:Change is not enough,pay fail')
             else:
                 print('S002:Pay success,balance=3')
                 print('S003:Buy success,balance=1')
                 numA3 -= 1
                 shiyuan += 1
                 wuyuan -= 1
                 liangyuan -= 1
                 print('找您7元')
         else:
             print('E002:Denomination error')
  elif counname == '4':
     if numA4 <= 0:
         print('E007:The goods sold out')
     else:
         m=input('请输入现金:')
         if m == '1':
             print('E008:Lack of balance')
         elif m == '2':
             print('E008:Lack of balance')
         elif m == '5':
             if yiyuan * 1 + liangyuan * 2 < 5:
                 print('E003:Change is not enough,pay fail')
             else:
                 print('S002:Pay success,balance=4')
                 print('S003:Buy success,balance=1')
                 numA4 -= 1
                 wuyuan += 1
                 yiyuan -= 1
                 print('找您1元')
         elif m == '10':
             if yiyuan * 1 + liangyuan * 2  < 10:
                 print('E003:Change is not enough,pay fail')
             else:
                 print('S002:Pay success,balance=4')
                 print('S003:Buy success,balance=1')
                 numA4 -= 1
                 shiyuan += 1
                 wuyuan -= 1
                 yiyuan -= 1
                 print('找您6元')
         else:
             print('E002:Denomination error')
  elif counname == '5':
     if numA5 <= 0:
         print('E007:The goods sold out')
     else:
         m=input('请输入现金:')
         if m == '1':
             print('E008:Lack of balance')
         elif m == '2':
             print('E008:Lack of balance')
         elif m == '5':
             print('E008:Lack of balance')
         elif m == '10':
             if yiyuan * 1 + liangyuan * 2 < 10:
                 print('E003:Change is not enough,pay fail')
             else:
                 print('S002:Pay success,balance=6')
                 print('S003:Buy success,balance=1')
                 numA5 -= 1
                 shiyuan += 1
                 liangyuan-=2
                 print('找您4元')
         else:
             print('E002:Denomination error')
  elif counname == '6':
     if numA6 <= 0:
         print('E007:The goods sold out')
     else:
         m=input('请输入现金:')
         if m == '1':
             print('E008:Lack of balance')
         elif m == '2':
             print('E008:Lack of balance')
         elif m == '5':
                 print('S003:Buy success,balance=1')
                 print('E009:Work failure')
                 numA6 -= 1
                 wuyuan+=1
         elif m == '10':
             if yiyuan * 1 + liangyuan * 2 < 10:
                 print('E003:Change is not enough,pay fail')
             else:
                 print('S002:Pay success,balance=5')
                 print('S003:Buy success,balance=1')
                 numA6 -= 1
                 shiyuan += 1
                 wuyuan -= 1
                 print('找您5元')
  else:
    print('E006:Goods does not exist')
 else:
      print('操作无效')

解释说明:钱币盒内只有,一元,两元,五元,十元的硬币;顾客也只能投入这些,钱币盒内一元和两元的总面额必须大于顾客给的面额,顾客一次只能投一次钱并买一件商品,但可以多次投入多次购买。货物数量和钱币数量由管理员初始化设定,管理员也可以查看钱币及货物数量,但查看完毕必须退出。如果投入钱币恰好等于商品价格,则购买成功并提示余额为0,工作失败,意味后续无法购买。

r——–初始化,必须初始化后才能执行程序
q——-管理员查看钱盒和货物信息
p——-顾客购买商品及付款及退钱

如图有:

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • 基于Python实现电影售票系统

    目录 一.系统要求 二.用户信息 三.主要代码 四.效果图展示 一.系统要求 电影售票系统程序,应具备以下几点功能: 1.用户认证 系统用户分为用户.管理员两个角色,系统可根据不同用户角色权限进入不同界面,所有用户角色需要通过身份验证才能登录系统进行操作. 2.用户登录 主要实现用户登录系统可查看本人会员信息.购买影票.查看订票.影票退订.修改信息等功能. 3.管理登录 主要实现管理员登录系统可查看会员和管理信息.添加会员.注销会员.查看购票.影票出售.影票退订.查看影票余票和售票.增删管理.增

  • Python使用面向对象方式创建线程实现12306售票系统

    目前python 提供了几种多线程实现方式 thread,threading,multithreading ,其中thread模块比较底层,而threading模块是对thread做了一些包装,可以更加方便的被使用. 面向对象技术简介 类(Class): 用来描述具有相同的属性和方法的对象的集合.它定义了该集合中每个对象所共有的属性和方法.对象是类的实例. 类变量:类变量在整个实例化的对象中是公用的.类变量定义在类中且在函数体之外.类变量通常不作为实例变量使用. 数据成员:类变量或者实例变量用于

  • Python多线程实现模拟火车站售票

    本文实例为大家分享了Python多线程模拟火车站售票的具体代码,供大家参考,具体内容如下 Python的标准库提供了两个模块:thread和threading,thread是低级模块,threading是高级模块,对thread进行了封装. 我们使用threading这个高级模块, 模拟火车站卖票,如果不加锁,卖出同一张票: import threading from time import sleep, ctime N = 100 # 100张票 def Sell(name): global

  • python实现自动售货机

    本文实例为大家分享了python实现自动售货机的具体代码,供大家参考,具体内容如下 自动售货机代码 while True:  n=input('请选择操作:')  if n=='r':    l=input('请输入货物数量:')    v=l.split('-')    numA1=int(v[0])    numA2=int(v[1])    numA3=int(v[2])    numA4=int(v[3])    numA5=int(v[4])    numA6=int(v[5])  

  • C语言实现查询自动售货机中的商品价格【实例分享】

    问题描述:假设自动售货机出售四种商品,在屏幕上显示以下菜单(编号和选项),用户可以连续查询商品的价格,当查询次数超过5次时,自动退出查询:不到5次时,用户可以选择退出.当用户输入编号1~4,显示相应的商品价格(保留1位小数):输入0,退出查询:输入其他编号,显示价格为0. int choice,i; double price; for(i=1;i<=5;i++){ //以下5行显示菜单 printf("[1]Select crisps\n"); //查询薯片价格 printf(&

  • 通过C#实现自动售货机接口

    下面分几部分介绍C#实现自动售货机接口的方法,代码写的非常详细,不懂的地方有注释可以参考下. MachineJP类: 第1部分:串口初始化,串口数据读写 using System; using System.Collections.Generic; using System.IO.Ports; using System.Linq; using System.Text; using System.Threading; using System.Threading.Tasks; using Syst

  • C语言实现自动售货机

    本文实例为大家分享了C语言实现自动售货机的具体代码,供大家参考,具体内容如下 如图所示的简易自动售货机,物品架1.2上共有10样商品,按顺序进行编号分别为1-10,标有价格与名称,一个编号对应一个可操作按钮,供选择商品使用.如果物架上的商品被用户买走,储物柜中会自动取出商品送到物架上,保证物品架上一定会有商品.用户可以一次投入较多钱币,并可以选择多样商品,售货机可以一次性将商品输出并找零钱. 用户购买商品的操作方法: (1)从“钱币入口”放入钱币,依次放入多个硬币或纸币.钱币可支持1元(纸币.硬

  • java实现自动售货机

    JAVA基础练手项目—自动售货机,供大家参考,具体内容如下 要求: 简易售货机 流程: [投币]—>[显示货物清单]—>[选择一个商品编号购买]—>[提示出货]—>[找钱] 功能要求: 1. 使用mysql数据库,将所有货物存储在数据库中(货物应至少具有编号.名称.数量.价格等基本信息,可自行增加其他属性以完善程序).2. 要有友好的客户提示,例如:请输入购买商品的编号.3. 清单要求包含每种商品的剩余数量.4. 出货后,可以选择[找钱],也可以选择[继续购买],而不直接找钱 以下

  • 用C语言实现自动售货机

    自动售货机 如图所示的简易自动售货机,物品架1.2上共有10样商品,按顺序进行编号,分别为1-10.同时标有价格与名称,- 一个编号对应一个可操作按钮,供选择商品使用.如果物架上的商品被用户买走,储物柜中会自动取出商品送到物架上,保证物品架上一定会有商品.用户可以一次投入较多钱币,并可以选择多样商品,售货机可以一次性将商品输出并找零钱. 用户购买方法: (1)放入钱币,用户可以以此放入多个纸币,面额可以是1元.2元.>5元.10元.售货机会统计总金额并显示.(2)依次输入要购买的产品,可购买多个

  • C语言实现最全自动售货机

    拥有所有功能自动售货机C语言 主要功能:欢迎页面.通过文本文件读入货物信息.上货.卖货(包含找零,付款不足等多种情况).增加新品种.按单价从高到低排序.按序号排序.退出前将所有货物信息回写进文本文档 实际代码非常简单 使用环境 VS2017编译运行正常;DEV C++删除第一行(#define _CRT_SECURE_NO_WARNINGS) 注意事项 1.第一次使用需要进入系统维护录入所有信息.2.在使用时会在桌面创建一个文本文件记录数据,下次运行也会有数据.3.录入数据时一定注意按照系统提示

  • Python实现的一个自动售饮料程序代码分享

    写这个程序的时候,我已学习Python将近有一百个小时,在CSDN上看到有人求助使用Python如何写一个自动售饮料的程序,我一想,试试写一个实用的售货程序.当然,只是实现基本功能,欢迎高手指点,新手学习参考. 运行环境:Python 2.7 # encoding=UTF-8 loop=True money=0 while loop:     x = raw_input('提示:请投入金币,结束投币请按"q"键')     if x=='q':         if money==0:

  • java实现饮料自助售货机

    本文实例为大家分享了java实现饮料自助售货机的具体代码,供大家参考,具体内容如下 ①用户类 import java.util.Scanner; //用户类 public class User  {     public static void main(String[] args)//主函数     {         Scanner sc = new Scanner(System.in);         shopping shopping = new shopping();//创建对象  

  • python实现自动登录人人网并访问最近来访者实例

    本文实例讲述了python实现自动登录人人网并访问最近来访者的方法,分享给大家供大家参考. 具体方法如下: ##-*- coding : gbk -*- #在 import os from xml.dom import minidom import re import urllib import urllib2 import cookielib import datetime import time from urllib2 import URLError,HTTPError #登录模块 在网上

随机推荐