JAVASE基础《七》JAVA案例小王子C

八、案例八:打印乘法表,打印三角形

九、案例九:模拟双色球[拓展案例]

1、业务分析、随机生成一组中奖号码

2、让用户输入一组号码

3、判断中奖情况

前言

目的1:复习前面学过的编程知识,能够利用所学的知识解决问题

目的2:积攒大家的代码量,以训练并提升大家的编程能力,编程思维

案例买飞机票

需求用户购买机票时,机票价格按照淡季、旺季、头等舱还是经济舱的情况进行相应的优惠,优惠方案如下:

旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折,请开发程序计算出用户当前机票的优惠价。

分析

publicclasstest{publicstaticvoidmain(String[]args){doubleprice=calculate(1000,8,"经济舱");System.out.println("优惠价是:"+price);}publicstaticdoublecalculate(doubleprice,intmonth,Stringtype){//1.判断当前月份是旺季还是淡季if(month>=5&&month<=10){switch(type){case"头等舱":price=price*0.9;break;case"经济舱":price*=0.85;break;}}else{switch(type){case"头等舱":price=price*0.9;break;case"经济舱":price*=0.85;break;}}returnprice;}}总结

1、遇到需要通过判断数据在哪个区间,来决定执行哪个业务,应该用什么实现?

2、遇到需要通过判断数据匹配哪个值,来决定执行哪个业务,应该用什么实现?

案例开发验证码

需求:

①方法是否需要接受数据?需要接收一个整数,控制生成验证码的位数。

②方法是否需要返回数据?需要返回生成的验证码。

③方法内部的业务:使用for循环依次生成每位随机字符,并使用一个String类的变量把每个字符连接起来,最后返回该变量即可。

packagecom.ctgu.demo;importjava.util.Random;publicclasstest{publicstaticvoidmain(String[]args){System.out.println(createCode(5));}publicstaticStringcreateCode(intn){Randomr=newRandom();Stringcode="";for(inti=0;i

1、随机验证码的核心实现逻辑是如何进行的?

三、案例三:评委打分

案例评委打分案例

需求

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

packagecom.ctgu.demo;importjava.util.Random;importjava.util.Scanner;publicclasstest{publicstaticvoidmain(String[]args){System.out.println(getAverageScore(6));}publicstaticdoublegetAverageScore(intnumber){int[]scores=newint[number];Scannersc=newScanner(System.in);for(inti=0;iscores[i])min=scores[i];}return1.0*(sum-min-max)/(number-2);}}总结

1、如何实现评委打分案例?

案例数字加密

需求某系统的数字密码是一个四位数,如1983,为了安全,需要加密后再传输,加密规则是:对密码中的每位数,都加5,再对10求余,最后将所有数字顺序反转,得到一串加密后的新数,请设计出满足本需求的加密程序!

1、方法是否需要接受数据进行处理?需要接受四位数字密码,进行加密处理。

2、方法是否需要返回数据?需要返回加密后的结果。

3、方法内部的业务:将四位数密码差分成一个一个的数字,存入到数组中去,遍历数组中的每个数字,按照题目需求进行加密!最后,再把加密后的数字拼接起来返回即可!

packagecom.ctgu.demo;importjava.util.Random;importjava.util.Scanner;publicclasstest{publicstaticvoidmain(String[]args){System.out.println("加密后的结果是:"+encrpyt(1983));}publicstaticStringencrpyt(intnumber){int[]numbers=split(number);for(inti=0;i

1、回顾数组元素的反转、交换是如何完成的?

2、如果一个方法里要做的事比较多,我们再开发中一般会怎么做?

案例数组拷贝

需求请把一个整型数组,例如存了数据:11,22,33,拷贝成一个一模一样的新数组出来。

1、方法是否需要接受数据进行处理?需要接受一个整型数组(原数组)。

2、方法是否需要返回数据?需要返回一个新的、一摸一样的整型数组。

3、方法内部业务:创建一个长度一样的整型数组作为新数组,并把原数组的元素对应位置赋值给新数组,最终返回新数组即可。

packagecom.ctgu.demo;importjava.util.Random;importjava.util.Scanner;publicclasstest{publicstaticvoidmain(String[]args){int[]arr={11,22,33};int[]arr2=copy(arr);printArray(arr2);}publicstaticvoidprintArray(int[]arr){System.out.print("[");for(inti=0;i

1、数组的拷贝是什么意思?

案例抢红包

1、方法是否需要接受数据进行处理?需要接受一个数组,里面是5个金额,表示5个红包。

2、方法是否需要返回数据?不需要

packagecom.ctgu.demo;importjava.util.Random;importjava.util.Scanner;publicclasstest{publicstaticvoidmain(String[]args){int[]moneys={9,666,188,520,9999};start(moneys);}publicstaticvoidstart(int[]moneys){Scannersc=newScanner(System.in);Randomr=newRandom();//moneys={9,666,188,520,99999}for(inti=1;i<=5;i++){System.out.println("请您输入任意内容进行抽奖:");sc.next();//等待用户输入内容,按了回车才往下走。while(true){intindex=r.nextInt(moneys.length);//0-4intmoney=moneys[index];if(money!=0){System.out.println("恭喜您,您抽中了红包,"+money);;moneys[index]=0;break;}}}System.out.println("活动结束。。");}}4、方法内部完成本需求的第2种方案:先把数组里面的5个金额打乱顺序,打乱后的顺序就认为是中奖顺序;接着,写个for循环,执行5次,每次都提示抽奖;每次抽奖。都依次取出数组中的每个位置处的金额作为中奖金额即可。

packagecom.ctgu.demo;importjava.util.Random;importjava.util.Scanner;publicclasstest{publicstaticvoidmain(String[]args){int[]moneys={9,666,188,520,9999};start(moneys);}publicstaticvoidstart(int[]moneys){Scannersc=newScanner(System.in);Randomr=newRandom();//moneys={9,666,188,520,99999}for(inti=1;i<5;i++){intindex=r.nextInt(moneys.length);//0-4inttemp=moneys[i];moneys[i]=moneys[index];moneys[index]=temp;}for(inti=0;i<5;i++){System.out.println("请您输入任意内容进行抽奖:");sc.next();//等待用户输入内容,按了回车才往下走。while(true){if(i<5){System.out.println("恭喜您,您抽中了红包,"+moneys[i]);break;}}}System.out.println("活动结束。。");}}总结

1、抢红包的实现方案有几种,哪种方式可能更好一些?

案例找素数

说明:除了1和它本身以外,不能被其他正整数整除,就叫素数。

比如:3、7就是素数,而9、21等等就不是素数。

分析:

1、方法是否需要接受数据进行处理?需要接受101以及200,以便找该区间中的素数。

2、方法是否需要返回数据?需要返回找到的素数个数。

3、方法内部的实现逻辑:使用for循环来产生如101到200之间的每个数;没拿到一个数,判断该数是否素数;判断规则是:从2开始遍历到该数的一半的数据,看是否有数据可以整除它,有则不是素数,没有则是素数;根据判定的结果来决定是否输出这个数据(是素数则输出);最后还需要统计素数的个数并返回。

packagecom.ctgu.demo;importjava.util.Random;importjava.util.Scanner;publicclasstest{publicstaticvoidmain(String[]args){//目标:完成找素数System.out.println("当前素数的个数是:"+search(101,200));}publicstaticintsearch(intstart,intend){intcount=0;//start=101end=200//1、定义一个for循环找到101到200之间的每个数据for(inti=start;i

packagecom.ctgu.demo;importjava.util.Random;importjava.util.Scanner;publicclasstest{publicstaticvoidmain(String[]args){//目标:完成找素数intcount=0;OUT://为外部循环指定标签for(inti=101;i<200;i++){//i=101,102,....200//2、判断当前1记住的这个数据是否是素数。for(intj=2;j<=i/2;j++){if(i%j==0){//当前记住的这个数据不是素数了continueOUT;//结束外部循环的当次执行}}count++;System.out.println(i);}System.out.println("个数是:"+count);}}法3

packagecom.ctgu.demo;importjava.util.Random;importjava.util.Scanner;publicclasstest{publicstaticvoidmain(String[]args){intcount=0;for(inti=101;i<=200;i++){//i遍历到的当前数据是否是素数,是则输出,不是则不输出。if(check(i)){System.out.println(i);count++;}}System.out.println("素数的个数是:"+count);}publicstaticbooleancheck(intdata){for(inti=2;i<=data/2;i++){if(data%i==0){returnfalse;//不是素数}}returntrue;}}总结

1、本次案例中是如何确定处该数是素数的,具体如何实现?

案例打印乘法表

packagecom.ctgu.demo;publicclasstest{publicstaticvoidmain(String[]args){//1、定义一个for循环控制打印多少行for(inti=1;i<=9;i++){//2、定义一个内部循环控制每行打印多少列。for(intj=1;j<=i;j++){//i行j列System.out.print(j+"x"+i+"="+(j*i)+"\t");}System.out.println();//换行}}}

案例打印三角形

九、案例九:模拟双色球【拓展案例】

案例双色球系统-业务分析、随机生成一组中奖号码

双色球业务介绍:

总体实现步骤分析:

注意:6个红球号码的范围是1-33之间,且不能重复;1个篮球号码的范围在:1-16之间。

1、本次案例中是如何去保证用户投注的6个红球号码不重复的?

2、随机生成一组中奖号码

案例模拟双色球:随机一组中奖号码出来

第二步:随机一组中奖号码出来

注意:6个红球号码的范围是1-33之间,且不能重复;1个蓝球号码的范围在:1-16之间。

//2、设计一个方法:随机一组中奖号码出来(6个红球号码,1个蓝球号码)publicstaticint[]createLuckNumbers(){//1、创建一个整型数组,用于存储7个号码int[]numbers=newint[7];Randomr=newRandom();//2、遍历6个位置处,依次随机一个红球号码存入(1-33不重复)for(inti=0;i

1、本次案例中是如何去保证随机的6个中奖的红球号码不重复的?

THE END
1.双色球24139期带你解析7+2红蓝复试推荐大乐透期双色球24139期带你解析7+2红蓝复试推荐 双色球怎么算?别再傻傻的凭感觉了!今天给大家分享几个实用的双色球计算公式,都是经过历史数据验证过的,中奖率非常高。 第一种:历史数据分析法。这个方法适用于新手小白,适合你对彩票一窍不通的朋友。首先在电脑上打开双色球的历史开奖走势图,在走势图上把红蓝球分别画https://www.163.com/dy/article/JIEK6JA50556A2DS.html
2.双色球投注技巧之经典7+2复式双色球7+2复式投注是指从红球区(01~33)中任选7个不同的号码,从蓝球区(01~16)中任选2个号码,组合成多注投注号码进行投注。这种投注方式一共可以组成14种不同的组合方式,因此也被称为“小复式投注”。 二、7+2复式投注的优势 涵盖号码范围广:相比单式投注,7+2复式投注涵盖了更多的号码组合,从而增加了中奖的https://m.17500.cn/arts-m/sdetail-11078420.html
3.双色球复式中奖规则7加2中了多少钱双色球双色球复式中奖规则7加2中了多少钱,今天小编给大家介绍一下彩票双色球的更多玩法及专家资讯推荐方案,如果你也对双色球感兴趣的可以跟着小编一起来了解个所以然。https://vipc.cn/tags/shuangseqiufushizhongjiangguize7jia2zhongleduoshaoqian
4.男子7+2小复式揽双色球575万自选号中奖很骄傲8月17日晚开奖的福彩双色球第2023095期,全国中出一等奖22注,单注奖金575万元。福建购彩者喜获其中1注,大奖花落泉州南安市水头镇奎峰路189号的福彩35051585投注站。中奖彩票是一张7+2复式票,除了中得1注一等奖外,还中得1注二等奖和众多固定奖,总奖金达583万元。值得一提的是,这是泉州购彩者连续2期揽获双色https://lotto.sina.cn/2023-08-25/detail-imziknye1447829.d.html
5.中年男7+2复式票揽双色球567万奖金先偿还房贷彩票中奖彩站庆祝大奖 5月20日,中国福利彩票双色球第2021055期开奖,清远市新城的一位彩民朋友以一张28元“7+2”复式投注票共中出1注一等奖,1注二等奖,6注三等奖,6注四等奖,合计奖金达567万元。5月24日,这位幸运彩民刘先生(化名)在妻子的陪同下来到市福彩中心验票办理了兑奖手续。 https://sports.sina.com.cn/l/2021-05-28/doc-ikmyaawc8038858.shtml
6.彩票怎样才能中奖?通过一定的数学算法是否可行中奖的期望怎么求毕竟你不能购买所有彩票,因为彩票的收益来自没中奖的那些人。你只能购买一部分彩票,设法使得自己购买的号码有最大的中奖可能。 为了简化思考,让我们考虑一种简单的情况。1到7里面猜三个数字,奖金如下。 猜中3个:奖金6元 猜中2个:奖金2元 猜中1个:无奖金 https://blog.csdn.net/ITLearnHall/article/details/102761446
7.七乐彩游戏规则第四条 七乐彩实行自愿购买,凡购买者均被视为同意并遵守本规则。 第五条 不得向未成年人销售彩票或兑付奖金。 第二章 投注 第六条 七乐彩采用组合式玩法,从01—30共30个号码中选择7个号码组合为一注投注号码。每注金额人民币2元。 第七条 七乐彩每周销售三期,期号以开奖日界定,按日历年度编排。 http://www.tjflcpw.com/play/qlc.aspx
8.31选7规则31选7开奖时间31选7中奖规则31选7开奖搜狐彩票提供中国体育彩票-31选7走势图,31选7开奖结果,31选7玩法,31选7规则,31选7开奖时间,31选7中奖规则,31选7开奖等关于体彩31选7的全部内容,了解更多关于中国体育彩票31选7的内容,请登录搜狐彩票频道https://sports.sohu.com/s2009/31xuan7/
9.快乐8彩票2024年2月,民政部通报12·2中彩票2.2亿事件,全流程严格按照规定程序进行,奖金不存在被挪用,中奖者无须缴纳个人所得税[2]。 快速导航 词条图册 中文名 快乐8彩票 返奖率 50% 发行机构 中福彩发行管理中心目录 1彩票简介 2彩票背景 3彩票特点 4玩法规则 5彩票玩法 选号玩法 和值玩法 投注技巧 6玩法规定 7风https://baike.sogou.com/v63197568.htm
10.西媒:皇马已错失数百万欧欧冠奖金,若踢附加赛他们赛程会更难36选7好彩2复式投注价目表 5188网合法吗 分分彩app官方免费下载 151金沙app官方门沙官网 360直播即使 35选7中奖规则 体育注册领取36元体验金 500vip彩票安卓下载官网 166cai彩票是官方的吗 3830玩彩网app下载 365提款注单审核 亿万二八pg下载 2023澳门特马今晚开奖图表大全 财神彩票最新网址 563彩票网首页 http:/http://m.ku6507.net/HML/moa/ewDnGUbUP.html
11.641万元!中山一彩民“7+2”复式票中出双色球大奖新闻频道中山一彩民“7+2”复式票中出双色球大奖 9月6日晚,双色球第2022103期开奖,开奖号码为红球:06、09、12、14、20、28,蓝球:10。当期全国共开出了12注一等奖,单注奖金为626万元,中山一彩民喜中1注一等奖。该大奖出自位于中山市黄圃镇大岑村大兴东路新利新百货侧的44110148号福彩投注站,这是中山彩民今年收获的https://www.zsnews.cn/index.php/news/index/view/cateid/35/id/694398.html
12.双色球胆拖:5拖7,篮球7个。胆没中,拖中2个,蓝中了,请问奖金是多少?双色球红球号码选5个胆码7个拖码,蓝球号码选7个号码。你拖码中2个号码,蓝球号码也中,中奖情况如下https://wenwen.soso.com/z/q790997836.htm