📄 cfile.cpp
字号:
#include "CFile.h"
#include "CUserInfo.h"
#include "CPersonOperatInfo.h"
#include <fstream>
#include <iostream>
#include <string>
#include <conio.h>
using namespace std;
C_File::C_File()//构造函数
{
pUserInfo=NULL;
pBalanceInfoData=NULL;
pPersonOperatInfoData=NULL;
}
C_File::~C_File()//析构函数
{
while(pUserInfo)//释放用户信息的内存
{
CUserInfoData *ppUserInfo=NULL;
ppUserInfo= pUserInfo->pNext;
delete pUserInfo->user;
delete pUserInfo;
pUserInfo=ppUserInfo;
}
while (pBalanceInfoData)//释放帐户信息的内存
{
CBalanceInfoData *ppBalanceInfoData=NULL;
ppBalanceInfoData=pBalanceInfoData->pNext;
delete pBalanceInfoData->UserBalanceInfo;
delete pBalanceInfoData ;
pBalanceInfoData=ppBalanceInfoData;
}
while (pPersonOperatInfoData)//释放个人操作信息的内存
{
CPersonOperatInfoData* ppCurrentOperatInfo=NULL;
ppCurrentOperatInfo=pPersonOperatInfoData->pNext;
delete pPersonOperatInfoData->UserOperatInfo;
delete pPersonOperatInfoData;
pPersonOperatInfoData=ppCurrentOperatInfo;
}
}
void C_File::ReadUserInfo()// 读取用户的个人信息文件
{
int nLength=0;
int i=0;
string strUserCountNum1,strUserName1,strUserPasswd1,strCardID1,strAddress1,strPhone1;
CUserInfoData *pCurrentUserInfoData=NULL;
ifstream fin;
fin.open("User.ini");
if (!fin.is_open())
{
cout <<"file can not open!"<<endl;
return;
}
while(!fin.eof())
{
fin>>strUserCountNum1>>strUserName1>>strUserPasswd1
>>strCardID1>>strAddress1>>strPhone1;
if (fin.fail())
{
return ;
}
nLength=strUserCountNum1.length();
string strUserCountNum(&strUserCountNum1[1],nLength-2);
long int nUserCountNum=atoi(strUserCountNum.c_str());
nLength=strUserName1.length();
string strUserName(&strUserName1[9],nLength-9);
nLength=strUserPasswd1.length();
string strUserPasswd(&strUserPasswd1[11],nLength-11);
nLength=strCardID1.length();
string strCardID(&strCardID1[7],nLength-7);
nLength=strAddress1.length();
string strAddress(&strAddress1[8],nLength-8);
nLength=strPhone1.length();
string strPhone(&strPhone1[10],nLength-10);
CUserInfoData *pTailUserInfoData=new CUserInfoData;
pTailUserInfoData->user=new CUserInfo(nUserCountNum,strUserName,strUserPasswd,
strCardID,strAddress,strPhone);
if (i==0)
{
pUserInfo=pCurrentUserInfoData=pTailUserInfoData;
i++;
}
else
{
pCurrentUserInfoData->pNext=pTailUserInfoData;
pCurrentUserInfoData=pTailUserInfoData;
}
pTailUserInfoData->pNext=NULL;
}
}
void C_File::ReadBalanceInfo()// 读取用户的帐户信息
{
CBalanceInfoData* pCurrentUserInfoData=NULL;
int nLength=0;
int i=0;
string strUserCountNum, strPasswd,strBalance,strFlag;
ifstream fin;
fin.open("Money.txt");
if (!fin.is_open())
{
cout <<"file can not open!"<<endl;
return;
}
while(!fin.eof())
{
fin>>strUserCountNum>>strPasswd>>strBalance>>strFlag;
long int nUserCountNum=atoi(strUserCountNum.c_str());
int nFlag=atoi(strFlag.c_str());
if (fin.fail())
{
return ;
}
CBalanceInfoData *pTailUserInfoData=new CBalanceInfoData;
pTailUserInfoData->UserBalanceInfo=new CBalanceInfo(nUserCountNum,strPasswd,strBalance,nFlag);
if (i==0)
{
pBalanceInfoData=pCurrentUserInfoData=pTailUserInfoData;
i++;
}
else
{
pCurrentUserInfoData->pNext=pTailUserInfoData;
pCurrentUserInfoData=pTailUserInfoData;
}
pTailUserInfoData->pNext=NULL;
}
return ;
}
void C_File::ReadPersonOperatInfo(char *pFileName)//读取用户的个人操作信息
{
CPersonOperatInfoData* pCurrentOperatInfo=NULL;
int nLength=0;
int i=0;
string strTime, strType, strMoney;
ifstream fin;
fin.open(pFileName);
if (!fin.is_open())
{
/* cout <<"file can not open!"<<endl;*/
return;
}
while (!fin.eof())
{
fin>>strTime>>strType>>strMoney;
int nType=atoi(strType.c_str());
if (fin.fail())
{
return ;
}
CPersonOperatInfoData *pTailOperatInfo=new CPersonOperatInfoData;
pTailOperatInfo->UserOperatInfo=new CPersonOperatInfo(strTime,
nType, strMoney);
if (i==0)
{
pPersonOperatInfoData=pCurrentOperatInfo=pTailOperatInfo;
i++;
}
else
{
pCurrentOperatInfo->pNext=pTailOperatInfo;
pCurrentOperatInfo=pTailOperatInfo;
}
pTailOperatInfo->pNext=NULL;
}
return ;
}
void C_File::SaveUserInfo()//保存用户的个人信息
{
ofstream fout;
fout.open("User.ini");
if (!fout.is_open())
{
cout << "Creat File Failure!";
}
CUserInfoData *ppUserInfo=NULL;
ppUserInfo=pUserInfo;
while(ppUserInfo)
{
fout << "[" << ppUserInfo->user->GetAccountNum()<< "]" <<endl;
fout << "UserName=" << ppUserInfo->user->GetUserName() << endl;
fout << "UserPasswd=" << ppUserInfo->user->GetUserPasswd() <<endl;
fout << "CardID=" << ppUserInfo->user->GetCardID() <<endl;
fout << "Address=" << ppUserInfo->user->GetAddress() <<endl;
fout << "Telephone=" << ppUserInfo->user->GetPhone() <<endl;
ppUserInfo = ppUserInfo->pNext;
}
fout.close();
}
void C_File::SaveBalanceInfo()//保存用户的帐户信息
{
ofstream fout;
fout.open("Money.txt");
if (!fout.is_open())
{
cout << "Creat File Failure!";
}
CBalanceInfoData *ppBalanceInfoData=NULL;
ppBalanceInfoData=pBalanceInfoData;
while(ppBalanceInfoData)
{
fout<<ppBalanceInfoData->UserBalanceInfo->GetAccountNum()<<endl;
fout<<ppBalanceInfoData->UserBalanceInfo->GetPassWd()<<endl;
fout<<ppBalanceInfoData->UserBalanceInfo->GetBalance()<<endl;
fout<<ppBalanceInfoData->UserBalanceInfo->GetFlag()<<endl;
ppBalanceInfoData=ppBalanceInfoData->pNext;
}
fout.close();
}
void C_File::SavePersonOperatInfo(char *pFileName)// 保存用户的个人操作信息
{
ofstream fout;
fout.open(pFileName);
if (!fout.is_open())
{
cout << "Creat File Failure!";
}
CPersonOperatInfoData *ppPersonOperatInfoData=NULL;
ppPersonOperatInfoData=pPersonOperatInfoData;
while (ppPersonOperatInfoData)
{
fout<<ppPersonOperatInfoData->UserOperatInfo->GetTime()<<endl;
fout<<ppPersonOperatInfoData->UserOperatInfo->GetTpype()<<endl;
fout<<ppPersonOperatInfoData->UserOperatInfo->GetMoney()<<endl;
ppPersonOperatInfoData=ppPersonOperatInfoData->pNext;
}
}
long int C_File::FindMaxCardId()//获取系统的最大账号
{
long int nMaxCarID=100000;
CUserInfoData *ppUserInfo=NULL;
ppUserInfo=pUserInfo;
while(ppUserInfo)
{
if (ppUserInfo->user->GetAccountNum()>nMaxCarID)
{
nMaxCarID=ppUserInfo->user->GetAccountNum();
}
ppUserInfo=ppUserInfo->pNext;
}
return nMaxCarID;
}
void C_File::ReadUserInfo(char *pName)//读取用户的个人信息文件
{
int nLength=0;
int i=0;
string strUserCountNum1,strUserName1,strUserPasswd1,strCardID1,strAddress1,strPhone1;
CUserInfoData *pCurrentUserInfoData=NULL;
ifstream fin;
fin.open(pName);
if (!fin.is_open())
{
cout <<"对不起没有发现该文件!"<<endl;
return;
}
while(!fin.eof())
{
fin>>strUserCountNum1>>strUserName1>>strUserPasswd1
>>strCardID1>>strAddress1>>strPhone1;
if (fin.fail())
{
return ;
}
nLength=strUserCountNum1.length();
string strUserCountNum(&strUserCountNum1[1],nLength-2);
long int nUserCountNum=atoi(strUserCountNum.c_str());
nLength=strUserName1.length();
string strUserName(&strUserName1[9],nLength-9);
nLength=strUserPasswd1.length();
string strUserPasswd(&strUserPasswd1[11],nLength-11);
nLength=strCardID1.length();
string strCardID(&strCardID1[7],nLength-7);
nLength=strAddress1.length();
string strAddress(&strAddress1[8],nLength-8);
nLength=strPhone1.length();
string strPhone(&strPhone1[10],nLength-10);
CUserInfoData *pTailUserInfoData=new CUserInfoData;
pTailUserInfoData->user=new CUserInfo(nUserCountNum,strUserName,strUserPasswd,
strCardID,strAddress,strPhone);
if (i==0)
{
pUserInfo=pCurrentUserInfoData=pTailUserInfoData;
i++;
}
else
{
pCurrentUserInfoData->pNext=pTailUserInfoData;
pCurrentUserInfoData=pTailUserInfoData;
}
pTailUserInfoData->pNext=NULL;
}
}
void C_File::SaveUserInfo(char *FileName)//保存用户的个人信息文件
{
ofstream fout(FileName, ios::out|ios::app);
if (!fout.is_open())
{
cout<<"对不起没有发现配置文件!"<<endl;
}
CUserInfoData *ppUserInfo=NULL;
ppUserInfo=pUserInfo;
while(ppUserInfo)
{
fout << "[" << ppUserInfo->user->GetAccountNum()<< "]" <<endl;
fout << "UserName=" << ppUserInfo->user->GetUserName() << endl;
fout << "UserPasswd=" << ppUserInfo->user->GetUserPasswd() <<endl;
fout << "CardID=" << ppUserInfo->user->GetCardID() <<endl;
fout << "Address=" << ppUserInfo->user->GetAddress() <<endl;
fout << "Telephone=" << ppUserInfo->user->GetPhone() <<endl;
ppUserInfo = ppUserInfo->pNext;
}
fout.close();
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -