了解一下自动售卖机

了解一下自动售卖机,第1张

自动售货机工作的大概原理流程是:

一、传统非智能售货机投入纸币或硬币,货币识别器进行识别。选货,按下选货按钮,自动售货机程序根据商品的定价对现金进行加减计算。出货,如果投入的金额不足会有提示,如果金额足够的话就直接出货了。等待顾客的进一步 *** 作,如不买其他的东西选择找零的话,售货机会根据刚才计算的结果自动找零硬币,购物完成。

二、智能自动售货机选货后,售货机程序会向后台服务器发起收款申请二维码(微信、支付宝或其他的电子支付),二维码直接显示在售货机显示屏上。顾客扫码后,后台服务器会查询收款账户是不是收到款了,如果收到了,后台服务器会向售货机发出出货的指令,售货机根据指令出货。

智能售货机功能比较多,原理也很复杂,有些不需要付款根据输入的提货码也能出货,原理是顾客输入提货码或者奖券码,售货机把提货码发到后台服务器,后台服务器对提货码进行核实,并把对应的出货指令发给售货机,售货机根据指令出对应的商品。自动售货机的工作原理大概都是这个样子,现在市面上越来越多的都是这种智能的自动售货机了,支付方式也越来越多。

一、传统的非智能自动售货机放入纸币或硬币,货币识别器会识别它们。选择商品,按下选择键,自动售货机程序会根据商品的定价加减现金。发货,如果投入金额不足会有提示,如果金额充足会直接发货。等待顾客的进一步 *** 作,如果不买别的东西而选择换,自动售货机会根据刚才的计算结果自动换币,购物完成。二、智能自动售货机选择商品后,自动售货机程序会向后台服务器发起支付应用二维码(微信、支付宝或其他电子支付),二维码直接显示在自动售货机显示屏上。客户扫码后,后台服务器会查询支付账户是否收到款项。如果有,后台服务器会向自动售货机发送发货指令,自动售货机根据指令发货。现代智能自动售货机的内部控制系统采用VHDL描述语言,系统的状态用有限状态机来描述。上电复位后,系统自动初始化,根据外部输入信号转换不同状态(如投币状态、销售状态、找零状态)。总之,我们现在接触到的自动售货机,功能多,原理复杂。其中一些可以根据输入的提货代码免费发货。原理是顾客输入取货码或抽奖码,自动售货机将取货码发送给后台服务器,后台服务器验证取货码并向自动售货机发送相应的发货指令,自动售货机根据指令发送相应的商品。自动售货机的工作原理大概是这样的。现在市面上的智能自动售货机越来越多。毕竟用手机扫码支付方便多了。

import javautilScanner;

public class Shop

{

private String coffee="咖啡";

private String coke="可乐";

private String tea="茶";

private double coffeeprice=200;

private double cokeprice=300;

private double teaprice=5;

private double price=00;

public Shop()

{

}

public void getName(int i)

{

if(i==1)

{

Systemoutprintln("你选择的是咖啡");

}

if(i==2)

{

Systemoutprintln("你选择的是可乐");

}

if(i==3)

{

Systemoutprintln("你选择的是茶");

}

}

public double getShopping(int i,double p)

{

if(i==1)

{

if(p<coffeeprice)

{

Systemoutprintln("您的钱不够买此商品");

}

else

{

price=p-coffeeprice;

}

}

if(i==2)

{

if(p<cokeprice)

{

Systemoutprintln("您的钱不够买此商品");

}

else

{

price=p-cokeprice;

}

}

if(i==3)

{

if(p<teaprice)

{

Systemoutprintln("您的钱不够买此商品");

}

else

{

price=p-teaprice;

}

}

return price;

}

public static void main(String[] args)

{

Shop shop=new Shop();

try

{

Systemoutprintln("请选择你想要的商品\n 1咖啡 2可乐 3茶");

Scanner si=new Scanner(Systemin);

int i=sinextInt();

Systemoutprintln(" ");

if(i>3||i<1)

{

Systemoutprintln("没有此产品");

}

else

{

shopgetName(i);

Systemoutprintln(" ");

Systemoutprint("请付账:");

Scanner sp=new Scanner(Systemin);

double p=spnextDouble();

Systemoutprintln(" ");

if(shopgetShopping(i,p)!=00)

{

Systemoutprintln("找你的钱:"+shopgetShopping(i,p));

}

}

}

catch(Exception ex)

{

Systemoutprintln("请正确输入!");

}

}

}

自己再根据以下程序好好修改下吧

#include<iostream>

#include<string>

#include<vector>

using namespace std;

class coin

{

public:

Coin(string n,double v );

string get_name()const;

double get_value()const;

private:

string name;

double value;

};

Coin::Coin(string n,double v)

{

name=n;

value=v;

}

string Coin::get_name() const

{

return name;

}

double Coin::get_value() const

{

return value;

}

#include "producth"

product::product(void)

{

}

product::~product(void)

{

}#pragma once

class product

{

public:

product(void);

Product(string n, double p, int q)

string get_name() const;

double get_price() const

int get_quantity() const;

void add_quantity(int amount);

~product(void);

private:

string name;

double price;

int quantity;

};

Product::Product(string n, double p,int q)

{ name = n;

price = p;

quantity = q;

}

string Product::get_name() const

{

return name;

}

double Product::get_price() const

{ return price;

}

int Product::get_quantity() const

{ return quantity;

}

void Product::add_quantity(int amount)

{ quantity = quantity + amount;

}

#include "VendingMachineh"

VendingMachine::VendingMachine(void)

{

}

VendingMachine::~VendingMachine(void)

{

}

#pragma once

class VendingMachine

{public:

VendingMachine(void);

public:

VendingMachine();

void add_product(Product p);

bool select_product(string name);

bool add_coin();

double return_coins();

double xiaoshouzonge();

double remove_money();

void get_product();

double leiji();

double chae();

void add_current_payment();

private:

vector<Product> products;

int current_product;

vector<Coin>

current_payment;

vector<Coin> coins;

};

VendingMachine::V

endingMachine()

{

current_product = -1;

}

void V

endingMachine::add_product(Product p)

{ for (int i = 0; i < productssize(); i++)

{ if (products[i]get_name() == pget_name() && products[i]get_price() == pget_price())

{ products[i]add_quantity(pget_quantity()

return;

}

}

productspush_back(p);

}

bool V

endingMachine::select_product(string name)

{

for (int i = 0; i < productssize(); i++)

{ if (products[i]get_name() == name && products[i]get_quantity() > 0

&&xiaoshouzonge()<=5000)

~VendingMachine(void);

};

#include<stdioh>

bool GetCharge(int Sum,int Money);

void Getsmalcharge(int Money,int ChargeNum);

void main()

{

char state='N';

int Sum=0;

char Pro;

printf("\n\n");

while(true)

{

state='N';

Sum=0;

while(state=='N'||state=='n')

{

printf("\n输入购买物品(a,b,c):");

scanf("%c",&Pro);

getchar();

switch(Pro)

{

case 'a':

Sum=Sum+1;

break;

case 'A':

Sum=Sum+1;

break;

case 'b':

Sum=Sum+5;

break;

case 'B':

Sum=Sum+5;

break;

case 'c':

Sum=Sum+10;

break;

case 'C':

Sum=Sum+10;

break;

default:

printf("\n输入物品有误!!!!\n");

break;

};

printf("\n是否完成(Y/N):");

scanf("%c",&state);

getchar();

}

int Money;

printf("\n购买总价为:%d",Sum);

bool st=false;

while(!st)

{

printf("\n输入金额:");

scanf("%d",&Money);

getchar();

st=GetCharge(Sum,Money);

};

printf("\n----------------购买结束------------\n");

printf("\n");

printf("\n");

printf("\n");

}

}

//----------------------------------------------------

bool GetCharge(int Sum,int Money)

{

int ChargeNum[4];

for(int i=0;i<4;i++)

{

ChargeNum[i]=0;

}

if(Sum>Money)

{

printf("\n金额不够,请重新输入");

return false;

}

else if(Sum==Money)

{

printf("\n余额为0");

return true;

}

else

{

int Result=Money-Sum;

Getsmalcharge(Result,ChargeNum);

printf("\n余额为%d元,应找零\n1 元%d张\n2 元%d张\n5 元%d张\n10元%d张\n",Result,ChargeNum[0],ChargeNum[1],ChargeNum[2],ChargeNum[3]);

}//end if

return true;

}

//------------------------------------

void Getsmalcharge(int Money,int ChargeNum)

{

if(Money<0)

return;

int Sum=Money;

int charge[4]={1,2,5,10};

ChargeNum[3]=Sum/charge[3];

Sum=Sum%charge[3];

ChargeNum[2]=Sum/charge[2];

Sum=Sum%charge[2];

ChargeNum[1]=Sum/charge[1];

Sum=Sum%charge[1];

ChargeNum[0]=Sum/charge[0];

Sum=Sum%charge[0];

}

以上就是关于了解一下自动售卖机全部的内容,包括:了解一下自动售卖机、自动售货机原理、跪谢!求用JAVA编写一个自动贩卖机的程序等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zz/9968929.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-03
下一篇 2023-05-03

发表评论

登录后才能评论

评论列表(0条)

保存