一个c++的简单小程序,各位大师帮我看下哪错了~~~~

Iantone 2012-04-03 07:05:53
//一个atm机存取款的程序,编译可以通过,存取款有问题,查询余额正常。。。。
#include <iostream.h>
#include <string.h>
enum RESULT {FAIL=0, SUCC}; //FAIL代表失败,SUCC代表成功
class ACCOUNT {
private:
unsigned long ID_No; //帐号
unsigned int password; //密码
char name[10]; //姓名
double balance; //馀额
public:
ACCOUNT(unsigned long, unsigned int, char *, double);//建构式
RESULT deposit(unsigned long, unsigned int, double); //存款
RESULT drawing(unsigned long, unsigned int, double); //提款
double chk_balance(unsigned long, unsigned int); //查询馀额
RESULT check(unsigned long, unsigned int); //检查密码
};

ACCOUNT::ACCOUNT(unsigned long id, unsigned int pw, char *n, double m)
:ID_No(id),password(pw),balance(m)
{
strcpy ( name , n ); //非一对一资料指定,仍需写在函数主体内
}

RESULT ACCOUNT::deposit(unsigned long id, unsigned int pw, double m)
//存款
{
if (check(id,pw)) //检查帐号和密码
return FAIL;
else
{
balance+=m; //存款,馀额增加
return SUCC;
}
}

RESULT ACCOUNT::drawing(unsigned long id, unsigned int pw, double m)
//提款
{
if (check(id,pw) && balance>=m) //检查帐号和密码,以及是否有足够的馀额
return FAIL;
else
{
balance-=m; //提款,馀额减少
return SUCC;
}
}

double ACCOUNT::chk_balance(unsigned long id, unsigned int pw)
//查询馀额
{
if (check(id,pw))
return balance;
else
return (double)FAIL;
}
RESULT ACCOUNT::check(unsigned long id, unsigned int pw)
//检查密码
{
if (id==ID_No && pw==password)
return SUCC;
else
return FAIL;
}

void main()
{
ACCOUNT TestAcc(8816001,1234,"AAAA",1000);
int choice;
unsigned long id; //储存输入的帐号
unsigned int pw; //储存输入的密码
double m; //储存存款金额,提款金额或查询到的馀额

do {
cout << " \n自动柜员机\n";
cout << "------------\n";
cout << "<1> 存款\n";
cout << "<2> 提款\n";
cout << "<3> 查询馀额\n";
cout << "<4> 结束\n";
cout << "------------\n";
cout << "请选择:";
cin >> choice;
switch(choice)
{
case 1:
cout << "请输入帐号:";
cin >> id;
cout << "请输入密码:";
cin >> pw;
cout << "请输入存款金额:";
cin >> m;
if (TestAcc.deposit(id,pw,m))
{
cout << "存款作业成功! 您目前存款馀额为 ";
cout << TestAcc.chk_balance(id,pw) << "元\n";
}
else
cout << "存款作业失败! 可能是帐号或密码错误...\n";
break;
case 2:
cout << "请输入帐号:";
cin >> id;
cout << "请输入密码:";
cin >> pw;
cout << "请输入提款金额:";
cin >> m;
if (TestAcc.drawing(id,pw,m))
{
cout << "提款作业成功! 您目前存款馀额为 ";
cout << TestAcc.chk_balance(id,pw) << "元\n";
}
else
cout << "提款作业失败! 可能是帐号或密码错误,或者存款不足...\n";
break;
case 3:
cout << "请输入帐号:";
cin >> id;
cout << "请输入密码:";
cin >> pw;
m = TestAcc.chk_balance(id,pw);
if (m)
{
cout << "提款作业成功! 您目前存款馀额为 ";
cout << m << "元\n";
}
else
cout << "查询作业失败! 可能是帐号或密码错误...\n";
break;
}
}while (choice!=4);
cout << "谢谢使用!";
}
...全文
58 1 打赏 收藏 转发到动态 举报
写回复
用AI写文章
1 条回复
切换为时间正序
请发表友善的回复…
发表回复
hen_hao_ji 2012-04-03
  • 打赏
  • 举报
回复

RESULT ACCOUNT::deposit(unsigned long id, unsigned int pw, double m)
//存款
{
if (!check(id,pw)) //检查帐号和密码,check函数检查对了返回 0,而错了返回1,所以这个地方改下,可能其它地方也要相对应的改。
return FAIL;
else
{
balance+=m; //存款,馀额增加
return SUCC;
}
}

64,648

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧