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

前言

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

一、随机验证码

需求

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

逻辑

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

代码实现

java 复制代码
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)后输出即可。

代码实现

java 复制代码
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取余后倒序输出。

代码实现

java 复制代码
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();
    }
}
相关推荐
劈星斩月9 分钟前
监督学习算法 之 决策树
学习·算法·决策树
学计算机的计算基13 分钟前
操作系统内存管理全解:虚拟内存、页表、COW、malloc、OOM一篇搞定
java·笔记·算法
tachibana218 分钟前
hot100 前 K 个高频元素(347)
java·数据结构·算法·leetcode
AOwhisky20 分钟前
Python 学习笔记(第五期)——组合数据类型:列表、元组、集合与字典精讲——核心知识点自测与详解
开发语言·笔记·python·学习·云计算
woshihuanglaoshi35 分钟前
数据迁移与版本管理 - Flutter在鸿蒙平台实现数据库升级策略
数据库·学习·flutter·华为·harmonyos·鸿蒙·鸿蒙系统
万亿少女的梦16836 分钟前
基于Spring Boot、Java与MySQL的网络订餐系统设计与实现
java·spring boot·mysql·系统设计·网络订餐
咩咩啃树皮9 小时前
第40篇:Vue3组件化开发精讲——组件拆分、复用、父子通信、工程化架构
java·前端·架构
灯澜忆梦9 小时前
GO_并发编程---定时器
开发语言·后端·golang
鱟鲥鳚10 小时前
Spring Boot 集成 LangChain4j:从模型调用到 Tool Calling(Demo版)
java·spring boot
-银雾鸢尾-10 小时前
C#中的StringBuilder相关方法
开发语言·c#