柚稚°931 2021-06-20 14:36 采纳率: 100%
浏览 171
已采纳

c++ 银行储蓄管理系统

 

  • 写回答

4条回答 默认 最新

  • 关注
    /* Note:Your choice is C IDE */
    #include "stdio.h"
    #include "string.h"
    #define N 50
    //银行的结构体
    struct Bank
    {
    	char name[20]; //姓名
    	char password[20];//登录密码
    	int cardno; //卡号
    	double money; //帐上余额
    }bank[N];
    //记录系统中已经开户的用户数
    int count=0;
    
    //开户
    void kaihu();
    //存款
    void cunkuan();
    //取款
    void qukuan();
    //登录
    int login();
    //查询
    void find();
    //转账
    void transfer();
    
    void main()
    {
    	int num;
    	do{
    		printf("\t\t\t*******************************************************\n");
    		printf("\t\t\t*                                                     *\n");
    		printf("\t\t\t*                 欢迎进入中国银行系统                *\n");
    		printf("\t\t\t*                                                     *\n");
    		printf("\t\t\t*******************************************************\n");
    		printf("\t\t\t请选择您要办理的业务:\n");
    		printf("\t\t\t\t1.开户:\n");
    		printf("\t\t\t\t2.存款:\n");
    		printf("\t\t\t\t3.取款:\n");
    		printf("\t\t\t\t4.查询余额:\n");
    		printf("\t\t\t\t5.转账:\n");
    		printf("\t\t\t\t6.退出:\n");
    		scanf("%d",&num);
    		switch(num)
    		{
    			case 1://开户
    				kaihu();
    				break;
    			case 2://存款
    				cunkuan();
    				break;
    			case 3: //取款
    				qukuan();
    				break;
    			case 4://查询
    				find();
    				break;
    			case 5://转账	
    				transfer();
    				break;
    			case 6:
    				
    				break;
    		}
    		printf("按任意键继续......\n");
    		getch();//暂停
    		system("cls");
    	}while(num!=6);
        
    }
    //开户
    void kaihu()
    {
    	printf("请输入您的姓名:");
    	scanf("%s",bank[count].name);//字符数组赋值   字符数组,数组传址,所以可以不写 &.
    	printf("请输入卡号:");
    	scanf("%d",&bank[count].cardno);
    	printf("请输入密码:");
    	scanf("%s",bank[count].password);
    	printf("请输入开户金额:");
    	scanf("%lf",&bank[count].money);
    	printf("恭喜你开户成功!请妥善保管您的个人信息,详细信息如下:\n");
    	printf("您的姓名是:%s,您的卡号是:%d,您的密码是:%s,您的账上余额是:%0.2lf\n",bank[count].name,bank[count].cardno,bank[count].password,bank[count].money);	
    	count++;
    }
    //登录,返回数组的下标
    int login()
    {
    	int m_cardno;
    	int i;
    	int index=-1;//登录成功的用户下标
    	char m_password[20];
    	printf("请输入卡号和密码");
    	scanf("%d,%s",&m_cardno,m_password);
    	
    	for(i=0;i<count;i++)
    	{
    		if(m_cardno==bank[i].cardno && strcmp(m_password,bank[i].password)==0)	//字符串比较要加头文件 "string.h"
    		{
    			index = i;
    			break; //找到以后立即终止循环
    		}
    	}
    	return index;
    }
    //存款
    void cunkuan()
    {
    	double m_money;
    	int currentIdx;
    	//返回的下标大于等于0时,表示登录成功
    	currentIdx=login();
    	if(currentIdx>=0)
    	{
    		printf("请输入你要存款的金额:");
    		scanf("%lf",&m_money);
    		printf("存款之前您的账上余额是:%0.2lf\n",bank[currentIdx].money);
    		bank[currentIdx].money += m_money;
    		printf("存款%0.2lf元,您的账上余额是:%0.2lf\n",m_money,bank[currentIdx].money);
    		
    	}else{
    		printf("您输入的卡号或密码错误\n");
    	}
    }
    //取款
    void qukuan()
    {
    	double m_money;
    	int currentIdx;
    	//返回的下标大于等于0时,表示登录成功
    	currentIdx=login();
    	if(currentIdx>=0)
    	{
    		printf("请输入你要取款的金额:");
    		scanf("%lf",&m_money);
    		if(bank[currentIdx].money-m_money>=0)
    		{
    			printf("取款之前您的账上余额是:%0.2lf\n",bank[currentIdx].money);
    			bank[currentIdx].money -= m_money;
    			printf("取款%0.2lf元,您的账上余额是:%0.2lf\n",m_money,bank[currentIdx].money);
    		}else{
    			printf("余额不足!\n");
    		}
    	}else{
    		printf("您输入的卡号或密码错误\n");
    	}
    }
    //查询
    void find()
    {
    	int currentIdx;
    	//返回的下标大于等于0时,表示登录成功
    	currentIdx=login();
    	if(currentIdx>=0)
    	{
    		printf("您的账上余额是:%0.2lf\n",bank[currentIdx].money);
    	}else{
    		printf("您输入的卡号或密码错误\n");
    	}	
    	
    }
    //转账
    void transfer()
    {
    	double m_money;
    	int currentIdx;
    	int parnetcardno;
    	int i,parentIdx=-1;
    	//返回的下标大于等于0时,表示登录成功
    	currentIdx=login();
    	if(currentIdx>=0)
    	{
    		printf("请输入对方卡号:");
    		scanf("%d",&parnetcardno);	
    		for(i=0;i<count;i++)
    		{
    			if(bank[i].cardno==parnetcardno){
    				parentIdx=i; //表示对方的账号信息对应的下标
    				printf("请输入转出金额:");
    				scanf("%lf",&m_money);
    				if(bank[currentIdx].money-m_money>=0)
    				{
    					//自己的账号减掉转出的钱
    					bank[currentIdx].money-=m_money;
    					//对方的账号加上转入的钱
    					bank[parentIdx].money+=m_money;
    					printf("转账成功:转出%0.2lf元,账上余额是:%0.2lf\n",m_money,bank[currentIdx].money);
    				}else{
    					printf("转账失败:余额不足\n");
    				}
    				break;
    			}	
    		}
    		if(parentIdx==-1){
    			printf("转账失败:对方卡号不存在\n");
    		}
    	}else{
    		printf("您输入的卡号或密码错误\n");
    	}
    }
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(3条)

报告相同问题?

悬赏问题

  • ¥15 关于logstash转发日志时发生的部分内容丢失问题
  • ¥17 pro*C预编译“闪回查询”报错SCN不能识别
  • ¥15 微信会员卡接入微信支付商户号收款
  • ¥15 如何获取烟草零售终端数据
  • ¥15 数学建模招标中位数问题
  • ¥15 phython路径名过长报错 不知道什么问题
  • ¥15 深度学习中模型转换该怎么实现
  • ¥15 Stata外部命令安装问题求帮助!
  • ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
  • ¥15 如何用python向钉钉机器人发送可以放大的图片?