/*  
 * 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;
}


心得体会:

  这是大一上学期刚刚开始学习编程时的一个实训项目,里边的功能相对简单。作为一个编程菜鸟,看到这个自己更菜的时候写的代码,感觉也是很有意思的。

Logo

快速构建 Web 应用程序

更多推荐