编程案例分享
编程思维
使用所学的Java技术解决问题的思维方式和编写代码实现出来的能力。
关于提升编程思维和编程能力的建议
编程思维和编程能力不是一朝一夕形成的,需要时间的沉淀和大量练习。
前期:先模仿,后期:再创新。
具体措施:勤于练习代码,勤于思考,孰能生巧。
案例一:买飞机票
需求:
机票价格按照淡季旺季、头等舱和经济舱收费、输入机票原价、月份和头等舱或经济舱。
机票最终优惠价格的计算方案如下:旺季(5-10月)头等舱9折,经济舱8.5折,淡季(11月到来年4月)头等舱7折,经济舱6.5折。
分析:
键盘录入机票的原价,仓位类型,月份信息,调用方法返回机票最终的优惠价格。
方法内部应该先使用if分支判断月份是是旺季还是淡季,然后使用switch分支判断是头等舱还是经济舱。
选择对应的折扣进行计算并返回计算的结果,如果信息录入有误返回价位为-1元代表即可。
总结:
1.遇到判断值匹配的时选择什么结构实现?
使用switch分支结构实现。
2.遇到判断区间范围的时候选择什么结构实现?
使用if分支结构实现。
案例二:找素数
说明
除了1和它本身以外,不能被其他正整数整除,就叫素数。
分析
101-200之间的数据可以采用循环依次拿到; 每拿到一个数,判断该数是否是素数。
判断规则是:从2开始遍历到该数的一半的数据,看是否有数据可以整除它,有则不是素数,没有则是素数。
如果最终判定是素数,即可输出展示。
总结:
1.本次案例中是如何确定出该数是素数的,具体如何实现?
定义了flag标记位
遍历2到该数的一半的数据去判断是否有整除的数据,有则改变falg标记位的状态。
最终通过flag的状态判断是否是素数。
案例三:开发验证码
总结:
1.随机验证码的核心实现逻辑是如何进行的?
①定义一个String类型的变量存储验证码字符。
②定义一个for循环,循环5次。
③随机生成0|1|2的数据,依次代表当前位置要生成数字|大写字母|小写字母。
④把0、1、2交给switch生成对应类型的随机字符,把字符交给String变量。
⑤循环结束后,返回String类型的变量即是所求的验证码结果。
案例四:数组元素的复制
需求:
把一个数组中的元素复制到另一个新数组中去。
分析:
需要动态初始化一个数组,长度与原数组一样。
遍历原数组的每个元素,依次赋值给新数组。
输出两个数组的内容。
总结:
1.数组的拷贝是什么意思?
需要创建新数组,把原来数组的元素赋值过来。
案例五:评委打分
总结:
1.如何实现评委打分案例?
①定义一个动态初始化的数组用于存储分数数据。
②定义三个变量用于保存最大值、最小值和总和。
③遍历数组中的每个元素,依次进行统计。
④遍历结束后按照规则计算出结果即可。
案例七:模拟双色球[拓展案例]
双色球系统-业务分析、随机生成一组中奖号码
双色球系统-用户输入一组双色球号码
模拟双色球系统-判断中奖情况
总结:
1.本次案例中是如何去统计红球的命中数量的?
遍历用户的每个选号,然后遍历中奖号码的数组。
看当前选号是否在中奖号码中存在,存在则命中数量加1。