(C语言·收官版)银行系统

这是一个比较大的程序

可以用作大作业,就用这一篇文档收尾好了

是我自己编写的,一个说复杂不复杂,说简单也绝对不简单的代码

我花了前后5-6个小时完成的

分享给大家,希望大家喜欢

01 代码讲解


实现的功能:

1:验证密码是否正确,不正确吵过次锁卡(其实就是打印出信息),正确的话进入银行操作系统

2:修改密码,连续两次输入密码一致则正确,我设置的密码位数7,可以自行修改密码,只因为个人习惯,前后两次输入密码不一致则提示输入错误

3:查询余额

4:取钱

5:存钱

6:退出

基本就这几个简单的功能,功能描述顺序和实际顺序不太一致,大家理解就可以了,不想去翻代码仔细核对了

我们的密码,余额会分别存放在各自的txt文档里,文档名称和路径大家也可以修改代码

02 代码


#include "stdio.h"
#include "stdlib.h"
#include <conio.h>
#include "String.h" 
int main()
{
	int i,k,yewu,mimacishu=0;
	FILE *fp,*p; 
	int count=0;
	float cunqian=0,quqian=0;
	float yue;
	char mima[7]={'0'},xinmima[7]={'0'},xinmima2[7]={'0'},mimabuffer[7]={'0'},ch;
	printf("欢迎光临新疆理工学院自助银行,请输入您的密码:\n");
	do{
	count=0;
	for(i=0;i<7;i++){
	mima[i]=getch();
	printf("*");
}
fp=fopen("yinhangzhangwu.txt","r"); 
				if(fp==NULL)
				{
					printf("打开yinhangzhanghu.txt文档失败\n"); 
				}else
				fread(mimabuffer,sizeof(char),7,fp);
				fclose(fp);
printf("\n");
for(i=0;i<7;i++){
	if(mima[i]==mimabuffer[i])
	count++;
}
	if(count==7){
		printf("更改密码请输入1:\n");
		printf("查询余额请输入2:\n");
		printf("存钱请输入3:\n");
		printf("取钱请输入4:\n");
		printf("退卡请输入0:\n");
		printf("请输入您想办理的业务:");
		scanf("%d",&yewu);
	//	printf("%d\n",k); 
		if(yewu==1)
		k=1;
		if(yewu==2)
		k=2;
		if(yewu==3)
		k=3;
		if(yewu==4)
		k=4;
		if(yewu==0)
		k=0;
	}else{
		if(mimacishu<2&&count!=7)
		printf("您输入的密码错误,您还有%d次机会请重新输入:\n",2-mimacishu);
		else
		{
			printf("您输入密码错误次数过多,请联系工作人员\n");
		}
		mimacishu++;
	}
	}while(mimacishu<3&&count!=7);
	 if(mimacishu==3)
	 exit(0);
	yewuxunhuan:
	switch(k)
	{
		case 1:
			mimashuru:
			printf("请输入您的新密码:\n");
			count=0;
	for(i=0;i<7;i++){
	xinmima[i]=getch();
	printf("*");
}
printf("\n");
		printf("请再次输入您的新密码:\n");
			count=0;
	for(i=0;i<7;i++){
	xinmima2[i]=getch();
	printf("*");
}
for(i=0;i<7;i++)
{
if(xinmima[i]!=xinmima2[i]){
printf("\n您输入的密码不同,请重新输入:\n");
goto mimashuru; }}
if(i==7){
			fp=fopen("yinhangzhangwu.txt","w"); 
				if(fp==NULL)
				{
					printf("打开yinhangzhanghu.txt文档失败\n"); 
				}else
				for(i=0;i<7;i++){
				fputc(xinmima[i],fp);
			}
				fclose(fp);
			}
				printf("\n请您重新插卡输入密码\n"); 
break;
		case 2:
			
			p=fopen("yue.txt","r"); 
				if(p==NULL)
				{
					printf("打开yue.txt文档失败\n"); 
				}else
				fscanf(p,"%f",&yue);
				printf("您的余额为%.2f元\n",yue);
				fclose(p);
				printf("请问您还要办理什么业务?\n");
				printf("更改密码请输入1:\n");
				printf("查询余额请输入2:\n");
				printf("存钱请输入3:\n");
				printf("取钱请输入4:\n");
				printf("退卡请输入0:\n");
				scanf("%d",&k);
				goto yewuxunhuan;
		    	break;
		    	
				case 3:
					printf("请输入您要存的钱数额:");
					scanf("%f",&cunqian); 
				 p=fopen("yue.txt","r"); 
				if(p==NULL)
				{
					printf("打开yue.txt文档失败\n"); 
				}else
				fscanf(p,"%f",&yue);
				yue=yue+cunqian;
				printf("您的余额为%.2f元\n",yue);
				p=fopen("yue.txt","w"); 
				if(p==NULL)
				{
					printf("打开yue.txt文档失败\n"); 
				}else
				fprintf(p,"%f",yue);
				fclose(p);
				
				printf("请问您还要办理什么业务?\n");
				printf("更改密码请输入1:\n");
				printf("查询余额请输入2:\n");
				printf("存钱请输入3:\n");
				printf("取钱请输入4:\n");
				printf("退卡请输入0:\n");
				scanf("%d",&k);
				goto yewuxunhuan;
				
				case 4:
							printf("请输入您要取的钱数额:");
					scanf("%f",&quqian); 
				 p=fopen("yue.txt","r"); 
				if(p==NULL)
				{
					printf("打开yue.txt文档失败\n"); 
				}else
				fscanf(p,"%f",&yue);
				yue=yue-quqian;
				printf("您的余额为%.2f元\n",yue);
				p=fopen("yue.txt","w"); 
				if(p==NULL)
				{
					printf("打开yue.txt文档失败\n"); 
				}else
				fprintf(p,"%f",yue);
				fclose(p);
				
				printf("请问您还要办理什么业务?\n");
				printf("更改密码请输入1:\n");
				printf("查询余额请输入2:\n");
				printf("存钱请输入3:\n");
				printf("取钱请输入4:\n");
				printf("退卡请输入0:\n");
				scanf("%d",&k);
				goto yewuxunhuan;
				
				case 0:
					printf("请收好您的卡,欢迎您下次光临\n");
					exit(0);
				
	}
	return 0;
} 

不解释,大家自己读代码就好,或许为了实现功能,设计的有点冗余,不过就学习来说还是有一定帮助的

03 运行结果


1)输入密码错误过多

 2)正常输入密码修改(修改两次不一致,直到两次密码一致) 

3)查询余额+存钱+显示余额+取钱+查询余额

 4)查询余额+退卡

密码和余额是可以保存的,也就是退出运行后,再次运行是之前的数据

比如,密码修改后,再次运行,就需要输入最新更改的密码了

结论


OK,C语言高阶版收官之作

也是我给我的C语言学生布置的大作业

OK,学习是一个开心的事情,分享出来,让学生们学习就更加快乐了

最后用孔老夫子的名言结尾

学而时习之  不亦说乎

温故而知新  可以为师矣

还有一句忘了谁说的了

得天下英才而教之  此一乐也

  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

卧龙院士

感谢你的打赏,我会继续努力的。

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值