自动售货机系统源代码_第1页
自动售货机系统源代码_第2页
自动售货机系统源代码_第3页
自动售货机系统源代码_第4页
自动售货机系统源代码_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

#include #include #include #include goods.h bool GetCharge(int Sum,int Money); void Getsmalcharge(int Money,int *ChargeNum); int KouLing(); char ChooseJieMian(); char SaleCenter(); void loadGoodsFromFile(Goods* gs); char ManageCenter(); void KunCun(); void Sale(); void ShangJia(); void TongJiFun(); Goods goods3; TongJi tj3; void init() for(int i = 0; i 3; +i) tji.jrxl = 0; tji.jrzje = 0; void main() /初始化 init(); int op = 0; /读取商品信息 loadGoodsFromFile(goods); char c = ChooseJieMian(); while(true) system(cls); if( c = 1) c = SaleCenter(); else if(c = 2)op = KouLing();if(op = 1)/进入管理界面c = ManageCenter();/system(pause);else if(op = 0)/进去销售界面c = SaleCenter(); /- /* * return 1销售界面 2管理界面 */ char SaleCenter() char state=N; int Sum=0; char Pro = d; / printf(n*n); while(true) state=N; Sum=0; while(!(Pro = c | Pro = a | Pro = b | Pro = q) system(cls); printf(nt*); printf(nt*顾客您好,请选择商品*n); printf(nta商品%s b商品%s c商品%s q管理n,,,); printf(nt -%d- -%d- -%d- (单位:件),goods0.totalCount,goods1.totalCount,goods2.totalCount); printf(nt*ntt); Pro = getchar(); if(Pro = q) break;switch(Pro) case a: Sum=Sum+2;printf(nt商品A价格为%d,请投币,Sum); break; case A: Sum=Sum+2; printf(nt商品A价格为%d,请投币,Sum); break; case b: Sum=Sum+3; printf(nt商品B价格为%d,请投币,Sum); break; case B: Sum=Sum+3; printf(nt商品B价格为%d,请投币,Sum); break; case c: Sum=Sum+6;printf(nt商品C价格为%d,请投币,Sum); break; case C: Sum=Sum+6; printf(nt商品C价格为%d,请投币,Sum); break; default: printf(nt输入物品有误!n); break; ; int Money; bool st=false; while(!st) / printf(n输入金额:); scanf(%d,&Money); getchar(); st=GetCharge(Sum,Money); ; Pro = d; system(PAUSE); return 2; bool GetCharge(int Sum,int Money) int ChargeNum4; for(int i=0;iMoney) printf(nt所投金额不足支付所选商品,请重新投币); return false; else if(Sum=Money) printf(nt所投金额等于商品价格,请在商品出口处拿取商品n); /销售成功的操作 if(Sum = goods0.price) goods0.totalCount -; Sale(); tj0.jrxl +; tj0.jrzje += Sum; else if(Sum = goods1.price) goods1.totalCount -; Sale(); tj1.jrxl +; tj1.jrzje += Sum; else if(Sum = goods2.price) goods1.totalCount -; Sale(); tj2.jrxl +; tj2.jrzje += Sum; return true; else int Result=Money-Sum; Getsmalcharge(Result,ChargeNum); printf(nt所投金额大于商品价格,为您找零%d元n,Result); printf(ntt-壹元面值 %d张-n,ChargeNum0); printf(ntt-贰元面值 %d张-n,ChargeNum1); printf(ntt-伍元面值 %d张-n,ChargeNum2); printf(ntt-拾元面值 %d张-n,ChargeNum3); printf(nt请在商品出口处拿取商品n); / printf(n余额为%d元,应找零n1 元%d张n2 元%d张n5 元%d张n10元%d张n,Result,ChargeNum0,ChargeNum1,ChargeNum2,ChargeNum3); /end if /销售成功的操作 if(Sum = goods0.price) goods0.totalCount -; Sale(); tj0.jrxl +; tj0.jrzje += Sum; else if(Sum = goods1.price) goods1.totalCount -; Sale(); tj1.jrxl +; tj1.jrzje+= Sum; else if(Sum = goods2.price) goods2.totalCount -; Sale(); tj2.jrxl +; tj2.jrzje+= Sum; return true; /*成功卖出操作的后台操作 */ void Sale()FILE* fp;if (fp = fopen(d:goods.out, w) = NULL)printf (未找到文件d:goods.out.系统将退出n );exit(0); fprintf(fp,%s %d %dn,,goods0.totalCount,goods0.price);fprintf(fp,%s %d %dn,,goods1.totalCount,goods1.price);fprintf(fp,%s %d %dn,,goods2.totalCount,goods2.price);/关闭文件fclose(fp);fp = NULL; /- void Getsmalcharge(int Money,int *ChargeNum) if(Money0) return; int Sum=Money; int charge4=1,2,5,10; ChargeNum3=Sum/charge3; Sum=Sum%charge3; ChargeNum2=Sum/charge2; Sum=Sum%charge2; ChargeNum1=Sum/charge1; Sum=Sum%charge1; ChargeNum0=Sum/charge0; Sum=Sum%charge0; /* *return 1 口令正确 0 口令错误,并返回销售界面 */ int KouLing() char kl50; int count = 0,ret = 0; char rkl50 = admin; while(strcmp(rkl,kl) != 0) if(count = 0)printf(nt*);printf(nt*管理口令验证*n);printf(ntTip 忘记口令,输入“cancel”,进入销售界面n);printf(nt*ntt); else printf(nt*);printf(nt*管理口令验证*n);printf(ntTip 忘记口令,输入“cancel”,进入销售界面n);printf(nt*);printf(ntttt输入错误次数:%d次ntt,count); count+;scanf(%s,kl);system(CLS);if(strcmp(kl,cancel) = 0)break; if(strcmp(kl,cancel) = 0)ret = 0;elseret = 1;return ret; /* * return 1 , 2 */ char ChooseJieMian()char c = 3;while(true)system(cls);printf(nt*);printf(nt*界面选择*n);printf(nt1 -销售界面- 2 -管理界面-n);printf(nt*ntt);c = getchar();if(c = 1 | c = 2)break;system(cls);return c;char ManageCenter()while(true)int op = 7;while( !(op = 1| op = 2 | op = 3 | op = 4| op = 5 | op = 6)system(cls);printf(nt*);printf(nt*欢迎您,管理员*n);printf(nt1 -库存查询- 2 -商品上架-n);printf(nt3 -销售查询- 4 -会计查询-n);printf(nt5 -结算功能- 6 -销售界面-n);printf(nt*ntt);scanf(%d,&op);bool flag = false;switch(op)case 1:KunCun();break;case 2:ShangJia();break;case 3:TongJiFun();break;case 4:break;case 5:break;case 6:flag = true; break;default:break;if(flag)break;elsesystem(PAUSE);return 1;/*从文件里读取商品信息return 商品列表*/void loadGoodsFromFile(Goods* gs)/获得FILE 指针FILE* fp;if (fp = fopen(d:goods.out, r) = NULL)printf (未找到文件d:goods.out.系统将退出n );exit(0); /Goods gs3;int i = 0;while(!feof(fp)fscanf(fp,%s %d %d,,&gsi.totalCount,&gsi.price);i+;/关闭文件fclose(fp);fp = NULL;void KunCun()int i = 0;printf(nt商品名称 商品价格(元) 商品余量(件)n);for(i = 0; i 3; +i)printf(n t-%s-tt-%d-tt-%d-n,,goodsi.price,goodsi.totalCount);void ShangJia()printf(ntTip正数增加,负数减少商品 n);int gs1 = 0,gs2 = 0,gs3 = 0;printf(ntt-商品%s(余%d件): ,,goods0.totalCount);scanf(%d,&gs1);printf(ntt-商品%s(余%d件): ,,goods1.totalCount);scanf(%d,&gs2);printf(ntt-商品%s(余%d件): ,,goods2.totalCount);scanf(%d,&gs3);goods0.totalCount = gs1 + goods0.totalCount 0 ? 0:gs1 + goods0.totalCount;goods1.totalCount = gs2 + goods1.totalCount 0 ? 0:gs2 + goods1.totalCount;goods2.totalCount = gs3 + goods2.totalCount 0 ? 0:gs3 + goods2.totalCount;/写文件/获得FILE 指针FILE* fp;if (fp = fopen(d:goods.out, w) = NULL)printf (未找到文件d:goods.out.系统将退出n );exit(0); fprintf(fp,%s %d %dn,goods0.na

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论