关于存款账户c语言编程,怎么修改,把登录的账户信息和存款账户信息变成同一个,求大佬。...

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

#include

#include

#include

#include

#define N 100

/*插入*/

#include

#include

using namespace std;

class ACCOUNT {

private:

long zhanghao; //帐号

int mima; //密码

char name[10]; //姓名

double yu; //余额

public:

ACCOUNT( long, int, char *, double);//建构式

int cunkuan( long, int, double); //存款

int qukuan( long, int, double); //取款

double chaxun( long, int); //查询余额

int jiancha( long, int); //检查密码

};

ACCOUNT::ACCOUNT( long id, int pw, char *n, double m)

:zhanghao(id),mima(pw),yu(m)

{

strcpy ( name , n ); //定义初始值

}

int ACCOUNT::cunkuan( long id, int pw, double m)

//存款

{

if (!jiancha(id,pw)) //检查帐号和密码

return 0;

else

{

yu+=m; //存款,余额增加

return 1;

}

}

int ACCOUNT::qukuan( long id, int pw, double m)

//取款

{

if (!jiancha(id,pw) ||( yu

return 0;

else

{

yu-=m; //取款,余额减少

return 1;

}

}

double ACCOUNT::chaxun( long id, int pw)

//查询余额

{

if (jiancha(id,pw))

return yu;

else

return (double)0;

}

int ACCOUNT::jiancha( long id, int pw)

//检查密码

{

if (id==zhanghao && pw==mima)

return 1;

else

return 0;

}

/*插入*/

struct user

{

int user_id;

char user_name[19];//最大18位

char password[13];//最大13位

char like[255];

char sign[255];

};

/*

* 密码长度有效性验证

*/

int length_password(char *p)

{

int len;

len = strlen(p);

if(len<6||len>12)

{

return 0;

}

else

return len;

}

/*

* 密码的有效性验证

*/

int is_password_valid(char *p)

{

int i=0;

for(;*p != '\0'; p++)

{

if(!( (*p >= 'a' && *p <= 'z') || (*p >= 'A' && *p <='Z')

||(*p >='0' && *p <= '9'))) //判断字符是否有效

return 0;

}

return 1;

}

int two_password_valid(char *p1,char*p2)

{

if(strcmp(p1,p2)==0)

return 1;

else

return 0;

}

/*

* 完成注册功能

*/

int user_register(struct user *ptr_user,int size)

{

char password[13];

char repassword[13];

printf("请输入注册姓名:");

gets(ptr_user[size].user_name);

printf("请输入注册密码:");

fflush(stdin);

gets(password);

printf("请再次输入注册密码:");

gets(repassword);

if(!two_password_valid(password,repassword))

{

printf("\n两次输入的密码不一致!");

return 0;

}

else

{

strcpy(ptr_user[size].password,password);

}

printf("您的编号为:%d,这将是您的登陆帐号.",ptr_user[size].user_id=10000+size);

return 1;

}

/*

* 如果登陆成功则返回第i+1个用户的信息,否则返回0

*/

int is_my_user(struct user *p,int size)

{

int i;

int zhanghu;

char mima[15];

printf("请输入您的帐号: ");

scanf("%d",&zhanghu);

printf("请输入您的密码: ");

gets(mima);

for(i=0;i

{

if((zhanghu == p[i].user_id)&&(strcmp(mima,p[i].password)==0))

{

return i + 1;

}

}

return 0;

}

void display_user(struct user u)

{

printf("\n你的帐号是:%d",u.user_id);

printf("\n你注册姓名是:%s",u.user_name);

}

int main(){

int x;

struct user our_users[N];

int count = 0;

int current_user;

ACCOUNT acc(zhanghu,mima,"XXX",1000);

int choice;

long id; //储存输入的帐号

int pw; //储存输入的密码

double m; //储存存款金额,取款金额或查询到的余额

while(1){

printf("\n1:登录\n");

printf("\n2:注册\n");

printf("\n3:退出\n");

printf("\n请选择:\n");

scanf("%d",&x);

if(x==1){

if((current_user = is_my_user(our_users,count)))

{

printf("\n登陆成功!");

display_user(our_users[current_user - 1]);

/*插入*/

do {

cout << " \nATM存款机\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 (acc.cunkuan(id,pw,m))

{

cout << "存款成功! 您目前存款余额为 ";

cout << acc.chaxun(id,pw) << "元\n";

}

else

cout << "存款失败! 可能是帐号或密码错误...\n";

break;

case 2:

cout << "请输入帐号:";

cin >> id;

cout << "请输入密码:";

cin >> pw;

cout << "请输入取款金额:";

cin >> m;

if (acc.qukuan(id,pw,m))

{

cout << "取款成功! 您目前存款余额为 ";

cout << acc.chaxun(id,pw) << "元\n";

}

else

cout << "取款失败! 可能是帐号或密码错误,或者存款不足...\n";

break;

case 3:

cout << "请输入帐号:";

cin >> id;

cout << "请输入密码:";

cin >> pw;

m = acc.chaxun(id,pw);

if (m>=0)

{

cout << "查询成功! 您目前存款余额为 ";

cout << m << "元\n";

}

else

cout << "查询失败! 可能是帐号或密码错误...\n";

break;

}

}while (choice!=4);

cout << "谢谢使用!";

/*插入*/

}else

printf("\n登陆失败!");

continue;

//登陆

}else if(x==2){

if(user_register(our_users,count))

{

count++;

printf("\n注册成功!");

}

continue;

}else{

break;

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值