Esempio n. 1
0
  public static void main(String[] args) {
    Colleges c = new Colleges();
    Student s = new Student();
    Teacher t = new Teacher();
    c.setName("***科技学院");
    c.setNum(16000);
    c.setArea(800);

    s.setName1("秦*盛");
    s.setGrade("测绘B111");
    s.setMajor("建筑工程学院");

    t.setName("王老师");
    t.setCurriculum("Java 编程");

    System.out.println(c.getName() + " 有 " + c.getNum() + "名学生" + "占地面积" + c.getArea() + "亩");

    System.out.println(t.getName() + "在" + c.getName() + "教授" + t.getCurriculum());

    System.out.println(
        s.getName1()
            + "就读于"
            + s.getMajor()
            + s.getGrade()
            + "在上"
            + t.getName()
            + "的"
            + t.getCurriculum());
  }
 @Test
 public void gradeTest() {
   System.out.println("StudentTest");
   Student instance = new Student();
   double expResult = 0.0;
   double result = instance.getGrade();
   assertEquals(expResult, result, 0.0);
 }
 @Test
 public void nameStudentTest() {
   System.out.println("StudentTest");
   Student instance = new Student("Bill Smith", "c0123456", "male", 89.3);
   assertEquals("Bill Smith", instance.getName());
   assertEquals("c0123456", instance.getId());
   assertEquals("male", instance.getGender());
   assertEquals(89.3, instance.getGrade(), 0.0);
 }
  @Override
  public View getView(final int position, View convertView, ViewGroup parent) {
    /*每开一个新的student,就会重新跑一次这个方法*/
    final Student student = getItem(position);
    ViewHolder viewholder;
    if (convertView == null) {
      /*convertView : 将之前加载好的布局,控件等等进行缓存,以便之后可以重用*/
      convertView =
          LayoutInflater.from(getContext())
              .inflate(resourceId, null); /*加载list的布局*/ /*将一个XML的格式转化成了一个view的我们能用的格式*/
      viewholder = new ViewHolder();
      viewholder.studentAge = (TextView) convertView.findViewById(R.id.student_age);
      viewholder.studentGrade = (TextView) convertView.findViewById(R.id.student_grade);
      viewholder.studentName =
          (TextView) convertView.findViewById(R.id.student_name); /*这样就只用找一次控件的位置了*/
      convertView.setTag(viewholder);
    } else {
      viewholder = (ViewHolder) convertView.getTag(); /*将上次找到的控件的位置给这次的对象*/
    }
    viewholder.studentName.setText(student.getName()); /*这里将得到的值给XML让它显示*/
    viewholder.studentAge.setText(student.getAge() + ""); /*setView set的是一个字符串,如果要用数就得加""*/
    viewholder.studentGrade.setText(student.getGrade() + ""); /*这里通过viewholder来存储,调用XML中的控件*/

    convertView.setOnClickListener(
        new View.OnClickListener() {
          /*这里就代表我正在操作的position,可以直接在这里设置监听器*/
          @Override /*一般来说,TextView跳转的界面都是同一个Activity*/
          public void onClick(View v) {
            String data =
                "正在跳转"; /* Toast.makeText(StudentAdapter.this, data , Toast...)这样子用是错的,因为这里的Adapter不是个Activity,他只是个类,没有上下文。*/
            Toast.makeText(getContext(), data, Toast.LENGTH_SHORT)
                .show(); /*Adapter不是context,getcontext得到的Activity才是context*/
            Intent intent =
                new Intent(getContext(), Student1.class); /*每一个getContext()就是一个单独的活动  暂时这么理解*/
            intent.putExtra("name", student.getName());
            getContext()
                .startActivity(
                    intent); /*这里在使用startActivity的时候必须用getContext来调用,否则编译器不知道你是在哪个上下文启动了intent*/
          }
        });
    return convertView;
  }
 @Override
 public Object getValueAt(int rowIndex, int columnIndex) {
   if ((rowIndex < 0) || (rowIndex >= students.size())) return null;
   else {
     Student s = this.activeCourse.getStudents().get(rowIndex);
     if (columnIndex == IDX_FIRST_NAME) {
       return s.getFirstName();
     } else if (columnIndex == IDX_LAST_NAME) {
       return s.getLastName();
     } else if (columnIndex == IDX_STUDENT_NUM) {
       return s.getNumber();
     } else if (columnIndex == IDX_WEIGHTED_AVG) {
       return this.activeCourse.getWeightedAverage(s);
     } else if (columnIndex > IDX_WEIGHTED_AVG) {
       try {
         Double d = s.getGrade(columnIndex - 4);
         return d.toString();
       } catch (NullPointerException e) {
         return " ";
       }
     } else return " ";
   }
 }
  /**
   * Assign the set of students (presumably non-incoming-freshmen, but this is not checked) passed
   * to their dorm rooms, in a way that does not take race into account. (compare {@link
   * #assignByRace}.) As a precursor (side effect) to this, any students already existing in
   * upperclass dorms will be removed.
   */
  public void assign(Bag students) {

    emptyDorms();

    // Purge all freshmen. (We're not assigning those.)
    Bag upperclassmen = null;
    try {
      upperclassmen = (Bag) students.clone();
    } catch (Exception e) {
      e.printStackTrace();
      System.exit(1);
    }
    for (int x = upperclassmen.size() - 1; x >= 0; x--) {
      Student s = (Student) upperclassmen.get(x);
      if (s.getGrade() < 2) {
        upperclassmen.remove(s);
      }
    }

    for (int x = 0; x < upperclassmen.size(); x++) {
      Student s = (Student) upperclassmen.get(x);
      if (s.getGrade() < 2) {
        // We're only assigning upperclassmen here.
        continue;
      }
      s.leaveRoom();
      for (int y = 0; y < dorms.size(); y++) {
        if (s.hasRoom()) {
          break;
        }
        Dorm d = (Dorm) dorms.get(y);
        if (d.isFull()) {
          continue;
        }
        if (d.isFemaleOnly() && s.getGender() == Student.Gender.MALE) {
          continue;
        }
        int i = 0;
        while (i < d.getNumRooms()) {
          if (s.hasRoom()) {
            break;
          }
          try {
            d.getRoomByIndex(i).addResident(s);
          } catch (IllegalArgumentException e) { // System.out.println(e);
          }
          i++;
        }
      }
    }

    // Error testing to see if there are upperclassmen who don't have a
    //  room/dorms that aren't full
    // int q=0;
    for (int x = 0; x < upperclassmen.size(); x++) {
      Student s = (Student) upperclassmen.get(x);
      if (!s.hasRoom()) {
        System.out.println(s + " has no upperclass dorm room!");
      }
    }
  }