51Testing软件测试论坛

 找回密码
 (注-册)加入51Testing

QQ登录

只需一步,快速开始

微信登录,快人一步

手机号码,快捷登录

查看: 3033|回复: 15
打印 上一主题 下一主题

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

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2011-8-19 11:33:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include <stdio.h>
void main()
{char goods='a';
int   money=0;
int   balance=0;
char  choise='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");
}
}
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏
回复

使用道具 举报

该用户从未签到

2#
 楼主| 发表于 2011-8-19 11:36:46 | 只看该作者
主要实现的功能是:自动售货机功能,可以出售5种商品,分别用a、b、c、d、e代替,可以识别10元和1元钱,各种商品价格为a商品1元,b、c、d商品3元,e商品7元,投币后如果按取消,则退还全部钱,否则提示找零。
回复 支持 反对

使用道具 举报

  • TA的每日心情
    郁闷
    2015-6-16 14:29
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    3#
    发表于 2011-8-19 13:47:04 | 只看该作者
    格式调整下可能方便大家读哈。
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    奋斗
    2022-5-8 19:23
  • 签到天数: 137 天

    连续签到: 1 天

    [LV.7]测试师长

    4#
    发表于 2011-8-19 13:55:16 | 只看该作者
    不错
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    5#
    发表于 2011-8-19 17:24:37 | 只看该作者
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    6#
    发表于 2011-8-21 16:57:11 | 只看该作者
    不错·~!!!支持~!
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    7#
    发表于 2011-8-21 18:54:07 | 只看该作者
    按照现有程序,一次投币只能购买一种商品。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    8#
    发表于 2011-8-21 23:28:54 | 只看该作者
    回复 支持 反对

    使用道具 举报

    该用户从未签到

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

    使用道具 举报

    该用户从未签到

    10#
    发表于 2011-8-22 18:17:34 | 只看该作者
    还有没有一点注释,应该对于一个功能和模块,加上相应的说明。
    另外,最好用上数组或者指针,比如人家投钱投了一次10元进去,此时不进行取商品操作,又投了1元进去呢,怎么办?
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    11#
    发表于 2011-8-23 11:57:27 | 只看该作者
      厉害   回复 10# cz245
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2015-9-10 15:08
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    12#
    发表于 2011-8-23 15:22:17 | 只看该作者
    没有异常处理 分支...
    回复 支持 反对

    使用道具 举报

  • TA的每日心情

    2015-9-10 15:08
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]测试小兵

    13#
    发表于 2011-8-23 15:22:36 | 只看该作者
    没有注释
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    14#
    发表于 2011-8-23 22:23:22 | 只看该作者
    可以考虑用Testbed、C++Test等工具对代码进行代码审查和单元测试
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    15#
    发表于 2011-8-25 09:41:49 | 只看该作者
    我喜欢这种氛围,自己写个东西,让大家来互相讨论,自己从中也能学到很多东西。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    16#
     楼主| 发表于 2011-8-26 17:50:31 | 只看该作者
    回复 9# cz245


        谢谢你的建议,确实是新手,有很多考虑不周到的地方,谢谢指教~~
    回复 支持 反对

    使用道具 举报

    本版积分规则

    关闭

    站长推荐上一条 /1 下一条

    小黑屋|手机版|Archiver|51Testing软件测试网 ( 沪ICP备05003035号 关于我们

    GMT+8, 2024-11-28 05:33 , Processed in 0.083242 second(s), 28 queries .

    Powered by Discuz! X3.2

    © 2001-2024 Comsenz Inc.

    快速回复 返回顶部 返回列表