黑马程序员技术交流社区

标题: 程序帮忙 [打印本页]

作者: 毛标    时间: 2012-9-27 12:30
标题: 程序帮忙
本帖最后由 屈俊材 于 2012-9-27 16:36 编辑

package Demo;
/*
* 有三个人,人有名字,性别,年龄.这三个人的信息从键盘输入.
要求将三个人按照年龄从大到小输出这些人的信息
* */
import java.util.*;
public class Test3 {
public static void main(String[] args) {  
  Person p1 = new Person();
  Person p2 = new Person();
  Person p3 = new Person();
  p1.show();
  p2.show();
  p3.show();
  //假设P1最大
  if(p1.age<p2.age){
   Person p=p1;
   p1=p2;
   p2=p;
  }
  if(p1.age<p3.age){
   Person p=p1;
   p1=p3;
   p3=p;
   
  }
  //假设P2第二大
  if(p2.age<p3.age){
   Person p=p2;
   p2=p3;
   p3=p;
  }
  System.out.println("姓名"+p1.name+"性别"+p1.sex+"年龄"+p1.age);
  System.out.println("姓名"+p2.name+"性别"+p2.sex+"年龄"+p2.age);
  System.out.println("姓名"+p3.name+"性别"+p3.sex+"年龄"+p3.age);
}

  }

class Person
{
  String name;
  String sex;
  int age;
     
     void show(){
     Scanner sc= new Scanner(System.in);
  System.out.println("姓名");
  name=sc.nextLine();
  System.out.println("性别");
  sex=sc.nextLine();
  System.out.println("年龄");
     age=sc.nextInt();
      
     }
} 这是个笨方法
希望有人能用二维数组给做下,,试了好几次结果老是不对,,寻求帮忙

作者: 王雷    时间: 2012-9-27 12:39
  1. import java.util.Scanner;
  2. class Test {
  3.         public static void main(String[] args) {
  4.      Person p1=new Person();
  5.      Person p2=new Person();
  6.      Person p3=new Person();
  7.      Person[]arr={p1,p2,p3};
  8.      System.out.println("排序前");
  9.      println(arr);//打印
  10.      sort(arr);//排序
  11.      System.out.println("排序后");
  12.      println(arr);//打印
  13.         }

  14.         private static void println(Person[] arr) {
  15.                 for (int i = 0; i < arr.length; i++) {
  16.                 System.out.println("姓名:"+arr[i].name+"\t性别:"+arr[i].sex+"\t年龄"+arr[i].age);
  17.                 }
  18.         }

  19.         private static void sort(Person[] arr) {
  20.                 for (int i = 0; i < arr.length-1; i++) {
  21.                         for (int j = i+1; j < arr.length; j++) {
  22.                                 if(arr[i].age<arr[j].age){
  23.                                         Person temp=arr[i];
  24.                                         arr[i]=arr[j];
  25.                                         arr[j]=temp;
  26.                                 }
  27.                         }
  28.                 }
  29.         }
  30. }
  31. class Person{
  32.         Scanner sc = new Scanner(System.in);
  33.         String name =sc.nextLine();
  34.         String sex =sc.nextLine();
  35.         int age = sc.nextInt();
  36. }
  37. 用一维数组做的
复制代码

作者: 黄敏    时间: 2012-9-27 12:42
用什么二维数组啊,你把键盘录入的数据存入到TreeSet集合中,对集合中的元素进行排序输出就好了
作者: 毛标    时间: 2012-9-27 12:44
黄敏 发表于 2012-9-27 12:42
用什么二维数组啊,你把键盘录入的数据存入到TreeSet集合中,对集合中的元素进行排序输出就好了 ...

只是想到了~~实现有点难题。。所以寻求帮忙  试试各种方法
作者: 黄敏    时间: 2012-9-27 13:01
毛标 发表于 2012-9-27 12:44
只是想到了~~实现有点难题。。所以寻求帮忙  试试各种方法

问一下  这个控制台输入怎么结束,我对Scanner不了解
作者: 毛标    时间: 2012-9-27 17:23
黄敏 发表于 2012-9-27 13:01
问一下  这个控制台输入怎么结束,我对Scanner不了解

输出名字 回车
输出新别 回车
输出年龄 回车




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2