<pre name="code" class="html">(一)main.cpp
<pre name="code" class="cpp">/*****************************************************
*版权所有(C)
*
*文件名:main.cpp
*文件标识:
*内容摘要:该文件包含了主函数
*其他说明:
*当前版本:
*作 者:陈丹妮
*完成日期:2015.7.18
*
*修改记录:3
*修改日期:2015.7.18
*版本号:
*修改人:陈丹妮
修改内容:
**********************************************************/
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <cstring>
#include <fstream>
#include "bank.h"
#include <cstdlib>
#include <conio.h>
#include <ctype.h>
using namespace std;
int main()
{
int q;
for(q=0; q<8; q++)
{
Sleep(100);
cout<<"◆";
}
system("cls");
system("color 14");
cout<<endl;
cout<<" +-------------------------------------------+\n"<<endl;
cout<<" + 欢迎使用陈氏银行,竭诚为你服务! +\n"<<endl;
cout<<" +-------------------------------------------+\n"<<endl;
if(pass())
{
Bank b;
b.work();
}
return 0;
}
</pre><pre name="code" class="html">(二)bank.h
<pre name="code" class="cpp">/*****************************************************
*版权所有(C)
*
*文件名:bank.h
*文件标识:
*内容摘要:在该文件中,包含了两个类的定义以及对所有函数的声明,用来对总的程序做一个说明。
*其他说明:
*当前版本:
*作 者:陈丹妮
*完成日期:2015.7.18
*
*修改记录:3
*修改日期:2015.7.18
*版本号:
*修改人:陈丹妮
修改内容:
**********************************************************/
#ifndef BANK_H_INCLUDED
#define BANK_H_INCLUDED
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <cstring>
#include <fstream>
#include <cstdlib>
#include <conio.h>
#include <ctype.h>
using namespace std;
const int upnum=2000;//系统最多容纳的用户数
class Bank;
class User
{
public:
void setUser(int acc,string na,int pw,double mon,double bal,string id,int sta);//传私有成员递值
void showName();
void showBalance(string prompt);//显示账户余额
bool psaaWordISRight();//判断密码是否正确
bool ISNormalUser();//存款,取款,转账等功能需要账户处于正常状态,判断账户是否处于正常状态
friend class Bank;//将Bank设为User的友元类
private:
int account;//账号
int password;//密码
string name;//名字
double balance;//余额
double money;//未加利率的金额
string identificant;//身份证号
int status;//账户状态:0—正常,1—挂失,2—销户
};
class Bank
{
public:
Bank();//从文件中读取数据
~Bank();//程序结束时将数据存入文件中
void work();//业务驱动
void openAccount();//开户
void cancelAccount();//销户
void save();//存款
void withdraw();//取款
void showAccount();//显示余额
void transferAccount();//转账
void reportLoss();//挂失
void canlelLoss();//解除挂失
void updatePassword();//修改密码
int getUser();//输入账号查询用户,返回用户在对象数组的下表
private:
int N;//实际用户数目
static double rate;//利率
User users [upnum];//User数组
};
int pass();//业务员登录
int chooseInMenu();//显示菜单并由业务员选择
int intputPassword();//返回键盘输入的密码
#endif // BANK_H_INCLUDED
(三)user.cpp
<pre name="code" class="cpp">/*****************************************************
*版权所有(C)
*
*文件名:bank.h
*文件标识:
*内容摘要:在该文件中,包含了管与user类中的所有函数的定义
*其他说明:
*当前版本:
*作 者:陈丹妮
*完成日期:2015.7.18
*
*修改记录:3
*修改日期:2015.7.18
*版本号:
*修改人:陈丹妮
修改内容:
**********************************************************/
#include <iostream>
#include "bank.h"
#include <cstring>
using namespace std;
/*****************************************************
*功能描述:定义一个函数来获取用户的信息
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:
**********************************************************/
void User::setUser(int acc,string na,int pw,double mon,double bal,string id,int sta) //定义一个函数来获取用户的信息
{
account=acc;
password=pw;
name=na;
money=mon;
balance=bal;
identificant=id;
status=sta;
}
/*****************************************************
*功能描述:定义一个函数来显示姓名
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:
**********************************************************/
void User::showName()
{
cout<<"户主姓名:"<<name<<endl;
}
/*****************************************************
*功能描述:定义一个函数来显示余额
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:
**********************************************************/
void User::showBalance(string prompt) //prompt是一个要显示的一段字符,可以是英文可以是中文的
{
cout<<prompt<<" "<<balance<<"元"<<endl;
}
/*****************************************************
*功能描述:定义一个函数来输入密码及判断
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:
**********************************************************/
bool User::psaaWordISRight() //输入密码及判断
{
int iPass;
bool right=true;
cout<<"请输入密码:"<<endl;
iPass=intputPassword();
if(iPass!=password)
{
right=false;
cout<<"密码输入错误,操作失败!"<<endl;
}
return right;
}
/*****************************************************
*功能描述:定义一个函数来判断该用户处于哪一种状态
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:
**********************************************************/
bool User::ISNormalUser() //判断该用户处于哪一种状态
{
bool normal=true;
if(status!=0)
{
normal=false;
cout<<"该账户处于"<<(status==1?"挂失":"销户")<<"状态,不能进行操作!"<<endl;
}
return normal;
}
(四)bank.cpp
<pre name="code" class="cpp">/*****************************************************
*版权所有(C)
*
*文件名:bank.h
*文件标识:
*内容摘要:在该文件中,包含了关于bank类中的所有函数的定义,用来实现各业务的功能
*其他说明:
*当前版本:
*作 者:陈丹妮
*完成日期:2015.7.18
*
*修改记录:3
*修改日期:2015.7.18
*版本号:
*修改人:陈丹妮
修改内容:
**********************************************************/
#include "bank.h"
#include <iostream>
#include <iomanip>
#include <windows.h>
#include <cstring>
#include <fstream>
#include <cstdlib>
#include <conio.h>
#include <ctype.h>
using namespace std;
double Bank::rate=0.0225;
/*****************************************************
*功能描述:定义一个函数来从磁盘文件的输入,已输入的方式打开文件
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:
**********************************************************/
Bank::Bank()
{
ifstream infile("account.txt",ios::in); //从磁盘文件的输入,已输入的方式打开文件
if(!infile)
{
cerr<<"open error!"<<endl;//表示文件输入不成功
exit(1);
}
int i=0;
int acc;
int pw;
string na;
double bal;
string id;
int sta;
double mon;
while (infile>>acc>>na>>pw>>bal>>id>>sta) //读取文件中的信息
{
users[i].setUser(acc,na,pw,mon,bal,id,sta); //在传递给user对象的私有成员
i++;
}
N=i; //记录实际用户的数量
infile.close(); //关闭文件
}
/*****************************************************
*功能描述:定义一个函数来输出文件流outfile,以输出方式打开磁盘文件
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:
**********************************************************/
Bank::~Bank()
{
ofstream outfile("account.txt",ios::out); //定义输出文件流outfile,以输出方式打开磁盘文件
if(!outfile)
{
cerr<<"open error!"<<endl;
exit(1);
}
int i;
for(i=0; i<N; i++) //最后析构时,最终user的信息
{
outfile<<users[i].account<<" ";
outfile<<users[i].name<<" ";
outfile<<users[i].password<<" ";
outfile<<users[i].balance<<" ";
outfile<<users[i].identificant<<" ";
outfile<<users[i].status<<" "<<endl;
}
outfile.close();
}
/*****************************************************
*功能描述:定义一个函数来选择办理的业务。
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:
**********************************************************/
void Bank::work()
{
int ichoice;
int q;
for(q=0; q<8; q++)
{
Sleep(100); //延迟时间显示◆
cout<<"◆";
}
system("cls");
system("color 15"); //显示窗口颜色的
do
{
ichoice=chooseInMenu(); //选择菜单
switch(ichoice)
{
case 1:
openAccount(); //开户
break;
case 2:
cancelAccount(); //销户
break;
case 3:
save(); //存款
break;
case 4:
withdraw(); //取款
break;
case 5:
showAccount(); //查余额
break;
case 6:
transferAccount(); //转账
break;
case 7:
reportLoss(); //挂失
break;
case 8:
canlelLoss(); //解除挂失
break;
case 9:
updatePassword(); //修改密码
break;
case 0:
cout<<"+++++欢迎再次您使用,陈氏竭诚为你服务!+++++"<<endl;
}
}
while(ichoice);
}
/*****************************************************
*功能描述:定义一个函数来开新用户
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:
**********************************************************/
void Bank::openAccount() //开户
{
if(N==upnum) //已经到达系统最多容纳的用户数
{
cout<<"银行用户数目已达上限,不能在开户!"<<endl;
return ;
}
int acc;
int pw;
string na;
double mon;
double bal;
string id;
int sta;
int ipw1,ipw2;
int year;
acc=10001+N;
cout<<"正在开户......"<<endl;
cout<<"账号:"<<acc<<endl;
cout<<"请输入户主的名字:";
cin>>na;
cout<<"请输入身份证号:";
cin>>id;
cout<<"请输入密码:";
ipw1=intputPassword();
cout<<"确认密码:";
ipw2=intputPassword();
if(ipw1==ipw2) //判断两次的密码是否一致,相同,开户成功
{
pw=ipw1;
sta=0;
cout<<"存入金额:";
cin>>bal;
ofstream outfile1("expence_record.txt",ios::app); //定义输出文件流outfile,以输出方式打开磁盘文件,写入的数据将会添加到文件的末尾
if(!outfile1)
{
cerr<<"expence_record file cannot open!"<<endl;
exit(1);
}
outfile1<<acc<<" 存入 "<<acc<<" "<<setiosflags(ios::fixed)<<setprecision(2)<<bal<<" 元"<<endl;//记录每次的存入
outfile1.close();
ofstream outfile2("account.txt",ios::app); //定义输出文件流outfile2,以输出方式打开磁盘文件,写入的数据将会添加到文件的末尾,
if(!outfile2)
{
cerr<<"account.txt file cannot open!"<<endl;
exit(1);
}
outfile2<<acc<<" "<<na<<" "<<ipw1<<" "<<setiosflags(ios::fixed)<<setprecision(2)<<bal<<" "<<id<<" "<<sta<<endl;
//在开户的那个文件里也会保存信息
outfile2.close();
cout<<"请输入要存入的期限(年):";
cin>>year;
double sum=bal+bal*double(year)*rate; //计算总数=本金+所获得利息
cout<<"期限到时,您将拥有";
cout<<setiosflags(ios::fixed)<<setprecision(2)<<sum<<"元"<<endl;
users[N].setUser(acc,na,pw,mon,sum,id,sta); //用对象数组保存住用户的信息
N++; //记录一个用户
cout<<"成功开启!"<<endl;
}
else
{
cout<<"两次密码不一致,开启账户失败!"<<endl;
}
}
/*****************************************************
*功能描述:定义一个函数来销户
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:
**********************************************************/
void Bank::cancelAccount() //销户
{
int who;
who=getUser(); //获取销户的账号
if(who>=0)
{
users[who].showName();
if(users[who].psaaWordISRight()) //密码正确时
{
users[who].showBalance("余额"); //显示该用户余额
cout<<"确认销户(y/n)?";
if(tolower(getchar())=='y')
{
users[who].showBalance("销户成功!,本次取款金额为");
users[who].balance=0; //吊销账户
users[who].status=2; //显示为销户状态
}
else
{
cout<<"您取消了此操作,销户失败"<<endl;
}
fflush(stdin); //清理键盘缓存区已有的输入
}
}
}
/*****************************************************
*功能描述:定义一个函数来进行存储业务,在保存到文件中去
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:
**********************************************************/
void Bank::save() //存储
{
int who,year;
double money;
who=getUser(); //获取有效的账户
if(who>=0)
{
if(users[who].status==0) //账号处于正常状态时
{
users[who].showName();
if(users[who].psaaWordISRight())
{
cout<<"请输入存入的金额:";
cin>>money;
ofstream outfile("expence_record.txt",ios::app);//定义输出文件输出流,接着文件的末尾
if(!outfile)
{
cerr<<"expence_record file cannot open!"<<endl;
exit(1);
}
outfile<<users[who].account<<" 存入 "<<users[who].account<<" "<<setiosflags(ios::fixed)<<setprecision(2)<<money<<" 元"<<endl;
//用文件保存此次的存入记录
outfile.close();
ifstream infile("expence_record.txt",ios::in); //定义一个文件输入流,读取数据
if(!infile)
{
cerr<<"expence_record file cannot open!"<<endl;
exit(1);
}
cout<<users[who].account<<" 存入 "<<users[who].account<<" "<<setiosflags(ios::fixed)<<setprecision(2)<<money<<" 元"<<endl;
infile.close();
cout<<"请输入要存入的期限(年):";
cin>>year;
double sum=money+money*double(year)*rate;
cout<<"期限到时,您将拥有"<<setiosflags(ios::fixed)<<setprecision(2)<<sum<<"元"<<endl;
//计算利息,总共=本金+所获得利息
users[who].balance+=sum;// 将此次存入的钱,加入到原来的余额中,在结束操作时,文件account将会显示改用该用户的总额
}
}
else if(users[who].status==1)
{
cout<<"该用户的账户处于挂失状态,存款失败!"<<endl;
}
else
{
cout<<"该用户的账户已经销户,存款失败!"<<endl;
}
}
return;
}
/*****************************************************
*功能描述:定义一个函数来查询已有用户的信息及办理业务的记录
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:
**********************************************************/
void Bank::showAccount()
{
int who;
string sta[3]= {"正常","挂失","已经销户"};
who=getUser();
if(who>=0)
{
users[who].showName();
if(users[who].psaaWordISRight())
{
users[who].showBalance("余额有");
cout<<"状态为"<<sta[users[who].status]<<endl;
}
cout<<"是否要查看您的每一笔账单(y/n)?";
char ch;
cin>>ch;
if(ch=='y')
{
cout<<"您的账单如下:"<<endl;
ifstream infile("expence_record.txt",ios::in);
if(!infile)
{
cerr<<"expence_record file cannot open!"<<endl;
exit(1);
}
//从文件中读取每笔账单
int r1,r3;
string r2,r4,r5;
while(infile>>r1>>r2>>r3>>r4>>r5)
{
if(r1==users[who].account&&r3==users[who].account)
cout<<r2<<" "<<r4<<" "<<r5<<endl;
else if(r1==users[who].account)
cout<<r2<<" "<<r3<<"("<<users[r3-10000].name<<")"<<" "<<r4<<" "<<r5<<endl;
}
infile.close();
}
}
return ;
}
/*****************************************************
*功能描述:定义一个函数来办理取钱业务
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:
**********************************************************/
void Bank::withdraw() //取钱
{
int who;
double money;
who=getUser();
if(who>=0)
{
if(users[who].ISNormalUser())
{
users[who].showName();
if(users[who].psaaWordISRight())
{
cout<<"输入取款额";
cin>>money;
if(money>users[who].balance) //判断是否超额取钱
{
cout<<"对不起,您的余额不足!"<<endl;
}
else
{
users[who].balance-=money; //将会记录取钱之后,还剩多少钱,会在account文件中显示最终的余额
users[who].showBalance("取款后,您还有"); //调用显示余额
ofstream outfile("expence_record.txt",ios::app); //定义一个输出流的文件,读入所剩余的余额
if(!outfile)
{
cerr<<"expence_record file cannot open!"<<endl;
exit(1);
}
outfile<<users[who].account<<" 取款 "<<users[who].account<<" "<<setiosflags(ios::fixed)<<setprecision(2)<<money<<" 元"<<endl;
outfile.close();
}
}
}
}
return ;
}
/*****************************************************
*功能描述:定义一个函数来办理一个转账的业务
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:
**********************************************************/
void Bank::transferAccount() //转账
{
int whoout,whoin;
double money;
whoout=getUser();
cout<<"转出自";
if(whoout>=0)
{
if(users[whoout].ISNormalUser())
{
users[whoout].showName();
if(users[whoout].psaaWordISRight())
{
cout<<"请输入转入的金额:";
cin>>money;
if(money>users[whoout].balance)
cout<<"金额不足,转账失败!"<<endl;
else
{
cout<<"转出到:";
whoin=getUser();
if(whoin>=0)
{
if(users[whoin].ISNormalUser()) //判断是否为正常的用户
{
users[whoout].balance-=money;//记录转入和转出账户的余额
users[whoin].balance+=money;
users[whoout].showBalance("转账户,您有");
ofstream outfile("expence_record.txt",ios::app); //定义一个输出流文件,读入文件中进行保存
if(!outfile)
{
cerr<<"expence_record file cannot open!"<<endl;
exit(1);
}
outfile<<users[whoin].account<<" 转账到 "<<users[whoout].account<<" "<<setiosflags(ios::fixed)<<setprecision(2)<<money<<" 元"<<endl;
outfile.close();
}
}
}
}
}
}
return ;
}
/*****************************************************
*功能描述:定义一个函数来办理挂失的业务
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:
**********************************************************/
void Bank::reportLoss() //挂失
{
int who;
who=getUser();
if(who>=0)
{
users[who].showName();
if(users[who].psaaWordISRight())
{
if(users[who].status==0)
{
users[who].status=1; //记录该用户现在的挂失状态
cout<<"挂失成功!"<<endl;
}
else if(users[who].status==1)
cout<<"该账户已经挂失!"<<endl;
else
cout<<"该账户已经销户,操作失败!"<<endl;//否则为销户状态
}
}
return;
}
/*****************************************************
*功能描述:定义一个函数来输出办理解挂的业务
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:
**********************************************************/
void Bank::canlelLoss() //解挂
{
int who;
who=getUser();
if(who>=0)
{
users[who].showName();
if(users[who].psaaWordISRight())
{
if(users[who].status==0)
{
cout<<"该用户处于正常状态,不需要解除挂失!"<<endl;
}
else if(users[who].status==1)
{
users[who].status=0; //记录该用户的恢复为正常的正常的状态
cout<<"解除挂失成功! "<<endl;
}
else
{
cout<<"该用户已销户,操作失败!"<<endl;
}
}
}
return ;
}
/*****************************************************
*功能描述:定义一个函数来办理修改密码的业务
*输入参数:无
*输出参数:无
*返回值:无
*其他说明:
**********************************************************/
void Bank::updatePassword() //修改密码
{
int who;
int iPass1,iPass2;
who=getUser();
if(who>=0)
{
users[who].showName();
if(users[who].psaaWordISRight()) //先判断原密码是否输入正确
{
cout<<"新密码:"<<endl;
iPass1=intputPassword();
cout<<"确认密码:"<<endl;
iPass2=intputPassword();
if(iPass1==iPass2) //如果两次的密码输入是一样的那么,改密码成功
{
users[who].password=iPass1;
cout<<"密码修改成功!"<<endl;
}
else
cout<<"两次输入的不同,修改失败!"<<endl;
}
}
}
/*****************************************************
*功能描述:定义一个函数来进行用户的查找
*输入参数:无
*输出参数:无
*返回值:一个整型值
*其他说明:
**********************************************************/
int Bank::getUser() //查找用户的账号
{
int id;
cout<<"账号:";
cin>>id;
int idex=-1;
int low=0,high=N-1,mid;
while (low<=high)
{
mid=(low+high)/2;
if(users[mid].account==id)
{
idex=mid;
break;
}
else if(users[mid].account>id)
high=mid-1;
else
low=mid+1;
}
if(idex<0)
cout<<"此用户不存在,本次操作失败!"<<endl;
return idex;
}
</pre>(五)work.cpp<pre>
<pre name="code" class="cpp">/*****************************************************
*版权所有(C)
*
*文件名:bank.h
*文件标识:
*内容摘要:在该文件中,包含了密码输入,业务选择,密码是否正确三个函数
*其他说明:
*当前版本:
*作 者:陈丹妮
*完成日期:2015.7.18
*
*修改记录:3
*修改日期:2015.7.18
*版本号:
*修改人:陈丹妮
修改内容:
**********************************************************/
#include <iostream>
#include <iomanip>
#include "bank.h"
#include <windows.h>
#include <cstring>
#include <fstream>
#include <cstdlib>
#include <conio.h>
#include <ctype.h>
using namespace std;
/*****************************************************
*功能描述:定义一个函数来对密码的处理
*输入参数:无
*输出参数:无
*返回值:一个整型值
*其他说明:
**********************************************************/
int intputPassword() //密码的处理
{
char ch;
int iPass=0;//转换为数字
int i;
while(1)
{
for(i=0; i<6; ++i)
{
ch=getch();
putchar('*'); //输入的密码不显示数字,而是用*来代替,且,输入不能返回输入
if(isdigit(ch))
{
iPass=iPass*10+(ch-48);
}
else
{
iPass=0;
break;
}
}
fflush(stdin);//清理键盘缓存区已有的输入
cout<<endl;
if(iPass==0)
{
cout<<"密码要求全为数字且不能都是0!"<<endl;
cout<<"请重新输入!";
}
else
break;
}
return iPass;
}
/*****************************************************
*功能描述:定义一个函数来让用户进行选择办理的业务
*输入参数:无
*输出参数:无
*返回值:一个整型值
*其他说明:
**********************************************************/
int chooseInMenu()
{
int i;
while (1)
{
cout<<endl;
cout<<" + 请您选择办理的业务选项: +\n"<<endl;
cout<<" +----------------------------+\n"<<endl;
cout<<" + 1.开户 2.销户 3.存款 +\n";
cout<<" + 4.取款 5.查询 6.转账 +\n";
cout<<" + 7.挂失 8.解挂 9.改密 +\n";
cout<<" + 0.退出 +\n"<<endl;
cout<<" +----------------------------+\n"<<endl<<endl;
cout<<"请选择您所需要办理的业务序号:";
cin>>i;
if(i>=0&&i<=9)
break;
else
cout<<"输入有误,请您重新选择功能!"<<endl;
}
return i;
}
/*****************************************************
*功能描述:定义一个函数来让用户进行选择办理的业务
*输入参数:无
*输出参数:无
*返回值:一个整型值
*其他说明:
**********************************************************/
int pass()//验证密码是否正确
{
char sNameInFile[20];
char sPassInFile[20];
ifstream infile("password.txt",ios::out); //定义一个输入流文件,读取提前保存业务人员的姓名及登录密码
if(!infile)
{
cerr<<"password file cannot open!"<<endl;
exit(1);
}
infile>>sNameInFile>>sPassInFile;
infile.close();
char sName[20];
char sPass[20];
char ch;
int itry=3;
int right=0;
int q;
for(q=0; q<8; q++)
{
Sleep(100);
cout<<"◆";
}
system("cls");
system("color 17");
do
{
cout<<"请输入业务员用户名:"<<endl;
cin>>sName;
cout<<"请输入密码"<<endl;
int i=0;
while((ch=getch())!='\r')
{
sPass[i++]=ch;
putchar('*');
}
sPass[i]='\0';
fflush(stdin);
cout<<endl;
if(strcmp(sName,sNameInFile)==0&&strcmp(sPass,sPassInFile)==0)
{
right=1;
break;
}
else
{
itry--;
if(itry>0)
{
cout<<"超过3次将会退出,您还可以尝试"<<itry<<"次!"<<endl;
}
else
{
cout<<"对不起,您不能进入系统!"<<endl;
}
}
}
while(itry);
return right;
}
(六)各个功能的实现,如图所示:
</pre><pre name="code" class="html"><img src="https://img-blog.csdn.net/20150718132708849?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<img src="https://img-blog.csdn.net/20150718132801944?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<img src="https://img-blog.csdn.net/20150718132843877?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<img src="https://img-blog.csdn.net/20150718132925631?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<img src="https://img-blog.csdn.net/20150718132944038?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<img src="https://img-blog.csdn.net/20150718133015241?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<img src="https://img-blog.csdn.net/20150718132900529?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<img src="https://img-blog.csdn.net/20150718133119244?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<img src="https://img-blog.csdn.net/20150718133138571?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<img src="https://img-blog.csdn.net/20150718132410822?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<img src="https://img-blog.csdn.net/20150718132443880?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<img src="https://img-blog.csdn.net/20150718132556635?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
<img src="https://img-blog.csdn.net/20150718132629348?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQv/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/Center" alt="" />
</pre><pre name="code" class="html"><span style="font-size:24px;">心得体会:这个代码写了很长时间,终于写好了,当非常用心的写一个东西的时候,我可以从中学到很多的知识,包括平时没有积累到的知识,查漏补缺,同时,我也问了一些同学和老师一些问题,很谢谢他们能够为我耐心的解答问题,才完成了这次的课程设计,看书=是很有必要的。希望我能够继续学好C++,和以后我要学的课程。继续努力吧!</span>
</pre><pre>