黄三 发表于 2014-9-25 20:30:06

求解

#include<stdio.h>
#include<windows.h>
struct account{
        int ka;//卡号
        char name;//姓名       
        int money;//余额
        int pwd;//密码
};
account acc;
int index = 0;
void menu(){
        system("cls");
        printf("1.开户\n");
        printf("2.存钱\n");
        printf("3.取钱\n");
        printf("4.查询余额\n");
        printf("5.退出\n");

}
void kaihu(){
        if(index !=2){
                printf("请输入卡号:");
                scanf("%d",&acc.ka);
                printf("请输入姓名:");
                scanf("%s",acc.name);
                printf("请输入密码:");
                scanf("%d",&acc.pwd);       
                printf("请输入开户金额:");
                scanf("%d",&acc.money);
                printf("开户成功!!!!\n");
                index++;       
        }else{
                printf("用户已满");
        }
}
void cunkuan(){
        printf("请输入要存钱的账户:");
        int id = 0;
        scanf("%d",&id);
        for(int i = 0;i<=index;i++){
                if(acc.ka == id){
                        break;       
                }
        }
       
        if(i<=index){
                int money = 0;
                printf("请输入要存入的钱数:");
                scanf("%d",&money);
                acc.money = acc.money + money;

                printf("你卡上的余额为:%d",acc.money);

        }else{
                printf("您输入的账号不存在!");
        }

}
void qukuan(){
        long id,mm;
        printf("\t\t\t请输入您的卡号:");
        scanf("%ld",&id);
        printf("\t\t\t请输入您的密码:");
        scanf("%ld",&mm);
                for(int i = 0;i<=index;i++){
                if(acc.ka == id&&mm==acc.pwd){
                        break;       
                }
        }
       
        if(i<=index){
                int money = 0;
                printf("请输入要取的钱数:");
                scanf("%d",&money);
                if(acc.money<=money){
                        printf("余额不足");
                }else{
                acc.money = acc.money - money;
                printf("你卡上的余额为:%f",acc.money);
                }
       

        }else{
                printf("您输入的账号不存在!");
        }

}
void txt(){
        long id;
        printf("请输入账号");
        scanf("%ld",&id);
                for(int j=0;j<=index;j++){
                        if(acc.ka==id){
                printf("%s用户 剩余%d",acc.name,acc.money);
                break;
        }
       
}
}
          
void main(){
        int op=0;
        char flag;
       
        do{
        system("cls");
        printf("\t欢迎进入银行系统\n\n");
        printf("\t1、开户\n");
        printf("\t2、存款\n");
        printf("\t3、取款\n");
        printf("\t4、详细信息\n");
        printf("请输入您要办理的项目:");
        scanf("%d",&op);
        switch(op){
        case 1:
                system("cls");
                kaihu();
                break;
        case 2:
                system("cls");
                cunkuan();
                break;
        case 3:
                system("cls");
                qukuan();
                break;
        case 4:
                system("cls");
                txt();
                break;
        default:
                printf("您的输入有误!!!!!!!");
                break;
}
        printf("\n按回车键回到主菜单:");
        fflush(stdin);
        scanf("%c",&flag);
        }while(flag=='\n');
        printf("\n");
}
        求做修改密码与转账不要指针带注解谢谢

黄三 发表于 2014-9-26 06:49:17

:mad:

黄晓鹏 发表于 2014-9-27 20:56:16

#include<stdio.h>
#include<windows.h>
struct account{
        int ka;//卡号
        char name;//姓名       
        int money;//余额
        int pwd;//密码
};
account acc;
int index = 0;//定义下标变量
void kaihu(){//开户
        if(index !=2){//判断用户不能大于2
                printf("请输入卡号:");//输出
                scanf("%d",&acc.ka);//接收用户输入的值
                for(int a=0;a<index;a++){//循环
                        if(acc.ka==acc.ka){//判断
                                break;//退出循环
                        }
                }
                if(a<index){//判断
                        printf("账号已注册");//如果为真输出
                }else{//为假输出
                printf("请输入姓名:");
                scanf("%s",acc.name);//接收用户输入的值
                printf("请输入密码:");//提示用户输入密码
                scanf("%d",&acc.pwd);//接收用户输入的值       
                printf("请输入开户金额:");//提示用户输入开户金额
                scanf("%d",&acc.money);//接收用户输入的值
                printf("开户成功!!!!\n");//输出文字
                index++;//下标增量
                }
        }else{
                printf("用户已满");//输出
        }
}
void cunkuan(){
        printf("请输入要存钱的账户:");//输出文字
        int id = 0;//定义变量id
        scanf("%d",&id);//接收用户输入的id
        for(int i = 0;i<=index;i++){//循环
                if(acc.ka == id){//判断用户输入id与卡号是否一致
                        break;//退出循环
                }
        }
       
        if(i<=index){//判断
                int money = 0;//定义变量钱数
                printf("请输入要存入的钱数:");//则提示输入金钱
                scanf("%d",&money);
                if(money<0){//判断要存金钱的大小
                        printf("存款失败");//存入的钱小于0则存款失败
                }else{
                acc.money = acc.money + money;//余额为账号上原有的钱加上存入的钱

                printf("你卡上的余额为:%d",acc.money);
                }
        }else{
                printf("您输入的账号不存在!");
        }
               
}
void qukuan(){
        int id,mm;
        printf("\t\t\t请输入您的卡号:");
        scanf("%d",&id);
        printf("\t\t\t请输入您的密码:");
        scanf("%d",&mm);
                for(int i = 0;i<=index;i++){//循环遍历整个数组
                if(acc.ka == id&&mm==acc.pwd){//如果卡号与密码正确,则退出循环
                        break;       
                }
        }
       
        if(i<=index){//条件为真时
                int money = 0;
                printf("请输入要取的钱数:");//提示输入要存的金钱
                scanf("%d",&money);
                if(money<0){//判断金钱的大小
                        printf("取款失败");
                }else{
                        if(acc.money<=money){
                                printf("余额不足");
                        }else{
                                acc.money = acc.money - money;//取款后的余额为之前的金额减去取钱的金额
                                printf("你卡上的余额为:%d",acc.money);
                        }
                }
       

        }else{
                printf("您输入的账号不存在!");
        }

}
void txt(){//查询信息
        long id;
        printf("请输入账号");
        scanf("%ld",&id);//通过输入的账号,来输出信息
                for(int j=0;j<=index;j++){
                        if(acc.ka==id){//如果找到这个账号则输出输出信息
                printf("%s用户 剩余%d",acc.name,acc.money);
                break;
        }
       
}
}
void zhuang(){
        int mm,zh,z,ji;
        printf("请输入账号");
        scanf("%d",&zh);
        printf("请输入密码");
        scanf("%d",&mm);//判断自己的账号与密码是否正确
        for(int i=0;i<=index;i++){
                if(zh==acc.ka&&mm==acc.pwd){
                        break;
                }
        }
        if(i<=index){//如果自己的条件为真,则提示输入对方的账号
                printf("请输入要转账的用户");
                scanf("%d",&z);
                for(int j=0;j<=index;j++){//寻找是否有对方的账号,如果找到则退出
                        if(z==acc.ka){
                                break;       
                        }
                }
                if(j<=index){//如果对方账号为真,
                        printf("请输入要转的金额");//则输入转账的金额
                        scanf("%d",&ji);
                        if(ji>acc.money){//判断转账的金额的大小,如果取的钱大于卡中的钱,则提示余额不足
                                printf("余额不足");
                        }else{
                                acc.money+=ji;//自己卡中的余额
                                acc.money-=ji;//对方账号的余额
                                printf("账号+余额为%d",acc.money);
                               
                        }
                }else{printf("账号不存在");}
        }else{
                printf("账号不存在");
        }
       

}
void xg(){//修改密码
        int mm,zh,xmm,qrmm;
        printf("请输入账号");
        scanf("[`%d",&zh);
        printf("请输入旧密码");
        scanf("%d",&mm);
        for(int p=0;p<=index;p++){//判断账号与密码是否存在
                if(acc.ka==zh&&acc.pwd==mm){
                        break;       
                }else
                        printf("密码输入错误");
        }
        if(p<=index){
                printf("请输入新密码")//输入新的密码;
                scanf("%d",&xmm);
                printf("再次确认新密码");
                scanf("%d",&qrmm);
                if(xmm==qrmm){//将旧密码赋值到新密码中
                        acc.pwd=xmm;
                }else{
                        printf("两次输入不一致");
               
                }
               


        }

}
          
void main(){
        int op=0;
        char flag;
       
        do{
        system("cls");
        printf("\t欢迎进入银行系统\n\n");
        printf("\t1、开户\n");
        printf("\t2、存款\n");
        printf("\t3、取款\n");
        printf("\t4、详细信息\n");
        printf("\t5、修改密码\n");
        printf("\t6、转账\n");
        printf("请输入您要办理的项目:");
        scanf("%d",&op);
        switch(op){
        case 1:
                system("cls");
                kaihu();
                break;
        case 2:
                system("cls");
                cunkuan();
                break;
        case 3:
                system("cls");
                qukuan();
                break;
        case 4:
                system("cls");
                txt();
                break;
                case 5:
                system("cls");
                xg();
                break;
                case 6:
                system("cls");
                zhuang();
                break;
        default:
                printf("您的输入有误!!!!!!!");
                break;
}
        printf("\n按回车键回到主菜单:");
        fflush(stdin);
        scanf("%c",&flag);
        }while(flag=='\n');//循环提示信息
        printf("\n");
}

大个的糖果 发表于 2014-11-1 01:17:12

页: [1]
查看完整版本: 求解