首页 > 编程语言 >学习面向对象前--Java基础练习题

学习面向对象前--Java基础练习题

时间:2024-06-22 18:58:16浏览次数:12  
标签:练习题 小写字母 Java Scanner -- int new ASCII public

前言

        写给所有一起努力学习Java的朋友们,敲代码本身其实是我们梳理逻辑的一个过程。我们在学习Java代码的过程中,除了需要学习Java的一些基本操作及使用,更重要的是我们需要培养好的逻辑思维。逻辑梳理好之后,我们编写代码实现需要的功能自然也就如鱼得水,因此本篇文章我整理了一些近期练习的题目以供小伙伴们参考,希望我们在学习的路上并肩同行,奔赴更好的未来!

一、随机验证码

需求

        定义方法实现随机产生一个5位的验证码验证码格式:长度为5前四位是大写字母或者小写字母最后一位是数字

逻辑

        因为前四位是大小写字母,后一位是数字,所以我们在运用random函数生成随机数时需要添加一定的限制条件,生成大小写字母我们用到了ASCII码,大写字母ASCII码为65~90,小写字母ASCII码为97~122,数字ASCII码为48~57,根据他们的ASCII我们限制范围后生成随机数转化为字符拼接输出即可。

代码实现

public class YanZhengMa {
    public static void main(String[] args) {
        char[] str=new char[5];
        //循环五次生成五个数
        for (int i=0;i<5;i++){
            char a = 0;//初始化字符
            if (i<4){
                //前四个为大小写字母,设置限制条件
                while(!(('A'<=a&&a<='Z')||('a'<=a&&a<='z'))){
                    a=(char)(Math.random()*58+65);//生成[65~123),右边为开区间,只取到122为止
                    str[i]=a;
                }
            }else{
                //最后一位为数字,限定random生成范围
                a=(char)(Math.random()*10+48);//生成[48~58),右边为开区间,只取到57为止
                str[i]=a;
            }
        }
        for (int i=0;i<5;i++){
            System.out.print(str[i]);//输出字符 
        }
        System.out.println();
    }
} 

二、评委打分

需求

        在唱歌比赛中,有6名评委给选手打分,分数范围是[0-100]之间的整数。 选手的最后得分为:去掉最高分、最低分后的4个
        评委的平均分,请完成上述过程并计算出选手的得分。

逻辑

        将每一位评委所打分数都存入数组中,然后使用Arrays.sort()方法排序去掉最高分和最低分相加,除以(总人数-2)后输出即可。

代码实现

public class PingWeiDaFen {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int[] arr=new int[6];
        float sum=0;
        for(int i=0;i<6;i++){
            boolean a=true;
            while(a){
                System.out.println("第"+(i+1)+"位评委打分:");
                arr[i]=sc.nextInt();
                if (arr[i]>=0&&arr[i]<=100){
                    a=false;
                }else{
                    System.out.println("输入的值不正确,请重新输入!");
                }
            }
        }
        Arrays.sort(arr);
        for (int i=1;i<arr.length-1;i++){
            sum+=arr[i];
        }
        System.out.println("该选手的得分为:"+(sum/(arr.length-2)));
    }
}

三、数字加密

需求

某系统的数字密码(大于0)。比如1983,采用加密方式进行传输规则如下:

每位数加上5

再对10求余

最后将所有数字反转

得到一串新数

逻辑

        将每位数字加上5,对10取余后倒序输出。

代码实现

public class ShuZiJiaMi {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        System.out.println("请输入要加密的密码:");
        int num=sc.nextInt();
        int sum=num;
        int count=0;
        while (num!=0){
            num/=10;
            count++;
        }
        System.out.println("加密后结果为:");
        int[] arr=new int[count];
        for (int i=0;i<arr.length;i++){
            arr[i]=sum%10;
            arr[i]+=5;
            arr[i]%=10;
            sum/=10;
            System.out.print(arr[i]);
        }
        System.out.println();
    }
}

标签:练习题,小写字母,Java,Scanner,--,int,new,ASCII,public
From: https://blog.csdn.net/weixin_68489989/article/details/139857141

相关文章

  • 做运维的感悟
    服务来说1.对服务版本选择,要和开发沟通,如果开发用的php语言,那就问他写的代码是哪个版本的,不同版本可能不兼容一些语法,会导致出错要选择稳定版,太新的可能会导致一些bug,从而崩溃或服务出错。选择新版本唯一的目的应该是需要新的功能,否则老的版本最稳定服务部署后要进行简单测......
  • jQuery 教程 (二)
    jQuery 事件常见DOM事件:鼠标事件键盘事件表单事件文档/窗口事件clickkeypresssubmitloaddblclickkeydownchangeresizemouseenterkeyupfocusscrollmouseleaveblurunloadhoverjQuery效果jQuery效果- 隐藏和显示<!DOCTYPEhtml><htmllang="en"><head><metacha......
  • 【图文】ROG魔霸3硬件更新教程:清灰换硅脂,液金,加装硬盘ssd
    新三年,旧三年,缝缝补补又三年~~准备1.魔霸3一台2.防静电:手套,静电手环,类似的都可以3.工具:螺丝刀,酒精棉片(大量,仅清灰不必),小刷子(化妆的那种很合适)4.液金,绝缘硅脂,硅脂5.ssd,ssd排线清灰1.关机,拆掉后盖螺丝。左上角和右上角螺丝没法彻底拆下,对称拧松即可。最边上的螺......
  • 机器学习课程复习——决策树
    Q:这三个算法哪一个可以用来做回归?CART Q:这学期学过的分类算法有哪些?支持向量机、决策树、k近邻、逻辑回归、朴素贝叶斯、ANN(注意区分分类算法与聚类算法)Q:计算题根据以上条件,生成相应的决策树 1.ID3算法2.C4.5算法3.CART算法Q:剪枝的逻辑?(由于决策树容易......
  • Javascript 教程
     JavaScript 输出使用 window.alert() 弹出警告框<!DOCTYPEhtml><html><head><metacharset="UTF-8"> <title>使用window.alert()弹出警告框</title></head><body> <script>window.alert(&qu......
  • Dragon Boat Festival Revised
    DragonBoatFestivalHaveyoueverwonderedaboutafestivalthatintegratesthrillingboatraces,delicioustreats,andarichhistory?LooknofurtherthantheDragonBoatFestival!TheDragonBoatFestival,whichfallsonthefifthdayofthefifthlun......
  • 学习Ange记录--06~10
    06.changesymbolicinheap再来复习一下流程1.建立项目p=angr.Project(path)2.设置入口state=p.factory.blank_state(0xffffffff)3.设置符号对象pw=claripy.BVS('pw',64)4.这次是把符号放到堆上,于是可以自己创个新的堆就好了(1).给新的堆一个地址(2).给新的指向堆的指针一......
  • 安装mysql(版本:8.0.28)
    一、更新源和安装sudoaptupdate#更新源sudoaptinstallmysql-server#安装二、修改密码和权限sudomysql#登录mysql,使用root用户连入mysql,默认不需要密码ALTERUSER'用户名'@'localhost'IDENTIFIEDWITHmysql_native_passwordBY'明文密码';#修改密码Updateus......
  • Vite-Wechat网页聊天室|vite5.x+vue3+pinia+element-plus仿微信客户端
    基于Vue3+Pinia+ElementPlus仿微信网页聊天模板Vite5-Vue3-Wechat。vite-wechat使用最新前端技术vite5+vue3+vue-router@4+pinia+element-plus搭建网页端仿微信界面聊天系统。包含了聊天、通讯录、朋友圈、短视频、我的等功能模块。支持收缩侧边栏、背景壁纸换肤、锁屏、最大化等......
  • 安装 docker
    https://docs.docker.com/engine/install/ubuntu/#install-using-the-repository#这一步需要使用代理才能成功sudocurl-xhttp://127.0.0.1:7890-fsSLhttps://download.docker.com/linux/ubuntu/gpg-o/etc/apt/keyrings/docker.asc#AddtherepositorytoAptsources......