1、C++课程设计 ******************************* 课题:简单银行系统模拟ATM 系别:计科系 专业年级:XXXXXX 学号:XXXXX 姓名:XXXX 一、 设计任务分析 根据课程设计要求及个人具体情况,分析如下:系统具有注册开户、用户登录、退出功能。 注册开户中有身份证号码、姓名、地址、电话号码、货币类型、预存金额。 用户登录中,用户登录成功后,才能享受取款、存款、修改密码等服务。 二、 类(对象)设计 据上得,设计类AccountItem和Accountbook。其类图如下: Account
2、Item string m_Anumber; string m_Password; string m_Name; double m_Balance; string m_Adress; string m_ID; string m_TEL; string m_Currency; AccountItem(AccountItem &a); AccountItem &operator=(AccountItem &a); AccountItem(); AccountItem(string number,string password,string nam
3、e,double balance,string Currency,string TEL,string ID,string Adress); void Display(); void write(ofstream &out); void read(ifstream& cin); int CheckNumber(string Anumber); string GetNumber(); string GetPassword(); void UpdatePassword(string password); void DeductBalance(double pay);
4、 void StoreBalance(double money); double GetBalance(); string GetName(); int IsNull(); Accountbook AccountItem b[100]; int m_AccountCount; void SetAccountbook(); Accountbook(); void LoadAccountbook(); void StoreAccountbook(); AccountItem FindItem(string number); bool Upd
5、ateItem(AccountItem Item);
三、 流程图
ATM
退出
用户登录
注册开户
取款
存款
修改密码
退出
账号
密码
姓名
身份证号
住址
电话
货币类型
预存金额
OK
四、源代码
#include
6、 string m_Password; string m_Name; double m_Balance; string m_Adress; string m_ID; string m_TEL; string m_Currency; public: AccountItem(AccountItem &a) { m_Anumber=a.m_Anumber; m_Password=a.m_Password; m_Name=a.m_Name; m_Balance=a.m_Balance; m_Curre
7、ncy=a.m_Currency; m_TEL=a.m_TEL; m_ID=a.m_ID; m_Adress=a.m_Adress; } AccountItem &operator=(AccountItem &a) { m_Anumber=a.m_Anumber; m_Password=a.m_Password; m_Name=a.m_Name; m_Balance=a.m_Balance; m_Currency=a.m_Currency; m_TEL=a.m_TEL;
8、 m_ID=a.m_ID; m_Adress=a.m_Adress; return *this; } void SetAccountItem(string number,string password,string name,double balance,string Currency,string TEL,string ID,string Adress); AccountItem(); AccountItem(string number,string password,string name,double balance,string Cu
9、rrency,string TEL,string ID,string Adress); void Display(); void write(ofstream &out); void read(ifstream& cin); int CheckNumber(string Anumber); string GetNumber(); string GetPassword(); void UpdatePassword(string password); void DeductBalance(double pay); void StoreBalance(double
10、 money); double GetBalance(); string GetName(); int IsNull(); }; void AccountItem::SetAccountItem(string number,string password,string name,double balance,string Currency,string TEL,string ID,string Adress) { m_Anumber=number; m_Password=password; m_Name=name; m_Balance=balance;
11、 m_Currency=Currency; m_TEL=TEL; m_ID=ID; m_Adress=Adress; } void AccountItem::UpdatePassword(string password) { m_Password=password; } void AccountItem::StoreBalance(double money) { m_Balance=m_Balance+money; } int AccountItem::CheckNumber(string Anumber) { if(m_
12、Anumber==Anumber) { return 1; } else { return 0; } } string AccountItem::GetNumber() { return m_Anumber; } string AccountItem::GetPassword() { return m_Password; } void AccountItem::DeductBalance(double pay) { m_Balance=m_Balance-pay; } double AccountItem::GetBalan
13、ce() { return m_Balance; } string AccountItem::GetName() { return m_Name; } int AccountItem::IsNull() { if(m_Anumber=="") return 1; return 0; } void AccountItem::read(ifstream& cin) { cin>>m_ID; cin>>m_Name; cin>>m_Adress; cin>>m_TEL; cin>>m_Currency; cin>>m_Bal
14、ance;
cin>>m_Anumber;
cin>>m_Password;
}
void AccountItem::write(ofstream &cout)
{
cout< 15、untItem::AccountItem()
{
m_Anumber="";
m_Password="";
m_Name="";
m_Balance=0;
m_Currency="";
m_TEL="";
m_ID="";
m_Adress="";
}
AccountItem::AccountItem(string number,string password,string name,double balance,string Currency,string TEL,string ID,string Adress)
{
m_Anumber=number;
16、 m_Password=password;
m_Name=name;
m_Balance=balance;
m_Currency=Currency;
m_TEL=TEL;
m_ID=ID;
m_Adress=Adress;
}
void AccountItem::Display()
{
cout<<"账号:";
cout< 17、余额:";
cout< 18、ountItem Item);
};
void Accountbook::SetAccountbook()
{
string AccountNo;
string AccountPassword;
string ItemName;
double Balance;
string Currency;
string TEL;
string ID;
string Adress;
string password1,password2;
ofstream Output("accountbook.txt");
cout<<"请输入帐号:";
ci 19、n>>AccountNo;
cout<<"请输入密码:";
while(1){
cin>>password1;
cout<<"请输入确认密码:"< 20、
cout<<"请输入身份证号:";
cin>>ID;
cout<<"请输入家庭住址:";
cin>>Adress;
cout<<"请输入电话号码:";
cin>>TEL;
int i;
while(1){
cout<<"请选择货币种类:"< 21、";cout<<"请输入预存款:";
cin>>Balance;Balance=Balance*8;break;}
else {cout<<"选择类型错误!"< 22、j 23、
m_AccountCount=j;
return;
}
AccountItem Accountbook::FindItem(string number)
{
int i;
bool Found=false;
for(i=0;i 24、m();
}
}
bool Accountbook::UpdateItem(AccountItem Item)
{
string no=Item.GetNumber();
int i;
bool flag=false;
for(i=0;i 25、ok::StoreAccountbook()
{
ofstream Output("accountbook.txt");
int k;
for(k=0;k 26、
};
void Massage::MakeMassage()
{
ifstream Input("accountbook.txt");
int n;
string AccountNo;
string AccountPassword;
double AccountPay;
string ItemName;
double Balance;
string TransactionCode;
cout< 27、n"
<<" ※ ※\n"
<<" ※ 欢迎使用银行管理系统 模拟ATM机 ※\n"
<<" ※ ※\n"
<<" ※ 请用户在使用前选择开户: ※\n"
<<" ※ 1 28、注册开户 ※\n"
<<" ※ 2:用户登录 ※\n"
<<" ※ 0:退出 ※\n"
<<" ※ ※\n"
<<" ※ 29、 ※\n"
<<" ※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"< 30、yAccountbook.FindItem(AccountNo);
if(FindItem.IsNull())
{
cout<<"此用户不存在!"< 31、nt m;
do{
cout<<"1:取款\n"
<<"2:存款\n"<<"3:查询余额\n"<<"4:修改密码\n"<<"0:退出\n"< 32、tbook.UpdateItem(FindItem);
MyAccountbook.StoreAccountbook();
break;
case 1:
cout<<"请输入取款金额:";
cin>>AccountPay;
FindItem.DeductBalance(AccountPay);
MyAccountbook.UpdateItem(FindItem);
MyAccountbook.StoreAccountbook();
33、 cout<<"请取钱!"< 34、ord);
cout<<"请确认新密码:"< 35、case 3:
cout<<"余额是:"<






