编程题小练习

第一题

package Test1;

public class Student implements Comparable<Student>{
	//姓名
	private String name;
	//语文成绩
	private int yuwen;
	//数学成绩
	private int math;
	//英语成绩
	private int english;
	public Student() {
		super();
	}
	public Student(String name, int yuwen, int math, int english) {
		super();
		this.name = name;
		this.yuwen = yuwen;
		this.math = math;
		this.english = english;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getYuwen() {
		return yuwen;
	}
	public void setYuwen(int yuwen) {
		this.yuwen = yuwen;
	}
	public int getMath() {
		return math;
	}
	public void setMath(int math) {
		this.math = math;
	}
	public int getEnglish() {
		return english;
	}
	public void setEnglish(int english) {
		this.english = english;
	}
	public int getSum(){
		return this.yuwen+this.math+this.english;
	}
	@Override
	public int compareTo(Student s) {
//		return 0;
		//总分从高到低
		int num1 = s.getSum()-this.getSum();
		//如果总分相同,按语文从高到低
		int num2 = num1 == 0? s.getYuwen()-this.getYuwen(): num1;
		//如果总分和语文成绩都相同,按数学从高到低
		int num3 = num2 == 0? s.getMath()-this.getMath(): num2;
		//如果总分和各科成绩都相同,按姓名排列
		int num4 = num3 == 0? this.getName().compareTo(s.getName()): num3;
		
		return num4;
	}
	

}
package Test1;

import java.util.Scanner;
import java.util.TreeSet;
/**
 * 		1)键盘录入5个学生信息(姓名,语文成绩,数学成绩,英语成绩),按照总分从高到低输出到控制台
				a:自然排序
				b:选择器排序
 *
 */

public class Test {
	public static void main(String[] args) {
		//创建TreeSet集合对象
		TreeSet<Student> ts  = new TreeSet<Student>();
		
		
		System.out.println("开始录入学生信息");
		for(int x = 0 ; x < 5; x++) {
			Scanner sc = new Scanner(System.in);
			System.out.println("请输入第"+(x+1)+"个学生的姓名:");
			String name = sc.nextLine();
			System.out.println("请输入第"+(x+1)+"个学生的语文成绩:");
			int Chinese = sc.nextInt();
			System.out.println("请输入第"+(x+1)+"个学生的数学成绩:");
			int Math = sc.nextInt();
			System.out.println("请输入第"+(x+1)+"个学生的英语成绩:");
			int English = sc.nextInt();
			
			
			Student s = new Student(name,Chinese,Math,English);
			
			ts.add(s);
		}
		
		System.out.println("信息录入完毕");
		System.out.println("您录入的学生信息为:");
		
		for(Student s:ts) {
			System.out.println(s.getName()+"---"+s.getYuwen()+"---"+s.getMath()+"----"+s.getEnglish());
		}
	}

}


第二题

package Test2;

import java.util.HashSet;
import java.util.Set;

/**
 * 2)获取10随机数,1-20之间,要求值不能重复!(ArrayList,HashSet)
 *
 */

public class Test {
	public static void main(String[] args) {
		
		Set<Integer> set = new HashSet<Integer>();
		for(int x = 0; x<10; x++) {
			set.add(getRandom(1, 20));
		}
		for(int s: set) {
			System.out.println(s);
		}
	}
	public static int getRandom(int start,int end) {
		int number = (int) ((Math.random()*(end-start+1))+start);
		return number;
		
	}

}
package Test3;
//第三题
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Set;

/**
 * 
3)ArrayList集合嵌套HashMap集合并遍历。
 	需求:
 	假设ArrayList集合的元素是HashMap。有3个。
 	每一个HashMap集合的键和值都是字符串。
	 元素我已经完成,请遍历。

ArrayList<HashMap<String,String>>

 结果:
 周瑜---小乔
 吕布---貂蝉

 郭靖---黄蓉
 杨过---小龙女

 令狐冲---任盈盈
 林平之---岳灵珊

 * @author Shinelon
 *
 */

public class Test {
	public static void main(String[] args) {
		//创建嵌套集合
		ArrayList<HashMap<String,String>> list = new ArrayList<HashMap<String,String>>();
		//创建3个HashMap集合对象
		HashMap<String,String> map1 = new HashMap<String,String>();
		HashMap<String,String> map2 = new HashMap<String,String>();
		HashMap<String,String> map3 = new HashMap<String,String>();
		
		map1.put("周瑜", "小乔");
		map1.put("吕布", "貂蝉");
		
		map2.put("郭靖", "黄蓉");
		map2.put("杨过", "小龙女");
		
		map3.put("令狐冲", "任盈盈");
		map3.put("林平之", "岳灵珊");
		//将三个HashMap集合添加到大集合里边
		list.add(map1);
		list.add(map2);
		list.add(map3);
		
		//遍历
		for(HashMap<String,String> map:list) {
			
			Set<String> set = map.keySet();
			
			for(String s : set) {
				String value = map.get(s);
				System.out.println(s+"----"+value);
			}
			System.out.println();
		}
	}

}

猜你喜欢

转载自blog.csdn.net/Tunaep/article/details/80265977
今日推荐