数据结构课程设计_银行账户管理系统.doc_第1页
数据结构课程设计_银行账户管理系统.doc_第2页
数据结构课程设计_银行账户管理系统.doc_第3页
数据结构课程设计_银行账户管理系统.doc_第4页
数据结构课程设计_银行账户管理系统.doc_第5页
已阅读5页,还剩10页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录A:设计目的31.1了解分析方法3B:需求分析31.程序需求及思想32.程序执行命令操作3C:概要设计3-51.程序设计流程图42.程序结构设计说明5D:详细设计5-12E:程序运行结果.13-16F:设计心得.16-17G:参考文献.17 15A、设计目的: 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#includeusing namespace std;template/构建节点类模板class Nodepublic: Node *next;/ T 可省指针string name; T data;long int number; ;template class SavingListpublic: SavingList();Node * CreatSavingList();void SearchAccount(long int x);Node * DeleteAccount(long int x);Node * InsertAccount(long int x); void Record(long int x,int y); private:Node *head; ; template /建立已有储户数据 Node * SavingList:CreatSavingList() head=new Node;/初值 int k=1;/分配动态空间Node *p,*q;head-next=NULL;/ 赋初值long int number,Number;int data; string name; coutnumber;Number=number;coutname; coutdata;while(number/1e7=1 & number/1e7=10) p=new Node;q=new Node;p-number=number;/节点初值p-name=name;p-data=data;p-next=head-next;/将p插入连中head-next=p;cout是否继续输入信息 按1继续输入 按0退出k;if(k=0)break;coutnumber;q=head-next;while(q)/账号的重复判断if(q-number=number)cout账号已存在 !next;if(!q)coutname;coutdata;return head;template /查找账户 void SavingList:SearchAccount(long int x) if(x/1e710) cout您输入的账户不存在endl; return ; Node *p; p=head; while(p!=NULL & p-number!=x) p=p-next;/向下移位 继续查找 if(p=NULL) cout您输入的账户未找到endl; else cout账户名: nameendl;cout账户号码: numberendl;cout账户余额: data元endl; template /销户Node * SavingList:DeleteAccount(long int x) Node *p,*q;/节点类型 p=head; while(p!=NULL&p-number!=x) q=p;p=p-next;if(p=NULL) cout您输入的账户已不存在next=p-next;/将q删掉 return head; template /开户 Node * SavingList:InsertAccount(long int x) Node *p,*q;q=new Node; char w10;/名字 int i; p=head;q-number=x; q-next=p-next; p-next=q;/插入 q(新的账号)coutw;couti;q-name=w; q-data=i; cout您的新账户的信息是:endl; cout账户名: nameendl;cout账户号码: numberendl; cout账户余额: data元endl;return head; template /存取款记录 void SavingList:Record(long int x,int y) Node *p;p=head;while(p!=NULL & p-number!=x) /循环查找P的相同正确值 节点下移p=p-next; if(p=NULL) cout您输入的账户不存在data=p-data+y;if(p-data0)cout余额不足 请充值!endl;elsecout目前您的账户信息:endl;cout账户名(八位): nameendl; cout账户号码: numberendl; cout账户余额: data元endl; int Menu()int n; cout-Menu-endl; coutt1.查询账户 2.开户nnendl; coutt3.支出存储记录 4.销户nnendl;coutt5.退出endl;cout-;coutendl;do cout请输入你的选择(1-5):nn; while(n5);return n; int main()SavingList T; Node *head;head=T.CreatSavingList(); long int x; int y,n;for(;) switch (Menu() case 1:coutx; T.SearchAccount(x); couty;if(y=1) cout-nnn;coutt1.支出存入 2.销户nn;cout-nnn; do coutn;while(n!=1 & n!=2); if(n=1) cout请输入你存取的钱数: ; cout存入钱数在前加“ + ”, 取出钱数在前加“ - ”a; T.Record(x,a); if(n=2) coutb; if(b=1)T.DeleteAccount(x); break;case 2:long int c; Node *q;q=head-next;coutc;while(q)if(q-number=c)cout账号已存在 !next;if(!q)while(c/1e7 10) coutc; T.InsertAccount(c);break; case 3:long int r;int t,l; coutr;cout请输入你存取的钱数: ; /cout存入钱数在前加“ + ”, 取出钱数在前加“ - ”t;T.Record(r,t); cout继续操作请输入1 ,退出输入0:l; while(l=1) coutr;cout请输入你存取的钱数: ;cout存入钱数在前加“ + ”, 取出钱数在前加“ - ”t; T.Record(r,t); cout继续操作请输入1,退出输入0l; break;case 4:long int k;int m;coutk; while(k/1e79) coutk; T.DeleteAccount(k); cout继续操作请输入1,退出输入0m; while(m=1) coutk;while(k/1e710) cout输入的位数不正确,请你确认后再进行操作!: ; T.DeleteAccount(k);cout继续操作请输入1,退出输入0m; break; case 5:exit(0);return 0; E、系统运行结果:F、设计心得:通过此次的课程试验的练习,我有了很大的收获,同时也加深了对数据结构这门课程的理解和学会了如何在实际中应用数据结构。 我选择的储蓄储管理设计使我了解到链表节点类的正确使用方法,熟悉结点类的作用,更加得知道了数据结构的知识的灵活应用的方便,思路更加清晰。而且更加珍惜的是我了解到了分析问题的整体性非常重要,账户的重复问题,程序的可行性,还有程序设计报告的整体过程我都有了更深刻的认识!更加重要的是这次是我和另外的一个同学一起设计的程序,第一次充分了解到团队合作的重要性!不同的同学的思想在很多的地方

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论