简单自动售货机.docx
- 文档编号:12053373
- 上传时间:2023-04-16
- 格式:DOCX
- 页数:21
- 大小:137.99KB
简单自动售货机.docx
《简单自动售货机.docx》由会员分享,可在线阅读,更多相关《简单自动售货机.docx(21页珍藏版)》请在冰豆网上搜索。
简单自动售货机
程序设计
实习时间
2009年7月6日至2009年7月26日
实习目的
1、对一年来所学的C语言知识进行全面的复习和使用;
2、能够综合使用一年来所学的所有知识;
3、能够独立的分析编程要求,并能够独立分析设计程序和制出流程图和编码、编译、调试程序。
实习内容
1、程序流程图
当num值为1时执行函数1;当num值为2时执行函数2;
当num值为3时执行函数3;当num值为4时执行函数4;
当num值为5时执行函数5;当num值为6时执行函数6;
当num值为7时执行函数7。
函数1
函数2
当j值为good[0].name的值是执行“输出good[0]”;
当j值为good[1].name的值是执行“输出good[1]”;
当j值为good[2].name的值是执行“输出good[2]”。
函数3
输出good[0].amount
函数4
函数5
函数6
2、源代码
#include"stdio.h"
#include"stdlib.h"
#include"math.h"
structgoods
{
intname;
intprice;
intamount;
}good[3]={{1,2,20},{2,3,20},{3,6,20}};
FILE*fp1,*fp2,*fp3,*fp4;/*fp1代表查询,fp2代表A的销售记录,fp3代表B的销售记录,fp4代表C的销售记录*/
intsum=0,sum1=0,sum2=0,sum3=0,n1=0,n2=0,n3=0;/*sum代表当天获得10元总额,sum1A的销售额,sum2B的销售额,sum3C的销售额,n1代表A当天的销售量,n2代表B当天的销售量,n3代表C当天的销售量*/
intx=100,y=50,x1,y1;/*x代表1元张数,y代表5元张数*/
voidcharge(intj);
voidprint();
voidprint1(structgoodsD);
sell()
{
for(;;)
{
inti,j;/*i代表投入的钱,j代表用户选着的物品*/
clrscr();
printf("\n\n\n\n\n");
printf("Pleasedrop10yuan\n");
scanf("%d",&i);
if(i==315)
return;
if(i==10)
{
clrscr();
printf("\n\n\n\n\n");
printf("******************************************\n");
printf("*name*price*\n");
printf("******************************************\n");
printf("*1*2yuan/bottle*\n");
printf("******************************************\n");
printf("*2*3yuan/bottle*\n");
printf("******************************************\n");
printf("*3*6yuan/bottle*\n");
printf("******************************************\n");
printf("\n\n\n\n\n");
printf("Nowpleaseselectthegoodswhichyouwanttobuy\n");
scanf("%d",&j);
charge(j);
}
continue;
}
}
voidcharge(intj)
{
clrscr();
if(j==good[0].name)
{
if(good[0].amount<=0||(x<8&&y<1)||x<3)
printf("Sorry,cannotsupplywhatyouwant,andpleasetakeoutyourmoney!
");
else
{
sum1=sum1+2;
sum=sum+1;
good[0].amount--;
n1++;
if(x/5<=y)
{
y=y-1;
x=x-3;
}
else
x=x-8;
printf("Thankyouforyouruse!
\n\n\n");
printf("Nowyouhavegot%dsuccessful!
\n\n\n",j);
printf("Thereisyourcharge8yuan,pleasetakeitout!
\n\n\n");
getch();
}
print(j);
}
if(j==good[1].name)
{
if(good[1].amount<=0||x<2||(x<7&&y<1))
printf("Sorry,cannotsupplywhatyouwant,andpleasetakeoutyourmoney!
");
else
{
sum2=sum2+3;
sum=sum+1;
good[1].amount--;
n2++;
if(x/5<=y)
{
x=x-2;
y=y-1;
}
else
x=x-7;
printf("Thankyouforyouruse!
\n\n\n");
printf("Nowyouhavegot%dsuccessful!
\n\n\n",j);
printf("Thereisyourcharge7yuan,pleasetakeitout!
\n\n\n");
getch();
}
print(j);
}
if(j==good[2].name)
{
if(good[2].amount<=0||x<4)
printf("Sorry,cannotsupplywhatyouwant,andpleasetakeoutyourmoney!
");
else
{
sum3=sum3+6;
sum=sum+1;
good[2].amount--;
n3++;
x=x-4;
printf("Thankyouforyouruse!
\n\n\n");
printf("Nowyouhavegot%dsuccessful!
\n\n\n",j);
printf("Thereisyourcharge4yuan,pleasetakeitout!
\n\n\n");
getch();
}
print(j);
}
}
account()
{
intm,x1,y1;
clrscr();
m=sum;
sum=sum-m;
printf("Thenumberof10yuanwhichcanbetakenoutbyyouis%d\n\n",m);
printf("Nowpleasetakeoutthemoney\n\n");
getch();
clrscr();
printf("Adftertakeoutall10yuan\n");printf("Nowthe10yuan'snumberis%d",sum);
getch();
clrscr();
printf("Nowpleaseenterthenumberofthe1yuanyouwanttoadd\n\n");
scanf("%d",&x1);
x=x+x1;
printf("Nowthereare%dpiece1yuan!
",x);
getch();
clrscr();
printf("\n\nNowpleaseenterthenumberof5yuanyouwanttoadd\n\n");
scanf("%d",&y1);
y=y+y1;
printf("Nowthereare%dpiece5yuan!
",y);
getch();
}
add()
{
intn,j,*m;/*代表要增加的商品,*m代表增加的数目*/
m=&n;
clrscr();
printf("Pleaseenterthenameofthegoodwhichyouwanttoadditsnumber\n\n");
scanf("%d",&j);
if(j!
=good[0].name&&j!
=good[1].name&&j!
=good[2].name)
{
printf("Enterawrongname!
");
getch();
return;
}
printf("Nowpleaseenterthenumberyouwanttoadd\n\n");
scanf("%d",m);
if(j==good[0].name&&n>=0)
{
good[0].amount=good[0].amount+*m;
printf("\n\n%d",good[0].amount);
getch();
}
if(j==good[1].name&&n>=0)
{
good[1].amount=good[1].amount+*m;
printf("\n\n%d",good[1].amount);
getch();
}
if(j==good[2].name&&n>=0)
{
good[2].amount=good[2].amount+*m;
printf("\n\n%d",good[2].amount);
getch();
}
}
reduce()
{
intn,j,*m;/*代表要减少的商品,*m代表减少的数目*/
m=&n;
clrscr();
printf("Pleaseenterthenameofthegoodwhichyouwanttoreduce\n\n");
scanf("%d",&j);
if(j!
=good[0].name&&j!
=good[1].name&&j!
=good[2].name)
{
printf("Enterawrongname!
");
getch();
return;
}
printf("Nowpleaseenterthenumberyouwanttoreduce\n\n");
scanf("%d",m);
if(j==good[0].name&&good[0].amount>=*m&&*m>=0)
{
good[0].amount=good[0].amount-*m;
printf("\n\nNowtherreare%d1!
",good[0].amount);
getch();
}
if(j==good[0].name&&(*m<0||*m>good[0].amount))
{
printf("Therearenotenoughstock,orentererror!
");
getch();
}
if(j==good[1].name&&good[1].amount>=*m&&*m>=0)
{
good[1].amount=good[1].amount-*m;
printf("\n\nNowthereare%d2!
",good[1].amount);
getch();
}
if(j==good[1].name&&(*m<0||*m>good[1].amount))
{
printf("Therearenotenoughstock,orentererror!
");
getch();
}
if(j==good[2].name&&good[2].amount>=*m&&*m>=0)
{
good[2].amount=good[2].amount-n;
printf("\n\nNowthereare%d3!
",good[2].amount);
getch();
}
if(j==good[2].name&&(*m<0||*m>good[2].amount))
{
printf("Therearenotenoughstock,orentererror!
");
getch();
}
}
sell_search()
{
intj;
clrscr();
printf("Pleaseenterthegood'snamewhichyouwanttosearch:
\n");
scanf("%d",&j);
if(j==good[0].name&&j!
=good[1].name&&j!
=good[2].name)
{
if((fp2=fopen("Sale1.TXT","w"))==NULL)
{
printf("Cannotopenthefile!
\n");
exit
(1);
}
printf("Thenumberofthesold1Thetotalmoneygetfromselling1\n");
printf("%d%d",n1,sum1);
getch();
fprintf(fp2,"Thenumberofthesold1Thetotalmoneygetfromselling1\n");
fprintf(fp2,"%d%d",n1,sum1);
fclose(fp2);
}
if(j==good[1].name&&j!
=good[0].name&&j!
=good[2].name)
{
if((fp3=fopen("Sale2.TXT","w"))==NULL)
{
printf("Cannotopenthefile!
\n");
exit
(1);
}
printf("Thenumberofthesold2Thetotalmoneygetfromselling2\n");
printf("%d%d",n2,sum2);
getch();
fprintf(fp3,"Thenumberofthesold2Thetotalmoneygetfromselling2\n");
fprintf(fp3,"%d%d",n2,sum2);
fclose(fp3);
}
if(j==good[2].name&&j!
=good[0].name&&j!
=good[1].name)
{
if((fp4=fopen("Sale3.TXT","w"))==NULL)
{
printf("Cannotopenthefile!
\n");
exit
(1);
}
printf("Thenumberofthesold3Thetotalmoneygetfromselling3\n");
printf("%d%d",n3,sum3);
getch();
fprintf(fp4,"Thenumberofthesold3Thetotalmoneygetfromselling3\n");
fprintf(fp4,"%d%d",n3,sum3);
fclose(fp4);
}
}
search()
{
clrscr();
if((fp1=fopen("Stocks.TXT","w"))==NULL)
{
printf("Cannotopenthefile!
\n");
exit
(1);
}
printf("\n\n\n***********************************************************\n");
fprintf(fp1,"\n\n\n***********************************************************\n");
printf("*namepriceamount*\n");
fprintf(fp1,"*namepriceamount*\n");
printf("***********************************************************\n");
fprintf(fp1,"***********************************************************\n");
printf("*%d%d%d*\n",good[0].name,good[0].price,good[0].amount);
fprintf(fp1,"*%d%d%d*\n",good[0].name,good[0].price,good[0].amount);
printf("***********************************************************\n");
fprintf(fp1,"***********************************************************\n");
printf("*%d%d%d*\n",good[1].name,good[1].price,good[1].amount);
fprintf(fp1,"*%d%d%d*\n",good[1].name,good[1].price,good[1].amount);
printf("***********************************************************\n");
fprintf(fp1,"***********************************************************\n");
printf("*%d%d%d*\n",good[2].name,good[2].price,good[2].amount);
fprintf(fp1,"*%d%d%d*\n",good[2].name,good[2].price,good[2].amount);
printf("***********************************************************\n");
fprintf(fp1,"***********************************************************\n");
fclose(fp1);
getch();
}
voidprint(intj)
{
intk;/*k代表判断条件*/
clrscr();
printf("Doyouwanttoprintthetradeproofornot?
\n\n\n");
printf("Ifyouwanttoprintthetradeproofpleaseenter1,elseenteranothernumbertocontinue!
\n\n");
scanf("%d",&k);
if(k==1)
switch(j)
{
case1:
print1(good[0]);break;
case2:
print1(good[1]);break;
case3:
print1(good[2]);break;
default:
printf("Error!
\n");
}
}
voidprint1(structgoodsD)
{
clrscr();
printf("------------------------------------------------------------\n");
printf("|numberpricetotal|\n");
printf("------------------------------------------------------------\n");
printf("|1%d%d|\n",D.price,1*D.price);
printf("------------------------------------------------------------\n");
getch();
}
menu()
{
printf("\n\n\n\n\n*****************************************************************\n");
printf("*1.Searchthestocksofallofthethreegoods*\n");
printf("*2.Searchoneofthethreegoods'ssaleofoneday*\n");
printf("*3.Addthenumberofthethreegoods*\n");
printf("*4.Reducethenumberofthethreegoods*\n");
printf("*5.Makeaccountofoneday'sseal*\n");
printf("*6.Sealgoods*\n");
printf("*7.Quit*\n");
printf("*****************************************************************\n\n\n");
printf("Nowpleaseselectanumberamong1,2,3,4,5,6,7\n\n");
}
voidmain()
{
intn
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简单 自动 售货