完整word版数据结构课程设计银行账户管理系统.docx
《完整word版数据结构课程设计银行账户管理系统.docx》由会员分享,可在线阅读,更多相关《完整word版数据结构课程设计银行账户管理系统.docx(18页珍藏版)》请在冰豆网上搜索。
完整word版数据结构课程设计银行账户管理系统
目 录
A:
设计目的3
1.1了解分析方法3
B:
需求分析3
1.程序需求及思想3
2.程序执行命令操作3
C:
概要设计3—5
1。
程序设计流程图4
2。
程序结构设计说明5
D:
详细设计5—12
F:
设计心得。
....。
....。
。
。
.....。
。
.。
。
。
。
.。
。
...。
。
...。
16-17
G:
参考文献.。
。
。
..。
。
.。
。
。
。
。
.。
..。
...。
..。
..。
。
.。
...。
。
..17
A、设计目的:
1.了解并掌握数据结构与算法的设计方法,具备初步的独立分析和设计能力;
2。
充分了解和学习数据结构的系统设计和程序编码,对问题的探究与分析,进行更多的应用与测试。
3。
学习设计实现活期储蓄账目管理,并令其方便、简单、快捷的实现其各个部分的功能。
4.通过这次实验使自己的设计水平有所提高,对数据结构的整体认知程度有所加强,锻炼自己思考和设计能力。
B、需求分析:
1。
需要先建立结本程序点类模板,然后使用链表的基本操作应用实现各个程序的实现,头插法先建立链表使之成当前操作数据基础,然后可以使用节点的删除进行储户的销户,结点的插入的应用成为程序的开户(注意:
建立新的用户要先确认新建的用户号不可以与之前的用户号码相同,引起系统错误!
本程序应用链表节点的比较改进程序。
)。
储户的存取也是应用节点的比较查找之后进行的账户钱数加减.
2.程序的执行命令操作
(1).建立节电类模板,构建链表.
(2).输入储户信息。
(3)。
执行各项操作(数据测试)
1。
查询储户信息.2开户.
3储户支取信息查询。
4。
储户的程序销户。
5。
程序完成。
(4)。
程序退出。
C、概要设计:
C.1:
程序流程图
程序开始
输入客户信息
程序菜单:
1,3(查询)2-(开户)4-(销户)5-(退出)
Case2:
系统开户(插入新的节点)作为新的户头(不可重复)
Case1,3:
系统查找(账户对比)
存取消费操作
Case4:
(用户销户)删除当前节点出去信息
1查找成功0出
1开户成功0出
1删除成功0出
程序员结束程序(系统退出)
程序结束
(退出)
*程序设计流程图*
C.2:
结构设计说明
1。
本程序主要应用数据结构节点类模板,首先构建节点类模板,在建立已有储户数据中对头结点(*head)分配动态存储空间,对头结点的邻接点(head—>next)赋初值,循环插入新结点建立储户数据(头插法)。
在账号循环插入中进行账号重复判断。
2.在查找账户的过程中,应用结点下移继续查找,实现账户正确查找应用。
3.在销户过程中,进行结点删除,从而实现储户的销户。
4。
在开户过程中,定义新结点,分配新的存储空间,进行结点插入,在账号循环插入中进行账号重复判断,完成开户过程。
5。
在存取记录过程中,应用结点下移进行循环查找账户信息,显示账户信息。
6。
主函数测试。
D、详细设计:
//活期储蓄帐目管理
#include
#include〈string>
usingnamespacestd;
templateclassNode
{
public:
Node〈T>*next;//T可省指针
stringname;
Tdata;
longintnumber;
};
template
classSavingList
{
public:
SavingList(){};
Node〈T〉*CreatSavingList();
voidSearchAccount(longintx);
Node〈T>*DeleteAccount(longintx);
Node〈T〉*InsertAccount(longintx);
voidRecord(longintx,inty);
private:
Node〈T>*head;
};
templateNode〈T〉*SavingList〈T〉:
:
CreatSavingList()
{
head=newNodeintk=1;//分配动态空间
Nodehead->next=NULL;//赋初值
longintnumber,Number;
intdata;
stringname;
cout〈〈"请输入账户号(八位整数):
”;
cin〉>number;
Number=number;
cout〈〈"请输入姓名:
";
cin>〉name;
cout<<”请输入账户余额:
";
cin>〉data;
while(number/1e7>=1&&number/1e7〈=10)
{
p=newNode〈T>;
q=newNode〈T>;
p—〉number=number;//节点初值
p—>name=name;
p—〉data=data;
p—>next=head-〉next;//将p插入连中
head-〉next=p;
cout<<"是否继续输入信息按1继续输入按0退出”<cin>〉k;
if(k==0)
break;
cout〈〈”请输入账户号(八位整数):
”;
cin>>number;
q=head->next;
while(q)//账号的重复判断
{
if(q-〉number==number)
{
cout〈〈"账号已存在!
”〈break;
}
else
q=q->next;
}
if(!
q)
{
cout<〈”请输入姓名:
”;
cin>〉name;
cout<<"请输入账户余额:
";
cin>>data;
}
}
returnhead;
}
template〈classT〉//查找账户
voidSavingList〈T〉:
:
SearchAccount(longintx)
{
if(x/1e7<1||x/1e7>10)
{
cout〈〈”您输入的账户不存在"<〈endl;
return;
}
Nodep=head;
while(p!
=NULL&&p-〉number!
=x)
{
p=p->next;//向下移位继续查找
}
if(p==NULL)
{
cout<<"您输入的账户未找到"<〈endl;
}
else
{
cout〈<”账户名:
"〈〈p—〉name<〈endl;
cout<<”账户号码:
"〈〈p-〉number<cout〈<"账户余额:
”〈〈p->data<<"元”〈〈endl;
}
}
template〈classT>//销户
Node*SavingList〈T>:
:
DeleteAccount(longintx)
{
Node*p,*q;//节点类型
p=head;
while(p!
=NULL&&p—〉number!
=x)
{
q=p;
p=p—〉next;
}
if(p==NULL)
{
cout〈<”您输入的账户已不存在"〈}
else
{
q-〉next=p->next;//将q删掉
}
returnhead;
}
template〈classT〉//开户
Node〈T〉*SavingList〈T>:
:
InsertAccount(longintx)
{
Node〈T>*p,*q;
q=newNode〈T>;
charw[10];//名字
inti;
p=head;
q->number=x;
q—>next=p->next;
p-〉next=q;//插入q(新的账号)
cout<<”请输入姓名:
";
cin>>w;
cout〈<"请输入余额:
";cin>〉i;
q->name=w;
q—>data=i;
cout〈<”您的新账户的信息是:
”〈〈endl;
cout〈〈"账户名:
”〈〈q->name<cout<〈”账户号码:
"〈cout<<"账户余额:
”〈〈q—〉data<〈"元"<〈endl;
returnhead;
}
template//存取款记录
voidSavingList〈T>:
:
Record(longintx,inty)
{
Node*p;
p=head;
while(p!
=NULL&&p-〉number!
=x)//循环查找P的相同正确值节点下移
{
p=p->next;
}
if(p==NULL)
cout<<”您输入的账户不存在"<〈endl;
else
{
p—〉data=p-〉data+y;
if(p—>data<0)
cout<<”余额不足请充值!
"〈〈endl;
else
{
cout〈〈"目前您的账户信息:
”〈〈endl;
cout<〈"账户名(八位):
”<name〈〈endl;
cout〈〈”账户号码:
”<
cout〈<"账户余额:
”〈data〈<"元”<}
}
}
intMenu()
{
intn;
cout〈<”————-——--——--——--———-——--—Menu-—--————-———--—--————-——-—-"〈〈endl;
cout<〈”\t1。
查询账户2.开户\n\n"〈支出存储记录4.销户\n\n"<cout<<”\t5。
退出”〈cout<〈”—————-—-——---—--——-———-—--—--——-—————-—--—-———-—--—-—-—-—”;
cout<do
{
cout〈<"请输入你的选择(1—-5):
\n”<〈endl;
cin〉>n;
}
while(n〈1||n>5);
returnn;
}
intmain()
{
SavingListNodehead=T。
CreatSavingList();
longintx;
inty,n;
for(;;)
{
switch(Menu())
{
case1:
{
cout<〈”请输入您要查询的账户:
";
cin>>x;
T.SearchAccount(x);
cout〈<”是否需要继续进行操