📄 third.cpp
字号:
#include<iostream>
int xuanzhe();
void shezhimin();
void shezhinum();
void shezhimax();
void shezhimi();
void free();
int backmoney();
void printVM();
float endmoney();
int testgood();
float buyGoods(float);
int backcoin(float);
void shezhimoney();
//自动设置最初 商品数量
void shezhinum(){
time_t t;
srand((unsigned) time(&t));
numC = (rand() % NC)+1;
numF = (rand() % NF)+1;
numT = (rand() % NT)+1;
}
//自动设置最初 各种硬币数量
void shezhimoney(){
time_t t;
srand((unsigned) time(&t));
restC5 = C5+rand()%20;
restC10 = C10+rand()%20;
restC25 = C25+rand()%20;
}
//自动选商品,返回0-2
int xuanzhe(){
time_t t;
srand((unsigned) time(&t));
return (rand()%3);
}
//输入 最少硬币数量 C5,C10,C25
void shezhimin(){
cout<<"请你设置在售货机里预留的最少硬币数量\n";
cout<<"0.05:";
cin>>C5;
cout<<"\n0.10:";
cin>>C10;
cout<<"\n0.25:";
cin>>C25;
}
void shezhimax(){
cout<<"\n为了你的方便使用,请你设置售货机所能容纳的商品最大数:\n";
cout<<"可乐:";
cin>>NC;
cout<<"\n咖啡:";
cin>>NF;
cout<<"\n餐巾纸:";
cin>>NT;
}
void shezhimi(){
cout<<"\n你好,为了不影响售货机的正常工作请你设置需要补货的最少数量商品数量:";
cin>>NL;
}
int backmoney(){
time_t t;
srand((unsigned) time(&t));
return (rand()%3);
}
float endmoney(){
float money = 0 ,max;
int n,x=0,h;
if(num == 0)
max = (float)0.25;
else if(num == 1)
max = (float)0.30;
else
max = (float)0.05;
cout<<"\n";
while(!x){
Sleep(2000);
n = backmoney();
if( n == 0 ){
money += (float)0.05;
printf("投入一个0.05的硬币\n");
add1++;
}
else if( n == 1){
money += (float)0.10;
cout<<"投入一个0.10的硬币\n";
add2++;
}
else if( n ==2 ){
money += (float)0.25;
cout<<"投入一个0.25的硬币\n";
add3++;
}
h=autoSleep();
if(h==0)
break;
if( push() || money >= max ){
restC5 += add1;
restC10 += add2;
restC25 += add3;
x=1;
printf("按下第%d种商品按钮\n该商品价格%f\n\n",num+1,num==0?0.25:(num==1?0.30:0.05));
Sleep(2000);
if(money >= max&&testgood()==1){
money -= max;
if(backcoin(money)==1)
daying(money);
else
cout<<"没有足够的零钱找给您\n";
}
else if(testgood()==0)
cout<<"没有您要的商品";
else{
cout<<"对不起,你投入的硬币总额不足买你要的商品\n";
printFail();
}
}
}
if(h==0)
cout<<"对不起,超过5秒没有投币或选择,请马上投币或按键";
return money;
}
int testAlarm(int n){
if(n==0&&numC<=NL)
return 1;
else if(n==1&&numF<=NL)
return 2;
else if(n==2&&numT<=NL)
return 3;
else
return 0;
}
float buyGoods(float money){
float restMoney;
if(num == 0){
if(money >= 0.25)
restMoney = money - 0.25;
}
if(num == 1){
if(money >= 0.30)
restMoney = money - 0.30;
}
if(num == 2){
if(money >= 0.05)
restMoney = money - 0.05;
}
return restMoney;
}
//找零程序
int backcoin(float money){
cout<<"应找钱数为:"<<money<<".";
int newMoney=(int)(money*100);
k = newMoney/30;
newMoney %= 30;
j = newMoney/10;
newMoney %= 10;
i = newMoney/5;
restC5 -= i;
restC10 -= j;
restC25 -= k;
if(restC5>=0&&restC10>=0&&restC25>=0)
cout<<"找回硬币个数:0.05:"<<i<<",0.10:"<<j<<",0.25:"<<k<<"\n";
else{
restC5+=i;
restC10+=j;
restC25+=k;
cout<<"退回您的硬币\n";
return 0;
}
return 1;
}
void rSetGoods(){
if(num==0)
numC-=1;
else if(num==1)
numF-=1;
else if(num==2)
numT-=1;
}
void daying(float money){
if(num==0)
sumC++;
if(num==1)
sumF++;
if(num==2)
sumT++;
rSetGoods();
float restMoney;
cout<<"成功购买该商品\n";
cout<<"共投入钱数:"<<money<<",购买商品种类:"<<num+1<<".";
/*if(testAlarm(0)||testAlarm(1)||testAlarm(2))
sendMessage();*/
}
void printFail(){
}
int siteTM(){
time_t t;
srand((unsigned) time(&t));
return rand()%2;
}
int siteTS(){
time_t t;
srand((unsigned) time(&t));
return rand()%15;
}
long nowTime(){
time_t t;
time(&t);
return t;
}
void printVM(){
cout<<"各种商品数量:可乐:"<<numC<<"瓶,咖啡:"<<numF<<"瓶,餐巾纸:"<<numT<<"包\n\n";
cout<<"各种硬币剩余数量: 0.05:"<<restC5<<"个,0.10:"<<restC10<<"个,0.25:"<<restC25<<"个\n";
}
int push(){
time_t t;
srand((unsigned) time(&t));
return rand()%2;
}
void free(){
int s,x;
time_t t;
srand((unsigned) time(&t));
s=rand()%5;
x=s;
for(;s>0;s--){
cout<<"欢迎使用无人售货机\n";
printVM();
cout<<"\n空闲时间:"<<x-s<<"秒\n";
Sleep(5000);
system("cls");
}
}
int testgood(){
if(num==0&&numC<1)
return 0;
else if(num==0&&numF<1)
return 0;
else if(num==0&&numT<1)
return 0;
else return 1;
}
int autoSleep(){
int s;
time_t t;
srand((unsigned) time(&t));
s=rand()%6;
for(;s>0;s--)
Sleep(1000);
if(s<6)
return 1;
else
return 0;
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -