多文件组织代码:
main.cpp
/**********************************************
*版权所有 (C)2015,HaoJunyu
*文件名称:main.cpp
*文件标识:无
*内容摘要:主函数,进入银行界面
*其他说明:无
*当前版本:v1.0
*作 者:郝俊宇
*完成日期:20150715
*
*修改记录1:无
*修改日期:无
*版本号:v1.0
*修改人:HaoJunyu
*修改内容:无
************************************************/
#include <iostream>
#include "bank.h"
using namespace std;
/***********************************************
*功能描述:主函数,进入银行界面,开始工作
*输入参数:无
*输出参数:无
*返回值:0
*其他说明:无
***********************************************/
int main()
{
cout<<"+----------------------+"<<endl;
cout<<"+ 欢迎光临CSDN银行 +"<<endl;
cout<<"+----------------------+"<<endl;
if(pass())//pass()密码正确返回1,错误返回0
{
Bank b;//建立一个对象
b.work();//开始工作
}
return 0;
}
屏幕截图:
bank.h
/**********************************************
*版权所有 (C)2015,HaoJunyu
*文件名称:bank.h
*文件标识:无
*内容摘要:银行类和用户类,还有业务员登录,显示菜单,由键盘输入密码等普通函数
*其他说明:无
*当前版本:v1.0
*作 者:郝俊宇
*完成日期:20150715
*
*修改记录1:
*修改日期:20150716
*版本号:v1.0
*修改人:HaoJunyu
*修改内容:修改对象指针数组
************************************************/
#ifndef BANK_H_INCLUDED
#define BANK_H_INCLUDED
#include <cstring>
using namespace std;
const int upNum=2000;//系统最多容纳的用户
class Bank;
class User
{
public:
void setUser(int a,string n,int p,string ID,string address,double b,int s);//输入用户信息
void showName();//显示姓名
void showBalance();//显示余额
bool passwordisright();//判断密码是否正确,正确返回true
bool isnormaluser();//判断用户账号是否正常,正常返回true
friend class Bank;
private:
int account;//账号
int password;//密码
string name;//名字
string ID;//身份证号
string address;//家庭住址
double balance;//余额
int status;//状态 0-正常,1-开户,2-销户
};
class Bank
{
public:
Bank();//从文件中读取数据
~Bank();//将数据存到文件中
void work();//登录
void openaccount();//开户
void closeaccount();//销户
void addmoney();//存款
void cutmoney();//取款
void showaccount();//查询
void transfraccount();//转账
void reportofloss();//挂失
void cancelofloss();//解挂
void changepassword();//改密
int getUser();//输入账号查询用户,返回用户在数组中的下标
private:
int N;//实际的用户数目
User *users[upNum];//对象指针数组
};
int pass();//业务员登录
int choosemenu();//显示菜单,选择业务
int inputpassword();//键盘输入密码
#endif // BANK_H_INCLUDED
屏幕截图:
work.cpp
/**********************************************
*版权所有 (C)2015,HaoJunyu
*文件名称:work.cpp
*文件标识:无
*内容摘要:业务员登录银行系统,从文件中读取业务员的信息,登录后的菜单显示,输入密码等功能
*其他说明:无
*当前版本:v1.0
*作 者:郝俊宇
*完成日期:20150715
*
*修改记录1:无
*修改日期:无
*版本号:v1.0
*修改人:HaoJunyu
*修改内容:无
************************************************/
#include <iostream>
#include <fstream>
#include <conio.h>//使用getch()
#include <cstdlib>
#include <cstring>
#include <ctype.h>//使用isdigit(ch),字符串处理
#include "bank.h"
using namespace std;
/***********************************************
*功能描述:业务员登录
*输入参数:输入业务员姓名,密码
*输出参数:如果密码正确将显示菜单,三次密码错误将退出
*返回值:密码正确返回1,错误返回0
*其他说明:从文件中读取业务员信息,判断从文件中输出的业务员信息和业务员输入的信息是否相同,密码输错三次将退出
***********************************************/
int pass()//业务员登录
{
char ynameinfile[20];//由文件读取业务员姓名
char ypasswordinfile[20];//文件中保存的业务员的密码
ifstream infile("password.txt",ios::in);
if(!infile)
{
cout<<"password file can not open!"<<endl;
exit(1);
}
infile>>ynameinfile>>ypasswordinfile;
infile.close();
char yname[20];//业务员登录是输入的用户名
char ypassword[20];//业务员登录时输入的密码
char ch;
int itry=3;//进入系统后可尝试输入密码的次数
int right=0;//要返回的结果0-不正确1-正确
//密码输错三次将退出
do
{
cout<<"请输入业务员用户名:";
cin>>yname;
cout<<"请输入密码:";
int j=0;
while((ch=getch())!='\r')//输入字符不显示在屏幕上
{
ypassword[j++]=ch;
putchar('*');//每输入一个字符,显示一个*
}
ypassword[j]='\0';
fflush(stdin);//为避免键盘缓存区中未读出的字符影响程序,清除输入缓存区
cout<<endl;
if(strcmp(ypassword,ypasswordinfile)==0&&strcmp(yname,ynameinfile)==0)
{
right=1;
break;//用户名和密码正确,退出程序,返回1
}
else
{
itry--;
if(itry>0)
{
cout<<"用户名或密码错误!"<<endl;
cout<<"输错三次将退出,你还可以尝试"<<itry<<"次!"<<endl;
}
else
cout<<"对不起,密码输错三次,你不能进入系统!"<<endl;
}
}
while(itry);
return right;
}
/***********************************************
*功能描述:选择菜单
*输入参数:输入要操作功能的序号
*输出参数:无
*返回值&#