课程设计 【银行系统】
来源:互联网 发布:wp8软件下载 编辑:程序博客网 时间:2024/06/09 20:44
/*********************************************************** *版权所有 (c)2017,lizhaoyang *文件名称:main.cpp
*文件标识:无 *内容:调用fistshow函数*其他说明: *作者:黎兆阳*完成日期:20171224*修改记录:无
**************************************************************/
main.cpp:
#include "shows.h"int main(){ FirstShow(); return 0;}
/*********************************************************** *版权所有 (c)2017,lizhaoyang *文件名称:shows.cpp
*文件标识:无 *内容:各种界面函数*其他说明: *作者:黎兆阳*完成日期:20171224*修改记录:无
**************************************************************/
shows.cpp:
#include <iostream>#include "function.h"#include "shows.h"#include "linklist.h"using namespace std;//FirstShowvoid FirstShow(){ LinkList *L ; InitList (L);//初始化线性表 int i=1; //定义变量i保证顺序将数据插入链表 MidShow(L,i); //主页面}//主界面void MidShow(LinkList *L,int i){ cout<<" **********************************"<<endl; cout<<" * *"<<endl; cout<<" * 欢迎进入银行系统主页面 *"<<endl; cout<<" * *"<<endl; cout<<" **********************************"<<endl<<endl; cout<<" 1 注册"<<endl; cout<<" 2 登录"<<endl;int cmd;//操作类型之界面选择cin>>cmd; switch(cmd){case 1: Sign(L,i); //输入1注册break;case 2: //输入2选择界面 ChooseShow(L,i);break;default:break;}}//注册界面void Sign(LinkList *L,int i){ cout<<" **********************************"<<endl; cout<<" * *"<<endl; cout<<" * 欢迎进入银行系统注册页面 *"<<endl; cout<<" * *"<<endl; cout<<" **********************************"<<endl<<endl;cout<<" 注册客户**** 1"<<endl;cout<<" 返回上一页面 0"<<endl; int cmd; //操作类型cin>>cmd; switch(cmd){ case 1: CreatAccount(L,i);//输入1开户break;case 0: MidShow(L,i);//输入0返回主界面break;default:break;}}//选择界面void ChooseShow(LinkList *L,int i){ cout<<" **********************************"<<endl; cout<<" * *"<<endl; cout<<" * 欢迎进入银行系统选择页面 *"<<endl; cout<<" * *"<<endl; cout<<" **********************************"<<endl<<endl; cout<<" 1 客户入口****"<<endl; cout<<" 0 返回上一界面"<<endl;int cmd;//操作类型之界面选择cin>>cmd; switch(cmd){case 1:CustomShow(L,i);break;case 0: MidShow(L,i);break;default:break;}}//客户界面void CustomShow(LinkList *L,int i){cout<<" ┏━━━━━━━━━━━━━┓\n";cout<<" ┃ 欢迎您使用本系统 ┃\n";cout<<" ┃━━━━━━━━━━━━━┃\n";cout<<" ┃1. 存钱 ┃\n";cout<<" ┃━━━━━━━━━━━━━┃\n";cout<<" ┃2. 取钱 ┃\n";cout<<" ┃━━━━━━━━━━━━━┃\n";cout<<" ┃3. 转账 ┃\n";cout<<" ┃━━━━━━━━━━━━━┃\n";cout<<" ┃4. 修改密码 ┃\n";cout<<" ┃━━━━━━━━━━━━━┃\n";cout<<" ┃5. 查询账户余额 ┃\n";cout<<" ┃━━━━━━━━━━━━━┃\n";cout<<" ┃6. 查询所有账户信息 ┃\n";cout<<" ┃━━━━━━━━━━━━━┃\n";cout<<" ┃7. 返回主界面 ┃\n";cout<<" ┃━━━━━━━━━━━━━┃\n";cout<<" ┃0. 返回上一界面 ┃\n";cout<<" ┗━━━━━━━━━━━━━┛\n";cout<<" \n";cout<<" 输入其他任意数字退出本系统 \n"; int cmd; //操作类型 cin>>cmd; switch(cmd) { case 1: SaveMoney(L,i); //存钱 break; case 2: GetMoney(L,i); //取钱 break; case 3: MoveMoney(L,i); //转账 break; case 4: ModifyPassword(L,i);//密码修改 break; case 5: AccountMoney(L,i);//账户余额 break; case 6: cout<<" id passwd money "<<endl; DispList(L); //输出线性表L所有信息 CustomShow(L,i); //返回客户选择界面 break; case 7: MidShow(L,i); break; case 0: ChooseShow(L,i); //返回选择界面 break; default: break; }}
/*********************************************************** *版权所有 (c)2017,lizhaoyang *文件名称:shows.h
*文件标识:无 *内容:各种界面函数的声明*其他说明: *作者:黎兆阳*完成日期:20171224*修改记录:无
**************************************************************/
shows.h:
#ifndef SHOWS_H_INCLUDED#define SHOWS_H_INCLUDED#include "linklist.h"void MidShow(LinkList *L,int i); //主界面void Sign(LinkList *L,int i); //注册界面void ChooseShow(LinkList *L,int i); //选择界面void CustomShow(LinkList *L,int i); //客户界面void FirstShow(); //第一个界面#endif // SHOWS_H_INCLUDED
/*********************************************************** *版权所有 (c)2017,lizhaoyang *文件名称:function.cpp
*文件标识:无 *内容:各种功能函数*其他说明: *作者:黎兆阳*完成日期:20171224*修改记录:无
**************************************************************/
function.cpp:
#include "linklist.h"#include "shows.h"#include <iostream>using namespace std;//开户函数 函数接口 (头指针L,索引变量i)void CreatAccount(LinkList *L,int i){ cout<<"***欢迎使用开户功能!***"<<endl; cout<<"请输入您的id!"<<endl; int id; cin>>id; ListInsert(L,i,id); i++; cout<<" 请输入您的密码! "<<endl; int passwd; cin>>passwd; ListInsert(L,i,passwd); i++; cout<<" 请输入您的账户初始金额! "<<endl; int money; cin>>money; ListInsert(L,i,money); i++; cout<<"返回主页面"<<endl; MidShow(L,i);}//存钱功能 case 1 函数接口 (头指针L,索引变量i)***********************************************************************void SaveMoney(LinkList *L,int i){ int j=0; //存放姓名的元素位置,id在链表中的位置. int k; //三次输入密码判断 int passwds; int moneys; int &m=passwds; //m是passwd的引用 int &n=moneys; //n是moneys的引用 cout<<"***欢迎使用存款功能!***"<<endl; cout<<" 请输入您的id! "<<endl; int id; cin>>id; j=LocateElem(L,id);//按元素查找 (LinkList *L,ElemType e)返回元素位置 GetElem(L,j+1,m); //求线性表某个数据元素值,返回的m是真实的密码 GetElem(L,j+2,n); //求线性表某个数据元素值,返回的n是真实的钱数//j+2代表金额在链表中的位置 for(k=0;k<3;k++) //输入密码次数小于等于3 { cout<<"请输入您的密码!!"<<endl; int passwd; cin>>passwd; if(m==passwd) //密码输入正确 { cout<<"你的密码输入正确 "<<endl; cout<<" 请输入您的存款金额!!! "<<endl; int money; for (;;) //判断金额是否合法 { cin>>money; if (money<=0) { cout<<"取款金额不正确,请重新输入"<<endl; } else { break; } } ListInsert (L,j+2,money+n); cout<<"您的账户本来余额为"<<n<<endl; cout<<"您本次存入金额为"<<money<<endl; cout<<"存款成功***显示总金额后***返回客户选择页面"<<endl; cout<<"总金额="<<money+n<<endl; int a=n; //n是账户原本金额 int &b=a; ListDelete (L,j+3,b);//在链表中删除原始金额 CustomShow(L,i); break; } else // 密码输入错误 { if(2-k>0) //重复输入密码次数 { cout<<"您的密码输入错误,您还有"<<2-k<<"次机会重新输入"<<endl; } else //无输入密码机会 { cout<<"您用尽了机会,即将返回选择页面"<<endl; ChooseShow(L,i); } } }}//取钱函数 case 2* 函数接口 (头指针L,索引变量i)**********************************************************************void GetMoney(LinkList *L,int i){ int j=0; //存放姓名的元素位置,id在链表中的位置. int k; //三次输入密码判断 int passwds; int moneys; int &m=passwds; //m是passwd的引用 int &n=moneys; //n是moneys的引用 cout<<"***欢迎使用取款功能!***"<<endl; cout<<" 请输入您的id! "<<endl; int id; cin>>id; j=LocateElem(L,id);//按元素查找 (LinkList *L,ElemType e)返回元素位置 GetElem(L,j+1,m); //求线性表某个数据元素值,返回的m是真实的密码 GetElem(L,j+2,n); //求线性表某个数据元素值,返回的n是真实的钱数 ,j+2代表金额在链表中的位置 for(k=0;k<3;k++) //输入密码次数小于等于3 { cout<<"请输入您的密码!!"<<endl; int passwd; cin>>passwd; if(m==passwd) //密码输入正确 { cout<<"你的密码输入正确 "<<endl; cout<<" 请输入您的取款金额!!! "<<endl; int money; for (;;) //判断金额是否合法 { cin>>money; if (money<=0) { cout<<"取款金额不能为负数和0,请重新输入"<<endl; } if (money>n) { cout<<"您的账户余额不足,请重新输入"<<endl; } else { break; } } ListInsert (L,j+2,n-money); cout<<"您的账户本来余额为"<<n<<endl; cout<<"您本次取出金额为"<<money<<endl; cout<<"取款成功***显示总金额后***返回客户选择页面"<<endl; cout<<"总金额="<<n-money<<endl; int a=n; //n是账户原本金额 int &b=a; ListDelete (L,j+3,b);//在链表中删除原始金额 CustomShow(L,i); break; } else // 密码输入错误 { if(2-k>0) //重复输入密码次数 { cout<<"您的密码输入错误,您还有"<<2-k<<"次机会重新输入"<<endl; } else //无输入密码机会 { cout<<"您用尽了机会,即将返回选择页面"<<endl; ChooseShow(L,i); } } }}//转账 case 3******************************************************************************void MoveMoney(LinkList *L,int i){ int j=0; //存放姓名的元素位置,id在链表中的位置. int k; //三次输入密码判断 int passwds; int moneys; int &m=passwds; //m是passwd的引用 int &n=moneys; //n是moneys的引用 cout<<"***欢迎使用转账功能!***"<<endl; cout<<" 请输入您的id! "<<endl; int id; cin>>id; j=LocateElem(L,id);//按元素查找 (LinkList *L,ElemType e)返回元素位置 GetElem(L,j+1,m); //求线性表某个数据元素值,返回的m是真实的密码 GetElem(L,j+2,n); //求线性表某个数据元素值,返回的n是真实的钱数 ,j+2代表金额在链表中的位置 for(k=0;k<3;k++) //输入密码次数小于等于3 { cout<<"请输入您的密码!!"<<endl; int passwd; cin>>passwd; if(m==passwd) //密码输入正确 { cout<<"你的密码输入正确 "<<endl; cout<<" 请输入您的转账金额!!! "<<endl; int money; for (;;) //判断金额是否合法 { cin>>money; if (money<=0) { cout<<"转账金额不能为负数和0,请重新输入"<<endl; } if (money>n) { cout<<"您的账户余额不足,请重新输入"<<endl; } else { break; } } ListInsert (L,j+2,n-money); cout<<"您的账户本来余额为"<<n<<endl; cout<<"您本次转账金额为"<<money<<endl; cout<<"转账成功***显示转账后金额***显示对方账户金额********返回客户选择页面"<<endl; cout<<"总金额="<<n-money<<endl; int a=n; //n是账户原本金额 int &b=a; ListDelete (L,j+3,b);//在链表中删除原始金额 cout<<" 请输入您的转账账户的id! "<<endl; //*********************************** int Id; cin>>Id; j=LocateElem(L,Id);//按元素查找 (LinkList *L,ElemType e)返回元素位置 GetElem(L,j+2,n); //求线性表某个数据元素值,返回的n是真实的钱数 ,j+2代表金额在链表中的位置 ListInsert (L,j+2,n+money); cout<<"对方账户金额为"<<money+n<<" 转账成功!!!"<<endl; ListDelete (L,j+3,b);//在链表中删除原始金额 CustomShow(L,i); break; } else // 密码输入错误 { if(2-k>0) //重复输入密码次数 { cout<<"您的密码输入错误,您还有"<<2-k<<"次机会重新输入"<<endl; } else //无输入密码机会 { cout<<"您用尽了机会,即将返回选择页面"<<endl; ChooseShow(L,i); } } }}//密码修改 case 4void ModifyPassword(LinkList *L,int i){ int j=0; //存放姓名的元素位置,id在链表中的位置. int k; //三次输入密码判断 int passwds; int &m=passwds; //m是passwd的引用 cout<<"***欢迎使用密码修改功能!***"<<endl; cout<<" 请输入您的id! "<<endl; int id; cin>>id; j=LocateElem(L,id);//按元素查找 (LinkList *L,ElemType e)返回元素位置 GetElem(L,j+1,m); //求线性表某个数据元素值,返回的m是真实的密码 for(k=0;k<3;k++) //输入密码次数小于等于3 { cout<<"请输入您的密码!!"<<endl; int passwd; cin>>passwd; if(m==passwd) //密码输入正确 { cout<<"你的密码输入正确 "<<endl; cout<<"请输入您的新密码"<<endl; int newpasswd; cin>>newpasswd; ListInsert (L,j+1,newpasswd); cout<<"您的账户本来的密码是:"<<m<<endl; cout<<"密码修改成功***显示修改后密码***返回客户选择页面"<<endl; cout<<"新密码是:"<<newpasswd<<endl; int a=m; //n是账户原本金额 int &b=a; ListDelete (L,j+2,b);//在链表中删除原始金额 CustomShow(L,i); break; } else // 密码输入错误 { if(2-k>0) //重复输入密码次数 { cout<<"您的密码输入错误,您还有"<<2-k<<"次机会重新输入"<<endl; } else //无输入密码机会 { cout<<"您用尽了机会,即将返回选择页面"<<endl; ChooseShow(L,i); } } }}//账户余额 case 5 ******************************************************************************void AccountMoney(LinkList *L,int i){ int j=0; //存放姓名的元素位置,id在链表中的位置. int moneys; int &n=moneys; //n是moneys的引用 cout<<"***欢迎使用账户余额功能!***"<<endl; cout<<" 请输入您的id! "<<endl; int id; cin>>id; j=LocateElem(L,id);//按元素查找 (LinkList *L,ElemType e)返回元素位置 GetElem(L,j+2,n); //求线性表某个数据元素值,返回的n是真实的钱数 ,j+2代表金额在链表中的位置 cout<<"您的账户余额为"<<n<<endl; cout<<"查看余额成功***显示余额***返回客户选择页面"<<endl; CustomShow(L,i);}
/*********************************************************** *版权所有 (c)2017,lizhaoyang *文件名称:function.h
*文件标识:无 *内容:各种功能函数*其他说明: *作者:黎兆阳*完成日期:20171224*修改记录:无
**************************************************************/
function.h:#ifndef FUNCTION_H_INCLUDED#define FUNCTION_H_INCLUDED
#include "linklist.h"void CreatAccount(LinkList *L,int i); //开户函数void SaveMoney(LinkList *L,int i); //存钱函数void GetMoney(LinkList *L,int i); //取钱函数void ModifyPassword(LinkList *L,int i); //密码修改void AccountMoney(LinkList *L,int i); //账户余额void MoveMoney(LinkList *L,int i); //转账#endif // FUNCTION_H_INCLUDEDlinklist.cpp:#include <stdio.h>#include <malloc.h>#include "linklist.h"//头插法建立单链表******************************************************************void CreateListF(LinkList *&L,ElemType a[],int n){ LinkList *s; int i; L=(LinkList *)malloc(sizeof(LinkList)); //创建头结点 L->next=NULL; for (i=0; i<n; i++) { s=(LinkList *)malloc(sizeof(LinkList));//创建新结点 s->data=a[i]; s->next=L->next; //将*s插在原开始结点之前,头结点之后 L->next=s; }}//尾插法建立单链表******************************************************************void CreateListR(LinkList *&L,ElemType a[],int n){ LinkList *s,*r; int i; L=(LinkList *)malloc(sizeof(LinkList)); //创建头结点 L->next=NULL; r=L; //r始终指向终端结点,开始时指向头结点 for (i=0; i<n; i++) { s=(LinkList *)malloc(sizeof(LinkList));//创建新结点 s->data=a[i]; r->next=s; //将*s插入*r之后 r=s; } r->next=NULL; //终端结点next域置为NULL}//初始化线性表******************************************************************void InitList(LinkList *&L){ L=(LinkList *)malloc(sizeof(LinkList)); //创建头结点 L->next=NULL;}//销毁线性表******************************************************************void DestroyList(LinkList *&L){ LinkList *p=L,*q=p->next; while (q!=NULL) { free(p); p=q; q=p->next; } free(p); //此时q为NULL,p指向尾结点,释放它}//判断线性表是否为空******************************************************************bool ListEmpty(LinkList *L){ return(L->next==NULL);}int ListLength(LinkList *L){ LinkList *p=L; int i=0; while (p->next!=NULL) { i++; p=p->next; } return(i);}//输出线性表******************************************************************void DispList(LinkList *L){ int n=0; LinkList *p=L->next; while (p!=NULL) { if(n%3==0&&n!=0) { printf("\n"); } printf("%6ld ",p->data); n++; p=p->next; } printf("\n");}//求线性表某个数据元素值********************************************************bool GetElem(LinkList *L,int i,ElemType &e){ int j=0; LinkList *p=L; while (j<i && p!=NULL) { j++; p=p->next; } if (p==NULL) //不存在第i个数据结点 return false; else //存在第i个数据结点 { e=p->data; return true; }}//按元素值查找******************************************************************int LocateElem(LinkList *L,ElemType e){ LinkList *p=L->next; int n=1; while (p!=NULL&&p->data!=e) { p=p->next; n++; } if (p==NULL) return(0); //没有找到返回NULL; else return(n); //调用函数返回元素位置}//插入数据元素********************************************************************bool ListInsert(LinkList *&L,int i,ElemType e){ int j=0; LinkList *p=L,*s; while (j<i-1 && p!=NULL) //查找第i-1个结点 { j++; p=p->next; } if (p==NULL) //未找到位序为i-1的结点 return false; else //找到位序为i-1的结点*p { s=(LinkList *)malloc(sizeof(LinkList));//创建新结点*s s->data=e; s->next=p->next; //将*s插入到*p之后 p->next=s; return true; }} //删除数据元素*******************************************************************bool ListDelete(LinkList *&L,int i,ElemType &e){ int j=0; LinkList *p=L,*q; while (j<i-1 && p!=NULL) //查找第i-1个结点 { j++; p=p->next; } if (p==NULL) //未找到位序为i-1的结点 return false; else //找到位序为i-1的结点*p { q=p->next; //q指向要删除的结点 if (q==NULL) return false; //若不存在第i个结点,返回false e=q->data; p->next=q->next; //从单链表中删除*q结点 free(q); //释放*q结点 return true; }}
linklist.h:#ifndef LINKLIST_H_INCLUDED
#define LINKLIST_H_INCLUDEDtypedef int ElemType;typedef struct LNode //定义单链表结点类型{ ElemType data; struct LNode *next; //指向后继结点}LinkList;void CreateListF(LinkList *&L,ElemType a[],int n); //头插法建立单链表void CreateListR(LinkList *&L,ElemType a[],int n); //尾插法建立单链表void InitList (LinkList *&L); //初始化线性表void DestroyList(LinkList *&L); //销毁线性表void DispList (LinkList *L); //输出线性表int ListLength (LinkList *L); //求线性表长度int LocateElem (LinkList *L,ElemType e); //按元素值查找bool ListEmpty (LinkList *L); //判断线性表是否为空bool GetElem (LinkList *L ,int i,ElemType &e); //求线性表某个数据元素值bool ListInsert (LinkList *&L,int i,ElemType e); //插入数据元素bool ListDelete (LinkList *&L,int i,ElemType &e); //删除数据元素#endif // LINKLIST_H_INCLUDED
项目截图:运行截图:
阅读全文
0 0
- 课程设计-银行储蓄系统
- 课程设计-银行储蓄系统
- 课程设计-银行储蓄系统。
- 课程设计--银行储蓄系统
- 课程设计-银行储蓄系统
- 课程设计 银行储蓄系统
- 课程设计---银行储蓄系统
- 课程设计 【银行系统】
- 银行储蓄管理系统 课程设计
- 课程设计——银行系统
- 课程设计—银行储蓄系统
- 课程设计—银行储蓄系统
- C++课程设计-银行储蓄系统
- 数据结构课程设计----银行模拟系统
- 数据结构课程设计银行储蓄系统
- 期末课程设计--银行储蓄系统
- 数据结构课程设计【银行储蓄系统】
- 课程设计报告,简单的银行管理系统
- 趣图:全栈工程师 vs 办公室扫地僧
- 信号完整性分析一
- 面向对象:一个富有热心,开朗简单的菇凉,愿遇上一个踏实、认真的你!
- [NOIP2007] 矩阵取数游戏 【记忆化搜索+高精】
- AVL树的基本结构
- 课程设计 【银行系统】
- MOOC人工智能原理学习笔记3——无信息搜索
- C++ I/O 流入流出操作
- 服务扫描与查点
- WEB标准的概念及组成
- vs2015配置dlib——————过程及遇到的问题
- turtlebot
- ASP Cookie实例:记住用户名
- mongoose mpromise被废弃警告,(node:3341) DeprecationWarning: Mongoose: mpromise (mongoose's default promis