js的浅拷贝和深拷贝

Linux-文件IO

  返回  

Java基础练习题(数组)2

2021/8/21 18:28:36 浏览:
package 日期20210804;

import java.util.Arrays;
import java.util.Scanner;

import org.junit.Test;

public class T3 {

	@Test
	/*
	从控制台输入6名员工的工资装入数组
	遍历输出。
	计算出6名员工的总工资和平均工资
	工资使用double类型
	思路提示
	循环外定义变量存储工资的和,
	然后在循环体中使用“+=”累加数组中每个元素。
	*/
	public void test1(){
				
		//double[] salayArr = new double[6];
		double[] salayArr = {0,0,0,0,0,0,0};
		double totle = 0; //总工资
		double avg = 0; //平均工资
		for(int i=0; i<6; i++) {
			System.out.print("请输入第"+(i+1)+"名员工的工资:");
			double salay = new Scanner(System.in).nextDouble();
			salayArr[i] = salay; //将输入的工资存到相应的数组元素中
		}
		for(int i=0; i<salayArr.length; i++) {
			System.out.println("请输入第"+(i+1)+"名员工的工资:"+salayArr[i]);
			totle += salayArr[i];
		}
		avg = totle / salayArr.length; //通过数组的length属性获得数组元素的数量
		System.out.println("总工资:"+totle);
		System.out.println("平均工资:"+avg);
	}
	
	@Test
	/**
	从控制台输入小组成员的姓名,然后遍历输出小组成员的姓名。
	思路提示:
	首先确定小组成员,动态初始化数组
	根据输入的姓名给数组赋值。
	遍历字符串数组
	*/
	public void test2(){
		
		String[] team = new String[6];
		for(int i=0; i<6; i++) {
			System.out.print("请输入第"+(i+1)+"个成员姓名:");
			String name = new Scanner(System.in).next();
			team[i] = name;
		}
		
			System.out.println(Arrays.toString(team));
		
	}
	
	@Test
	/*
	查找元素:查找班级指定同学姓名	
	思路分析:
	定义一个空数组,将班级中十位同学的名字存到数组中
	从键盘任意输入一个名字,判断该同学是否是这个班级的同学
	*/
	public void test3(){
		
		String[] strArr = new String[10];
		for(int i=0; i<strArr.length; i++) {
			System.out.print("请输入同学的姓名:");
			String name = new Scanner(System.in).next();
			strArr[i] = name;
		}
		//遍历查找对应的学生
		System.out.print("请输入要查找的同学姓名:");
		String cha = new Scanner(System.in).next();
		boolean isOk = false;
		for(int i=0; i<strArr.length; i++) {
			if(cha.equals(strArr[i])) {
				//查找到了学生,存在
				isOk = true;
				break;
			}
		}
		if(isOk) { //isOk!=true
			System.out.println("存在");
		} else {
			System.out.println("不存在");
		}
				
	}
	
	@Test
	/**
	定义一个有7个元素的数组,从键盘任意输入一个数,
	判断是否在数组中存在, 如果存在,提示“猜对了”,
	否则输出“Sorry!!”。
	需求说明:
	数组元素为图中规定数据
	键盘输入数据
	用两种方式实现
	*/
	public void test4(){
		int[] s = {89,66,77,55,11,2,3};
		
		//遍历查找对应的元素
		System.out.print("请输入要查询的数组元素:");
		int cha = new Scanner(System.in).nextInt();
		boolean isOk = false;
		for(int i = 0;i < s.length;i++){
			
			if(cha==s[i]){
			//查找到了,存在
				isOk=true;
				break;
			}
		}
		if(isOk){
			System.out.println("猜对了");
			
		}else{
			System.out.println("Sorry!!");
		}
	}
	
	@Test
	/**
	这样一个数列:12,23,13,44,123,456
	求这个数列的最小值
	*/
	public void test5(){
		int[] arr = {12,23,13,44,123,456};
		Arrays.sort(arr);//给数组元素排序,排序方法,顺序(从小到大)
		/**
		for(int i=0;i<arr.length;i++){
			System.out.println(arr[i]+",");
		}
		*/
		System.out.println("最小值:"+arr[arr.length-6]);
		System.out.println("最大值:"+arr[arr.length-1]);
	}
	
	@Test
	/*
	通过键盘录入学生成绩存入成绩数组。
	通过调用方法实现最高分,最低分,总分,
	平均分及成材率的功能
	*/
	public void test6(){
		int[] cj= new int[5];
		int sum=0;
		int avg=0;
		for(int i=0; i<cj.length; i++) {
			System.out.print("请输入第"+(i+1)+"个成绩:");
			int f = new Scanner(System.in).nextInt();
			cj[i] = f;
			sum+=f;
		}
		Arrays.sort(cj);
		System.out.println("最低分:"+cj[cj.length-5]);
		System.out.println("最高分:"+cj[cj.length-1]);
		System.out.println("总分:"+sum);
		avg=sum/5;
		System.out.println("平均分:"+avg);
	}
	
	@Test
	/**
	从键盘输入2名学生的数学,语文,
	英语成绩放入二维数组,然后遍历输出
	思路提示:
	动态初始化二维数组(两行三列)
	使用for循环从键盘输入数据,给二维数组元素赋值
	For循环中依次输入数学,语文,英语成绩
	输入后通过下标赋值给数组元素
	使用两层for循环遍历数组
	*/
	public void test7(){
		double[][] name=new double[2][3];
		Scanner f=new Scanner(System.in);
		for(int i=0;i<name.length;i++){
			
			System.out.print("第"+(i+1)+"名学生");		
			System.out.print("请输入语文成绩:");		
			name[i][0]=f.nextDouble();
			
			System.out.print("请输入数学成绩:");
			name[i][1]=f.nextDouble();
			
			System.out.print("请输入英语成绩:");
			name[i][2]=f.nextDouble();
		}	
			
			for(int i=0;i<=name.length;i++){
				for(int j=0;j<=name.length;j++){
					
					System.out.print(name[i][j]+"\t");
				}
				System.out.println();
			}
		
		
		
	}
	
	@Test
	/*
	定义一个数组,长度为5并给数组分别赋值
	{“张三”、“李四”,“王五”,“赵六”,“钱七”},
	然后通过for循环进行对数组进行遍历
	*/
	public void test8(){
		String[] name={"张三","李四","王五","赵六","钱七"};
		for(int i=0;i<name.length;i++){
			
			String s=name[i];
			
			System.out.println(s);
		}
	}
	
	@Test
	/**
	自定义一个数组里面有7个元素的数组,
	从键盘任意输入一个数,判断是否在数组中存在, 
	如果存在,提示“猜对了”,否则输出“Sorry!!”
	*/
	public void test9(){
		int[] s = {89,66,77,55,11,2,3};
		
		//遍历查找对应的元素
		System.out.print("请输入要查询的数组元素:");
		int cha = new Scanner(System.in).nextInt();
		boolean isOk = false;
		for(int i = 0;i < s.length;i++){
			
			if(cha==s[i]){
			//查找到了,存在
				isOk=true;
				break;
			}
		}
		if(isOk){
			System.out.println("猜对了");
			
		}else{
			System.out.println("Sorry!!");
		}
	}
	
	@Test
	/*
	依次从键盘录入数组元素,然后把数组元素逆序输出 (就是把元素对调) 
	*/
	public void test10(){
		int[] arr = new int[5] ;
		Scanner in = new Scanner(System.in);
		给数组元素排序,排序方法,顺序(从小到大)
		for(int i = 0;i < arr.length;i ++){
			System.out.print("请输入数组元素:");
			arr[i] = in.nextInt();
		}	
		System.out.print("[");
		for (int i = arr.length-1;i >= 0;i -- ){
			if(i!=0)
				System.out.print(arr[i]+", ");
			else
				System.out.println(arr[i]+"]");
		}
		
	}
	
	@Test
	/**
	(1) 正确定义类(5分)
	(2) 控制台录入10名学生的成绩(5分)
	(3) 将学生的成绩存入数组(5分)
	(4) 计算平均分(10分)
	(5) 计算成绩总和(10分)
	(6) 计算成材率(10分)
	(7) 求出最大成绩(5分)
	*/
	public void test11(){
		int[] cj= new int[5];
		int sum=0;
		int avg=0;
		for(int i=0; i<cj.length; i++) {
			System.out.print("请输入第"+(i+1)+"个同学成绩:");
			int f = new Scanner(System.in).nextInt();
			cj[i] = f;
			sum+=f;
		}
		System.out.println("各位同学的成绩是:");
		for(int i=0;i<cj.length;i++){
			System.out.print(cj[i]+",");
		}
		System.out.println();
		Arrays.sort(cj);
		System.out.println("最低分:"+cj[cj.length-5]);
		System.out.println("最高分:"+cj[cj.length-1]);
		System.out.println("总分:"+sum);
		avg=sum/5;
		System.out.println("平均分:"+avg);
	}
	
	@Test
	/*
	 * 选择省份,输出所属城市
	 */
	public void test12() {
		String[][] cities = new String[3][4];
		cities[0]= new String[]{"长春市","吉林省","四平市","通化市"};
		cities[1]= new String[]{"沈阳市","大连市","丹东市","营口市"};
		String[] arr = {"哈尔滨市","齐齐哈尔市","佳木斯市","漠河市"};
		cities[2]= arr;
		System.out.println("请选择省份:0=吉林省,1=辽宁省,2=黑龙江省,3=全部城市");
		int choose = new Scanner(System.in).nextInt();
		if(choose != 3) {
			for(int i=0;i<cities[choose].length; i++) {
				System.out.print(cities[choose][i]+"\t");
			}
		} else {
			for(int i=0; i<cities.length; i++) {
				for(int j=0; j<cities[i].length; j++) {
					System.out.print(cities[i][j]+"\t");
				}
				System.out.println();
			}
		}
	}
}

联系我们

如果您对我们的服务有兴趣,请及时和我们联系!

服务热线:18288888888
座机:18288888888
传真:
邮箱:888888@qq.com
地址:郑州市文化路红专路93号