自动售货机系统源代码Word文档格式.docx
《自动售货机系统源代码Word文档格式.docx》由会员分享,可在线阅读,更多相关《自动售货机系统源代码Word文档格式.docx(14页珍藏版)》请在冰豆网上搜索。
{
system("
cls"
);
if(c=='
1'
){
c=SaleCenter();
}elseif(c=='
2'
op=KouLing();
if(op==1){
//进入管理界面
c=ManageCenter();
//system("
pause"
}
elseif(op==0){
//进去销售界面
c=SaleCenter();
}
}
//----------------------------------------------------
/**
*@return1销售界面2管理界面
*/
charSaleCenter()
charstate='
N'
;
intSum=0;
charPro='
d'
//printf("
\n********************************\n"
while(true)
state='
Sum=0;
while(!
(Pro=='
c'
||Pro=='
a'
b'
q'
))
{
system("
printf("
\n\t*******************************************"
\n\t*********顾客您好,请选择商品**************\n"
\n\t·
a·
商品%s·
b·
c·
q·
管理\n"
goods[0].name,goods[1].name,goods[2].name);
\n\t-%d--%d--%d-(单位:
件)"
goods[0].totalCount,goods[1].totalCount,goods[2].totalCount);
\n\t*******************************************\n\t\t"
Pro=getchar();
if(Pro=='
)
break;
switch(Pro)
{
case'
:
{
Sum=Sum+2;
printf("
商品A价格为%d,请投币·
"
Sum);
}
break;
A'
Sum=Sum+3;
商品B价格为%d,请投币·
B'
Sum=Sum+6;
商品C价格为%d,请投币·
C'
break;
default:
\n\t输入物品有误!
!
\n"
break;
};
intMoney;
boolst=false;
while(!
st)
//printf("
\n输入金额:
scanf("
%d"
&
Money);
getchar();
st=GetCharge(Sum,Money);
};
Pro='
system("
PAUSE"
return'
boolGetCharge(intSum,intMoney)
intChargeNum[4];
for(inti=0;
i<
4;
i++)
ChargeNum[i]=0;
if(Sum>
Money)
printf("
所投金额不足支付所选商品,请重新投币·
returnfalse;
elseif(Sum==Money)
所投金额等于商品价格,请在商品出口处拿取商品·
//销售成功的操作
if(Sum==goods[0].price){
goods[0].totalCount--;
Sale();
tj[0].jrxl++;
tj[0].jrzje+=Sum;
}elseif(Sum==goods[1].price){
goods[1].totalCount--;
tj[1].jrxl++;
tj[1].jrzje+=Sum;
}elseif(Sum==goods[2].price){
tj[2].jrxl++;
tj[2].jrzje+=Sum;
returntrue;
else
intResult=Money-Sum;
Getsmalcharge(Result,ChargeNum);
所投金额大于商品价格,为您找零%d元·
Result);
\n\t\t-壹元面值%d张-\n"
ChargeNum[0]);
\n\t\t-贰元面值%d张-\n"
ChargeNum[1]);
\n\t\t-伍元面值%d张-\n"
ChargeNum[2]);
\n\t\t-拾元面值%d张-\n"
ChargeNum[3]);
请在商品出口处拿取商品·
\n余额为%d元,应找零\n1元%d张\n2元%d张\n5元%d张\n10元%d张\n"
Result,ChargeNum[0],ChargeNum[1],ChargeNum[2],ChargeNum[3]);
}//endif
//销售成功的操作
if(Sum==goods[0].price){
goods[0].totalCount--;
Sale();
tj[0].jrxl++;
tj[0].jrzje+=Sum;
}elseif(Sum==goods[1].price){
goods[1].totalCount--;
tj[1].jrxl++;
tj[1].jrzje+=Sum;
}elseif(Sum==goods[2].price){
goods[2].totalCount--;
tj[2].jrxl++;
tj[2].jrzje+=Sum;
returntrue;
成功卖出操作的后台操作
voidSale(){
FILE*fp;
if((fp=fopen("
d:
\\goods.out"
"
w"
))==NULL)
printf("
未找到文件d:
\\goods.out...系统将退出\n"
exit(0);
}
fprintf(fp,"
%s%d%d\n"
goods[0].name,goods[0].totalCount,goods[0].price);
goods[1].name,goods[1].totalCount,goods[1].price);
goods[2].name,goods[2].totalCount,goods[2].price);
//关闭文件
fclose(fp);
fp=NULL;
//------------------------------------
voidGetsmalcharge(intMoney,int*ChargeNum)
if(Money<
0)
return;
intSum=Money;
intcharge[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];
*@return1口令正确0口令错误,并返回销售界面
intKouLing(){
charkl[50];
intcount=0,ret=0;
charrkl[50]="
admin"
while(strcmp(rkl,kl)!
=0){
if(count==0){
\n\t****************管理口令验证***************\n"
Tip·
忘记口令,输入“cancel”,进入销售界面\n"
else
\n\t\t\t\t输入错误次数:
%d次\n\t\t"
count);
count++;
%s"
kl);
CLS"
if(strcmp(kl,"
cancel"
)==0)
if(strcmp(kl,"
ret=0;
else
ret=1;
returnret;
*@return'
'
charChooseJieMian()
charc='
3'
while(true){
\n\t****************界面选择*******************\n"
1·
-销售界面-·
2·
-管理界面-\n"
c=getchar();
if(c=='
||c=='
returnc;
charManageCenter(){
intop=7;
while(!
(op==1||op==2||op==3||op==4||op==5||op==6))
{
system("
printf("
\n\t*************欢迎您,管理员****************\n"
-库存查询-·
-商品上架-\n"
3·
-销售查询-·
4·
-会计查询-\n"
5·
-结算功能-·
6·
-销售界面-\n"
scanf("
op);
boolflag=false;
switch(op){
case1:
{
KunCun();
}break;
case2:
ShangJia();
case3:
TongJiFun();
case4:
{}break;
case5:
case6:
flag=true;
}break;
break;
if(flag)
else
return'
/***
*从文件里读取商品信息
@return商品列表
voidloadGoodsFromFile(Goods*gs){
//获得FILE指针
r"
//Goodsgs[3];
inti=0;
feof(fp))
fscanf(fp,"
%s%d%d"
gs[i].name,&
gs[i].totalCount,&
gs[i].price);
i++;
voidKunCun(){
商品名称·
·
商品价格(元)·
商品余量(件)·
for(i=0;
\n\t-%s-\t\t-%d-\t\t-%d-\n"
goods[i].name,goods[i].price,goods[i].totalCount);
voidShangJia(){
正数增加,负数减少商品\n"
intgs1=0,gs2=0,gs3=0;
\n\t\t-商品%s(余%d件):
"
goods[0].name,goods[0].totalCount);
gs1);
goods[1].name,goods[1].totalCount);
gs2);
goods[2].name,goods[2].totalCount);
gs3);
goods[0].totalCount=gs1+goods[0].totalCount<
0?
0:
gs1+goods[0].totalCount;
goods[1].totalCount=gs2+goods[1].totalCount<
gs2+goods[1].totalCount;
goods[2].totalCount=gs3+goods[2].totalCount<
gs3+goods[2].totalCount;
//写文件
voidTongJiFun(){
今日商品销售情况一览·
\n\t\t-商品%s%d件共%d元-\n"
goods[0].name,tj[0].jrxl,tj[0].jrzje);
goods[1].name,tj[1].jrxl,tj[1].jrzje);
goods[2].name,tj[2].jrxl,tj[2].jrzje);
共计%d件,%d元·
tj[0].jrxl+tj[1].jrxl+tj[2].jrxl,tj[0].jrzje+tj[1].jrzje+tj[2].jrzje);
//Goods.h
typedefstruct_Goods{
charname[50];
inttotalCount;
intprice;
}Goods;
typedefstruct_TongJi{
intjrxl;
intjrzje;
}TongJi;