事实和胜利 发表于 2011-8-19 11:33:59

自己编了个小程序,大家帮忙看看,互相学习

#include <stdio.h>
void main()
{char goods='a';
int   money=0;
int   balance=0;
charchoise='N';
while(1)
{printf("please enter goods that you want to buy\n");
scanf(" %c",&goods);
if((goods!='a')&&(goods!='b')&&(goods!='c')&&(goods!='d')&&(goods!='e')){printf("please choose your goods again\n");continue;};
printf("please drop your money\n");
scanf(" %d",&money);

if(money==1)
{if(goods=='a') balance=0;
else balance=-1;
}
else
if(money==10)
{switch(goods)
{case 'a':balance=9;break;
case 'b':balance=7;break;
case 'c':balance=7;break;
case 'd':balance=7;break;
case 'e':balance=3;break;
default:balance=-1;
}
}
else
{printf("your money isn't available\n");continue;};

if(balance==-1) {printf("your money isnot enough\n");continue;};
printf("please choose key\n");

scanf(" %c",&choise);

if(choise=='Y') printf("your balance is %d\n",balance);
else printf("take back your money\n");
}
}

事实和胜利 发表于 2011-8-19 11:36:46

主要实现的功能是:自动售货机功能,可以出售5种商品,分别用a、b、c、d、e代替,可以识别10元和1元钱,各种商品价格为a商品1元,b、c、d商品3元,e商品7元,投币后如果按取消,则退还全部钱,否则提示找零。

森林一木 发表于 2011-8-19 13:47:04

格式调整下可能方便大家读哈。

msnshow 发表于 2011-8-19 13:55:16

不错

ruirui。 发表于 2011-8-19 17:24:37

{:3_69:}

tavimen 发表于 2011-8-21 16:57:11

不错·~!!!支持~!

cd07180001 发表于 2011-8-21 18:54:07

按照现有程序,一次投币只能购买一种商品。

愚人 发表于 2011-8-21 23:28:54

:victory:

cz245 发表于 2011-8-22 18:16:01

你这个是新手写的程序吧。
这个程序看的让人有点蛋疼。
1、建议:main函数只写一个入口函数就行,其它的付钱、找零等功能可以单独写成专门的函数。便宜维护和扩展啊。
2、对于一些异常情况,考虑不周全,容易出BUG,比如钱为5、或者其它的该怎么处理。
3、格式方面有待交强,比如判定相等的时候,你不应该这么写money==1,而应该写成1==money.至于原因,老手都清楚,你写上几万行代码,很容易把==写成了=,这样money=1,永远是真的,很容易出问题啊。

cz245 发表于 2011-8-22 18:17:34

还有没有一点注释,应该对于一个功能和模块,加上相应的说明。
另外,最好用上数组或者指针,比如人家投钱投了一次10元进去,此时不进行取商品操作,又投了1元进去呢,怎么办?

stonejolin 发表于 2011-8-23 11:57:27

{:3_79:}厉害   回复 10# cz245

阿七 发表于 2011-8-23 15:22:17

没有异常处理 分支...

阿七 发表于 2011-8-23 15:22:36

没有注释

TIB 发表于 2011-8-23 22:23:22

可以考虑用Testbed、C++Test等工具对代码进行代码审查和单元测试

Circleyq 发表于 2011-8-25 09:41:49

我喜欢这种氛围,自己写个东西,让大家来互相讨论,自己从中也能学到很多东西。

事实和胜利 发表于 2011-8-26 17:50:31

回复 9# cz245


    谢谢你的建议,确实是新手,有很多考虑不周到的地方,谢谢指教~~
页: [1]
查看完整版本: 自己编了个小程序,大家帮忙看看,互相学习