不知道哪错了,求指教

什么值得码 2012-05-20 12:22:18
#include<iostream.h>
#include<string.h>
class consumer
{
protected:
char kahao[20];
char name[20];
char password[10];
float money;
public:
consumer(char Name[],char Kahao[],float Money,char Password[]);
char* getname();
char* getkahao();
char* getpassword();
float getmoney();
void setmoney(float m);
void setpassword(char p[]);

};

class ATM:public consumer
{
int times;
consumer cnsm;
public:
ATM(consumer &cnsm);
void welcome(); //欢迎界面
bool checkpasswd(char num[],char pswd[]); //核对密码
void changepasswd(); //修改密码
void fetchmoney(); //取款
void information(); //查询信息
void functionshow(); //功能界面
void lock();
};
consumer::consumer(char Name[],char Kahao[],float Money,char Password[])//构造函数,建立账户
{
strcpy(name,Name);
strcpy(kahao,Kahao);
money=Money;
strcpy(password,Password);
}
char* consumer::getname(){return name;}
char* consumer::getkahao(){return kahao;}
char* consumer::getpassword(){return password;}
float consumer::getmoney(){return money;}
void consumer::setmoney(float m)
{money=m;}
void consumer::setpassword(char p[])
{ strcpy(password,p);}

void ATM::welcome()
{
times=0;
cout<<"*欢迎使用银行ATM自动取款机*"<<endl;
char passwd[10],num[20];
int i=0;
cout<<endl<<"请输入卡号:";
cin>>num;
cout<<"请输入密码:";
cin>>passwd;
if(!checkpasswd(num,passwd))
{
cout<<"你输入的卡号或密码有误,请从新输入"<<endl;
times++;
}
else { functionshow();}
if(times>=3) lock();
}
bool ATM::checkpasswd(char num[],char pswd[])
{
if(strcmp(num,cnsm.getkahao())==0&&strcmp(pswd,cnsm.getpassword())==0)
return true;
else
return false;
}
void ATM::functionshow()
{
int n;
cout<<endl<<"请输入相应的操作序号进行操作: "<<endl;
cout<<"1)修改密码 "<<endl
<<"2)取款 "<<endl
<<"3)查询余额 "<<endl
<<"4)退出系统 "<<endl;
while(n<1||n>4)
{
cout<<"请输入正确的操作序号!"<<endl;
cin>>n;
}
switch(n)
{
case 1:changepasswd(); break;
case 2:fetchmoney(); break;
case 3:information(); break;
// case 4:exitATM(); break;
default:break;
}
}
void ATM::changepasswd()
{
char pasw[10],repasw[10];
times=0;
cout<<endl<<"请输入旧密码:";
cin>>pasw;
if(strcmp(pasw,cnsm.getpassword())==0)
{
cout<<"请输入新密码:";
cin>>pasw;
int test;
test=strlen(pasw);
if(test<6)
{
cout<<"密码不能小于6位"<<endl;
}
else if(test>6&&test<10)
{
cout<<"请再输入一次新密码:";
cin>>repasw;
if(strcmp(pasw,repasw)!=0)
{
cout<<"你输入的两次密码不一样,请重新输入!"<<endl;
}
else
{
cnsm.setpassword(pasw);
cout<<"密码修改成功,请牢记!"<<endl;
}

}
}
else times++;
if(times>=3) lock();
}
void ATM::fetchmoney()
{
float m;
cout<<endl<<"你要取多少钱:";
cin>>m;
while(m<=0)
{
cout<<"请输入正确的数字!"<<endl;
cin>>m;
}
if(m>5000)
{
cout<<"对不起,每次最多取5000元"<<endl;
}
else
{
if((int)m%100!=0)
cout<<"对不起,取款金额为100的倍数"<<endl;
else if(cnsm.getmoney()>=m)
{
cout<<"对不起,你的余额不足!"<<endl;
}
else
{
cout<< endl<<"操作成功,请收好钱!" <<endl;
cnsm.setmoney(m);
}
}
}
void ATM::information()
{
cout<<"**************************"<<endl;
cout<<"*"<<endl;
cout<<"* 用户姓名:"<<cnsm.getname()<<endl;
cout<<"* 卡号: "<<cnsm.getkahao()<<endl;
cout<<"* 余额: "<<cnsm.getmoney()<<endl;
cout<<"**************************"<<endl;
}
void ATM::lock()
{
cout<<endl<<"感谢你对本银行的支持,欢迎下次光临!"<<endl;
cout<<"请取卡......."<<endl;
}
void main()
{
consumer c1("Me","123456",10000.00F,"123456");
ATM atm(c1);
atm.welcome();

}
...全文
194 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
sunxc123 2012-05-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 的回复:]
在consumer类中增加一个无参的构造函数consumer(){}里的内容自己根据需要定。
在类ATM中,加上对于ATM(consumer &cnsm){};的定义,即加上{}
里面的内容,不加内容至少要加上{}。
[/Quote]
不懂为啥要加一个无参的构造函数consumer(){}
没看到它在哪个地方需要用到呀?难道是这句ATM(consumer &cnsm)会调用它??求问
引用不会调用构造函数吧
什么值得码 2012-05-20
  • 打赏
  • 举报
回复
我知道哪错了,已经改好了,想加一个开户的功能,文件流不会,已在另一帖中提问了,谢谢大家的解答
Linkhai 2012-05-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

单步调试是程序员必须学会的方法
[/Quote]

2楼正解
Eleven 2012-05-20
  • 打赏
  • 举报
回复
都是语法错误,应该很容易改吧
newfarmerchi 2012-05-20
  • 打赏
  • 举报
回复
在consumer类中增加一个无参的构造函数consumer(){}构造函数
里的内容自己根据需要定。
在类ATM中,加上对于ATM(consumer &cnsm){};的定义,即加上{}
里面的内容,不加内容至少要加上{}。
W170532934 2012-05-20
  • 打赏
  • 举报
回复
单步调试是程序员必须学会的方法

64,647

社区成员

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

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