給定一個題目:給定一組學生信息(包括學號,姓名,年齡,年級,成績),要求將學生的成績進行處理(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);
}
}
最后我們看看效果: