1、 c++银行账户管理课程设计 29 2020年4月19日 资料内容仅供参考,如有不当或者侵权,请联系本人改正或者删除。 JINGCHU UNIVERSITY OF TECHNOLOGY C++银行账户管理 课程设计报告 学 院:计算机工程学院 班 级:09级计算机科学与技术1班 学生姓名: 学 号: 设计地点( 单位) : A5-101 设 计 题 目:
2、 银行账户管理程序 完成日期: 12月 25日 指导教师评语: ____________ __ ______________________________________________________________________________________________________________________________________________ 成绩(五级记分
3、制):_____ _ __________ 教 师 签 名:__________ ________ 目 录 一、 设计思想……………………………………………………03 二、 模块设计与分析……………………………………………03 三、 程序设计介绍………………………………………………04 四、 框架结构图…………………………………………………04 五、 程序代码……………………………………………………05 六、 测试数据……………………………………………………14 七、 数据调试……………………………………………………14 八、 课程设计总结……………
4、…………………………………16 九、 课程设计教材及主要参考资料……………………………16 一、 设计思想 定义一个用户类customer和一个银行类YH, 程序运行时, 能够由用户选择进行开户、 登录、 取款、 存款、 修改密码、 转账、 销户操作, 用户销户后账号被回收, 而且该账号能够继续分配给其它账户, 不允许用户透支, 根据姓名或账号能够进行用户的信息查询, 所有的账户信息应存放到一个文件中, 能够随时的访问和更新。 二、 模块设计与分析 1. 登录页面: 输入帐号和密码, 根据用户输入的帐号和密码, 到后台文件查询, 若正确则登录成功, 并保存卡好
5、信息已备后用。若帐号存在和密码不匹配或无该帐号已经注销, 提示该帐号已存在或已注销。 2. 主界面页面: 主要导航栏有存款、 取款、 账户信息、 注销、 注销、 返回上一步。 3. 开户页面: 提供开户界面, 由用户输入新账户的信息, 将该信息保存到文件中, 并将开户金额作为该卡的第一次存款记录存人文件。 4. 存钱页面: 从登录界面得到帐号, 并提供数据输入界面, 等待用户的输入存款金额, 同时将存钱的金额显示在页面上。 5. 取款页面: 从登录界面得到帐号, 并提供数据输入界面, 等待用户输入取款金额, 如果取款金额大于该用户卡上的余额则不能取款, 或者将新的余额写人文件, 并将
6、本次取款事件写入文件同时将取钱的金额显示在页面上。 6. 账户信息页面: 从登录界面得到帐号, 把本人显示到界面中。 7. 转账页面: 从登录界面得到帐号, 输入要转入的帐号, 在输入金额, 显示在页面上, 如果金额超过余额将操作失败。 8. 注销页面: 从关闭文件, 状态为注销, 最后关闭整个系统。 三、 程序设计介绍 系统由2个类构成, YH( 银行类) 和Consumer( 客户类) , Consumer( 客户类) 是YH( 银行类) 的公有继承类。YH( 银行类) 中有实现登陆系统, 开户, 销户, 转账, 退出系统等功能函数, Consumer( 客户类)
7、中有实现存钱, 取钱, 修改个人账号密码, 显示个人账号信息等功能函数。因为Consumer( 客户类) 是YH( 银行类) 的公有继承类, 因此, 一个用户只需创立一个Consumer( 客户类) 对象, 当用户进行开户, 销户等操作时, 能够直接调用YH( 银行类) 的成员函数。 银行类中的函数: void set_account(); //银行开户功能 void del_account(); //注销账户功能 void transfer(int); //转账功能 void enter_account(); //进入用户个人信息功能 void addmoney(int,
8、float);//存款功能
void exitYH();// 退出系统
银行管理系统
存钱页面
取款页面
转账页面页面
修改密码
查看信息
登录界面
注册开户
主界页面
注销退出
四、 框架结构图
五、 程序代码
#include
9、et_account();//银行开户功能 void del_account(); //注销账户功能 void transfer(int); //转账功能 void enter_account(); //进入用户个人信息功能 void addmoney(int,float);//存款功能 void exitYH();// 退出系统 void functionshow(); void save(); void load();// 功能界面 protected: consumer *account[20]; static int acnum
10、//账户数 }; class consumer:public YH//用户类,继承银行类的属性 { public: friend class YH; consumer(int id,string Name,string PassWord,float m) { ID=id;name=Name;money=m;passwd=PassWord; } consumer(){ID=0;name='0';money=0;passwd='0';} int get_id(){return ID;} voi
11、d savemoney();// 取钱 string get_passwd(){return passwd;}// 取得密码 void display(); void fetchmoney(); //取钱 void change_passwd(); void add_money(float); void dec_money(float); float get_money();//卡卡转帐 private: int ID; //开户帐号 string passwd; // 用户密码
12、
string name; // 用户姓名
float money; //开户金额
};
void YH::save()
{ofstream ofile("bankdat.dat",ios::out);
ofstream outfile("bankdat.dat",ios::out);
int n=0;
outfile< 13、ount[n]->name<<" ";
outfile< 14、nfile>>id;
infile>>m;
infile>>nam;
infile>>passw;account[n]->passwd;
consumer * acc = new consumer(id,nam,passw,m);
account[n] = acc;
}
infile.close();
cout<<"读取资料正常!"< 15、ile((i 16、 }
if(account[x]->get_money()dec_money(b);account[i]->add_money(b);}
return;
}
/*账户金额计算*/
void consumer::add_money(float x)
{money=x+money;}
void consumer::dec_money(float x)
{money=money-x;}
void YH::addmoney(int x,float 17、y)
{account[x]->money=account[x]->money-y;
}
float consumer::get_money()
{return money;}
void main()
{YH yh;
yh.functionshow();
}
/*主界面显示*/
void YH::functionshow()
{
int n;
do
{system("cls"); load();
cout< 18、 19、
cout<<"㊣ ㊣"< 20、"㊣ ㊣"< 21、 break;
case 2:enter_account();//登录
break;
case 3: del_account();//注销
break;
case 4: exitYH();//退出
break;
}
cin.get();
}
while(true);
}
void YH::enter_account()
{int id;
cout<<"请输入帐号:";
cin>>id;
int flag = 1;
int i = 0; //__pag 22、e_break__
while((i 23、o{system("cls");
cout<<"请选择下列操作: "< 24、2.取款 ◎"< 25、◎ ◎"< 26、"< 27、
case 6:return;
}cin.get();cin.get();
}
while(1);
}
void YH::set_account()
{
int id;
string nam;
string passw;
float m;
cout< 28、 cin>>passw;
cout< 29、account()
{
int id;
cout< 30、um;j++)
{
account[j] = account[j+1];
}
account[acnum-1]=NULL;
acnum--;
cout<<"你的账号已注销!!"< 31、次密码不一样,按输入键返回上一层菜单!"< 32、endl;
}
else
{money=money-m;
cout< 33、at c;
char ch;
do
{
cout< 34、out<<"→";
cin>>ch;
}
}while(ch=='y'||ch=='Y');
}
int YH::acnum=0;
void consumer::display()//用户信息界面
{system("cls");
cout<<"#####################################"< 35、<<"# 余额: "< 36、10000
10100
阮伟
123
100
0
七、 数据调试:
1.登陆界面
2.开户界面
3.账户操作
八 、 课程设计总结
经过这次C++课程设计, 使我学到面向对象的程序设计思想用到具体的工作和学习中, 加深对类与对象的理解, 是将计算机课程与实际问题相联接的关键步骤。经过课程设计, 能够提高自己的分析问题、 解决问题的能力, 从而运用所学知识解决实际问题的能力, 并培养基本的、 良好的程序设计技能。
这次的课程设计, 让我用了一个相对比较集中的时间去练习我的编程, 特别是自己的动手能力, 因为这次的 37、课程设计覆盖面比较广泛。经过了这次的设计, 让我找到自己学习上的漏洞, 一些课程设计上的以前没有弄懂的知识, 都在这次的课程设计上有所提高。
九、 课程设计教材及主要参考资料
教学参考书
[1]李素若.《C++面向对象程序设计》.北京: 化学工业出版社, .
参考资料:
[1]郑莉, 傅仕星编, 《C++面向对象程序设计》, 清华大学出版社, 9月出
[2]谭浩强编, 《C++面向对象程序设计》, 清华大学出版社, 7月出版
[3]李师贤等译, 《C++精髓》, 机械工业出版社, 8月出版
[4]Davis Chapman, 《学用Visual c++ 6.0》, 清华大学出版社, 7月出版
[5]郑莉, 傅仕星编, C++语言面向对象程序设计习题与实验指导, 清华大学出版社, 9月出版






