软件工程课程设计银行储蓄管理系统文档格式.docx
- 文档编号:22194005
- 上传时间:2023-02-03
- 格式:DOCX
- 页数:72
- 大小:295.16KB
软件工程课程设计银行储蓄管理系统文档格式.docx
《软件工程课程设计银行储蓄管理系统文档格式.docx》由会员分享,可在线阅读,更多相关《软件工程课程设计银行储蓄管理系统文档格式.docx(72页珍藏版)》请在冰豆网上搜索。
2.管理员(员工号,姓名)
3.存款(储户姓名,员工号,金额,存款类型,到期日期,存款日期)
4.查询(储户姓名,员工号)
5.取款(储户姓名,员工号,金额,取款日期)
11
n
nn
nnn
111
1.5系统顶层数据流(DFD)图
打印存单
开户
取款存款
存款
查询取款
打印清单
1.6系统0层数据流(DFD)图
打印存单
储户信息文件
存取款信息变动
密码错误读取储户信息
保存新用户信息
密码正确
利息清单
1.7第2层DFD图
储户信息文件
核对错误
读取信息
存款
填写存款信息核对信息
核对
正确
打印
1.8第3层数据流图储户信息文件
核对错误读取信息
更新储户信息
填写取款信息核对信息
核对正确
取款
1.9第5层数据流图
储户信息文件
新用户信息存储信息
取款信息取款通知
存款信息存款通知
查询信息
显示信息
验证错误
1.10数据字典
数据名字:
储户信息表
数据来源:
储户
数据目的:
身份验证
数据组成:
姓名+密码+住址+身份证号码+现有金额
1.6.1确定输入流和输出流的边界,从而孤立出变换中心。
如图:
1.1
图1.1
1.6.2完成“第一级分解”
基于书上第三章第三题实现在银行储蓄管理系统在一级分解中,可将系统分解成三个子功能模块:
用户操作,业务员操作,系统输出。
如下图所示:
1.6.3完成“第二级分解”
<
1>
用户操作的分解
可将用户操作分解为:
开户民,存款,取款,查询。
2>
业务员操作的分解
业务员的操作是将用户的操作传送给系统,代替用户与系统交互,所以,业务员的操作与系统的操作基本类似,也可以近似地将业务员看作用户。
所以操作员操作可分解为:
开户,存款,取款,查询
并且如用户在开户时设有密码,则进行密码验证。
所以分解图如下:
3>
系统输出分解
系统输出可分解为:
计算利息-打印清单,保存新用户信息,更新用户信息,打印存单
分解图如下:
1.6.4使用设计度量和启发式规则对第一次分割得到的软件结构进一步精化。
由于业务员的操作与用户的操作基本相似,可以简单化地认为系统只与业务员交互,基于这个思想,将有利与简化以后系统程序的设计与开发。
精化图如下:
银行储蓄管理系统实验项目:
银行储蓄
实验项目一、银行储蓄系统主菜单模块设计与实现
1.1库函数描述(原型、功能、头部文件)及其作用
Time显示当前时间类#include<
time.H>
System()调用dos命令_sleep()停息#include<
stdlib.H>
String字符串流#include<
string.H>
#include"
myheader.h"
中有调用的全部函数声明
1.2编码(必须附加注释)
voidmain()
{
//背景颜色设置
system("
COLOR16"
);
/*
颜色属性由两个十六进制数字指定--第一个为背景,第二个则为
前景。
每个数字可以为以下任何值之一:
0=黑色8=灰色
1=蓝色9=淡蓝色
2=绿色A=淡绿色
3=湖蓝色B=淡浅绿色
4=红色C=淡红色
5=紫色D=淡紫色
6=黄色E=淡黄色
7=白色F=亮白色
*/
//输出=============★欢迎进入银行活期存款系统★=============
inti;
for(i=0;
i<
13;
i++)
cout<
'
='
;
cout<
"
★欢迎进入银行活期存款系统★"
endl;
//列示当前时间
当前时间:
6;
"
Timet=latesttime();
t.print();
//列示菜单
mylist();
如果您不了解该系统请按N否则按Y:
//核实输入是否为字符
stringcheck;
while
(1)
{
cin>
>
check;
if(check.length()>
1)
{
cout<
您的输入有误请重新输入:
continue;
}
if(check[0]!
Y'
&
check[0]!
N'
)
else
break;
}
intmark=1;
if(check[0]=='
mark=0;
友情提示:
按对应业务的编号即可进行该业务!
endl<
请继续:
intflag=1;
while(flag++)
if(flag>
2)
system("
cls"
mylist();
if(mark)
请选择业务:
stringservicenum;
//核实输入是否为字符
while
(1)
cin>
servicenum;
if(servicenum.length()>
{
cout<
continue;
}
else
break;
确认请按Y,修改请按N,请选择:
stringmark;
mark;
if(mark.length()>
if(mark[0]!
mark[0]!
if(mark[0]=='
if(servicenum[0]=='
0'
正在处理请稍等."
_sleep(1000);
."
.\n"
switch(servicenum[0])
//开户
case'
1'
:
creaccount();
break;
//存款
2'
deposit();
//取款
3'
withdraw();
//计息
4'
computeprofit();
//查询
5'
checkbalance();
//排序
6'
order();
//系统介绍
7'
about();
break;
default:
对不起,您的选择超出了我们的业务范围。
交易完毕,谢谢合作"
}
1.3mylist.Cpp主函数显示菜单
voidmylist()
11;
'
*************主菜单*************"
12;
☆☆☆☆☆☆☆☆☆☆☆☆☆☆☆"
☆0.................退出☆"
☆1.................开户☆"
☆2.................存款☆"
☆3.................取款☆"
☆4.................计息☆"
☆5.................查询☆"
☆6.................排序☆"
☆7.................关于☆"
voidabout()
银行活期存款系统作者:
张瑞"
该系统严格按照国际银行活期存款规则编写,"
如果您什么不懂,请在第一步操作中输入N."
注意:
请按照提示进行操作.否则后果自负"
版权所有,打击盗版"
over();
return;
1.4实验小结(实验遇到的问题,解决方法)
1.调用外部函数时光简单声明不行必需加个外部修饰extern
2.也可调用外部变量同样用extern
3.把定义的函数都放到myheader.H的头文件中声明
实验项目二、银行储蓄系统开户模块设计与实现
2.1库函数描述(原型、功能、头部文件)及其作用
#include<
iostream>
//c++的标准输入输出
stdlib.h>
//c的库函数
string>
//字符串流
conio.h>
//getch()键盘输入屏幕不输出
vector>
//STL中的迭代器
#include<
shlobj.h>
//messagebox()消息框
time.h>
//时间类的头文件
stdio.h>
//c标准输入输出和文件流
usingnamespacestd;
2.2帐户类定义
//帐号类是定义在myhead.H头文件里
classTime{
public:
intyear,month,day,hour,minute,second;
Time(inta=0,intb=0,intc=0,intd=0,inte=0,intf=0):
year(a),month(b),day(c),hour(d),minute(e),second(f){}
voidprint()
year<
年"
month<
月"
day<
日"
hour<
时"
minute<
分"
second<
秒"
voidprint1()
//两个时间段相距的天数
intisHalfYear(Timet)
intct;
if(year>
t.year)
ct=(year-t.year-1)*360+(month-t.month+11)*30+day+30-t.day;
else
ct=(month-t.month-1)*30+day+30-t.day;
returnct;
voidcopy(Timef)//时间拷贝
year=f.year;
month=f.month;
day=f.day;
hour=f.hour;
minute=f.minute;
second=f.second;
//判断时间是否大
booltimebig(Timet)
returnfalse;
elseif(year<
returntrue;
elseif(year==t.year)
if(month>
t.month)
returnfalse;
elseif(month<
returntrue;
elseif(month==t.month)
if(day>
t.day)
returnfalse;
elseif(day<
returntrue;
elseif(day==t.day)
{
if(hour>
t.hour)
returnfalse;
elseif(hour<
returntrue;
elseif(hour==t.hour)
{
if(minute>
t.minute)
returnfalse;
elseif(minute<
returntrue;
elseif(minute==t.minute)
{
if(second>
t.second)
returnfalse;
elseif(second<
returntrue;
}
else
}
else
}
else
returntrue;
};
//检查输入的字符产是否全是数字
boolchecknum(constchar*);
//重载比较函数
intstrcmp(constchar*s1,constchar*s2);
//钱数大些函数声明
voidreadmoney(char*);
//定义帐号类
classAccount
{
charname[20],ID[20],balance[15],code[10];
Timetime;
Account(constchar*a="
constchar*b="
constchar*c="
constchar*d="
Timee=Time(0,0,0,0,0,0))
strcpy(name,a);
strcpy(ID,b);
strcpy(code,c);
strcpy(balance,d);
time=e;
inti;
for(i=0;
30;
{}"
姓名:
name<
身份证号:
ID<
余额:
balance<
余额大写:
readmoney(balance);
开户时间:
time.print();
voidprint2()
上次计息时间(开户时间):
classRem{
charID[20],money[10];
intflag;
Timet;
Rem(char*a="
char*b="
intc=0,Timed=Time(0,0,0,0,0,0))
strcpy(ID,a);
strcpy(money,b);
flag=c;
t=d;
if(flag==0)
t.print1();
取款"
money<
元"
if(flag==1)
存款"
//菜单
voidmylist();
//开户
voidcreaccount();
//存款
voiddeposit();
//取款
voidrevisecode();
//计息
voidcomputeprofit();
//查询
voidcheckbalance();
//排序色
voidcreatcolor();
//关于系统介绍
voidabout();
//大写读取金额
voidreadmoney(char*s);
intstrcmp(constchar*s1,constchar*s2);
//结束
voidover();
//求两字符串之和
voidplus(char*s1,char*s2);
//求两字符串之差
voidminus(char*s1,char*s2);
//将字符串倒置
voidopposition(char*s);
//检查输入的金额是否合法并对其进行规范性修改
boolcheckmoney(char*s);
//计算利息专用
booljixi(Account&
a);
//校验身份证号是否正确
boolcheckID(constchar*s);
//检查所输入的身份证号是否已开过户,开过户返回true,未开过返回false
boolfinID(constchar*s);
//获取当前时间的time函数
Timelatesttime();
//移位
voidchange(char*ch);
//输出备忘录
voidoutput(constchar*s);
2.3编码(必须附加注释)
voidcreaccount()//开户
『欢迎您在此开户』"
charID[20]="
//检查该身份证号是否符合中华人民共和国身份证号码的编制规则
请输入您的身份证号:
ID;
if(checkID(ID))
您的输入有误请重新输入您的身份证号:
//检查是否在此开过户
if(finID(ID))
您已在次开过户。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件工程 课程设计 银行 储蓄 管理 系统