银行活期储蓄系统设计与实现.docx

上传人:b****1 文档编号:738580 上传时间:2023-04-29 格式:DOCX 页数:23 大小:561.03KB
下载 相关 举报
银行活期储蓄系统设计与实现.docx_第1页
第1页 / 共23页
银行活期储蓄系统设计与实现.docx_第2页
第2页 / 共23页
银行活期储蓄系统设计与实现.docx_第3页
第3页 / 共23页
银行活期储蓄系统设计与实现.docx_第4页
第4页 / 共23页
银行活期储蓄系统设计与实现.docx_第5页
第5页 / 共23页
银行活期储蓄系统设计与实现.docx_第6页
第6页 / 共23页
银行活期储蓄系统设计与实现.docx_第7页
第7页 / 共23页
银行活期储蓄系统设计与实现.docx_第8页
第8页 / 共23页
银行活期储蓄系统设计与实现.docx_第9页
第9页 / 共23页
银行活期储蓄系统设计与实现.docx_第10页
第10页 / 共23页
银行活期储蓄系统设计与实现.docx_第11页
第11页 / 共23页
银行活期储蓄系统设计与实现.docx_第12页
第12页 / 共23页
银行活期储蓄系统设计与实现.docx_第13页
第13页 / 共23页
银行活期储蓄系统设计与实现.docx_第14页
第14页 / 共23页
银行活期储蓄系统设计与实现.docx_第15页
第15页 / 共23页
银行活期储蓄系统设计与实现.docx_第16页
第16页 / 共23页
银行活期储蓄系统设计与实现.docx_第17页
第17页 / 共23页
银行活期储蓄系统设计与实现.docx_第18页
第18页 / 共23页
银行活期储蓄系统设计与实现.docx_第19页
第19页 / 共23页
银行活期储蓄系统设计与实现.docx_第20页
第20页 / 共23页
亲,该文档总共23页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

银行活期储蓄系统设计与实现.docx

《银行活期储蓄系统设计与实现.docx》由会员分享,可在线阅读,更多相关《银行活期储蓄系统设计与实现.docx(23页珍藏版)》请在冰点文库上搜索。

银行活期储蓄系统设计与实现.docx

银行活期储蓄系统设计与实现

福建农林大学计算机与信息学院

 

课程设计报告

课程名称:

软件工程

课程设计题目:

银行活期储蓄系统设计与实现

姓名:

系:

计算机科学与技术系

专业:

计算机科学与技术专业

年级:

2007

学号:

承担角色:

客户端代码实现

同组组长:

同组其他成员:

实验地点:

指导教师:

职称:

讲师

完成起止日期:

2010.12.5-2011.1.9

2011年1月10日

福建农林大学计算机与信息学院

课程设计结果评定

评价内容

评价指标

评分权值

评定成绩

业务水平

有扎实的基础理论知识和课程知识;能正确设计实验方案;独立进行实验工作;能运用所学课程知识和技能去发现与解决实际问题

0.2

设计质量

实验正确,分析处理科学;设计结果有应用价值;图纸绘制符合国家标准,质量符合要求;计算及测试结果准确;工作中有创新意识;对前人工作有改进或突破,或有独特见解;

0.4

工作量、

工作态度

按期完成规定的任务,工作量饱满,难度较大;工作努力,遵守纪律;工作作风严谨务实

0.2

报告质量

文字通顺,技术用语准确,符号统一,编号齐全,书写工整规范,图表完备、整洁、正确;

0.2

合计

1.0

指导教师签字:

评定日期:

目录

1.实习的目的和任务1

2.实习要求1

3.实习地点1

4.软件开发环境以及工境1

5.组员及任无1

6.产品描述2

7.C/S架构图2

8.客户端功总体设计3

8.1客户端功能图3

8.2客户端用况图3

8.3客户端界面设计4

8.4客户端主要代码实现6

7.心得体会12

参考文献13

银行活期储蓄系统设计与实现

1.实习的目的和任务

软件工程是继程序设计、数据库原理与应用课程之后,对提高学生软件开发能力有重要作用的一门专业课程。

根据本科生的知识基础学习特点,本课程集中介绍了软件工程的基本知识体系,从实用的角度讲授软件工程的基本原理、概念和技术方法。

本课程要求学生掌握软件工程的基础知识和理论,分析大型软件开发过程中出现的问题,了解软件开发生命周期中常用的技术,掌握软件开发过程的结构化方法和面向对象方法,学会运用面向对象的软件工程方法进行软件需求分析、系统设计、实现和测试,并通过课程实践,实际运用软件工程的思想和技术,掌握软件项目管理和团队开发的工作方法。

本课程除要求学生掌握软件工程的基础知识和理论,重点要求学生学会分析问题的思想和方法。

2.实习要求

学习研究课程设计指导书,进行分组(5人一小组)并且明确每个学生在开发小组中扮演的角色及承担的职责(包括选出组长)。

在规定时间内完成一个规模适当的应用软件系统;在教师的指导下以软件设计为中心,完成从需求分析、软件设计、编码到软件测试运行的软件开发全过程。

在规定时间内提交应用软件系统及相关报告。

各组员独立完成与自己相关的报告。

3.实习地点

实验室及个人电脑

4.软件开发环境以及工具

开发环境:

WindowsXP;

开发工具:

MicrosoftVisualC++6.0、Oracle9i、MicrosoftVisio2003、PLSQLDeveloper、PowerDesigner

5.组员及任务

本组组员:

吴晓峰、王宣龙(本人)、刘兵、李学奎、王修泉;

组员任务:

吴晓峰:

客户端架构设计

王宣龙(本人):

客户端代码实现

刘兵:

服务端架构设计与实现

李学奎:

数据库设计与功能实现

王修泉:

系统测试

需求分析为全组组员共同完成,是各组员经过对系统功能、行为、性能、设计约束等方面进行总体分析而完成。

需求分析结果可查看银行活期储蓄项目手册。

6.产品描述

本软件实现银行的活期储蓄存款业务。

整套软件由客户端程序和服务器端程序构成,客户端运行在面向个人业务的银行柜台的电脑上,银行职员输入相关信息并通过网络通讯向服务器发送请求,并接受服务器端程序的应达显示处理的结果。

服务器端处理客户端的各种业务请求。

主要实现银行开户、销户、取款、存款、余额查询、转账、修改密码、打印账户明细记录等功能。

本人在这次项目中负责客户端的总体架构设计。

7.C/S架构图

本系统为C/S结构,客户端主要功能为界面显示、输入功能以及操作结果显示。

并数据传给服务端处理,并等待接收服务器的处理结果;服务端负责与数据库打交道,从客户端接收数据并将处理结果回传给客户端,将操作数据写入数据库或从数据库读取数据。

图7-1为C/S架构图。

图7-1

8.客户端功总体设计

8.1客户端功能图

客户端为面向银行职员操作界面,主要功能有职员登录、开户、存款、取款、转账、查询余额、密码修改、交易明细查询、销户。

管理员的功能有报表统计。

图8-1为客户端功能图。

图8-1

8.2客户端用况图

8.2.1图8-2是根据功能图设计的用况图。

图8-2

8.3客户端界面设计

8.3.1客户端界面图

8.3.2客户端界面类图

8.4客户端主要代码实现

8.4.1登录

//************************************

//Method:

inputboxcheck

//Access:

public

//Returns:

BOOL

//Qualifier:

Login框的输入框检查

//Parameter:

//************************************

BOOLLogin:

:

inputboxcheck(MyInputBox*pcheckBox)

{

INBOX_VEC:

:

iteratorpbox;

ControlFilefile;

charcname[20]={0};

charcpwd[20]={0};

strcpy(cname,file.getLoginName());

strcpy(cpwd,file.getLoginPwd());

stringname=cname;

stringpwd=cpwd;

charstr[50]={0};

COORDstart={25,19};

for(pbox=inboxvec_.begin();pbox!

=inboxvec_.end();++pbox)

{

if(*pbox==pcheckBox)

{

break;

}

}

intn=pbox-inboxvec_.begin();

switch(n)

{

case0:

{

Tool:

:

refreshBox(pcheckBox);//去除用户名的左右空格

if((pcheckBox->inputMsg).compare(name)==0)//相等返回0

{

pcheckBox->TF=TRUE;

returnTRUE;

}

else

{

Tool:

:

SaveConsol();

MsgFramloginmsg(95,Element:

:

login_name_error);

getch();

Tool:

:

ReturnConsol();

pcheckBox->TF=FALSE;

returnFALSE;

}

break;

}

case1:

{

if(loginNum==0)//登陆次数为零时推出

{

doNOBUT();

}

memset(str,0,sizeof(str));

if((pcheckBox->inputMsg).size()!

=6)//密码为六位

{

Tool:

:

ShowError(BACK_DRD_FRON_WITH,Element:

:

pwd_dit_error);

returnFALSE;

}

if((pcheckBox->inputMsg).compare(pwd)==0)//相等返回0

{

pcheckBox->TF=TRUE;

returnTRUE;

}

else

{

Tool:

:

SaveConsol();

MsgFramloginmsg(95,Element:

:

login_pwd_error);

sprintf(str,"youhave%dtimeschances",loginNum--);

WriteConsoleOutputCharacter(GlobalVar:

:

Ohd,str,strlen(str),start,NULL);

getch();

Tool:

:

ReturnConsol();

returnFALSE;

}

break;

}

default:

break;

}

returnFALSE;

}

8.4.2开户

/*开户*/

stringAccountCTR:

:

OpenAccount(string&name,string&id,string&pwd,string&mony)

{

SOCKETsock;

LinkServer(sock);

intlen=name.size()+id.size()+pwd.size()+mony.size()+16;//16是4个信息sizie整数的大小

PackaccountPack;

UnpackUnPacklen;

accountPack<

DateSendReceive:

:

loop_send(sock,accountPack.msgbuf,accountPack.getlen());

char*tmp=newchar[4];

intretlen=0;

DateSendReceive:

:

loop_recv(sock,tmp,4);//读取信息的长度

UnPacklen.msgbuf=tmp;

UnPacklen>>retlen;

delete[]tmp;

//char*msg=newchar[retlen];

tmp=newchar[retlen];

memset(tmp,0,retlen);

UnpackmsgUnPack;

DateSendReceive:

:

loop_recv(sock,tmp,retlen);

msgUnPack.msgbuf=tmp;

stringopenMsg;

msgUnPack>>msgUnPack.len>>openMsg;

closesocket(sock);

returnopenMsg;

}

8.4.3存款

/*存款*/

stringAccountCTR:

:

DepositMoney(string&uid,string&optid,string&money,string&type)

{

SOCKETsock;

LinkServer(sock);

intlen=uid.size()+optid.size()+money.size()+type.size()+16;

PackaccountPack;

UnpackUnPacklen;

accountPack<

DateSendReceive:

:

loop_send(sock,accountPack.msgbuf,accountPack.getlen());

char*tmp=newchar[4];

intretlen=0;

DateSendReceive:

:

loop_recv(sock,tmp,4);//读取信息的长度

UnPacklen.msgbuf=tmp;

UnPacklen>>retlen;

delete[]tmp;

//char*msg=newchar[retlen];

tmp=newchar[retlen];

memset(tmp,0,retlen);

UnpackmsgUnPack;

DateSendReceive:

:

loop_recv(sock,tmp,retlen);

msgUnPack.msgbuf=tmp;

stringsaveMsg;

msgUnPack>>msgUnPack.len>>saveMsg;

closesocket(sock);

returnsaveMsg;

}

8.4.4取款

/*取款*/

stringAccountCTR:

:

WithdrawlMoney(string&uid,string&optid,string&money,string&type)

{

SOCKETsock;

LinkServer(sock);

intlen=uid.size()+optid.size()+money.size()+type.size()+16;

PackaccountPack;

UnpackUnPacklen;

accountPack<

DateSendReceive:

:

loop_send(sock,accountPack.msgbuf,accountPack.getlen());

char*tmp=newchar[4];

intretlen=0;

DateSendReceive:

:

loop_recv(sock,tmp,4);//读取信息的长度

UnPacklen.msgbuf=tmp;

UnPacklen>>retlen;

delete[]tmp;

//char*msg=newchar[retlen];

tmp=newchar[retlen];

memset(tmp,0,retlen);

UnpackmsgUnPack;

DateSendReceive:

:

loop_recv(sock,tmp,retlen);

msgUnPack.msgbuf=tmp;

stringcashMsg;

msgUnPack>>msgUnPack.len>>cashMsg;

closesocket(sock);

returncashMsg;

}

8.4.5注销

/*销户*/

intAccountCTR:

:

Interest(string&uid)

{

SOCKETsock;

LinkServer(sock);

intlen=uid.size()+4;

PackaccountPack;

UnpackUnPacklen;

accountPack<

DateSendReceive:

:

loop_send(sock,accountPack.msgbuf,accountPack.getlen());

char*tmp=newchar[4];

intret=0;

DateSendReceive:

:

loop_recv(sock,tmp,4);//读取信息的长度

UnPacklen.msgbuf=tmp;

UnPacklen>>ret;

closesocket(sock);

if(ret==0)

{

returnFALSE;

}

else

{

returnTRUE;

}

}

8.4.6修改密码

/*修改密码*/

BOOLAccountCTR:

:

ChangePwd(string&uid,string&npwd)

{

SOCKETsock;

LinkServer(sock);

intlen=uid.size()+npwd.size()+8;

PackaccountPack;

UnpackUnPacklen;

accountPack<

DateSendReceive:

:

loop_send(sock,accountPack.msgbuf,accountPack.getlen());

char*tmp=newchar[4];

intret=0;

DateSendReceive:

:

loop_recv(sock,tmp,4);//读取信息的长度

UnPacklen.msgbuf=tmp;

UnPacklen>>ret;

closesocket(sock);

if(ret==0)

{

returnFALSE;

}

else

{

returnTRUE;

}

}

8.4.7余额查询

/*余额查询*/

stringAccountCTR:

:

Balance(string&uid)

{

SOCKETsock;

LinkServer(sock);

intlen=uid.size()+4;

PackaccountPack;

UnpackUnPacklen;

accountPack<

DateSendReceive:

:

loop_send(sock,accountPack.msgbuf,accountPack.getlen());

char*tmp=newchar[4];

intretlen=0;

DateSendReceive:

:

loop_recv(sock,tmp,4);//读取信息的长度

UnPacklen.msgbuf=tmp;

UnPacklen>>retlen;

delete[]tmp;

//char*msg=newchar[retlen];

tmp=newchar[retlen];

memset(tmp,0,retlen);

UnpackmsgUnPack;

DateSendReceive:

:

loop_recv(sock,tmp,retlen);

msgUnPack.msgbuf=tmp;

stringbalanceMsg;

msgUnPack>>msgUnPack.len>>balanceMsg;

closesocket(sock);

returnbalanceMsg;

}

8.4.8账户明细

/*账户明细*/

BOOLMyMenu:

:

Inquiry()

{

intnum;

SMALL_RECTfc={15,5,60,17};

while

(1)

{

InquiryMenuqmenu(fc,BACK_GRAY_FRON_MAGENTA,Element:

:

Qmenu,"INQUIRYNENU");

num=Tool:

:

MenuControl(qmenu);

if(!

InquiryMenu:

:

MenuOperating(num))

{

Tool:

:

ClearMenu(qmenu);

break;

}

}

returnTRUE;

}

8.4.9转账

/*转账*/

stringAccountCTR:

:

TransferM(string&uid,string&optid,string&money)

{

stringtrin="transin";

stringtrout="transout";

stringtranMsg;

tranMsg=WithdrawlMoney(uid,optid,money,trout);//主账号取出钱(取钱时many变复数了)在返回打印交易信息时改回整数

DepositMoney(optid,uid,money,trin);//目标账号存入钱

returntranMsg;

}

8.4.10报表生成

/*报表生成*/

voidTradeDetail:

:

PrintDetail(STRVEC:

:

iteratorfirst,STRVEC:

:

iteratorlast)

{

Tool:

:

Clearfram(mc_,BACK_BLACK_FRON_WITHE);

COORDTlist1={mc_.Left,mc_.Top};

COORDTlist2={mc_.Left+10,mc_.Top};

COORDTlist3={mc_.Left+19,mc_.Top};

COORDTlist4={mc_.Left+29,mc_.Top};

COORDTlist5={mc_.Left+50,mc_.Top};

COORDTlist6={mc_.Left+59,mc_.Top};

COORDTlist7={mc_.Left+70,mc_.Top};

STRVEC:

:

iteratorit;

charstr[10][50]={0};

for(it=first;it!

=last;it++)

{

memset(str,0,sizeof(str));

sscanf(it->c_str(),"%[^,],%[^,],%[^,],%[^,],%[^,],%[^,],%[^,]",str[1],str[2],str[3],str[4],str[5],str[6],str[7]);

WriteConsoleOutputCharacter(GlobalVar:

:

Ohd,str[1],sizeof(str[1]),Tlist1,NULL);

WriteConsoleOutputCharacter(GlobalVar:

:

Ohd,str[2],sizeof(str[2]),Tlist2,NULL);

WriteCon

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

当前位置:首页 > 临时分类 > 批量上传

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2