收藏 分销(赏)

C--课程设计报告(含源码)模拟ATM机.doc

上传人:仙人****88 文档编号:8921425 上传时间:2025-03-08 格式:DOC 页数:34 大小:285.04KB 下载积分:10 金币
下载 相关 举报
C--课程设计报告(含源码)模拟ATM机.doc_第1页
第1页 / 共34页
C--课程设计报告(含源码)模拟ATM机.doc_第2页
第2页 / 共34页


点击查看更多>>
资源描述
C++课程设计 ******************************* 课题:简单银行系统模拟ATM 系别:计科系 专业年级:XXXXXX 学号:XXXXX 姓名:XXXX 一、 设计任务分析 根据课程设计要求及个人具体情况,分析如下:系统具有注册开户、用户登录、退出功能。 注册开户中有身份证号码、姓名、地址、电话号码、货币类型、预存金额。 用户登录中,用户登录成功后,才能享受取款、存款、修改密码等服务。 二、 类(对象)设计 据上得,设计类AccountItem和Accountbook。其类图如下: AccountItem 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 name,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); 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 UpdateItem(AccountItem Item); 三、 流程图 ATM 退出 用户登录 注册开户 取款 存款 修改密码 退出 账号 密码 姓名 身份证号 住址 电话 货币类型 预存金额 OK 四、源代码 #include <string> #include <iostream> #include <fstream> using namespace std; class AccountItem { private: string m_Anumber; 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_Currency=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; 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 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); void StoreBalance(double 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; 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_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::GetBalance() { 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_Balance; cin>>m_Anumber; cin>>m_Password; } void AccountItem::write(ofstream &cout) { cout<<m_ID<<endl; cout<<m_Name<<endl; cout<<m_Adress<<endl; cout<<m_TEL<<endl; cout<<m_Currency<<endl; cout<<m_Balance<<endl; cout<<m_Anumber<<endl; cout<<m_Password<<endl; } AccountItem::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; 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<<m_Anumber<<endl; cout<<"密码:"; cout<<m_Password<<endl; cout<<"姓名:"; cout<<m_Name<<endl; cout<<"存款余额:"; cout<<m_Balance<<endl; } class Accountbook { private: AccountItem b[100]; int m_AccountCount; public: void SetAccountbook(); Accountbook(); void LoadAccountbook(); void StoreAccountbook(); AccountItem FindItem(string number); bool UpdateItem(AccountItem 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<<"请输入帐号:"; cin>>AccountNo; cout<<"请输入密码:"; while(1){ cin>>password1; cout<<"请输入确认密码:"<<endl; cin>>password2; if(password1==password2) { AccountPassword=password1; break; } else { cout<<"密码和确认密码不同!"<<"请重新输入:"<<endl; } } cout<<"请输入姓名:"; cin>>ItemName; cout<<"请输入身份证号:"; cin>>ID; cout<<"请输入家庭住址:"; cin>>Adress; cout<<"请输入电话号码:"; cin>>TEL; int i; while(1){ cout<<"请选择货币种类:"<<endl; cout<<"1.人民币 2.美元"<<endl; cin>>i; if(i==1){ Currency="人民币";cout<<"请输入预存款:"; cin>>Balance;break;} else if(i==2){ Currency="美元";cout<<"请输入预存款:"; cin>>Balance;Balance=Balance*8;break;} else {cout<<"选择类型错误!"<<endl;continue;} } b[m_AccountCount].SetAccountItem(AccountNo,AccountPassword,ItemName,Balance, Currency,TEL,ID,Adress); m_AccountCount++; for(int j=0;j<m_AccountCount;j++) { b[j].write(Output); } } Accountbook::Accountbook() { m_AccountCount=0; } void Accountbook::LoadAccountbook( ) { ifstream Input("accountbook.txt"); int j=0; while(Input) { b[j].read(Input); j++; } Input.close(); m_AccountCount=j; return; } AccountItem Accountbook::FindItem(string number) { int i; bool Found=false; for(i=0;i<m_AccountCount;i++) { if(b[i].GetNumber()==number) { Found=true; break; } } if(Found==true) { return b[i]; } else { return AccountItem(); } } bool Accountbook::UpdateItem(AccountItem Item) { string no=Item.GetNumber(); int i; bool flag=false; for(i=0;i<m_AccountCount;i++) { if(b[i].GetNumber()==no) { flag=true; break; } } if(flag=true) { b[i]=Item; } return flag; } void Accountbook::StoreAccountbook() { ofstream Output("accountbook.txt"); int k; for(k=0;k<m_AccountCount;k++) { b[k].write(Output); } Output.close(); return; } class Massage { private: Accountbook MyAccountbook; AccountItem FindItem; public: Massage(){} void MakeMassage(); }; void Massage::MakeMassage() { ifstream Input("accountbook.txt"); int n; string AccountNo; string AccountPassword; double AccountPay; string ItemName; double Balance; string TransactionCode; cout<<endl; do { cout<<" ※※※※※※※※※※※※※※※※※※※※※※※※※※※\n" <<" ※ ※\n" <<" ※ 欢迎使用银行管理系统 模拟ATM机 ※\n" <<" ※ ※\n" <<" ※ 请用户在使用前选择开户: ※\n" <<" ※ 1:注册开户 ※\n" <<" ※ 2:用户登录 ※\n" <<" ※ 0:退出 ※\n" <<" ※ ※\n" <<" ※ ※\n" <<" ※※※※※※※※※※※※※※※※※※※※※※※※※※※\n"<<endl; cout<<"请选择:"<<endl; cin>>n; switch(n) { case 1: MyAccountbook.SetAccountbook(); break; case 2: MyAccountbook.LoadAccountbook( ); cout<<"请输入帐号:"; cin>>AccountNo; FindItem=MyAccountbook.FindItem(AccountNo); if(FindItem.IsNull()) { cout<<"此用户不存在!"<<endl; return; } cout<<"请输入密码:"; cin>>AccountPassword; if(FindItem.GetPassword()!=AccountPassword) { cout<<"密码错误!"<<endl; return; } int m; do{ cout<<"1:取款\n" <<"2:存款\n"<<"3:查询余额\n"<<"4:修改密码\n"<<"0:退出\n"<<endl; cin>>m; switch(m) { case 2: cout<<"请输入存款金额(RMB):"; cin>>AccountPay; FindItem.StoreBalance(AccountPay); MyAccountbook.UpdateItem(FindItem); MyAccountbook.StoreAccountbook(); break; case 1: cout<<"请输入取款金额:"; cin>>AccountPay; FindItem.DeductBalance(AccountPay); MyAccountbook.UpdateItem(FindItem); MyAccountbook.StoreAccountbook(); cout<<"请取钱!"<<endl; break; case 4: cout<<"请输入原密码:"<<endl; cin>>AccountPassword; if(FindItem.GetPassword()==AccountPassword) { cout<<"请输入新密码:"<<endl; cin>>AccountPassword; FindItem.UpdatePassword(AccountPassword); cout<<"请确认新密码:"<<endl; cin>>AccountPassword; if(FindItem.GetPassword()==AccountPassword) { cout<<"修改成功!"<<endl; MyAccountbook.UpdateItem(FindItem); MyAccountbook.StoreAccountbook(); } } break; case 3: cout<<"余额是:"<<FindItem.GetBalance()<<"人民币"<<endl; break; } }while(m!=0); case 0: break; } }while(n!=0); return; } int main() { Massage d; d.MakeMassage(); return 0; } 五、测试情况 1.首页: 2.注册用户: 3.用户登录: 4.取款: 5.存款: 6.查询余额: 7.修改密码: 8.退出: 六、小结 1.系统未能实现账户类型相关的系列操作、系统安全性较低,对此感到较为遗憾。 2.通过这几个周的实践,感到自己有太多的不足之处。课程设计真的是太考验和历练人了,对我来说,这是很大的挑战,虽然做的不是很好,但我相信,有我一直的努力,一定会进步的。
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 学术论文 > 其他

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服