c++ ABCBank项目(三)

本文介绍了一个银行系统的软件设计过程,包括客户类的设计及其继承关系,详细解释了如何通过文件操作来记录客户的账户活动,以减轻数据库负担并提高用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

                    银行职工的注册与登录弄好后,也即是开始与客户端进行直接的交流,一共有八个功能,大家应该也知道是那些操作内容,为了使客户端的主函数看上去更加清晰,决定将每一个功能都分别放在一个函数内,用到时就调用:


在进行各种操作之前客户需要先注册好个人信息,创建一个属于客户的类,存放客户的个人信息和其他的操作,为了方便,避免重复的操作指令,自己将客户的类继承了职工的类,这样服务器操作时,能同时访问此时客户和操作职工的个人信息,下面是存放客户信息类的代码:

//客户个人信息
class client:public user
{
private:
	string cliname;            //开户姓名
	string identity;           //身份证
	string clipassword;       //密码
	string reclipassword;      //确认密码
	double    RMB;                //开户金额(存取金额)
	double    rest ;              //余额
	static double sum;
public:
	int cliid ;            //账号
	int otherid;           //他人账号
	string mydate ;        //日期
	int caozuohao ;        //操作职工号
	string bankname ;      //银行名字
	string linshi ;         
	void setclient(string name,string myidentity,string password,string repassword,double money,double yue1);
	void setcliname(string name);
	void openAccount();        //开户  
	void cancelAccount();      //销户  
	void save();               //存款  
	void withdraw();           //取款  
	void showAccount();        //查询余额  
	void transferAccounts();   //转账  
	void updataPassword();     //更改密码  
	int record();              //账户明细记录  
	string shcliname();
	string shidentity();
	string shclipassword();
	string shreclipassword();
	double shrmb();
	double shrest();
};
客户注册好个人信息后,便是各种功能操作,在这些操作里不仅会涉及到数据库的操作还会有文件的操作,因为在这之中有查看自己账户记录等一些功能,客户的存取操作会有很多,倘若将这些内容全部放到数据库中,数量很大不仅浪费资源而且找起来并打印给客户看时会很麻烦,所以这里便使用文件操作,将每一个客户的存取,转账都会在记录在不同的客户文件里,打印时只需打开对应的文件并全部读出来即可,下面是文件的操作代码:

将数据存放到文件中:

ofstream outfile;
				char repair[50];
				sprintf(repair,"%s的存折账单.txt",(object->shcliname()).c_str());
				
				outfile.open(repair,ios::binary | ios::app);
				outfile.write((char *)&table,sizeof(table));
				outfile.close();

数据从文件中读取并打印:

ifstream infile ;
					char buff[100];
					sprintf(buff,"E:\\gongzuobiao\\课堂程序\\c++\\c++项目.服务器\\c++项目\\%s的存折账单.txt",(preclient.shcliname()).c_str());
					infile.open(buff,ios::binary);	
					int temper = 1 ;	
					cout<<"银行  "<<"操作工号  "<<"户名  "<<"身份证  "<<"账号  "<<"日期  "<<"存取款  "<<"利息  "<<"余额"<<endl;
					while(temper)
					{							
						look *p = new look ;					
						if(infile.read((char *)p,sizeof(look)))
						{		

							cout<<p->bank<<"  "<<p->yuangong<<"  "<<p->name<<"  "<<p->identity<<"  "<<p->id<<"  "<<p->date<<"  "<<p->cunqu<<"  "<<p->lixi<<"  "<<p->rest<<endl;			
						}
						else
						{
							temper = 0 ;			
						}
						free(p) ;
					}			

传到文件中的是一个结构体而不是客户的类,结构体中只留下了客户的一些重要信息:银行名称,户名,身份证,余额,利息等,接下来就是每个功能的具体操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值