Java 实验:容器

1.        编写一个程序,用户键盘录入若干个学生的姓名和分数(程序每次提示用户输入“Y”或“N”决定是否继续录入学生信息,如果用户输入“N”则用户输入完毕)。用户录入完毕后,程序按成绩由高到低的顺序输出学生的姓名和分数(姓名和分数之间用一个空格分割)。【说明:键盘输入可以使用Scanner类】

import java.util.*;
public class One {
	
	public void fun(){
		ArrayList<Student> stu= new ArrayList<Student>();
		Scanner in =  new Scanner(System.in);
		System.out.println("请输入学生姓名和成绩");
		while(true){
			Student stemp=new Student();
			stemp.name = in.next();
			stemp.grade = in.nextInt();
			stu.add(stemp);
			System.out.println("是否继续录入学生信息?y/n");
			String s3 = in.nextLine();
			s3 = in.nextLine();
			if(s3.trim().equals("n")||s3.trim().equals("N")){
				break;
			}
		}
		Com c = new Com();
		Collections.sort(stu,c);
		for(int i = 0; i<stu.size(); i++){
			System.out.println(stu.get(i).name+" "+stu.get(i).grade);
		}
		in.close();
	}
	public static void main(String[] args){
		One o = new One();
		o.fun();
		
	}
}
class Student  {
	String name;
	int grade;
}
class Com implements Comparator<Student>{
    public int compare(Student n1, Student n2) {
    	if(n1.grade>n2.grade)
    		return -1;
    	else if(n1.grade<n2.grade)
    		return 1;
    	else
    		return 0;
   }  
}


2.        用HashMap模拟一个网上购物车。要求:从键盘输入n本书的名称、单价、购买数量,将这些信息存入一个HashMap,然后将该HashMap作为参数调用方法getSum(HashMap books),该方法用于计算书的总价并返回。【说明:键盘输入可使用Scanner类】

import java.util.*;
public class Two {
	double sum = 0;
	HashMap map = new HashMap();
	public double getSum(){
		for(int i=0;i<map.size();i++){
			Book tBook = (Book)map.get(i);
			sum+= tBook.price *tBook.num;
		}
		return sum;
	}
	public void fun(){
		int i=0;
		while(true){
			Book mBook = new Book();
			Scanner in = new Scanner(System.in);
			mBook.name = in.next();
			mBook.price = in.nextDouble();
			mBook.num = in.nextDouble();
			map.put(i,mBook);
			i++;
			System.out.println("是否继续录入购物信息?y/n");
			String s3 = in.nextLine();
			s3 = in.nextLine();
			if(s3.trim().equals("n")||s3.trim().equals("N")){
				break;
			}
		}
	}
	public static void main(String[] args){
		Two t = new Two();
		t.fun();
		System.out.println(t.getSum());
	}
}
class Book{
	String name;
	double price;
	double num;
}


3.     写一个彩票程序:30选7。随机(1~30之间)生成7个随机数,注意不能重复。然后从键盘输入7个数,对比7个数是否与随机数有相同的。最后显示“中了几个号”。同时,如果中了7个号,显示一等奖;如果中了6个号,显示二等奖;如果中了5个号,显示三等奖。要求:首先写出程序的实现思想,特别是程序所使用的数据结构,然后写出Java实现代码。【说明:键盘输入可以使用Scanner类】

import java.util.HashSet;
import java.util.Iterator;
import java.util.Random;
import java.util.Scanner;
import java.util.Set;


public class Three {
	int grade=0;
	Set<Integer>s = new HashSet<Integer>();
	Scanner in = new Scanner(System.in);
	void fun(){
		Random rd = new Random();
		
		while(s.size()!=7){
			int i = rd.nextInt(30);
			
			s.add(i);
		}
		Iterator<Integer> iterator=s.iterator();
//		while(iterator.hasNext()){
//			System.out.print(iterator.next());
//			System.out.println("f");
//		}
		for(int j = 0; j<7;j++){
			String s1 = in.next();
			int  a= Integer.parseInt(s1);
			iterator=s.iterator();
			while(iterator.hasNext()){
				if(a==(int)iterator.next()){
					grade++;
				}
			}
		}
		if(grade==7){
			System.out.println("一等奖");
		}else if(grade==6){
			System.out.println("二等奖");
		}else if(grade==5){
			System.out.println("三等奖");
		}else {
			System.out.println("谢谢惠顾");
		}
		
	}
	public static void main(String[] args){
		Three t = new Three();
		t.fun();
	}
}


4. 设计一个类的方法,其输入是两个字符串的集合(每个集合中的字符串有相同的意义,例如,一个全是姓名的字符串,一个全是班级的字符串),打印出这两个集合的笛卡尔乘积。

public class Four {
	void fun(Object[] o1,Object[] o2){
		for(int i = 0; i<o1.length; i++){
			for(int j = 0; j<o2.length; j++){
				System.out.println(o1[i].toString()+" "+o2[i].toString());
			}
		}
	}
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值