C++银行管理系统

C++银行管理系统

本文没有完整代码,想找作业的就别在这浪费时间了

最近实在是闲来无事,想着重新温习一下之前c++的一个大作业:银行管理系统,C++当时学的十分痛苦,毕竟是从面向过程到面向对象转变的过程,十分不理解为什么非要封装起来,为什么要写那么多函数来回调用,但是现在明白回来,真正在学习的痛苦的时候,那正是长知识的最快的时候。

账户内部设置

将每一个用户账户封装为对象,其中包括账号、密码、余额等,还有获得密码设置密码账户等的方法,后续还可以拓展更多。
创建对象数组,即预估总共的用户数量,这个有较大的限制,我也想过将用户文件等写入文件,读出文件的方法,也想过使用数据库存储的方法;为了最快写出框架,就简单写了一点。
希望就当个段子看了吧

代码

#include <iostream>
#include <sstream>


using namespace std;

void menu();
string inchangestr(int x);
void regisid();
void regispas();
void usregister();
void uslogin();
int checkid(int x);
bool checkpass(int x);
void clean();
void mainmenu(int id);
class Bankuser{
public:
    int  getaccount();
    string  getpassword();
    void setaccount(int x);
    void setpassword(string p);

private:
    int count;
    string pass="";

    double balence=0.00;

};
int  Bankuser::getaccount()
{
    return count;
}
string Bankuser::getpassword()
{
    return pass;
}
void Bankuser::setaccount(int x)
{
    count=x;

}
void Bankuser::setpassword(string p)
{
    pass=p;
}

//Bankuser bankuser;
Bankuser bank[100];
int associat[100][2]={0};
int num=0,t=0;
void menu(){
    int f;
    cout<<"******************************************************"<<endl;
    cout<<"                请输入你要进行的操作                      "<<endl;
    cout<<"                 1.注册账户                             "<<endl;
    cout<<"                 2.登录账户                             "<<endl;
    cout<<"******************************************************"<<endl;
    cin>>f;
    if(f==1){
        //system("cls");
        clean();
        usregister();
    }
    else if(f==2){
        uslogin();
        clean();
        //system("cls");
    }
    else{
        cout<<"操作有误,请重新输入"<<endl;
        clean();
        menu();
    }
}
void clean(){
    cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<endl;
    //cout<<endl;cout<<endl;//cout<<endl;cout<<endl;cout<<endl;cout<<endl;
    //cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<endl;cout<<endl;
}
string inchangestr(int x){ //int 型转换为string类型
    stringstream s;
    s<<x;
    string ss;
    s>>ss;
    return ss;
}
void regisid(){  //注册存入账户
    int counts;
    cout<<"******************************************************"<<endl;
    cout<<"         请输入你要注册的账号(4位数字):";
    cin>>counts;
    cout<<endl;
    bank[num].setaccount(counts);
    int x=bank[num].getaccount();
    string str=inchangestr(x);
    cout<<"          你的账号是:"+str<<endl;
}
void regispas(){  //注册存入密码
    string password1,password2;
    cout<<"          请第一遍输入你的密码:(8位以内数字或字母):";
    cin>>password1;
    cout<<endl;
    cout<<"          请第二遍输入你的密码:";
    cin>>password2;
    cout<<"******************************************************"<<endl;
    cout<<endl;
    if(password1==password2){
        cout<<"注册成功"<<endl;
        cout<<"******************************************************"<<endl;
        bank[num].setpassword(password1);
    }
    else{
        clean();
        cout<<"******************************************************"<<endl;
        cout<<"            两次密码输入不一致,请重新输入"<<endl;
        regispas();
    }

}
void usregister(){  //实现注册功能
    regisid();
    regispas();
    //string str= inchangestr(bank[num].getaccount());
    //cout<<"注册成功,您的账号是:"+str<<endl;
    associat[num][1]=bank[num].getaccount();
    num++;
    clean();
    uslogin();
}

void uslogin(){  //实现登录功能
    int id,bankuserid=0;
    string password;
    cout<<"******************************************************"<<endl;
    cout<<"                请输入你的账号和密码                      "<<endl;
    cout<<"                     账号:";
    cin>>id;
    cout<<endl;
    int m=checkid(id);
    if(m==-1){
        cout<<"               查无此账号,请重新输入"<<endl;
        cout<<"******************************************************"<<endl;
        cout<<endl;
        clean();
        uslogin();
    }
    t=0;
    if(checkpass(m)) {
        cout << "******************************************************" << endl;
        clean();
        mainmenu(m);

    }
    else{
        cout<<"                  密码错误,请重新输入"<<endl;
        uslogin();
    }
    //cout<<"登录测试成功";
}
int checkid(int x){
    int f=0,i;
    for(int i=0;i<100;i++){
        if(x==associat[i][1]){
            f=i;
            return f;
        }
        else{
            return -1;
        }
    }
    return -1;
}
bool checkpass(int x){

    string password;
    cout<<"                     密码:";
    cin>>password;
    cout<<endl;
    string pass=bank[x].getpassword();
    if(pass==password)
        return true;
    else{
        cout<<"输入错误,请重新输入你的密码"<<endl;
        t++;
        if(t==3){
            cout<<"你已经三次输入密码错误"<<endl;
            clean();
            uslogin();
        }
        else
            checkpass(x);
    }
    return false;
}

void mainmenu(int id){//传入账号,执行下一步对对象的操作
    int f;
    cout<<"*******************************************************"<<endl;
    cout<<"              请输入你要执行的操作:"<<endl;
    cout<<"                1.存款"<<endl;
    cout<<"                2.取款"<<endl;
    cout<<"                3.查询余额"<<endl;
    cout<<"                4.修改密码"<<endl;
    cout<<"*******************************************************"<<endl;
    cin>>f;
    switch (f) {
        case 1:
            cout<<"测试存款成功"<<endl;
            break;
        case 2:
            cout<<"测试取款成功"<<endl;
            break;
        case 3:
            cout<<"测试查询金额成功"<<endl;
            break;
        case 4:
            cout<<"修改密码测试"<<endl;
            break;
        default:
            clean();
            cout<<"输入操作有误,请重新进行"<<endl;
            mainmenu(id);
            break;
    }
}
int main() {
    menu();
    return 0;
}

总结

说是写代码练手,实际上写银行管理,连存款取款都没得写,哈哈哈哈哈哈,还希望我将来没事还能想到这个东西。写到一半我认为对我的帮助没有很大了,都是些简单的逻辑结构,新学的一点设计模式应用起来还没得头绪,等再写个新的小项目再用设计模式,这就当是对之前C++的纪念了,嘿嘿

  • 7
    点赞
  • 66
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值