C++银行系统电子报告.docx

上传人:b****6 文档编号:7077259 上传时间:2023-01-17 格式:DOCX 页数:27 大小:21.10KB
下载 相关 举报
C++银行系统电子报告.docx_第1页
第1页 / 共27页
C++银行系统电子报告.docx_第2页
第2页 / 共27页
C++银行系统电子报告.docx_第3页
第3页 / 共27页
C++银行系统电子报告.docx_第4页
第4页 / 共27页
C++银行系统电子报告.docx_第5页
第5页 / 共27页
点击查看更多>>
下载资源
资源描述

C++银行系统电子报告.docx

《C++银行系统电子报告.docx》由会员分享,可在线阅读,更多相关《C++银行系统电子报告.docx(27页珍藏版)》请在冰豆网上搜索。

C++银行系统电子报告.docx

C++银行系统电子报告

计算机与信息工程学院实验报告

 

课程名称:

高级语言课程设计

实验项目:

银行活期储蓄

学生姓名:

班级):

学生学号:

_

联系电话

所学专业:

教师姓名:

报告完成时间:

2010年月日

实验报告成绩

实验项目一、银行活期储蓄系统主菜单模块设计与实现

1.1库函数描述(原型、功能、头部文件)

功能:

显示菜单

选择提示并接收用户输入

使用多路选择语句处理用户选择

main.cpp

头文件:

iostreamstdlib.hvectormenu.hkh.hinit.hPerson.hsave.hpx.hqk.h

menu.cpp头文件:

iostreamstdlib.h

1.2编码(必须附加注释)

main.cpp

#include

#include

#include

#include"menu.h"

#include"kh.h"

#include"init.h"

#include"Person.h"

#include"save.h"

#include"px.h"

#include"qk.h"

#include"jx.h"

usingnamespacestd;

vectorV;

intmain()

{

charn;

system("color3f");//背景颜色

init();//添加储存文件信息

while(true)

{

menu();//输出菜单

cin>>n;

switch(n)//选择功能

{

case'1':

kh();break;//开户

case'2':

ck();break;//存款

case'3':

qk();break;//取款

case'4':

cx();break;//查询

case'5':

jx();break;//计息

case'6':

px();break;//排序

case'7':

save();return0;//退出时保存用户信息

default:

cout<<"输入错误,请重新输入\n";getchar(),getchar();

}

}

menu.cpp

#include

#include

usingnamespacestd;

voidmenu()

{

system("cls");

cout<<"******银行系统主菜单******\n"

<<"1:

开户\n"

<<"2:

存款\n"

<<"3:

取款\n"

<<"4:

查询\n"

<<"5:

计息\n"

<<"6:

财富排行榜\n"

<<"7:

退出\n";

}

1.3实验小结(实验遇到的问题,解决方法)

如果将用于接受用户输入选择的变量定义为整型,则当输入非数字字符时候,程序将进入死循环。

办法:

通过switch语句当输入’1-7’字符以外字符时,输出“输入错误,请重新输入”

实验项目二、银行活期储蓄系统开户模块设计与实现

2.1库函数描述(原型、功能、头部文件)

kh.cpp

输入身份证并验证是否合法(身份证号长度、组成),合法返回假否则返回真

输入和确认密码,并验证密码是否合法,如果合法则返回假,否则返回真

输入开户金额并验证金额是否合法,合法返回假,否则返回真

头文件:

iostreamstdlib.hvectorPerson.hconio.htime.h

 

2.2帐户类定义Person

2.3编码(必须附加注释)

#include

#include

#include

#include"Person.h"

#include

#include

usingnamespacestd;

externvectorV;

boolid_ok(string&a);

boolmima(char[]);

voidkh()

{

intm,k;

stringt,p,q;

while(true)

{

system("cls");

cout<<"*********************开户菜单***********************\n"

<<"1:

开户\n"

<<"2:

退出\n";

cin>>k;

switch(k)

{

case1:

cout<<"请输入您的身份证号(18位数字):

\n";

cin>>t;

if(id_ok(t))//验证身份证号是否合法

{

do

{

system("cls");

chars[20];

cout<<"请输入您的密码(6-16位字母,数字):

\n";

if(mima(s))//验证密码是否合法

p=s;

system("cls");

cout<<"请再次输入您的密码:

\n";

if(mima(s))

q=s;

system("cls");

if(q!

=p)

cout<<"您输入的密码有误,请重新输入!

\n";

}

while(q!

=p);

while(true)

{

system("cls");

cout<<"请输入您的开户金额(1-99999999元):

\n";

cin>>m;

system("cls");

if(m>0&&m<100000000)

{

Personp(t,q,m);

V.push_back(p);

p.print();

system("pause");

break;

}

else

{

cout<<"您输入的金额有误\n";

system("pause");

}

}

}

else

{

system("cls");

cout<<"你输入的身份证号码有误\n";

system("pause");

continue;

}

case2:

return;

default:

cout<<"您的输入有误\n";system("pause");continue;

}

}

}

boolid_ok(string&a)//验证身份证号是否合法

{

if((int)a.length()!

=18)

returnfalse;

boolk=true;

for(inti=0;i<(int)a.length();++i)

if(a[i]>'9'||a[i]<'0')

{

k=false;

break;

}

for(intj=0;j<(int)V.size();++j)

{

if(V[j].get_id()==a)

{

k=false;

cout<<"该用户已存在"<

break;

}

}

returnk;

}

boolmima(chars[])//验证密码是否合法

{

charch;

intp=0;

while((ch=getch())!

='\r')

{

s[p++]=ch;

putch('*');

}

s[p]='\0';

if(p<6&&p>16)

{

cout<<"您输入的密码不符合要求!

\n";

returnfalse;

}

returntrue;

}

2.4实验小结(实验遇到的问题,解决方法)

在判断当前用户是否开过户时,未遍历所有记录而做出结论

方法:

通过两个for循环分别比较参数a与数组V中的每个id,若完全相等,则输出"该用户已存在"。

实验项目三银行活期储蓄系统存款模块设计与实现

3.1库函数描述(原型、功能、头部文件)

ck.cpp

功能:

验证身份证是否存在

验证输入存款金额是否合法

头文件:

iostreamvectorstringstdlib.hPerson.h

3.2编码(必须附加注释)

#include

#include

#include

#include

#include"Person.h"

usingnamespacestd;

externvectorV;

voidck()

{

charn;

while(true)

{

system("cls");

cout<<"**************存款主菜单*****************\n"

<<"1:

存款\n"

<<"2:

退出\n";

cin>>n;

system("cls");

switch(n)

{

case'1':

{

cout<<"请输入您的身份证号\n";

stringt;

boolkey=false;

cin>>t;

intj;

for(inti=0;i<(int)V.size();++i)

{

if(V[i].get_id()==t)//验证身份证号是否一致

{

j=i;

key=true;

break;

}

}

if(key)

{

while(true)

{

system("cls");

cout<<"请输入您的存款金额(1-10000000元):

\n";

intn;

cin>>n;

system("cls");

if(n<=10000000&&n>0)

{

V[j].in_money(n);

cout<<"操作成功\n";

system("pause");

break;

}

else

{

cout<<"您输入的金额有误\n";

system("pause");

}

}

}

else

{

system("cls");

cout<<"该用户不存在\n";

system("pause");

}

}break;

case'2':

return;

default:

cout<<"您的输入有误\n";system("pause");

}

}

}

3.3实验小结(实验遇到的问题,解决方法)

实验项目四银行活期储蓄系统取款模块设计与实现

4.1库函数描述(原型、功能、头部文件)

qk.cpp

功能:

同时验证身份证和密码是否完全一致

验证取款金额是否合法且小于存款数

头文件:

iostreamvectorPerson.hstringconio.h

stdlib.h

4.2编码(必须附加注释)

#include

#include

#include"Person.h"

#include

#include

#include

usingnamespacestd;

externvectorV;

inlinevoidmima(chars[])//内联函数

{

charch;

intp=0;

while((ch=getch())!

='\r')

{

s[p++]=ch;

putch('*');

}

s[p]='\0';

}

voidqk()

{

charn;

inttmp,money;

stringt,p;

while(true)

{

system("cls");

cout<<"****************取款主菜单********************\n"

<<"1:

取款\n"

<<"2:

退出\n";

cin>>n;

system("cls");//清屏

switch(n)

{

case'1':

{

cout<<"请输入您的身份证号码及密码:

\n";

cin>>t;

chars[20];

mima(s);

p=s;

boolkey=false;

for(inti=0;i<(int)V.size();++i)

{

if(V[i].get_id()==t&&V[i].get_key()==p)//验证身份证号和密码是否一致

{

key=true;

tmp=i;

break;

}

}

if(key)

{

while(true)

{

system("cls");

cout<<"请输入您的取款金额:

\n";

cin>>money;

system("cls");

if(money>0&&V[tmp].get_money()>=money)//取款数小于等于存款数

{

V[tmp].out_money(money);

cout<<"操作成功!

\n";

system("pause");

break;

}

else

{

cout<<"您输入的金额有误!

\n";

system("pause");

}

}

}

else

{

cout<<"您输入的身份证号码或密码错误!

\n";

system("pause");

}

break;

}

case'2':

return;

default:

cout<<"您输入的信息错误\n";system("pause");

}

}

}

4.3实验小结(实验遇到的问题,解决方法)

在查询用户时未将身份证号码和密码同时验证。

方法:

通过“V[i].get_id()==t&&V[i].get_key()==p”语句同时验证身份证号和密码

实验项目五银行活期储蓄系统计息模块设计与实现

5.1库函数描述(原型、功能、头部文件)

jx.cpp

功能:

获取系统时间,计算利息

头文件:

iostreamPerson.hvectortime.hstdlib.hget_days.h

5.2编码(必须附加注释)

#include

#include"Person.h"

#include

#include

#include

#include"get_days.h"

usingnamespacestd;

externvectorV;

constdoubleYlilv=0.01;//年利率

voidjx()

{

system("cls");

if(V.size())

{

time_tt=time(NULL);//得到当前系统时间

tm*T=gmtime(&t);

inttmp;

for(inti=0;i<(int)V.size();++i)

{

tmp=get_days(V[i],T->tm_year+1900,T->tm_yday+1);//当前时间-开户时间,得到储蓄时间

V[i].myset(tmp,Ylilv);//调用类的成员函数,计算利息,修改总金

}

}

cout<<"计息操作成功!

\n";

system("pause");

}

5.3实验小结(实验遇到的问题,解决方法)

实验项目六银行活期储蓄系统查询模块设计与实现

6.1库函数描述(原型、功能、头部文件)

cx.cpp

功能:

实现查询用户的当前存款余额并以人民币大写的形式输出

头文件:

iostreamstringvectorPerson.h

6.2编码(必须附加注释)

#include

#include

#include

#include"Person.h"

usingnamespacestd;

externvectorV;

chardx[10][3]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};

chardw[8][5]={"元","十","百","千","万","十万","百万","千万"};

chartail[5]="元整";

inta[4];

voidmyprint(intn);

voidcx()

{

charn;

stringt,p;

while(true)

{

system("cls");

cout<<"***************查询主菜单******************\n"

<<"1:

查询\n"

<<"2:

退出\n";

cin>>n;

system("cls");

switch(n)

{

case'1':

{

cout<<"请输入您的身份证号及密码:

\n";

cin>>t>>p;

boolkey=false;

system("cls");

for(inti=0;i<(int)V.size();++i)

{

if(V[i].get_id()==t&&V[i].get_key()==p)

{

key=true;

myprint(V[i].get_money());//打印存款数

system("pause");

break;

}

}

if(!

key)

{

cout<<"您输入的身份证号或密码错误!

\n";

system("pause");

}

break;

}

case'2':

return;

default:

cout<<"您输入的信息有误!

\n";system("pause");

}

}

}

voidset(intt,int&i,int&ten)

{

memset(a,0,sizeof(a));

while(t)//将组成金额的数值分离出来

{

a[i++]=t%10;

t/=10;

ten*=10;

}

}

voidprint4bit(int&t,int&i,int&ten)

{

boolkey=true;

for(intj=i-1;j>0;--j)

{

t%=ten;

if(a[j]==0&&key&&t)

{

cout<

key=false;

}

else

{

if(a[j])

{

key=true;

cout<

}

}

if(t==0)

{

break;

}

ten/=10;

}

if(a[0])

cout<

}

voidmyprint(intn)//打印存款数

{

if(n==0)

{

cout<<"您的账户上的金额为零\n";

return;

}

if(n>=100000000)

{

cout<<"金额过大\n";

return;

}

cout<<"您账户上的金额为:

\n";

intt,i,ten;

if(n>=10000)

{

t=n/10000,i=0,ten=1;

set(t,i,ten);

ten/=10;//ten=ten/10

print4bit(t,i,ten);

cout<

}

if(n%10000==0)

{

cout<

return;

}

t=n%10000,i=0,ten=1;

set(t,i,ten);

ten/=10;

if(i<4&&n>=10000)

cout<

print4bit(t,i,ten);

cout<

}

6.3实验小结(实验遇到的问题,解决方法)

实验项目七银行活期储蓄系统富豪排行榜模块设计与实现

7.1库函数描述(原型、功能、头部文件)

px.cpp

功能:

将现有储户按照余额以为降序排序。

头文件:

iostreamstringPerson.hvectoralgorithm

7.2编码(必须附加注释)

#include

#include

#include"Person.h"

#include

#include

usingnamespacestd;

externvectorV;

inlineboolcmp(Persona,Personb)

{

returna.get_total()>b.get_total();//约定按照用户的总金额排序

}

voidpx()

{

charn;

while(true)

{

system("cls");//清屏

cout<<"***************财富排行榜*******************\n"

<

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1