给定一个题目:给定一组学生信息(包括学号,姓名,年龄,年级,成绩),要求将学生的成绩进行处理(90分以上的划为A等,90到80分的划为B等,70到80分的划为C等,60到70分的划为D等,60分以下的划为E等),处理完后将每个学生的基本信息和他的等级一并输出出来,最后将A,B,C,D,E五个等级的成绩个数输出出来。
 
      那么这里主体的思想就是建立学生类并实例化(InPut),取出学生信息处理(Deal with the Data),输出题目要求(OutPut)。
 
      思考:题目要求是将学生信息进行处理,那么可以把过程分为以下几个步骤:
 
      1.我们需要创建一个学生类,设置它的一些属性(学号,姓名,年龄,年级,成绩)和方法(这里用到的就是设置器set和访问器get)。
      2.实例化一组学生对象(需要用一个数组来存储这一组学生对象),录入他们的信息(学号,姓名,年龄,年级,成绩)(这个通过构造函数创建或者set访问器设置)。
      3.取出他们的成绩信息(用get访问器访问),然后进行处理(用流程控制语句),把成绩进行分类(A,B,C,D,E五类)(流程控制语句实现选择功能)。
      4.最后把题目要求输出出来。
 
 
下面附Java代码
 
 
//构建一个学生类
class Student
{
 //定义学生这个类五个属性:学号number,姓名name,年龄age,年级depth,成绩mark
 private int number;
 private String name;
 private int age;
 private int depth;
 private int mark;
 //声明学生类的构造方法(就是学生类是如何组成的),将五个参数变量分别赋值给五个属性
 public Student(int a,String b,int c,int d,int e)
 {
  number = a;
  name = b;
  age = c;
  depth = d;
  mark = e;
 }
 //学生学号的设置器
 public void setNumber(int a)
 {
  number = a;
 }
 //学生学号的访问器
 public int getNumber()
 {
  return number;
 }
 //学生名字的设置器
 public void setName(String b)
 {
  name = b;
 }
 //学生名字的访问器
 public String getName()
 {
  return name;
 }
 //学生年龄的设置器
 public void setAge(int c)
 {
  age = c;
 }
 //学生年龄的访问器
 public int getAge()
 {
  return age;
 }
 //学生年级的设置器
 public void setDepth(int d)
 {
  depth = d;
 }
 //学生年级的访问器
 public int getDepth()
 {
  return depth;
 }
 //学生成绩的设置器
 public void setMark(int e)
 {
  mark = e;
 }
 //学生成绩的访问器
 public int getMark()
 {
  return mark;
 }
}
public class StudentCourse
{
     //学生成绩主类的主方法,程序就是从这里开始执行的
     public static void main(String[] args)
     {
      //先定义一个学生类数组用于存储多个学生对象
      Student [] student= new Student [10];
      //将10个学生对象的基本信息(学号,姓名,年龄,年级,成绩)全部实例化出来,可供访问器get访问
      student[0]= new Student(1,"张三",21,3,46);
      student[1]= new Student(2,"李四",22,3,89);
      student[2]= new Student(3,"王五",22,3,56);
      student[3]= new Student(4,"高倩",20,2,64);
      student[4]= new Student(5,"小玲",23,4,92);
      student[5]= new Student(6,"雅静",20,2,76);
      student[6]= new Student(7,"谢然",21,2,92);
      student[7]= new Student(8,"刘浩",22,3,83);
      student[8]= new Student(9,"狗生",22,3,65);
      student[9]= new Student(10,"大雨",22,3,79);
      
   //定义五个整形变量,用于计数A,B,C,D,E五等成绩
      int A=0;
      int B=0;
      int C=0;
      int D=0;
      int E=0;
      
      //定义一个工作变量m,用于表示每个学生对象的成绩等级
      char m;
      //用一个增强型for循环将学生数组中的每一个学生对象遍历出来
      for(Student p : student)
      {
       //用switch循环实现选择功能,取出学生的成绩,并划分等级
       switch(p.getMark()/10)
       {
       case 9:{
        m='A';     //用一个字符表示成绩等级
        A++;       //等级计数器
        break;     //终止switch循环并跳到for循环,执行下一次命令,取出下一个学生对象的成绩
       }
       case 8:{
        m='B';
        B++;
        break;
       }
       case 7:{
        m='C';
        C++;
        break;
       }
       case 6:{
        m='D';
        D++;
        break;
       }
       //当前面所有情况都不满足时,就执行下面程序
       default:{
        m='E';
           E++;
       }
       }
       //每处理完一次学生对象成绩就将该学生对象的基本信息打出来
       System.out.println("学号:"+p.getNumber()+"  姓名:"+p.getName()+"  年龄:"+p.getAge()+"  年级:"+p.getDepth()+"  成绩:"+p.getMark()+"  等级:"+m);
      }
     //最后记录五个等级的成绩个数 
  System.out.println("A等学生个数:"+A);
  System.out.println("B等学生个数:"+B);
  System.out.println("C等学生个数:"+C);
  System.out.println("D等学生个数:"+D);
  System.out.println("E等学生个数:"+E);
     }
      
}


最后我们看看效果: