数据结构课程设计银行储蓄系统
- /**
- *版权所有(C)2017,panyanan
- *
- *文件名称:main.cpp
- *文件标识:无
- *内容摘要:本文件的作用是调用算法库里面的函数,完成题目要求。
- *其它说明:无
- *当前版本:V1.0
- *作者:潘亚楠
- *完成日期:2017,12,22
- **/
#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;}}}
- /**
- *版权所有(C)2017,panyanan
- *
- *文件名称:list.cpp
- *文件标识:无
- *内容摘要:本文件的作用是对调用函数的声明
- *其它说明:无
- *当前版本:V1.0
- *作者:潘亚楠
- *完成日期:2017,12,22
- **/
#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; } */
- /**
- *版权所有(C)2017,panyanan
- *
- *文件名称:list.h
- *文件标识:无
- *内容摘要:本文件的作用是对结构体的声明
- *其它说明:无
- *当前版本:V1.0
- *作者:潘亚楠
- *完成日期:2017,12,22
- **/
#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);
- /**
- *版权所有(C)2017,panyanan
- *
- *文件名称:view.cpp
- *文件标识:无
- *内容摘要:本文件的作用是视图界面部分
- *其它说明:无
- *当前版本:V1.0
- *作者:潘亚楠
- *完成日期:2017,12,22
- **/
#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");}
运行结果:
(1) 开户:利用尾插法建立新用户,输入用户名、身份证号、密码、存款金额,显示开户成功。
(2) 存款:所有用户信息储存在单链表中,输入用户名、密码、存款金额,存款成功,显示余额。
(3) 取款:所有用户信息存储在单链表中,输入用户名、密码、取款金额,取款成功,显示余额。
(4) 转账:定义转出账号和转入账号,输入转出金额、转入账号,转入账号的金额不能超过该账号的余额,转出减少的金额,与转入账号增加的金额相同。
(5) 销户:输入要销去账户的姓名、密码,采用销毁单链表的方法,销毁该账户。
(6) 查询:输入用户名、密码,,并显示余额。
(7) 查询所有:输入用户名、密码,输出当前账户是第几个用户,并显余额。
心得体会:
本次课程设计基于上学期C++课程实训,把存储结构改成链表。我们对于页面的设计并不要求非常漂亮。因为我们主要是为了完成系统的功能。对于一个银行系统,最基本的功能的就是要有存取款功能,在此基础上还要查询功能、转账功能,功能越多系统就越强健。
在整个过程中,我们遇到了很多问题。整个过程中我们组相互帮助,在尽量少的时间内完成整个系统的开发。虽然系统在规定时间内完成,但是所设计的系统并不完善。有些功能没有实现。例如:我本身还想在系统中对用户的账户增加挂失和解挂的功能。该功能应该是在用户遇到异常情况是对自己账户进行挂失操作,当异常情况解除时可以解挂。由于时间问题,这些问题只是做了相应的分析却来不及完善。这些仍然存在的缺陷我们将来在课余时间会尽量完善。
这次课程设计中,我们求助了老师和同学,有很多解决不了的问题都是通过同学和老师的帮助完成的。我们周围有一些精通代码的同学,在他们指导下我才完成所设计的系统。在设计过程中我从这些同学的身上学到了很多知识,很多是以前没有听过的东西。
这次课程设计我们运用的大多是老师在课堂上带我们做的一些代码。也接触到了以前没有接触到的东西。整个过程我们受益良多,无论我们付出了多少劳动都值得。这次课程设计也为我们将来的毕业设计打下了基础,为我们的人生道路添砖加瓦。
数据结构课程设计银行储蓄系统相关推荐
- 银行账户管理系统c语言链表,课程设计银行储蓄管理系统Word版
<课程设计银行储蓄管理系统Word版>由会员分享,可在线阅读,更多相关<课程设计银行储蓄管理系统Word版(22页珍藏版)>请在人人文库网上搜索. 1.传播优秀Word版文档 ...
- 数据结构课程设计 ——考试报名系统
数据结构课程设计 --考试报名系统 一.项目功能要求 完成对考生信息的建立,查找,插入,修改,删除等功能.其中考生信息包括准考证号,姓名,性别,年龄和报考类别等信息.项目在设计时应首先确定系统的数据结 ...
- c语言编程银行排队系统,C语言_课程设计银行排队系统.doc
C语言_课程设计银行排队系统 #include #include #include #include #include #define n 3 int vip1=0; int y,z; float s ...
- 数据结构课程设计——机票售卖系统(C++)
引言 这学期最后的数据结构课程设计需要我们完成一个简单的小程序,我选择了一个机票售卖系统,实现了一些基本的功能:因为时间给的比较短,又赶在复习周补课,所以并没有什么突出的地方,我就在这里聊聊我的代码实 ...
- 数据结构课程设计 校园导游系统 c++
元旦前后利用几天时间完成了数据结构课程设计,学期初计划搞一个*精美* 些的课程设计,最后还是一拖再拖,到最后只来得及实现些基本功能. 团队协作完成,所以代码风格不尽相同. 另外才疏学浅,若有错误恳请不 ...
- 数据结构课程设计——地铁查询系统 JAVA
项目源码:地铁查询系统 1.地铁查询系统功能介绍 系统的主要功能包括线路查询,站点信息查询,线路查询,保存和读取信息.具体说明如下: 线路查询:查询某条线路的票价,首班时间,末班时间,所有途径站点. ...
- C语言数据结构课程设计-校园导游系统
倾心原创,转载请备注原文地址,谢谢. 主要内容: 用无向网表示你所在学校的校园景点平面图,图中顶点表示主要景点,存放景点的编号.名称.简介等信息,图中的边表示景点间的道路,存放路径长度等信息.要求能够 ...
- java编写活期储蓄帐目管理_数据结构课程设计--活期储蓄帐目管理系统
活期储蓄帐目管理系统 [问题描述] 编写一个活期储蓄帐目管理系统,实现储户开户.销户.存入.支出等活动.其主要要求是能比较迅速地找到储户的帐户,实现存款.取款,还要能比较简单.迅速地实现插入和删除,以 ...
- 数据结构课程设计 公交系统
大家好! 这是我的第一篇文章,是将这学期的数据结构课设报告整理出来的.可能还有些小错误,还请多多指正. 数据结构课程设计<公交系统> 一.引言 (一)课题描述 (二)设计要求 二.总体设计 ...
最新文章
- 陈彦铭_盆栽(陈彦铭)
- 聊聊flink的HistoryServer
- python中not 和 is None的区别
- Servlet3——注解
- getOutputStream() 的问题
- Kruskal+LCA【p2245】 星际导航
- element走马灯自动_Element Carousel 走马灯的具体实现
- 滑雪(洛谷-P1434)
- QT中让窗口屏幕居中的方法
- 今天你写控件了吗?----ASP.net控件开发系列(八)
- Eclipse里编辑代码,进度条出现“Remote System Explorer Operation”解决方法
- 多项式ln,exp学习小计
- matlab freqz-m,Matlab函数freqs和freqz
- 脸大脖子短,适合什么发型?
- 【ZYNQ】IP核_DDR4_SDRAM(MIG)的详细介绍
- 元气骑士如何获得机器人成就皮肤_元气骑士成就系统攻略 成就获取方法一览...
- 应届生工资排行榜,北上广深杭数据对比(基于320份简历)
- UML用例图-用例图
- K8S云原生环境渗透学习
- 【VS开发】设备控制台 (DevCon.exe) 示例