C++银行系统电子报告.docx
- 文档编号:7077259
- 上传时间:2023-01-17
- 格式:DOCX
- 页数:27
- 大小:21.10KB
C++银行系统电子报告.docx
《C++银行系统电子报告.docx》由会员分享,可在线阅读,更多相关《C++银行系统电子报告.docx(27页珍藏版)》请在冰豆网上搜索。
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;
vector
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;
externvector
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; externvector 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; externvector 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; externvector 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; externvector 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; externvector inlineboolcmp(Persona,Personb) { returna.get_total()>b.get_total();//约定按照用户的总金额排序 } voidpx() { charn; while(true) { system("cls");//清屏 cout<<"***************财富排行榜*******************\n" <
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 银行 系统 电子 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)