IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Java知识库 -> Java100天编程指南---第11天:综合案例 -> 正文阅读

[Java知识库]Java100天编程指南---第11天:综合案例

?


目录

一、前言

二、编程训练

?三、减肥计划

1.问题分析

2.if编码实现

3.switch编码实现

4.输出结果

?四、逢七过

1.问题分析

2.编码实现

3.输出结果

?五、百鸡百钱

1.问题分析

2.编码实现

3.输出结果

? 六、不死神兔

1.问题分析

2.编码实现

3.输出结果

七、找素数

1.问题分析

2.编码实现

3.输出结果

?八、数组元素复制

1.问题分析

2.编码实现

3.输出结果

九、评委打分

1.问题分析

2.编码实现

3.输出结果

十、数字加密

1.问题分析

2.编码实现

3.输出结果

附录:


一、前言

  • 学习概述:之前的10天我们主要学习了运算符:基本运算符、关系运算符、逻辑运算符…、程序流程控制、死循环、循环嵌套、跳转关键字、方法、变量、数组,今天我们来做几个简单的案例题目,巩固一下知识点
  • 学习目标:了解编程思想、能够独立编写下面的代码

二、编程训练

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

  • 编程思维和编程能力不是一朝一夕形成的,需要时间的沉淀和大量练习。

  • ?前期:做一些典型的简单例题,后期:可以到牛客、力扣刷一些算法题

?三、减肥计划

  • 需求:输入星期数,显示今天的减肥计划
  • 周一:跑步
  • 周二:游泳
  • 周三:慢走
  • 周四:单车
  • 周五:拳击
  • 周六:爬山
  • 周七:睡觉

1.问题分析

  • 这一题我们可以使用之前学习过的if 语句、switch语句实现

2.if编码实现

import java.util.*;
public class Weight {

	public static void main(String[] args) 
	{
		int week;
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入一个星期数");
		week=sc.nextInt();
		if(week<1||week>7)
		{
			System.out.println("输入的星期数有误");
		}else if(week==1)
		{
			System.out.println("跑步");
		}else if(week==2)
		{
			System.out.println("游泳");
		}else if(week==3)
		{
			System.out.println("慢走");
		}else if(week==4)
		{
			System.out.println("单车");
		}else if(week==5)
		{
			System.out.println("拳击");
		}else if(week==6)
		{
			System.out.println("爬山");
		}else 
		{
			System.out.println("睡觉");
		}
	}
}

3.switch编码实现

import java.util.*;
public class Weight {

	public static void main(String[] args) 
	{
		int week;
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入一个星期数");
		week=sc.nextInt();
		switch (week) {
		case 1:
			System.out.println("跑步");
			break;
		case 2:
			System.out.println("游泳");
			break;	
		case 3:
			System.out.println("慢走");
			break;
		case 4:
			System.out.println("单车");
			break;
		case 5:
			System.out.println("拳击");
			break;
		case 6:
			System.out.println("爬山");
			break;
		case 7:
			System.out.println("睡觉");
			break;
		default:
			System.out.println("输入的星期有误");
			break;
		}
	}
}

4.输出结果

请输入一个星期数
5
拳击
10
输入的星期有误

?四、逢七过

  • 从任意一个数字开始报数,要报的数字包含7或是7的倍数,就跳过,我们要输出跳过了哪些数字
  • 数据范围1-100

1.问题分析

  • 这一题直接遍历1-100的元素,输出满足条件的结果

2.编码实现

public class Pass {

	public static void main(String[] args) 
	{
		for(int x=1;x<=100;x++)
		{
			if(x%7==0||x%10==7||x/100==7)
			{
				System.out.println(x);
			}
		}
	}
}

3.输出结果

7
14
17
21
27
28
35
37
42
47
49
56
57
63
67
70
77
84
87
91
97
98

?五、百鸡百钱

  • 我国古代数学家张丘建在《算经》一书中提出的数学问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。百钱买百鸡,问鸡翁、鸡母、鸡雏各几何?

1.问题分析

  • 鸡翁:范围0-20,x
  • 鸡母:范围0-33,y
  • 鸡雏:z=100-5*x-3*y
  • 因为鸡雏三值钱一,所以当z%3==0&&5*x+3*y+z/3==100,满足条件

2.编码实现

import java.util.*;
public class Chicken {

	public static void main(String[] args) 
	{
		for(int x=0;x<=20;x++)
		{
			for(int y=0;y<=33;y++)
			{
				int z=100-x-y;
				if(z%3==0&&5*x+3*y+z/3==100)
					System.out.println(" 鸡翁 "+x+" 鸡母 "+y+" 鸡雏 "+z);	
			}
		}
	}
}

3.输出结果

 鸡翁 0 鸡母 25 鸡雏 75
 鸡翁 4 鸡母 18 鸡雏 78
 鸡翁 8 鸡母 11 鸡雏 81
 鸡翁 12 鸡母 4 鸡雏 84

? 六、不死神兔

  • 有一对兔子,从出生第三个月起每个月都生一对兔子,小兔子长到第三个月后,每个月又生一只兔子,假如兔子都不死,问第n个月的兔子对数为多少
  • n属于1-40

1.问题分析

  • 1 1 2 3 5 8......
  • 这其实就是斐波那契数列,从第三项开始,每一项的数值为前两项之和
  • 我们定义一个带参、有返回值的函数实现

2.编码实现

import java.util.*;
public class Rabbit {

	public static int  Fibo(int n)//定义一个带参、有返回值的函数
	{
		if(n==1||n==2) return 1;
		else return Fibo(n-1)+Fibo(n-2);
		
	}
	public static void main(String[] args) 
	{
		int n;
		Scanner sc=new Scanner(System.in);
		System.out.println("请输入第几个月份");
		n=sc.nextInt();
		System.out.println("第"+n+"月份的兔子对数为"+Fibo(n));//输出结果
		
	}
}

3.输出结果

请输入第几个月份
20
第20月份的兔子对数为6765

七、找素数

  • 判断101-102有几个素数,并输出所有结果

1.问题分析

  • 素数:如果除了1和它本身以外,不能被其他正整数整除,就叫素数

  • 我们先构造一个判断素数的方法,类型为boolean

  • for循环遍历101-200所有数字,每个数字调用方法,如果是素数,那么输出结果,计数器++

2.编码实现

import java.util.*;
public class Prime {

	public static boolean judge(int k)//定义有参返回方法
	{
		if(k<2)
			return false;
		for(int i=2;i<=k/i;i++)//素数判断
		{
			if(k%i==0)
				return false;
		}
		return true;
	}
	public static void main(String[] args) 
	{
		int sum=0;
		for(int i=101;i<=200;i++)//for循环遍历
		{
			if(judge(i))//调用方法
			{
				System.out.println(i);//输出结果
				sum++;
			}
		}
		System.out.println("101-200总共有"+sum+"个素数");
	}
}

3.输出结果

101
103
107
109
113
127
131
137
139
149
151
157
163
167
173
179
181
191
193
197
199
101-200总共有21个素数

?八、数组元素复制

  • 静态初始化数组,存入1-9数字,将元素倒序存入动态初始化的数组中,要求输出动态初始化的数组元素

1.问题分析

2.编码实现

import java.util.*;
public class CopyArray {

	public static void main(String[] args) 
	{
		int [] array= {1,2,3,4,5,6,7,8,9};//静态初始化数组
		int i,n=array.length;
		int [] result=new int[n];//动态初始化数组
		for(i=0;i<n;i++)//倒序存入
		{
			result[i]=array[n-1-i];
		}
		for(i=0;i<n;i++)//输出结果
		{
			System.out.print(result[i]+" ");
		}
	}
}

3.输出结果

9 8 7 6 5 4 3 2 1 

九、评委打分

  • 在唱歌比赛中,有6名评委给选手打分,分数范围是[0 - 100]之间的整数。

  • 选手的最后得分为:去掉最高分、最低分后的4个评委的平均分,请完成上述过程并计算出选手的得分。

1.问题分析

  • 这一题我们先定义容量为6的动态数组,依次存入每个评委的打分,记录总和
  • 利用Arrays.sort(array);排序,减去一个开头最小的,结尾最大的
  • 求出平均有效成绩

2.编码实现

import java.util.*;
public class Grade {

	public static void main(String[] args) 
	{
		int [] array=new int[6];//动态初始化
		int i,sum=0;
		Scanner sc=new Scanner(System.in);
		for(i=0;i<6;i++)//输入数据
		{
			System.out.println("请输入第"+(i+1)+"个评委的打分");
			array[i]=sc.nextInt();
			sum+=array[i];
		}
		Arrays.sort(array);//从小到大排序
		sum-=(array[0]+array[5]);//去除无效得分
		System.out.println("去除一个最低分"+array[0]+"去除一个最高分"+array[5]);
		System.out.println("评委的有效得分为"+1.0*sum/4+"分");//输出结果
	}
}

3.输出结果

请输入第1个评委的打分
89
请输入第2个评委的打分
100
请输入第3个评委的打分
79
请输入第4个评委的打分
95
请输入第5个评委的打分
90
请输入第6个评委的打分
88
去除一个最低分79   去除一个最高分100
评委的有效得分为90.5分

十、数字加密

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

1.问题分析

  • 我们将每位数据存入到数组中去,遍历数组每位数据按照规则进行更改,把更改后的数据从新存入到数组中
  • 最后不需要反转,直接输出就行,因为我们数组存储时设置倒序存储

2.编码实现

import java.util.*;
public class Encrypt {
	public static void main(String[] args) 
	{
		int i,n,k=0;
		Scanner sc=new  Scanner(System.in);
		System.out.println("请输入要加密的数字:");
		n=sc.nextInt();
		int [] array=new int[1024];//动态初始化数组
		while(true)//数组倒序存储
		{
			array[k++]=n%10;
			n=n/10;
			if(n==0)
				break;
		}
		for(i=0;i<k;i++)//应用规则
		{
			array[i]=(array[i]+5)%10;
		}
		System.out.println("加密之后的数字为:");
		for(i=0;i<k;i++)//输出结果
		{
			System.out.print(array[i]+" ");
		}
	}
}

3.输出结果

请输入要加密的数字:
1983
加密之后的数字为:
8 3 4 6 

附录:

  Java知识库 最新文章
计算距离春节还有多长时间
系统开发系列 之WebService(spring框架+ma
springBoot+Cache(自定义有效时间配置)
SpringBoot整合mybatis实现增删改查、分页查
spring教程
SpringBoot+Vue实现美食交流网站的设计与实
虚拟机内存结构以及虚拟机中销毁和新建对象
SpringMVC---原理
小李同学: Java如何按多个字段分组
打印票据--java
上一篇文章      下一篇文章      查看所有文章
加:2022-05-14 09:49:17  更:2022-05-14 09:49:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 21:41:58-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码