1. 自動售貨機c語言編程 急!!
#include "stdio.h"
#include "conio.h"
struct stDrink
{
float fPrice; // 價格
int iLeft; // 剩餘數
};
void Pay(stDrink* pstPay)
{
float fPay = 0.0f;
if ( pstPay->iLeft<=0 )
{
printf("商品已經售完\r\n");
return;
}
while(1)
{
scanf("%f",&fPay);
if ( fPay<pstPay->fPrice )
{
printf("金額不足,請重新付費\r\n");
}
else if ( fPay>pstPay->fPrice)
{
printf("找零錢%.1f元,請收好\r\n",fPay-pstPay->fPrice);
break;
}
else
{
printf("付費成功\r\n");
break;
}
}
pstPay->iLeft--;
}
int main()
{
stDrink stCoca = {2.5f,5}; // 可樂
stDrink stOrage = {3.5f,5}; // 橙汁
stDrink stMilkTea = {5.0f,5}; // 奶茶
char cInput = 0;
while(1)
{
cInput = getch();
switch(cInput)
{
case '1':
// 可樂
printf("可樂2.5元,請付費\r\n");
Pay(&stCoca);
break;
case '2':
// 橙汁
printf("橙汁3.5元,請付費\r\n");
Pay(&stOrage);
break;
case '3':
// 奶茶
printf("奶茶5元,請付費\r\n");
Pay(&stMilkTea);
break;
case '#':
// 設備維修中
printf("設備維修中\r\n");
break;
case 'e':
// 退出程序
return 0;
}
}
return 0;
}
2. C語言編程:自動售貨機
# include <stdio.h>
# include <math.h>
int main(void)
{
int a=1;
int b=6;
int c=4;
float delta;
float x1;
float x2;
delta=b*b-4*a*c;
if (delta>0)
{
x1=(-b+sqrt(delta))/(2*a);
x2=(-b-sqrt(delta))/(2*a);
printf("解為x1=%f,x2=%f\n",x1,x2);
}
else if (delta==0)
{
x1=(-b)/(2*a);
x2=x1;
printf("x有唯一解x1=x2=%f\n",x1);
}
else
{
printf("無解\n",x1);
}
return 0;
3. 自動售貨機(C語言課程設計)
#include<stdio.h>
main()
{
int x,n,y;
float sum=0.0;
printf("請選擇: 1.日用品 2.文具 3. 食品\n");
scanf("%d",&x);
switch(x)
{
case 1: printf("請選擇:1.牙刷(3.5元/支) 2.牙膏(6.2元支)\n");
printf(" 3.肥皂(2元/塊) 4.毛巾(8.6元/條)\n");
scanf("%d",&y);
printf("數量?");
scanf("%d",&n);
switch(y)/*匹配顧客選擇的具體商品*/
{
case 1: sum=3.5*n ; break;
case 2: sum=6.2*n ; break;
case 3: sum=2*n ; break;
case 4: sum=8.6*n ; break;
}
break;
case 2: printf("請選擇:1.筆( 3元/支) 2.筆記本(1.2元/個)\n");
printf(" 3.文件夾(12元/個) 4.文具盒(8.6元/個)\n");
scanf("%c",&y);
printf("數量?");
scanf("%d",&n);
switch(y)
{
case 1: sum=3*n; break;
case 2: sum=1.2*n; break;
case 3: sum=12*n; break;
case 4: sum=8.6*n; break;
}
break;
case 3: printf("請選擇:1.白糖(3.6元/包) 2.鹽(1元/包)\n");
printf(" 3.餅(2元/個) 4.方便麵(3.6元/條)\n");
scanf("%c",&y);
printf("數量?");
scanf("%d",&n);
switch(y)
{
case 1: sum=3.6*n; break;
case 2: sum=1*n; break;
case 3: sum=2*n; break;
case 4: sum=3.6*n; break;
}
break;
}
printf("總計:%.2f 元\n",sum);
}
4. 自動售貨機系統C語言編程
這個寫起來不難,但是代碼很多,建議你去網路上查查這種課程設計,上面一般是會有部分代碼的,這個用C語言寫起來會很麻煩的,建議使用C++寫會簡單一點
5. 自動售貨機的程序代碼怎麼寫 C語言大作業要交的,大路大神幫幫忙٩( 'ω' )و
整個程序的功能 :
商品入庫 補貨
商品購買 找零
還有亂七八糟的一堆驗證
數據只有結構鏈表存儲,退出不保存,你要寫文件或資料庫保存,你自己寫吧,寫不動了。
演示看下圖:
#include<stdio.h>
#include<string.h>
#include<malloc.h>
#definenameSize21//商品名稱數組大小可修改
typedefstructautoMA
{
char*spName;//商品名
intspNum;//商品數量
floatspValue;//商品價格
structautoMA*next;
}AMA;
AMA*amaNEW,*amaP1,*amaSelect;//定義一個新節點指針首節點指針查找用指針
intcontStrplen(char*p);
inteqStr(char*str1,char*str2);//比較字元串是否相等,相等返回1否則返回0
AMA*selectSP(AMA*AMAhead,char*spName);//通過名稱查找商品有返回節點地址沒有返回NULL
voidinsertSP(AMA*AMAhead,AMA**AMAtail,char*VSPname,intVSPnum,floatVSPvalue);//添加商品如果已有該商品,數量+如果沒有新增
float*buySP(AMA*AMAhead,char*name,intnum,floatpay);//購買返回float數組[2]
intmain()
{
AMA*AMAtail,*AMAhead;//定義一個頭節點指針尾節點指針
float*b,value;
intnum,answer;
charname[nameSize];
amaSelect=(AMA*)malloc(sizeof(AMA));
AMAhead=(AMA*)malloc(sizeof(AMA));
AMAtail=(AMA*)malloc(sizeof(AMA));
AMAhead->next=NULL;
mu:answer=0;
memset(name,0,nameSize);
num=0;
value=0;
printf("=====系統菜單====
");
printf("補充庫存,輸入1
");
printf("購買商品,輸入2
");
scanf("%d",&answer);
if(answer==2&&AMAhead->next==NULL)
{
printf("當前沒有商品庫存,請先補充庫存
");
gotomu;
}
if(answer==1)
{
printf("輸入ESC00返回菜單
");
while(1)
{
printf("
請錄入補充的商品名稱(名稱小於%d個字元,每項空格分隔):",(nameSize-1)/2);
scanf("%s",name);
printf("請錄入補充的數量:");
scanf("%d",&num);
printf("請錄入單價:");
scanf("%f",&value);
if(!eqStr(name,"ESC")||num!=0||value!=0)
{
insertSP(AMAhead,&AMAtail,name,num,value);
}
else
{
printf("
錄入結束返回主菜單
");
gotomu;
}
}
}
if(answer==2&&AMAhead->next!=NULL)
{
tb:memset(name,0,nameSize);
num=0;
value=0;
printf("輸入ESC00返回菜單
");
while(1)
{
printf("
請輸入要購買的商品名稱(名稱小於%d個字元):",(nameSize-1)/2);
scanf("%s",name);
printf("請輸入要購買的數量:");
scanf("%d",&num);
printf("請輸入支付金額:");
scanf("%f",&value);
if(!eqStr(name,"ESC")||num!=0||value!=0)
{
b=buySP(AMAhead,name,num,value);
switch((int)b[0])
{
case1:
printf("
購買商品成功,找回零錢%.2f元
",b[1]);
break;
case2:
printf("
商品庫存不足,當前剩餘數量%d,請重新選擇商品
",(int)b[1]);
gototb;
break;
case3:
printf("
支付金額不足,還需支付%.2f元
",b[1]);
gototb;
break;
default:
printf("
發生錯誤!交易失敗!
");
break;
}
free(b);
b=NULL;
}
else
{
printf("
購買結束返回主菜單
");
gotomu;
}
}
}return0;
}
intcontStrplen(char*p)//計算字元串指針指向空間的字元串長度並返回長度
{
intlen=0,i=0;
while(p[i]!='