银行业务管理系统算法与数据结构Word格式文档下载.docx
《银行业务管理系统算法与数据结构Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《银行业务管理系统算法与数据结构Word格式文档下载.docx(31页珍藏版)》请在冰豆网上搜索。
主要仪器设备
PC机
附属设备
优盘
主要使用软件
Win-TC
实验时间
2009年3月-5月
1.问题的描述和分析
商业银行业务模拟是对商业银行柜面业务进行模拟实习课程。
随着金融业和信息技术的不断发展,银行的管理也已经和计算机接轨,实现了信息的数字化管理,了解并掌握商业银行柜台,周期业务的实际操作处理方法,了解现今商业银行综合业务系统的软件应用,着重于对学生实际操作能力的训练,使学生能初步具备工作岗位的适应各个业务的编程操作能力。
多了解各行业编程需求,减少学生踏上工作岗位的适应磨合时间,提高就业竞争力,突出应用型人才的培养目标。
下面我将对现行银行业务管理进行小部分模拟设计。
◆写一个上述银行业务管理系统,能够实现一些常用功能,如:
制卡,发卡,存款,取款。
用于对用户信息进行管理,并能进行修改,查找,显示,求和等操作。
2.算法的设计
概要设计:
◆建立银行卡管理系统,该系统的主要模块为:
(1)实现系统内制卡、发卡功能;
(2)实现系统内帐户和相关帐户管理;
(3)实现卡交易和合法性检查;
(4)实现卡金融交易积分功能;
(5)实现卡报表功能;
(6)数据以文件形式存储
在编辑过程中,需要使用串,查找等算法,同时需要对输入的信息进行存储。
在制卡发卡后,对用户的信息进行查找,并显示出来。
voidload(){
FILE*fp1;
if((fp1=fopen("
c:
//user.txt"
"
r"
))==NULL)
{
printf("
\nCannotopenthefile\n"
);
exit(0);
}
for(N=0;
!
feof(fp1);
N++)
fscanf(fp1,"
%d%s%s%s%f%d%d"
&
u[N].cardNO,u[N].name,u[N].adnum,u[N].code,&
u[N].left,&
u[N].exp,&
u[N].flag);
return(N);
fclose(fp1);
}
3.数据结构的设计
串是非数值处理中的主要对象,我们一般用串来表示字符流。
而这个程序中要处理的就是银行类的字符流,所以我们需要用到串来实现这一功能。
串的存储表示有三种形式,第一种是定长顺序存储结构。
第二种是块链式存储结构。
第三种是堆分配存储结构。
在这里,我们采用串的第一种存储方式——定长顺序存储,而在程序编译时,要给出确定的空间大小,所以我们将串的空间大小设计为100个字符。
#defineMAXSIZE100
结构体定义如下:
structuseru[]/*信用卡结构体*/
{
intcardNO;
/*卡数*/
charname[20];
/*姓名*/
charadnum[22];
/*信用卡号*/
charcode[8];
/*密码*/
floatleft;
/*余额/存款*/
intexp;
/*消费*/
intflag;
/*确定是新卡还是旧卡*/
}u[M];
4.具体程序的实现
首先是系统内的制卡功能:
是否有19位N
Y
记录中卡号Y
是否已经存在调函数
N
根据实际对密码等
赋初值
#include<
stdio.h>
#include<
dos.h>
stdlib.h>
string.h>
#defineM100/*定义的数组上限*/
intN;
/*结构体数组下标量*/
intH;
/*帮助确定是否保存文件*/
5.界面设计
本程序的主控菜单如下:
1.申请一个卡号
2.使用这个卡号
3.打印消费记录
4.存款功能
5.取款功能
6.消费功能
7.报表功能
8.查找消费记录
9.修改密码
intmenu(void)
{intx;
do
{
\t\t<
*******************menu************************>
\n"
\t\t||
(1)Applyforoneblankcard||\n"
\t\t||
(2)Useoneblankcard||\n"
\t\t||(3)Printtherecord||\n"
\t\t||(4)Storethemoney||\n"
printf("
\t\t||(5)Fetchthemoney||\n"
\t\t||(6)Spendthemoney||\n"
\t\t||(7)Savethefile||\n"
\t\t||(8)Searchtherecord||\n"
\t\t||(9)Changethepassward||\n"
\t\t||(0)quitthesystem||\n"
\t\t\tPleaseinputyourchoice(0-10):
()\b\b\b"
scanf("
%d"
x);
if(x<
0||x>
10)
\t\t\tError!
Inputagain."
}while(x<
10);
return(x);
(1).制卡
voidmake(structuseru[])
{
inti;
chara[22];
load();
/*读取文件中的可用空卡条数*/
\n\nEntertheADnumberofthecard:
%s"
a);
if(strlen(a)!
=19)
\n\n\n\t\t****MistakenID,pleaseenteragain*********\n\n"
continue;
for(i=0;
i<
N;
i++)
if(strcmp(u[i].adnum,a)==0)
\n\n\t\t***TheADnumberexists,pleaseenteragain***\n\n"
break;
while(((strlen(a))!
=10)||strcmp(u[i].adnum,a)==0);
u[N].cardNO=N;
strcpy(u[N].name,"
***"
strcpy(u[N].adnum,a);
strcpy(u[N].code,"
000000"
u[N].flag=-1;
u[N].left=0.00;
u[N].exp=0;
N++;
H=1;
\n\n\n\t\t*************Successfullyapplied!
*************\n\n"
\n\n\tPressanykeytoreturn.....\n\n"
getchar();
其中
使用该程序,要现在c盘建立一个名为user.txt的文件。
(2)发卡:
voiddeliever(structuseru[]){
chara[20];
floatb;
charcode2[8];
=N;
if(u[i].flag==-1)/*-1是新申请的卡特有的值*/{
\n\n\t\t1.Pleaseenteryourname:
"
strcpy(u[i].name,a);
\n\t\t2.Code:
u[i].code);
\n\t\t3.Codeagain:
code2);
while(stricmp(u[i].code,code2)!
=0)/*输入的密码两次应该相同*/
Yourtwocodesarenotidentical,pleaseinputthemagain!
\n\t\t\tCode:
%ld"
u1.code);
\n\t\t\tCodeagain:
code2);
}
strcpy(u[i].code,a);
\n\n\t\tThemoneyyouwanttostore:
%f"
b);
\n\n"
u[i].left=b;
u[i].flag=1;
/*1是使用的卡特有的值*/
\n\n\t\t*********Youcanusethecard!
Congratulations!
*********\n\n"
\n\n\t\tPressanykeytoreturn.....\n\n"
if(i>
N)
\n\n\n\t\t**************Havenofreecard,pleasemakeone!
***************\n\n"