学习面向对象前--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();
    }
}
相关推荐
杨杨杨大侠8 小时前
都能接模型、RAG 和 MCP,Java Agent 框架到底差在哪?
java
破茧蝴蝶8 小时前
Python分布式爬虫完整教程
开发语言·python
狗凯之家源码网9 小时前
全新 PHP 轻量客服聊天室源码深度评测
开发语言·php·聊天室系统
我是伪码农9 小时前
百蝶杯学习
学习
远离UE49 小时前
UE5 Substrate Thin Film 源码拆析
开发语言·javascript·ue5
keyipatience9 小时前
JavaScript学习(1)书写位置,变量、数据类型、运算符
开发语言·前端·javascript·css·学习
Thinker QAQ9 小时前
并发编程(九):BlockingQueue 与 Channel——语言层的原子性、可见性与有序性
java·python·go·并发编程·channel·blockingqueue·message passing
栈帧之外10 小时前
【C++】STL之set
开发语言·c++
霸道流氓气质11 小时前
RAG 可观测性与生产监控实战:四层遥测模型、五大仪表盘与 OpenTelemetry 全链路追踪的 Java 生产级实现
java·人工智能·python
AOI小白新手上路11 小时前
autodl常用的tar 打包下载(数据集)命令手册:逐段拆解与套用模板
java·大数据·数据库