C语言实现银行管理系统

本文实例为大家分享了C语言实现银行管理系统的具体代码,供大家参考,具体内容如下

/*
 * Copyright (c) 2016,烟台大学计算机与控制工程学院
 * All rights reserved.
 * 文件名称:main.cpp
 * 作 者:赵志君
 * 完成时间:2016年6月30日
 * 版 本 号:v1.0
 *
 * 问题描述:银行管理系统
 */
#include<stdio.h>
#include<string.h>
int mingyan(); //用户名验证
int guayan(int); //挂失验证
int miyan(int);  //密码函数

void qukuan();  //取款函数
void cunkuan();  //存款函数
void chaxun();  //查询函数
void xiaohu();  //销户函数
void kaihu();  //开户函数
void zhuanzhang(); //转账函数
void guashi();  //挂失函数
void jiegua();  //解挂函数
void tuichu();  //退出函数
void chaall();  //查询所有用户信息
void denglu();  //管理员登录

char gUser[100][32];    //用户名
char gMima[100][32];    //密码
char Ggua[100][32];  //挂失用户名

float YuE[100];     //存款余额
int UserShu=0;     //用户数
int guashu=0;     //挂失用户数

void main()
{
 denglu();
 int zhiling;   //命令

 while(zhiling)
 {
 printf(" ================================================================ \n");
 printf("||                ||\n");
 printf("||   <1> 取款   <4> 开户   <7> 挂失   ||\n");
 printf("||   <2> 存款   <5> 销户   <8> 解挂   ||\n");
 printf("||   <3> 查询   <6> 转账   <0> 退出   ||\n");
 printf("||   <9> 查询所有用户信息         ||\n");
 printf("||                ||\n");
 printf(" ================================================================ \n");
 printf("请输入您的指令: ");
 scanf("%d",&zhiling);
 printf("\n");
 switch(zhiling)
 {
 case 1:          //取款
 qukuan();
 break;
 case 2:          //存款
 cunkuan();
 break;
 case 3:          //查询
 chaxun();
 break;
 case 4:          //开户
 kaihu();
 break;
 case 5:          //销户
 xiaohu();
 break;
 case 6:          //转账
 zhuanzhang();
 break;
 case 7:          //挂失
 guashi();
 break;
 case 8:          //解挂
 jiegua();
 break;
 case 9:          //查询所有用户信息
 chaall();
 break;
 }
 }

}

void denglu()  //管理员登录
{
 char zhanghu[32],mima[32];
 int m=1;
 while(m==1)
 {
 printf(" ================================================================ \n");
 printf("||                ||\n");
 printf("||    卍 中国银行综合业务管理系统 卍     ||\n");
 printf("||                ||\n");
 printf("||                ||\n");
 printf("||                ||\n");
 printf(" ================================================================ \n\n");
 printf("请输入管理员名: ");
 scanf("%s",zhanghu);
 printf("请输入管理员密码: ");
 scanf("%s",mima);
 printf("\n");
 if(strcmp(zhanghu,mima)==0)
 {
 printf("    正在登陆,请稍后......\n ");
 printf("▁▁▁▂▂▂▃▃▃▄▄▄▅▅▅▆▆▆▇▇▇████\n\n ");
 m=0;
 }
 }
}

void qukuan()  //取款
{
 int i,m;
 float n;
 i=mingyan();
 m=guayan(i);
 if(m==1)
 m=miyan(i);
 while(m==1)
 {
 printf("请输入您的取款金额: ");
 scanf("%f",&n);
 if(n<=YuE[i])
 {
 printf("请取走您的钞票。\n");
 YuE[i]=YuE[i]-n;
 break;
 }
 else
 printf("您的余额不足,请重新输入。\n");
 }
}

void cunkuan() //存款
{
 int i,m;
 float n;
 i=mingyan();
 m=guayan(i);
 if(m==1)
 m=miyan(i);
 while(m==1)
 {
 printf("请输入您的存款金额: ");
 scanf("%f",&n);
 YuE[i]=YuE[i]+n;
 printf("存款成功!");
 printf("您的当前余额为: %.2f\n",YuE[i]);
 }
}

void chaxun() //查询
{
 int i,m;
 i=mingyan();
 m=guayan(i);
 if(m==1)
 m=miyan(i);
}

void kaihu() //开户
{
 int i,n=UserShu,j=0;
 float m;
 char User[32],mima1[32],mima2[32];
 printf("请输入您的用户名: ");
 getchar();
 scanf("%s",User);
 for(i=0;i<n+1;i++)
 {
 if(strcmp(User,gUser[i])==0)
 {
 printf("该用户名已存在\n");
 break;
 }
 else
 {
 strcpy(gUser[UserShu],User);
 while(j!=1)
 {
 printf("请输入您的密码: ");
 scanf("%s",mima1);
 printf("请再次输入您的密码: ");
 scanf("%s",mima2);
 if(strcmp(mima1,mima2)==0)
 {
  printf("密码设置成功\n");
  printf("请输入您的存款金额: ");
  scanf("%f",&m);
  strcpy(gMima[UserShu],mima1);
  YuE[UserShu]=m;
  j=1;
 }
 else
  printf("两次输入不相同,请重新输入。\n ");
 }
 UserShu++;
 break;
 }
 }
}

void xiaohu() //销户
{
 int i,n,m;
 i=mingyan();
 m=guayan(i);
 if(m==1)
 m=miyan(i);
 while(m==1)
 {
 printf("您确定要注销您的账户?\n <1>确认 <2>取消 \n");
 scanf("%d",&n);
 if(n==1)
 {
 for(;i<UserShu;i++)
 {
 strcpy(gUser[i],gUser[i+1]);
 strcpy(gMima[i],gMima[i+1]);
 YuE[i]=YuE[i+1];
 }
 }
 UserShu--;
 printf("销户成功!\n");
 m=0;
 }
}

void zhuanzhang()  //转账
{
 int i,n,j,s=1;
 float k;
 char User[32];
 i=mingyan();
 n=guayan(i);
 if(n==1)
 n=miyan(i);
 while(n==1)
 {
 printf("请输入目标账户:");
 scanf("%s",User);
 for(j=0;j<UserShu;j++)
 {
 if(strcmp(gUser[j],User)==0)
 {
 n=2;
 break;
 }
 }
 if(j==UserShu)
 printf("目标账户不存在,请重新输入。\n");
 }
 while(n==2)
 {
 printf("请输入转账金额:");
 scanf("%f",&k);
 if(k<=YuE[i])
 {
 YuE[i]=YuE[i]-k;
 YuE[j]=YuE[j]+k;
 printf("转账成功!\n您的当前余额为: %.2f\n",YuE[i]);
 break;
 }
 else
 printf("余额不足,请重新输入。\n");
 }
}

void guashi()  //挂失
{
 int n,i,m;
 i=mingyan();
 m=guayan(i);
 if(m==1)
 m=miyan(i);
 if(m==1)
 {
 printf("您确定要挂失您的账户?\n <1>确认 <2>取消 \n");
 scanf("%d",&n);
 if(n==1)
 {
 strcpy(Ggua[guashu],gUser[i]);
 guashu++;
 printf("%s 账户挂失成功!\n",gUser[i]);
 }
 }
}

void jiegua()  //解挂
{
 int i,m,j;
 i=mingyan();
 m=guayan(i);
 if(m==0)
 m=miyan(i)+1;
 if(m==2)
 {
 for(j=0;j<guashu;j++)
 {
 if(strcmp(gUser[i],Ggua[j])==0)
 break;
 }
 for(;j<guashu;j++)
 strcpy(Ggua[j],Ggua[j+1]);
 printf("%s 账户解挂成功!\n",gUser[i]);
 guashu--;
 }
}

void tuichu()
{

}

void chaall()  //查询所有用户信息
{
 int i;
 for(i=0;i<UserShu;i++)
 printf("用户名:%15s  余额:%.2f\n",gUser[i],YuE[i]);
}

int mingyan()  //用户名验证
{
 int m=1,i;
 char User[32];
 while(m==1)
 {
 printf("请输入您的用户名: ");
 scanf("%s",User);
 for(i=0;i<UserShu;i++)
 if(strcmp(gUser[i],User)==0)
 {
 m=0;
 break;
 }
 if(i==UserShu)
 printf("该用户不存在,请确认后再输入。 \n");
 }
 return i;
}

int guayan(int i)    //挂失验证
{
 int j,n;
 for(j=0;j<guashu;j++)
 {
 if(strcmp(gUser[i],Ggua[j])==0)
 {
 printf("此用户已经挂失,请解挂后再进行操作!\n");
 n=0;
 break;
 }
 }
 if(j==guashu)
 n=1;
 return n;
}

int miyan(int i)  //密码验证
{
 char mima[32];
 while(1)
 {
 printf("请输入您的密码: ");
 scanf("%s",mima);
 if(strcmp(gMima[i],mima)==0)
 {
 printf("登陆成功!\n");
 printf("用户名:%s   余额: %.2f \n",gUser[i],YuE[i]);
 break;
 }
 else
 printf("您输入的密码不正确,请重新输入。\n");
 }
 return 1;
}

更多学习资料请关注专题《管理系统开发》。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • C语言实现翻译功能

    本文实例为大家分享了C语言实现翻译功能的具体代码,供大家参考,具体内容如下 #include<stdio.h> #define number 100 struct date { char chinese[30]; char English[30]; }a[number]; void copy(char *str1, char *str2, int counst)//将值赋给trans { int i = 0; if (str2 == ' ' || str2 == '\0') { return;

  • c语言中数组名a和&a详细介绍

    最近又把学习c语言提上日程上来了~~~先把我打算看的书都写下来吧,<C语言深度剖析>,<c和指针>系类,<c语言陷阱和缺陷> 先说说a和&a的区别(有三点,三个方向):1.是a和&a的本质,都是什么类型的.2.从2维数组的角度看.3.从指针运算的角度看. 声明:虽然数组名不是指针,但是用的很像指针,我们暂且把它叫做一个指针吧. 第一个问题:int a[10];  a ,&a和&a[0] 都是分别是什么?先说明a ,&a和&

  • 利用C语言结构体实现通讯录

    本文实例为大家分享了C语言结构体实现通讯录的具体代码,供大家参考,具体内容如下 用来存储1000个人的信息的通讯录,每个人的信息包括: 姓名.性别.年龄.电话.住址 程序如下: #include<stdio.h> #include<string.h> #include<stdlib.h> struct People { char name[20]; char sex[5]; int age; char tel[15]; char addr[50]; }; //定义人的信

  • C语言版医院管理系统

    本文实例为大家分享了C语言实现医院管理系统的具体代码,供大家参考,具体内容如下 #include "stdio.h" #include "string.h" #include "stdlib.h" #include "malloc.h" #define NULL 0 typedef struct { int num; char name[10]; int age; char sex; }people; //一个患者的信息 ty

  • C语言实现病例管理系统

    本文实例为大家分享了C语言实现病例管理系统的具体代码,供大家参考,具体内容如下 通过十字交叉链表实现一个病例管理系统,可以查找.删除.更新信息. #include"stdio.h" #include"stdlib.h" #include"string.h" typedef struct hospital_info{ char dise_num[10]; /*病历编号*/ char ke[10]; /*门诊科别*/ char date[11]; /

  • C语言数组a和&a的区别讲解

    面试经典题目 #include "stdio.h" int main() { int a[5] = { 1,2,3,4,5 }; int *ptr = (int *)(&a + 1); printf("%d,%d", *(a + 1), *(ptr - 1)); /*getchar是用VS编写方便查看输出*/ getchar(); return 0; } 请思考一下上面的输出结果,如果你非常自信了,可以不用往下看 题目剖析 这个题目主要考察&a 和 

  • C语言实现餐饮点餐管理系统

    本文实例为大家分享了C语言实现餐饮点餐管理系统的具体代码,供大家参考,具体内容如下 具体代码如下 /* 项目名称:南航餐饮管理系统 组员:梁文新,刘青林,刘艺,施瑞文(组长) */ //当注册用户名为:root,密码为:root的账号时,系统默认为初始管理员 //头文件 #include<stdio.h> #include<stdlib.h> #include<time.h> #include<conio.h> #include<windows.h&g

  • C语言实现简单翻译功能

    本文实例为大家分享了C语言实现翻译功能的具体代码,供大家参考,具体内容如下 题目描述:编写一个程序,依次输入英文与汉语拼音,输入两个" * "表示输入结束,再输入一段英语句子,打印出其对应汉语拼音. 要求:不得使用<string.h>头文件 题目中要求不得使用<string.h>提醒我们使用其中的函数来编写代码,不过函数的实现需要自己来思考,根据自己的需要可以调整原函数的功能.思路大致是:输入完毕后拿原结构体记录的英文内容与 a 中的单词逐个相比,若相同,则输出

  • 解析C语言中空指针、空指针常量、NULL & 0的详解

    什么是空指针常量(null pointer constant)?[6.3.2.3-3] An integer constant expression with the value 0, or such an expression cast to type void *, is called a null pointer constant. 这里告诉我们:0.0L.'\0'.3 - 3.0 * 17 (它们都是"integer constant expression")以及 (void*

  • C语言实现词法分析器

    问题描述: 用C或C++语言编写一个简单的词法分析程序,扫描C语言小子集的源程序,根据给定的词法规则,识别单词,填写相应的表.如果产生词法错误,则显示错误信息.位置,并试图从错误中恢复.简单的恢复方法是忽略该字符(或单词)重新开始扫描. 相关词法规则 <标识符>::=<字母> <标识符>::=<标识符><字母> <标识符>::=<标识符><数字> <常量>::=<无符号整数> <无

随机推荐