4条回答 默认 最新
- CSDN专家-赖老师(软件之家) 2021-06-20 14:46关注
/* 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"); } }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 1无用
悬赏问题
- ¥15 关于logstash转发日志时发生的部分内容丢失问题
- ¥17 pro*C预编译“闪回查询”报错SCN不能识别
- ¥15 微信会员卡接入微信支付商户号收款
- ¥15 如何获取烟草零售终端数据
- ¥15 数学建模招标中位数问题
- ¥15 phython路径名过长报错 不知道什么问题
- ¥15 深度学习中模型转换该怎么实现
- ¥15 Stata外部命令安装问题求帮助!
- ¥15 从键盘随机输入A-H中的一串字符串,用七段数码管方法进行绘制。提交代码及运行截图。
- ¥15 如何用python向钉钉机器人发送可以放大的图片?