1. /**
  2. *版权所有(C)2017,panyanan
  3. *
  4. *文件名称:main.cpp
  5. *文件标识:无
  6. *内容摘要:本文件的作用是调用算法库里面的函数,完成题目要求。
  7. *其它说明:无
  8. *当前版本:V1.0
  9. *作者:潘亚楠
  10. *完成日期:2017,12,22
  11. **/
  12. #include <stdio.h>
    #include <malloc.h>
    #include <string>
    #include <iostream>
    #include "list.h"
    using namespace std;
    typedef int ElemType;//void CreateListF(LinkList *&L,ElemType a[],int n);//头插法建立单链表//void DestroyList(LinkList *&L); //销毁单链表
    void kaihu(LinkList *&L);
    void ListInsert(LinkList *&L);
    void jiemian();
    void cunkuan(LinkList *&L);
    void qukuan(LinkList *&L);
    void xiaohu(LinkList *&L);
    void chaxun(LinkList *L);  //输出单链表
    void chaxunsuoyou(LinkList *L);
    void zhuanzhang(LinkList *L);
    bool ListEmpty(LinkList *L);
    void InitList(LinkList *&L);int main()
    {int cmd;  //操作类型LinkList  *L2;L2 = new LinkList;L2 = NULL;int index=0;InitList(L2);//初始化while(1){jiemian();cout<<endl;cout<<"请输入您要进行的业务号:";cin>>cmd;switch(cmd){jiemian();case 1:kaihu(L2);//index++;break;case 2:cunkuan(L2);break;case 3:qukuan(L2);break;case 4:xiaohu(L2);break;case 5:zhuanzhang(L2);break;case 6:chaxun(L2);  //输出单链表break;case 7:chaxunsuoyou(L2);break;default:break;}}}
    1. /**
    2. *版权所有(C)2017,panyanan
    3. *
    4. *文件名称:list.cpp
    5. *文件标识:无
    6. *内容摘要:本文件的作用是对调用函数的声明
    7. *其它说明:无
    8. *当前版本:V1.0
    9. *作者:潘亚楠
    10. *完成日期:2017,12,22
    11. **/
    #include <cstring>
    #include <iostream>
    #include <stdlib.h>
    #include <stdio.h>
    # include <string>
    #include "list.h"
    using namespace std;bool ListEmpty(LinkList *L) // 判断链表是否为空
    {return (L->next==NULL);
    }void InitList(LinkList *&L)//初始化链表
    {L = (LinkList *)malloc(sizeof(LinkList));L->next = NULL;
    }int LocateElem(LinkList *L,string name)//按元素位置查找,根据输入的名字判断是链表的第几个
    {int i = 1;LinkList *p = L->next;while(p!=NULL && p->name!=name){p = p->next;i++;}if(p==NULL)//如果名字不存在,返回0,如果找到,返回他在第几个return 0;elsereturn i;
    }void kaihu(LinkList *&L)//尾插法建立单链表
    {LinkList *s,*r;s = new LinkList;r = new LinkList;r=L;        //r始终指向终端结点,开始时指向头结点while (r->next != NULL) {r = r->next;}cout<<"请输入姓名:";cin>>s->name;cout<<"请输入身份证号:";cin>>s->shenfen;cout<<"请输入密码:";cin>>s->mima;cout<<"请输入存款金额:";cin>>s->money;if(s->money<=0){cout<<" 您输入的存款金额为负!请继续输入。"<<endl;cin>>s->money;}if (r == NULL){}r->next = s;s->next=NULL;cout<<"开户成功!啦啦啦~"<<endl;
    }void cunkuan(LinkList *&L){LinkList *s,*r;string name;double money;string mima;int shenfen;cout<<"请输入姓名:";cin>>name;cout<<"请输入密码:";cin>>mima;cout<<"请输入存款金额:";cin>>money;if(money<=0){cout<<" 您输入的存款金额为负!请继续输入。"<<endl;cin>>money;}int locate = LocateElem(L,name);//调用他返回的位置if(locate==0){//如果返回的是0cout<<"账户不存在!请重新输入。"<<endl;}else{r = L;int i;for(i=0;i<locate;i++){r = r->next;}if(r->mima == mima){r->money = r->money + money;}else{cout<<"密码不正确"<<endl;}}//int j=0;
    /*while(r->mima!=mima){cout<<"密码不正确,请重新输入"<<endl;cin>>mima;}r->money=money+r->money;cout<<"存款成功!哈哈哈~";*/}//3取款void qukuan(LinkList *&L){LinkList *s,*r;//s=L;int i;string name;double money;string mima;int shenfen;cout<<"请输入姓名:";cin>>name;cout<<"请输入密码:";cin>>mima;cout<<"请输入取款金额:";cin>>money;//r始终指向终端结点,开始时指向头结点if(money<=0){cout<<" 您输入的存款金额为负!请继续输入。"<<endl;cin>>money;}int locate = LocateElem(L,name);if(locate==0){cout<<"账户不存在!请重新输入。"<<endl;}else{r = L;int i;for(i=0;i<locate;i++){r = r->next;}if(r->mima == mima){while(r->money - money < 0){cout<<"余额不足,重新输入:";cin>>money;}r->money = r->money - money;}else{cout<<"密码不正确"<<endl;}}}//4销户void xiaohu(LinkList *&L)//销毁单链表{LinkList *last , *r;string name;string mima;int locate;cout<<"请输入姓名:";cin>>name;cout<<"请输入密码:";cin>>mima;locate = LocateElem(L,name);if(locate == 0){cout<<"该用户不存在"<<endl;}else{r = L;int i;for(i=0;i<locate-1;i++){//找上一个r = r->next;}last = r->next;  //next要删除的if(last->mima == mima){r->next = r->next->next;cout<<"销户成功"<<endl;}else{cout<<"密码不正确"<<endl;}}}//5转账
    void zhuanzhang(LinkList *L)
    {//LinkList *send,*to,*sendlist,*tolist;LinkList *r,*s;//sendlist = L;//tolist = L;int send,to;string sendname;string mima;string toname;//int wrong=0;double money;cout<<"请输入姓名:";cin>>sendname;cout<<"请输入密码:";cin>>mima;cout<<"请输入您要转账的姓名:";cin>>toname;cout<<"转账金额:";cin>>money;send = LocateElem(L,sendname);to = LocateElem(L,toname);if(send == 0){cout<<"您输入的转款或收款人有误"<<endl;}else if(to == 0){cout<<"您输入的转款或收款人有误"<<endl;}else{r = L;s = L;int i;for(i=0;i<send;i++){r = r->next;}for(i=0;i<to;i++){s = s->next;}if(r->mima == mima){while(r->money - money < 0){cout<<"余额不足,重新输入:";cin>>money;}r->money = r->money - money;s->money = s->money + money;cout<<"转账成功"<<endl;}else{cout<<"密码不正确"<<endl;}}}//sendlist->money = sendlist->money - money;//tolist->money = tolist->money+money;//6查询void chaxun(LinkList *L)  //输出单链表
    {cout<<"您的用户名:"<<endl;string name;cin>>name;cout<<"您的密码:"<<endl;string mima;cin>>mima;LinkList *r ;int locate = LocateElem(L,name);if(locate==0){cout<<"账户不存在!请重新输入。"<<endl;}else{r = L;int i;for(i=0;i<locate;i++){r = r->next;}if(r->mima == mima){cout<<"您的姓名: "<<r->name<<" 您的金额为:"<<r->money<<endl;}else{cout<<"密码不正确"<<endl;}}}//7查询所有
    void chaxunsuoyou(LinkList *L)
    {LinkList *p=L->next;int i = 0;while (p!=NULL){cout<<"第"<<i+1<<"位用户:";cout<<"姓名"<<p->name<<" "<<"账户余额"<<p->money<<endl;p=p->next;i++;}printf("\n");
    }//k开户二
    /*
    void ListInsert(LinkList *&L)
    {LinkList *p = L,*s;while(p->next!=NULL){p=p->next;}string name;double money;string mima;int shenfen;s=(LinkList *)malloc(sizeof(LinkList));cout<<"请输入姓名:";cin>>s->name;cout<<"请输入身份证号:";cin>>s->shenfen;cout<<"请输入密码:";cin>>s->mima;cout<<"请输入存款金额:";cin>>s->money;p->next = s;s->next=NULL;
    }
    */
    1. /**
    2. *版权所有(C)2017,panyanan
    3. *
    4. *文件名称:list.h
    5. *文件标识:无
    6. *内容摘要:本文件的作用是对结构体的声明
    7. *其它说明:无
    8. *当前版本:V1.0
    9. *作者:潘亚楠
    10. *完成日期:2017,12,22
    11. **/
    #include <cstring>
    #include <iostream>
    using namespace std;
    typedef struct LNode        //定义单链表结点类型
    {string name;double money;char mima[20];//string mima2;int guashi;int shenfen;struct LNode *next;     //指向后继结点
    } LinkList;void kaihu(LinkList *&L);//尾插法建立单链表
    void ListInsert(LinkList *&L);
    void cunkuan(LinkList *&L);
    void qukuan(LinkList *&L);
    void xiaohu(LinkList *&L);
    void zhuanzhang(LinkList *L);
    void chaxun(LinkList *L);
    void ListInsert(LinkList *&L);
    void chaxunsuoyou(LinkList *L);
    bool ListEmpty(LinkList *L);
    int LocateElem(LinkList *L,string name);
    void InitList(LinkList *&L);
    
    1. /**
    2. *版权所有(C)2017,panyanan
    3. *
    4. *文件名称:view.cpp
    5. *文件标识:无
    6. *内容摘要:本文件的作用是视图界面部分
    7. *其它说明:无
    8. *当前版本:V1.0
    9. *作者:潘亚楠
    10. *完成日期:2017,12,22
    11. **/
    12.  #include <iostream>#include <stdio.h>using namespace std;void jiemian(){printf("*********银行储蓄平台******************\n");printf("**1  开户       2  存款      3  取款*********\n");printf("**4  销户       5  转账      6  查询*********\n");printf("**7  查询所有                       *********\n");}

    运行结果:

  13. (1)   开户:利用尾插法建立新用户,输入用户名、身份证号、密码、存款金额,显示开户成功。

    (2)   存款:所有用户信息储存在单链表中,输入用户名、密码、存款金额,存款成功,显示余额。

    (3)   取款:所有用户信息存储在单链表中,输入用户名、密码、取款金额,取款成功,显示余额。

    (4)   转账:定义转出账号和转入账号,输入转出金额、转入账号,转入账号的金额不能超过该账号的余额,转出减少的金额,与转入账号增加的金额相同。

    (5)   销户:输入要销去账户的姓名、密码,采用销毁单链表的方法,销毁该账户。

    (6)   查询:输入用户名、密码,,并显示余额。

    (7)   查询所有:输入用户名、密码,输出当前账户是第几个用户,并显余额。

  14. 心得体会:

    本次课程设计基于上学期C++课程实训,把存储结构改成链表。我们对于页面的设计并不要求非常漂亮。因为我们主要是为了完成系统的功能。对于一个银行系统,最基本的功能的就是要有存取款功能,在此基础上还要查询功能、转账功能,功能越多系统就越强健。

    在整个过程中,我们遇到了很多问题。整个过程中我们组相互帮助,在尽量少的时间内完成整个系统的开发。虽然系统在规定时间内完成,但是所设计的系统并不完善。有些功能没有实现。例如:我本身还想在系统中对用户的账户增加挂失和解挂的功能。该功能应该是在用户遇到异常情况是对自己账户进行挂失操作,当异常情况解除时可以解挂。由于时间问题,这些问题只是做了相应的分析却来不及完善。这些仍然存在的缺陷我们将来在课余时间会尽量完善。

    这次课程设计中,我们求助了老师和同学,有很多解决不了的问题都是通过同学和老师的帮助完成的。我们周围有一些精通代码的同学,在他们指导下我才完成所设计的系统。在设计过程中我从这些同学的身上学到了很多知识,很多是以前没有听过的东西。

    这次课程设计我们运用的大多是老师在课堂上带我们做的一些代码。也接触到了以前没有接触到的东西。整个过程我们受益良多,无论我们付出了多少劳动都值得。这次课程设计也为我们将来的毕业设计打下了基础,为我们的人生道路添砖加瓦。

数据结构课程设计银行储蓄系统相关推荐

  1. 银行账户管理系统c语言链表,课程设计银行储蓄管理系统Word版

    <课程设计银行储蓄管理系统Word版>由会员分享,可在线阅读,更多相关<课程设计银行储蓄管理系统Word版(22页珍藏版)>请在人人文库网上搜索. 1.传播优秀Word版文档 ...

  2. 数据结构课程设计 ——考试报名系统

    数据结构课程设计 --考试报名系统 一.项目功能要求 完成对考生信息的建立,查找,插入,修改,删除等功能.其中考生信息包括准考证号,姓名,性别,年龄和报考类别等信息.项目在设计时应首先确定系统的数据结 ...

  3. c语言编程银行排队系统,C语言_课程设计银行排队系统.doc

    C语言_课程设计银行排队系统 #include #include #include #include #include #define n 3 int vip1=0; int y,z; float s ...

  4. 数据结构课程设计——机票售卖系统(C++)

    引言 这学期最后的数据结构课程设计需要我们完成一个简单的小程序,我选择了一个机票售卖系统,实现了一些基本的功能:因为时间给的比较短,又赶在复习周补课,所以并没有什么突出的地方,我就在这里聊聊我的代码实 ...

  5. 数据结构课程设计 校园导游系统 c++

    元旦前后利用几天时间完成了数据结构课程设计,学期初计划搞一个*精美* 些的课程设计,最后还是一拖再拖,到最后只来得及实现些基本功能. 团队协作完成,所以代码风格不尽相同. 另外才疏学浅,若有错误恳请不 ...

  6. 数据结构课程设计——地铁查询系统 JAVA

    项目源码:地铁查询系统 1.地铁查询系统功能介绍 系统的主要功能包括线路查询,站点信息查询,线路查询,保存和读取信息.具体说明如下: 线路查询:查询某条线路的票价,首班时间,末班时间,所有途径站点. ...

  7. C语言数据结构课程设计-校园导游系统

    倾心原创,转载请备注原文地址,谢谢. 主要内容: 用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号.名称.简介等信息,图中的边表示景点间的道路,存放路径长度等信息.要求能够 ...

  8. java编写活期储蓄帐目管理_数据结构课程设计--活期储蓄帐目管理系统

    活期储蓄帐目管理系统 [问题描述] 编写一个活期储蓄帐目管理系统,实现储户开户.销户.存入.支出等活动.其主要要求是能比较迅速地找到储户的帐户,实现存款.取款,还要能比较简单.迅速地实现插入和删除,以 ...

  9. 数据结构课程设计 公交系统

    大家好! 这是我的第一篇文章,是将这学期的数据结构课设报告整理出来的.可能还有些小错误,还请多多指正. 数据结构课程设计<公交系统> 一.引言 (一)课题描述 (二)设计要求 二.总体设计 ...

最新文章

  1. 陈彦铭_盆栽(陈彦铭)
  2. 聊聊flink的HistoryServer
  3. python中not 和 is None的区别
  4. Servlet3——注解
  5. getOutputStream() 的问题
  6. Kruskal+LCA【p2245】 星际导航
  7. element走马灯自动_Element Carousel 走马灯的具体实现
  8. 滑雪(洛谷-P1434)
  9. QT中让窗口屏幕居中的方法
  10. 今天你写控件了吗?----ASP.net控件开发系列(八)
  11. Eclipse里编辑代码,进度条出现“Remote System Explorer Operation”解决方法
  12. 多项式ln,exp学习小计
  13. matlab freqz-m,Matlab函数freqs和freqz
  14. 脸大脖子短,适合什么发型?
  15. 【ZYNQ】IP核_DDR4_SDRAM(MIG)的详细介绍
  16. 元气骑士如何获得机器人成就皮肤_元气骑士成就系统攻略 成就获取方法一览...
  17. 应届生工资排行榜,北上广深杭数据对比(基于320份简历)
  18. UML用例图-用例图
  19. K8S云原生环境渗透学习
  20. 【VS开发】设备控制台 (DevCon.exe) 示例

热门文章

  1. 2021高考仙桃中学成绩查询,仙桃2020高考最高分出炉!汇总仙桃各大中学喜报
  2. 博客系统程序(页面设计)
  3. 【自然语言处理】ELMo 讲解
  4. 怎么学习Android
  5. SpringBoot-自动配置
  6. 毕业设计-基于微信小程序与云开发的成绩查询系统
  7. 计算机用户名及密码修改,电脑用户名是什么意思(怎么修改及设置用户名)
  8. 沉降观测曲线图 沉降观测汇总_沉降观测曲线图怎么画?
  9. 计算机应用世界排名,全球计算机杂志排名
  10. 【舰船数据集格式转换】HRSID数据集VOC转COCO