21天挑战杯java——Day6-7

目录

编程思维

关于提升编程思维和编程能力的建议

1.案例:找素数

 2.案例:开发验证码

 3.案例:数组元素复制

4.案例:评委打分案例

5.案例:数字加密

6.抢红包


编程思维

使用所学的 Java 技术解决问题的思维方式和编写代码实现出来的能力

关于提升编程思维和编程能力的建议

编程思维和编程能力不是一朝一夕形成的,需要时间的沉淀和大量练习。
具体措施:勤于练习代码,勤于思考,孰能生巧。
前期:先模仿,后期:再创新

1.案例:找素数

100~200之间的素数,并打印素数的个数;
public class Test {
    public static void main(String[] args) {
        int count=0;
        System.out.print("100~200之间的素数:");
        for(int i=100;i<=200;i++){
            if(isPrimeNumber(i)){
                System.out.print(i+" ");
                count++;
            }
        }
        System.out.println();
        System.out.println("素数的个数:"+count);

    }
    //判断是否为素数
   
    public static boolean isPrimeNumber(int x){
         if(x==2){
            return true;
        }
        for(int i=2;i<Math.sqrt(x);i++){
            if(x%i==0){
                return false;
            }
        }
        return true;
    }


}

 2.案例:开发验证码

public class Demo {
    public static void main(String[] args) {
    System.out.println(password(5));
    }
    //随机生成一个n位数的密码
    public static String password(int n){
       Random random=new Random();
       int index;
       String str="";
        for (int i = 0; i < n; i++) {
            char ch;
            //index值为0代表生成一个0~9的数字,1代表生成一个大写字母,2代表生成一个小写字母
            index=random.nextInt(3);
            switch (index){
                case 0:
                    str+=random.nextInt(10);
                    break;
                case 1:
                    ch=(char)(random.nextInt(26)+65);
                    str+=ch;
                    break;
                case 2:
                    ch=(char)(random.nextInt(26)+97);
                    str+=ch;
                    break;
            }
        }
        return str;
    }
}

 3.案例:数组元素复制

需求:
把一个数组中的元素复制到另一个新数组中去。
分析:
需要动态初始化一个数组,长度与原数组一样。
遍历原数组的每个元素,依次赋值给新数组。
输出两个数组的内容。
public class Demo02 {
    public static void main(String[] args) {
        int[] arr1={1,3,4,5,62,6};
        int[] arr2=new int[arr1.length];
//        方法一
        for (int i = 0; i < arr1.length; i++) {
            arr2[i]=arr1[i];
        }
        System.out.println("arr2:"+Arrays.toString(arr2));
//        方法二
        int[] arr3=new int[arr1.length];
        System.arraycopy(arr1,0,arr3,0,arr1.length-1);
        System.out.println("arr3:"+Arrays.toString(arr3));
    }
}

4.案例:评委打分案例

需求 :
在唱歌比赛中,有6名评委给选手打分,分数范围是[0 - 100]之间的整数。选手的最后得分为:去掉最 高分、最低分后的4个评委的平均分,请完成上述过程并计算出选手的得分。
分析:
① 把6个评委的分数录入到程序中去 ----> 使用数组
② 遍历数组中每个数据,进行累加求和,并找出最高分、最低分。
③ 按照分数的计算规则算出平均分。
 
public class Demo03 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入六位评委打的分数:");
        String str=scanner.nextLine();
        String[] strArray=str.split(" ");
        double sum=0;
        int max=0;
        int min=0;
        for (int i = 0; i < strArray.length; i++) {
            int num=Integer.parseInt(strArray[i]);
            min=num;
            sum+=num;
            max=Math.max(max,num);
            min=Math.min(min,num);
        }
        //减去最高分和最低分
        sum=sum-max-min;
        double avg=sum/(strArray.length-2);
        System.out.println("该选手的平均分:"+avg);

    }
}

5.案例:数字加密

需求:
  某系统的数字密码,比如1983,采用加密方式进行传输,规则如下:先得到每位数,然后每位数都加上 5 , 再对10求余,最后将所有数字反转,得到一串新数。

 

6.抢红包

分析
将每位数据存入到数组中去,遍历数组每位数据按照规则进行更改,把更改后的数据从新存入到数组中。
  将数组的前后元素进行交换,数组中的最终元素就是加密后的结果。
public class Demo04 {
    public static void main(String[] args) {
        Scanner scanner=new Scanner(System.in);
        System.out.println("请输入一串数字密码:");
        String s=scanner.nextLine();
        System.out.println("加密后:"+encryption(s));
    }
    public static String encryption(String s){
        String str="";
        int num=Integer.parseInt(s);
        int mod=10;
        int div=1;
        for(int i=0;i<s.length();i++,mod*=10,div*=10){
            str+=((num%mod/div+5)%10);
        }
        return str;
    }
}
需求:
一个大V直播抽奖,奖品是现金红包,分别有{2, 588 , 888, 1000, 10000}五个奖金。请使用代码模拟抽奖, 打印出每个奖项,奖项的出现顺序要随机且不重复。打印效果如下:(随机顺序,不一定是下面的顺序)
888 元的奖金被抽出
588 元的奖金被抽出
10000 元的奖金被抽出
1000 元的奖金被抽出
2 元的奖金被抽出
分析
  定义一个数组用于存储这些奖金金额。
  定义一个数组用于记录已经抽到的金额。
每次抽奖都随机一个索引,取出索引对应的奖金金额,判断该金额之前是否抽中过,抽中过从新抽一次
public class Demo05 {
    public static void main(String[] args) {
        int[] rewords={2,588,888,1000,10000};
        int[] exists=new int[rewords.length];
//        用来记录已抽中元素个数
        int count=0;
        Random random=new Random();
        int index=-1;
        while (true){
            index=random.nextInt(5);
            if(isExists(exists,rewords[index])){
               System.out.println(rewords[index]+"元的奖品已经被抽出");
               continue;
            }
            exists[count]=rewords[count++];
            System.out.println("恭喜你!抽中了"+exists[count-1]+"元的奖品");
            if(count==5){
                break;
            }
        }

    }
//    判断x元素是否之前被抽中
    public static boolean isExists(int[] exists,int x){
        for (int i = 0; i < exists.length; i++) {
            if(exists[i]==x){
                return true;
            }
        }
        return false;
    }
}

活动地址:CSDN21天学习挑战赛

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 6
    评论
### 回答1: 西安e电子科技有限公司的挑战杯计划书如下: 尊敬的评委和领导: 我们西安e电子科技有限公司是一家创新型电子科技公司,致力于智能电子产品的研发和销售。我们参加挑战杯比赛的目的是通过创新的项目,展示我们公司的技术实力和创造力,并与其他优秀的团队竞争。 我们的挑战杯计划是基于可穿戴设备技术的研发。可穿戴设备是目前科技领域的热门方向,具有广泛的应用前景。我们计划开发一款智能健康手环,结合了健康监测和生活辅助功能。该手环可以实时监测用户的心率、血压、血氧饱和度等关键生理指标,并通过智能算法分析数据,为用户提供个性化的健康建议和运动方案。同时,手环还支持电话、短信和社交媒体的提醒功能,提供更便捷的信息互动体验。 我们的项目具有以下优势: 首先,我们公司在电子科技领域拥有丰富的经验和技术实力,拥有一支专业的研发团队和完善的生产设施。我们具备开发和生产可穿戴设备的能力。 其次,我们的产品独具创新性,能够满足市场需求。随着人们对健康关注度的增加,智能健康手环具有巨大的市场潜力。 最后,我们具备强大的市场推广能力和销售渠道。我们将通过线上线下整合推广,与大型电商平台合作,争取更多的曝光度和销售机会。 我们的挑战杯计划既有创新性,又有实际可行性。我们相信,通过我们的努力和奋斗,我们的项目将能够在比赛中脱颖而出,为我们的公司赢得荣誉,并为社会带来真正有益的产品。 谢谢您的审阅和支持! ### 回答2: 西安e电子科技有限公司挑战杯计划书 尊敬的评委: 首先,非常感谢您的时间和机会来审阅我们的挑战杯计划书。我们是西安e电子科技有限公司,是一家致力于电子科技领域创新的企业。 1. 项目简介 我们的挑战杯计划旨在开发一种创新的电子产品,以满足快节奏生活中的实用需求。我们的产品将集成先进的电子技术和人性化设计,旨在提高用户的生活品质和便利性。 2. 技术方案 我们将通过研发多个关键技术来实现项目目标。这些技术包括智能传感器技术、人机交互技术、大数据分析技术等。我们将借助这些技术创造出一个智能、高效、易用的电子产品。 3. 项目市场和商业前景 我们公司深入调研了市场需求和竞争情况,并确信我们的产品将具有广阔的市场前景。目前,人们对便携式、智能化的电子产品需求日益增长,我们的产品正好满足这一需求。我们计划与各大电子产品销售商合作,通过独特的功能和性能优势,在市场中脱颖而出。 4. 团队和资源 我们公司拥有一支由数位电子工程师和市场营销专家组成的专业团队。我们团队成员曾参与过多个电子产品的研发与推广,具备丰富的经验和技术实力。此外,我们公司还拥有完善的生产基地和先进的设备,能够保证产品的质量和供应。 5. 预期效益和社会价值 我们的产品不仅仅是一款智能电子产品,更具有大量社会价值。通过创新的技术和设计,我们将提供更便捷、高效的解决方案,使用户的生活更加便利。我们的产品还将推动电子科技领域的创新发展,为社会带来更多可能。 总之,西安e电子科技有限公司坚信我们的挑战杯计划将取得成功。我们有实力和信心实现技术创新,并达到商业化和社会化的双重效益。期待您的支持和认可,让我们一同开创电子科技的美好未来。 谢谢! ### 回答3: 西安e电子科技有限公司挑战杯计划书 尊敬的评委们: 首先,感谢评委们的宝贵时间,我们是西安e电子科技有限公司,非常高兴能参与挑战杯竞赛,并向评委们介绍我们的计划书。 我们的计划旨在开发一种先进的电子设备,助力环保行业的发展和保护环境。我们相信电子技术的应用可以提供绿色和可持续的解决方案。 首先,我们计划开发一款智能垃圾分类系统。该系统利用先进的图像识别技术,可以自动识别垃圾的种类,并将其归类为可回收物、有害垃圾或其他分类。这将有助于提高垃圾分类的准确性和效率,减少对环境的污染。 其次,我们计划开发一款智能节能设备。该设备通过实时监测电力消耗,提供给用户消费的详细数据和分析报告。用户可以根据报告中的信息,了解哪些设备是耗能较高的,并采取相应的措施来节约能源。通过这种方式,我们希望提高人们的环保意识,并减少对能源的浪费。 最后,我们计划开发一款智能水质检测仪。这款检测仪利用传感器和物联网技术,可以远程监测水质指标,如PH值、溶解氧含量等。它还可以及时检测出水质异常,并提醒相关部门进行处理。这有助于提高水质监测的精确度和效率,保护饮用水的安全性。 我们的挑战杯计划将秉持“绿色、可持续、创新”的理念,致力于推动环保科技的发展和应用。通过我们的产品,我们希望能够改善环境状况,减少资源浪费,并提高人们的环保意识。 如果荣幸获得您的支持和认可,我们将竭尽全力将这些计划转化为实际的创新产品,并为环保事业做出积极贡献。 再次感谢评委们的聆听,期待能有机会与您进一步交流。 谢谢!

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Luck&Strive

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值