Headers:ub.h
/*
*版权所有:Copyright (c)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*
*文件名称:ub.h
*文件标识:无
*内容摘要:该代码用于获取满足后缀要求的第一个文件
*其他说明:类的定义
*当前版本:V1.0
*作 者:姜甜甜
*完成日期:2015年7月17日
*
*修改记录:
*修改日期:无
*版本号:V1.0
*修改人:姜甜甜
*修改内容:
*/
#ifndef UB_H_INCLUDED
#define UB_H_INCLUDED
using namespace std;
class User
{
private:
int account; //账号
string name; //姓名
int code;//密码
double money;//存款
int state;//状态 0-正常 1-挂失 2-销户
string ID;//身份证号
string address;//地址
public:
void showName();
void showMoney(string p);
void showstate();
bool pass();
void set(int acc,string na,int co,double m,int sta,string id,string add);
friend class Bank;
};
class Bank
{
public:
Bank();
~Bank();
void work();
int getno(int acc);
void openAccount(); //开户
void cancelAccount(); //注销账户
void save(); //存款
void withdraw(); //取款
void showAccount(); //查询账户
void transferAccounts(); //转账
void reportLoss(); //挂失
void cancelLoss(); //解除挂失
void changePassword(); //更改密码 */
private:
static int N; //实际人数
User *users=new User[2000];//指针数组
};
#endif // UB_H_INCLUDED
Sources:main.cpp
/*
*版权所有:Copyright (c)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*
*文件名称:main.cpp
*文件标识:无
*内容摘要:该代码用于获取满足后缀要求的第一个文件
*其他说明:无
*当前版本:V1.0
*作 者:姜甜甜
*完成日期:2015年7月17日
*
*修改记录:
*修改日期:无
*版本号:V1.0
*修改人:姜甜甜
*修改内容:
*/
#include <iostream>
#include"ub.h"
using namespace std;
bool text();
int main()
{
cout<<"+----------------------+\n";
cout<<"+ welcome to you! +\n";
cout<<"+----------------------+\n";
if (text())
{
Bank b;
b.work();
}
return 0;
}
bank.cpp
/*
*版权所有:Copyright (c)2015,烟台大学计算机与控制工程学院
*All rights reserved.
*
*文件名称:bank.cpp
*文件标识:无
*内容摘要:该代码用于获取满足后缀要求的第一个文件
*其他说明:Bank类中成员函数的定义
*当前版本:V1.0
*作 者:姜甜甜
*完成日期:2015年7月17日
*
*修改记录:
*修改日期:无
*版本号:V1.0
*修改人:姜甜甜
*修改内容:
*/
#include<iostream>
#include<fstream>
#include<cstdlib>
#include <conio.h>
#include<cstring>
#include<string>
#include <stdio.h>
#include <time.h>
#include"ub.h"
using namespace std;
int Bank::N=0;
void getime();
int inputPassword();
int chooseInMenu();
/***********************
*功能描述:Bank构造函数
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:用构造函数读取文件中保存的账户信息
***********************/
Bank::Bank()
{
ifstream infile("account.txt",ios::in);
if(!infile)
{
cerr<<" gouzao open error!"<<endl;
exit(1);
}
int i=0;
int acc; //账号
string nam; //姓名
int co; //密码
double m; //金额
int sta;//状态
string id;
string add;
while(infile>>acc>>nam>>co>>m>>sta>>id>>add) //当读取成功……
{
users[i].set(acc,nam,co,m,sta,id,add);
i++;
}
N = i; //用静态数据成员
infile.close();
}
/***********************
*功能描述:Bank析构函数
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:在退出系统时,将数据保存到文件中
***********************/
Bank::~Bank()
{
ofstream outfile("account.txt",ios::out);
if(!outfile) //测试文件打开操作是否成功,不成功则提示后退出。
{
cerr<<"xigou open error!"<<endl;
exit(1);
}
int i;
for(i=0; i<N; i++)
{
outfile<<users[i].account<<" ";
outfile<<users[i].name<<" ";
outfile<<users[i].code<<" ";
outfile<<users[i].money<<" ";
outfile<<users[i].state<<" ";
outfile<<users[i].ID<<" ";
outfile<<users[i].address<<"\n";
}
outfile.close();
}
/***********************
*功能描述:操作系统
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:
***********************/
void Bank::work()
{
int iChoice; //用于选择系统功能
do
{
iChoice = chooseInMenu(); //从菜单中获得功能代码
switch(iChoice)
{
case 1:
openAccount(); //开户
break;
case 2:
cancelAccount(); //注销账户
break;
case 3:
save(); //存款
break;
case 4:
withdraw(); //取款
break;
case 5:
showAccount(); //查询余额
break;
case 6:
transferAccounts(); //转账
break;
case 7:
reportLoss(); //挂失
break;
case 8:
cancelLoss(); //解除挂失
break;
case 9:
changePassword(); //更改密码
break;
case 0:
cout<<"欢迎您再来. "<<endl;
}
}
while(iChoice);
}
/***********************
*功能描述:开户
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:
***********************/
void Bank::openAccount()
{
cout<<"正在开户\n";
if(N==2000)
{
cout<<"银行账户已满,退出!\n";
return;
}
int acc=10001+N;
cout<<"账号:"<<acc;
cout<<"\n户主姓名:";
string name,ID,address;
cin>>name;
int code1,code2;
cout<<"密码 :";
code1=inputPassword();
cout<<"确认密码:";
cod