期末课程设计--银行储蓄系统

来源:互联网 发布:写轮眼美瞳淘宝 编辑:程序博客网 时间:2024/04/27 15:34

list.h函数:

/**版权所有 (C)2017,DuXinye**文件名称:list.h*文件标识:无*内容摘要:本文件的作用是定义结构体并声明函数*其他说明:无*当前版本:V1.0*作者:杜昕晔*完成日期:2017/12/22*/

#include <cstring>#include <iostream>using namespace std;typedef struct LNode        //定义单链表结点类型{    string name;    double money;    char mima[20];    int guashi;    int shenfen;    struct LNode *next;     //指向后继结点} LinkList;//尾插法建立单链表void kaihu(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);//初始化线性表
view.cpp函数:
/**版权所有 (C)2017,DuXinye**文件名称: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"); }
list.cpp函数:
/**版权所有 (C)2017,DuXinye**文件名称: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;    else        return i;}/**功能描述:开户*输入参数:姓名,身份证号,密码,存款金额*输出参数:用户存入的信息*其他说明:消息字段之间用分号(;)分隔*/void kaihu(LinkList *&L){    LinkList *s,*r;    //s指向第一个用户    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;    }    r->next = s;     //将新用户插入到链表    s->next=NULL;    //新用户作为尾结点cout<<"开户成功"<<endl;}/**功能描述:存款*输入参数:姓名,密码,存款金额*输出参数:存款成功*返回值:0-账户不存在   其他-存在*其他说明:消息字段之间用分号(;)分隔使用查询功能可以确定存款成功*/void cunkuan(LinkList *&L)  {    LinkList *r;    string name;    double money;    string mima;    cout<<"请输入姓名:";    cin>>name;    cout<<"请输入密码:";    cin>>mima;    cout<<"请输入存款金额:";    cin>>money;    if(money<=0)    {        cout<<" 您输入的存款金额为负!请继续输入。"<<endl;        cin>>money;    }    int locate = LocateElem(L,name);   //调用他返回的位置,查找名字是否存在    if(locate==0)                      //如果返回的是0    {        cout<<"账户不存在!请重新输入。"<<endl;    }    else    {        r = L;        //r始终指向终端结点,开始时指向头结点        int i;        for(i=0;i<locate;i++)    //直到查找到输入的姓名        {            r = r->next;        }        if(r->mima == mima)        {            r->money = r->money + money;        }        else        {            cout<<"密码不正确"<<endl;        }    }    cout<<"存款成功"<<endl;  }/**功能描述:取款*输入参数:姓名,密码,取款金额*输出参数:取款成功*返回值:0-账户不存在   其他-存在*其他说明:消息字段之间用分号(;)分隔使用查询功能可以确定取款成功*/  void qukuan(LinkList *&L)  {    LinkList *r;    int i;    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)                    //若返回值为0,则用户不存在    {        cout<<"账户不存在!请重新输入。"<<endl;    }    else    {        r = L;//r始终指向终端结点,开始时指向头结点        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;        }    }cout<<"取款成功"<<endl;  }/**功能描述:销户*输入参数:姓名,密码*输出参数:销户成功*返回值:0-账户不存在   其他-存在*其他说明:消息字段之间用分号(;)分隔*/  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;  //要删除的            if(last->mima == mima)            {                r->next = r->next->next;                cout<<"销户成功"<<endl;            }else            {                cout<<"密码不正确"<<endl;            }        }  }/**功能描述:转账*输入参数:姓名,密码,转账姓名,转账金额*输出参数:转账成功*其他说明:消息字段之间用分号(;)分隔*/void zhuanzhang(LinkList *L){    LinkList *r,*s;    int send,to;    string sendname;    string mima;    string toname;    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;            }        }    }/**功能描述:查询*输入参数:姓名,密码*输出参数:用户银行卡中的信息*其他说明:消息字段之间用分号(;)分隔*/  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;        }    }}/**功能描述:查询所有*输入参数:无*输出参数:银行的所有用户信息*其他说明:消息字段之间用分号(;)分隔该功能只有银行管理员才可以运行*/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");}
main.cpp函数:
/**版权所有 (C)2017,DuXinye**文件名称:main.cpp*文件标识:无*内容摘要:本文件的作用是定义main函数以及调用相关函数*其他说明:无*当前版本: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 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);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;}}}
多文件组织,保存在四个文件里:


运行结果:

开户:

存款:

取款:


销户:


转账:


查询:


查询所有:


原创粉丝点击