Java编程练习之类的继承

news2024/11/22 10:22:31

1.创建银行卡类,并分别设计两个储蓄卡和信用卡子类。

 import javax.swing.plaf.BorderUIResource;
 import java.util.Scanner;

class Card {
      int Id;   //银行卡;
      int password;  //密码;
      double balance=2000; //账户存款金额;
      String AccountType;

      public boolean Login(String AccountType){
          boolean result=false;
         // String AccountType1="储蓄卡";
         // String AccountType2="信用卡";
          Scanner sc=new Scanner(System.in);

          for(int i=0;i<4;i++) {
              if (AccountType.equals("储蓄卡")) {
                  System.out.println("请您输入储蓄卡密码:");
                  password=sc.nextInt();
                  if(result=(password==123456)){
                      System.out.println("储蓄卡密码输入正确,正在加载中,请您耐心等待……");
                      return result;
                  }else if(i<2&&password!=123456){
                      System.out.println("储蓄卡密码输入错误");
                  }else{
                      System.out.println("储蓄卡密码连续3次输入错误,您的账号已被锁定,请您24小时后重试");
                  }


              } else if (AccountType.equals("信用卡")) {
                  System.out.println("请您输入信用卡密码:");
                  password=sc.nextInt();
                  if(result=(password==234567)){

                      System.out.println("信用卡密码输入正确,正在加载中,请您耐心等待……");
                      return result;
                  }else if(i<2&&password!=234567){
                      System.out.println("信用卡密码输入错误");
                  }else{
                      System.out.println("信用卡密码连续3次输入错误,您的账号已被锁定,请您24小时后重试");
                  }
              } else {
                  System.out.println("本系统暂不支持此类银行卡的登陆!");
              }

          }
          return false;

     }
      //存款方法
      public  void Savemoney(){
          double money;
          Scanner m=new Scanner(System.in);
          System.out.println("请输入存款金额:");
          money=m.nextDouble();
          System.out.println("请确认存款金额:"+money+"元。");

          balance=balance+money;
          //System.out.println("恭喜您存款成功,当前账户的存款金额为:"+balance+"元。");
          System.out.println("恭喜您存款成功,当前账户的存款金额为:"+balance+"元。");
      }

}
class Card2 extends Card{
    double money;
    double maxOverdraf=20000;//最大透支额度;
    void Withdraw(){
        double money;
        Scanner m1=new Scanner(System.in);
        System.out.println("请输入取款金额:");
        money=m1.nextDouble();
        if(money<=balance+maxOverdraf){
            System.out.println("请您确认取款金额:" + money + "元。");
            double account=balance-money;

             System.out.println("account:"+account);
            if(account<=0){
                System.out.println("当前账户剩余金额为:" + 0+ "元。");
                maxOverdraf=maxOverdraf+account;
//                System.out.println("money:"+money);
//                System.out.println("balance:"+balance);
//                System.out.println("maxOverdraf:"+maxOverdraf);
                System.out.println("当前账户剩余透支金额为:" + maxOverdraf + "元。");
            }else{
//                System.out.println("money:"+money);
//                System.out.println("balance:"+balance);
//                System.out.println("maxOverdraf:"+maxOverdraf);
                System.out.println("当前账户剩余金额为:" + account + "元。");
                System.out.println("当前账户剩余透支金额为:" + maxOverdraf + "元。");
            }
        }else{
            double account=money-balance-maxOverdraf;
            System.out.println("您的账户已透支,透支金额为:" + account+ "元,您取款失败。");
        }
    }

}
 class Card1 extends Card {  //储蓄卡
    double money;

    private void Withdraw() {
        double r;
        double money;
        Scanner m=new Scanner(System.in);
        System.out.println("请输入取款金额:");
        money=m.nextDouble();
        if (money <= balance) {
            System.out.println("请您确认取款金额:" + money + "元。");
            balance = balance - money;
            System.out.println("恭喜您取款成功,账户剩余金额为" + balance + "元。");
        } else {
            System.out.println("请确认取款金额:"+money+"元。");
            r= money-balance;
            System.out.println("您的账户余额不足,还差"+r+"元。");
        }
    }
public static void main(String[] args){
         String yewu;
         String AccountType;  //银行卡账户类型;

         Card1 c1=new Card1();
         Card2 c2=new Card2();
         Scanner sc1=new Scanner(System.in);
         System.out.println("请您选择银行卡类型:");
         AccountType=sc1.nextLine();
         if(AccountType.equals("储蓄卡")){
         boolean cL=c1.Login(AccountType);
         if(cL) {
             System.out.println("请您选择业务类型:");
             yewu = sc1.nextLine();
             if(yewu.equals("取款")){
                // int money=sc1.nextInt();
                 c1.Withdraw();
             }else if(yewu.equals("存款")){
                 //int money=sc1.nextInt();
                 c1.Savemoney();
             }else{
                 System.out.println("本系统暂不支持此业务!");
             }
         }else{
             System.out.println("储蓄卡登陆失败。");
         }

         }else if(AccountType.equals("信用卡")){
             boolean cL1= c2.Login(AccountType);
             if(cL1) {
                 System.out.println("请您选择业务类型:");
                 yewu = sc1.nextLine();
                 if(yewu.equals("取款")){
                     // int money=sc1.nextInt();
                     c2.Withdraw();
                 }else if(yewu.equals("存款")){
                     //int money=sc1.nextInt();
                     c2.Savemoney();
                 }else{
                     System.out.println("本系统暂不支持此业务!");
                 }
             }else{
                 System.out.println("储蓄卡登陆失败。");
             }

         }else{
             System.out.println("本系统暂不支持此银行卡类型!");
        }
    }
         }

储蓄卡子类效果:


信用卡子类效果:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1446056.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

论文介绍 FreeControl: 无需额外训练实现文本到图像的空间操控!

论文介绍 FreeControl: 无需额外训练实现文本到图像的空间操控&#xff01; 论文介绍 FreeControl: Training-Free Spatial Control of Any Text-to-Image Diffusion Model with Any Condition 关注微信公众号: DeepGo 项目地址&#xff1a;https://genforce.github.io/freeco…

进程间通信[二]

命名管道 mkfifo filename 创建管道 共享内存 systemV 就是一段内存映射到两个进程之中&#xff0c;这段内存就是双方都可以看到同一块公共空间&#xff0c;变具备了进程间通信的前提条件。把映射去掉&#xff0c;然后释放空间&#xff0c;这就是释放共享内存。 共享内存…

实现安全性

实现安全性 问题陈述 Chris希望阅读位于服务器上的电子邮件消息。他将自己的登录信息发送到服务器已进行验证。因此,Chris决定用基于表单的验证来验证他的登录信息。但是,他首先决定只用基于表单的验证测试登录页面 。 解决方案 要解决上述问题,Chris需要执行以下任务: 用…

Github 2024-02-07 开源项目日报 Top9

根据Github Trendings的统计&#xff0c;今日(2024-02-07统计)共有9个项目上榜。根据开发语言中项目的数量&#xff0c;汇总情况如下&#xff1a; 开发语言项目数量Rust项目2TypeScript项目2Python项目2Ruby项目1HTML项目1NASL项目1Go项目1C项目1Svelte项目1C项目1 React Nat…

2024年2月5日-2月11日周报

论文阅读 1. 本周计划2. 完成情况2.1 论文摘要2.2 网络结构2.3 损失函数2.4 优化器2.5 代码2.5.1 代码结果2.5.2 代码大致流程 4. 总结及收获4. 下周计划 1. 本周计划 阅读论文《Data-Driven Seismic Waveform Inversion: A Study on the Robustness and Generalization》并实…

【MATLAB】GA_BP神经网络回归预测算法

有意向获取代码&#xff0c;请转文末观看代码获取方式~也可转原文链接获取~ 1 基本定义 GA_BP神经网络回归预测算法结合了遗传算法&#xff08;Genetic Algorithm, GA&#xff09;和BP神经网络&#xff08;Backpropagation Neural Network, BPNN&#xff09;&#xff0c;用于解…

Verilog刷题笔记29

题目&#xff1a; Create a 100-bit binary ripple-carry adder by instantiating 100 full adders. The adder adds two 100-bit numbers and a carry-in to produce a 100-bit sum and carry out. To encourage you to actually instantiate full adders, also output the ca…

python+django人力资源管理系统7w5x3

技术栈 后端&#xff1a;python 前端&#xff1a;vue.jselementui 框架&#xff1a;django Python版本&#xff1a;python3.7 数据库&#xff1a;mysql5.7 数据库工具&#xff1a;Navicat 开发软件&#xff1a;PyCharm .设计框架&#xff1a;Vue 1. 表现层&#xff1a;写多…

LocalAI 部署(主要针对 mac m2 启动)

LocalAI 部署 介绍 LocalAI 是免费的开源 OpenAI 替代方案。 LocalAI 充当 REST API 的直接替代品&#xff0c;与本地推理的 OpenAI API 规范兼容。 它无需 GPU&#xff0c;还有多种用途集成&#xff0c;允许您使用消费级硬件在本地或本地运行 LLM、生成图像、音频等等&#…

【北邮鲁鹏老师计算机视觉课程笔记】06 corner 局部特征

【北邮鲁鹏老师计算机视觉课程笔记】06 corner 局部特征 1 局部特征的任务牵引&#xff1a;全景拼接 ①提取特征 ②匹配特征 ③拼接图像 我们希望特征有什么特性&#xff1f; ①可重复性 ②显著性 ③计算效率和表达紧凑性 ④局部性 2 特征点检测的任务 3 角点 在角点&#…

EMC学习笔记(二十五)降低EMI的PCB设计指南(五)

线缆和连接器 1 差模和共模噪声2 串扰3 返回路径数量4 外部PCB -IO 布局建议5 防止噪音和静电放电 tips&#xff1a;资料主要来自网络&#xff0c;仅供学习使用。 设计良好的两层板&#xff0c;和大多数四层板&#xff0c;有最小的辐射。系统级的问题是由于将PCB与任何板外支持…

Linux第52步_移植ST公司的linux内核第4步_关闭内核模块验证和log信息时间戳_编译_并通过tftp下载测试

1、采用程序配置关闭“内核模块验证” 默认配置文件“stm32mp1_atk_defconfig”路径为“arch/arm/configs”; 使用VSCode打开默认配置文件“stm32mp1_atk_defconfg”&#xff0c;然后将下面的4条语句屏蔽掉&#xff0c;如下&#xff1a; CONFIG_MODULE_SIGy CONFIG_MODULE_…

机器学习之局部最优和全局最优

(1)局部最优&#xff0c;就是在函数值空间的一个有限区域内寻找最小值;而全局最优&#xff0c;是在函数值空间整个区域寻找最小值问题。 (2)函数局部最小点是它的函数值小于或等于附近点的点&#xff0c;但是有可能大于较远距离的点。 (3)全局最小点是那种它的函数值小于或等于…

【后端高频面试题--Linux篇】

&#x1f680; 作者 &#xff1a;“码上有前” &#x1f680; 文章简介 &#xff1a;后端高频面试题 &#x1f680; 欢迎小伙伴们 点赞&#x1f44d;、收藏⭐、留言&#x1f4ac; 后端高频面试题--Linux篇 Windows和Linux的区别&#xff1f;Unix和Linux有什么区别&#xff1f…

宿舍报修|宿舍报修小程序|基于微信小程序的宿舍报修系统的设计与实现(源码+数据库+文档)

宿舍报修小程序目录 目录 基于微信小程序的宿舍报修系统的设计与实现 一、前言 二、系统功能设计 三、系统实现 1、用户小程序功能模块 2、学生信息管理 3、维修人员管理 4、故障上报管理 5、论坛信息管理 四、数据库设计 1、实体ER图 2、具体的表设计如下所示&…

在Visual Studio中搭建Dynamo Python开发环境,效率飞一般的增长

最近在学习Dynamo中Python Script的用法&#xff0c;发现这个东西用起来太不友好了&#xff0c;不支持自动缩进&#xff0c;不支持自动填充和提示。用过Visual Studio做二开的都知道&#xff0c;在引用了Revit api以后&#xff0c;就可以自动填充和提示了。 本来英语就不好&am…

docker本地目录挂载

小命令 1、查看容器详情 docker inspect 容器名称 还是以nginx为例&#xff0c;上篇文章我们制作了nginx静态目录的数据卷&#xff0c;此时查看nginx容器时会展示出来&#xff08;docker inspect nginx 展示信息太多&#xff0c;这里只截图数据卷挂载信息&#xff09;&#…

《二叉树》——4(Leetcode题目练习)

目录 前言&#xff1a; 题目一&#xff1a;《对称二叉树》 思路&#xff1a; 题目二&#xff1a;《单值二叉树》 思路&#xff1a; 题目三&#xff1a;《检查两颗树是否相同》 思路&#xff1a; 题目四&#xff1a;《前序遍历》 思路&#xff1a; 题目五&#xff1a;《…

CTFshow web(php命令执行 55-59)

web55 <?php /* # -*- coding: utf-8 -*- # Author: Lazzaro # Date: 2020-09-05 20:49:30 # Last Modified by: h1xa # Last Modified time: 2020-09-07 20:03:51 # email: h1xactfer.com # link: https://ctfer.com */ // 你们在炫技吗&#xff1f; if(isset($_GET[…

CVE-2022-25578 漏洞复现

CVE-2022-25578 路由/admin/admin.php是后台&#xff0c;登录账号和密码默认是admin、tao&#xff0c;选择文件管理。 是否还记得文件上传中的.htaccess配置文件绕过发&#xff0c;在这个文件中加入一句AddType application/x-httpd-php .jpg&#xff0c;将所有jpg文件当作php…