学校小学期Java课程的练习题,留个档便于以后需要时候有例子可以回忆,写的烂的地方请多多包含
1、计算圆锥、方锥的体积
- 描述:声明一个泛型类,包含计算体积的方法,只关心它的底是否能计算面积,并不关心底的类型。声明圆类和矩形类,分别包含计算面积的方法。用户输入圆锥的半径和高,打印输出圆锥的体积。输入方锥的长、宽、高,计算方锥的体积并输出。
- 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71
| import java.util.Scanner; class Cone<E> { double height; E bottom; public Cone (E b) { bottom=b; } public void setHeight(double h) { height=h; }
public double computerVolume() { double area=Double.valueOf(bottom.toString()); return 1.0/3*area*height; } } class Circle { double area,radius; Circle(double r) { radius=r; }
public String toString() { double a=Math.PI*radius*radius; String area=String.valueOf(a); return area; } } class Rect { double sideA,sideB,area; Rect(double a,double b) { sideA=a; sideB=b; }
public String toString() { double x=sideA*sideB; String area=String.valueOf(x); return area; } } public class Example15_1 { public static void main(String args[]) { System.out.println("请输入圆锥的半径、高:"); Scanner scanner = new Scanner(System.in); Circle circle=new Circle(scanner.nextDouble()); Cone<Circle> coneOne=new Cone<Circle>(circle); coneOne.setHeight(scanner.nextDouble()); System.out.println("圆锥的体积:"+coneOne.computerVolume()); System.out.println("请输入方锥的长、宽、高:"); Rect rect=new Rect(scanner.nextDouble(),scanner.nextDouble()); Cone<Rect> coneTwo=new Cone<Rect>(rect); coneTwo.setHeight(scanner.nextDouble()); System.out.println("方锥的体积:"+coneTwo.computerVolume()); } }
|
2、遍历链表中的数据
- 描述:定义一个链表集合,用户输入链表中两个节点中的数据,然后分别用集合中get方法遍历和iterator遍历,转化为字符串并输出。
- 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28
| import java.util.*; public class Test_1{ public static void main(String args[]){ LinkedList mylist=new LinkedList(); System.out.println("请输入链表2个节点中的数据:"); Scanner scanner = new Scanner(System.in); mylist.add(scanner.next()); mylist.add(scanner.next()); int number=mylist.size(); for(int i=0;i<number;i++){
System.out.println("get:第"+i+"节点中的数据:"+mylist.get(i)); } Iterator iter=mylist.iterator(); while(iter.hasNext()) {
System.out.println("iterator:"+iter.next()); } } }
|
3、对3个学生身高进行排序升序输出,然后查找与这3个学生身高相同的学生
- 描述:定义一个学生类,自定义一个比较方法,比较身高属性值的大小。定义一个集合,用户输入3个学生的姓名和身高,添加到集合中,并输出集合的数据。然后对集合进行排序,并输出排序后的内容。然后输入一个学生的姓名和身高,查找与这3个同学身高是否相同,相同则输出结果,否则不输出。
- 代码
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60
| import java.util.*; class Student implements Comparable { int height=0; String name; Student(String n,int h) { name=n; height = h; }
public int compareTo(Object b) { if(height>((Student)b).height){ return 1; } else if(height==((Student)b).height){ return 0; } else{ return -1; } } } public class Test_1 { public static void main(String args[ ]) { List<Student> list = new LinkedList<Student>(); System.out.println("请输入3个学生姓名和身高:"); Scanner scanner = new Scanner(System.in); list.add(new Student(scanner.next(),scanner.nextInt())); list.add(new Student(scanner.next(),scanner.nextInt())); list.add(new Student(scanner.next(),scanner.nextInt())); Iterator<Student> iter=list.iterator(); System.out.println("排序前,链表中的数据"); for(Student s:list){ System.out.println(s.name+"身高:"+s.height); } Collections.sort(list); System.out.println("排序后,链表中的数据"); iter=list.iterator();
for(Student s:list){ System.out.println(s.name+"身高:"+s.height); } System.out.println("请输入要比较身高同学的姓名和身高:"); Student zhaoLin = new Student(scanner.next(),scanner.nextInt()); int index = Collections.binarySearch(list,zhaoLin,null);
if(index>=0){ System.out.println(zhaoLin.name+"和链表中"+list.get(index).name+"身高相同"); } } }
|