Board logo

標題: [進階練習] 給想要練習的人的題目(學生成績計算) [打印本頁]

作者: 周政輝    時間: 2016-12-3 13:18     標題: [進階練習] 給想要練習的人的題目(學生成績計算)

這是這禮拜最後有留下來的人給他們的作業練習,沒有來的同學如果想要練習也可以練習
但是練習的時候請先搞懂以下的內容(可以去google搜尋一下以下內容)
1.搞懂泛型
2.研究 ArrayList
3.類別的欄位一律private 建構子負責做初始化 其餘取得成績 或是取得姓名一律寫成函數 如:  GetScore() GetName()  ... 等等

===============================================
作業如下:
使用者自訂一個類別Student 裡面的欄位有 姓名,學號,國文,英文,數學,總分 以及平均 這幾個欄位
並透過建構元 將以上的這些內容進行初始化
並自訂函數取得 姓名 學號  以及各科成績...等資訊  採用這樣的命名方式 :
例如取得學生姓名 : GetName()

而在主程式當中則讓使用者自行輸入學生的資料 以及各科成績  (這裡讓使用者可以自行輸入三名學生的資料以及各科成績及平均)
最後輸入以及輸出的結果為如下
[attach]1805[/attach]

=======以下為程式碼的部分=======================

Student 類別內的程式碼
  1. package tw.kuas.mis;

  2. public class Student {

  3.         //建構學生的資料以及成績欄位
  4.         private String Name;
  5.         private int Number;
  6.         private int Chi;
  7.         private int Eng;
  8.         private int Math;
  9.         private int total;
  10.         private int Avg;
  11.        
  12.         //建構元 (用來初始化學生的基本資料)
  13.         public Student(String Name, int Number,int Chi,int Eng,int Math)
  14.         {
  15.                 this.Name = Name;
  16.                 this.Number = Number;
  17.                 this.Chi = Chi;
  18.                 this.Eng = Eng;
  19.                 this.Math = Math;
  20.                
  21.         }
  22.        
  23.         //取得學生名稱以及學號
  24.         public String GetNameandNumber()
  25.         {
  26.                 String data = Name+String.valueOf(Number);
  27.                 return data;
  28.         }
  29.        
  30.         //取得各科成績-英文
  31.         public int GetEng()
  32.         {
  33.                 return Eng;
  34.         }
  35.        
  36.         //取得各科成績-國文
  37.         public int GetMath()
  38.         {
  39.                 return Math;
  40.         }
  41.        
  42.         //取得各科成績-數學
  43.         public int GetChi()
  44.         {
  45.                 return Chi;
  46.         }
  47.        
  48.         //計算總分
  49.         public int GetTotal()
  50.         {
  51.                 return Math+Chi+Eng;
  52.         }
  53.        
  54.         //計算平均
  55.         public float GetAvg()
  56.         {
  57.                 return (Math+Chi+Eng)/3;
  58.                
  59.         }
  60. }
複製代碼

主程式Main中的程式碼
  1. package tw.kuas.mis;

  2. import java.util.ArrayList;
  3. import java.util.Scanner;

  4. public class Main {

  5.         public static void main(String[] args) {
  6.                 // TODO Auto-generated method stub
  7.                 //建立一個ArrayList的泛型(Student)讓ArrayList裡面可以存放學生的成績資料
  8.                 ArrayList<Student> list = new ArrayList();
  9.                
  10.                 //利用Scanner 使用者輸入 學生的成績以及基本資料
  11.                 Scanner scanner = new Scanner(System.in);
  12.                
  13.                 //利用for迴圈 輸入三個學生的資料以及成績
  14.                
  15.                 for(int i=0;i<3;i++)
  16.                 {
  17.                         System.out.printf("請依序輸入  學生%d 的姓名、學號、國文、數學、以及英文\r\n",i+1);
  18.                         String Name =  scanner.next();
  19.                         int Number = scanner.nextInt();
  20.                         int Chi = scanner.nextInt();
  21.                         int Math = scanner.nextInt();
  22.                         int Eng  = scanner.nextInt();
  23.                        
  24.                         //建構Student類別 初始化使用者輸入的資料
  25.                         Student student = new Student(Name,Number,Chi,Eng,Math);
  26.                        
  27.                         //將使用者輸入的資料,存放至ArrayList的物件容器當中
  28.                         list.add(student);
  29.                 }
  30.                
  31.                
  32.                 //輸出結果
  33.                 for(int i=0;i<list.size();i++)
  34.                 {
  35.                         System.out.print("該學生的姓名與座號:");
  36.                         System.out.println(list.get(i).GetNameandNumber());
  37.                         System.out.println("國文成績為:");
  38.                         System.out.println(list.get(i).GetChi());
  39.                         System.out.println("英文成績為:");
  40.                         System.out.println(list.get(i).GetEng());
  41.                         System.out.println("數學成績為:");
  42.                         System.out.println(list.get(i).GetMath());
  43.                         System.out.println("總分為:");
  44.                         System.out.println(list.get(i).GetTotal());
  45.                         System.out.println("平均為:");
  46.                         System.out.println(list.get(i).GetAvg());
  47.                         System.out.println("--------End---------");
  48.                 }
  49.                        
  50.        
  51.         }

  52. }
複製代碼
以上大概就是進階的物件導向的程式練習
如果有不懂的可以再問我
作者: 蔡庭豪    時間: 2016-12-9 23:49

  1. package site.istak.org.tw;

  2. import java.util.ArrayList;
  3. import java.util.Scanner;

  4. public class Main {

  5.         public static void main(String[] args){
  6.                
  7.                 Scanner scanner=new Scanner(System.in);
  8.                 ArrayList pi = new ArrayList();
  9.                 String Name = scanner.next();
  10.                 System.out.println(pi.add(Name));
  11.         }
  12. }
複製代碼
  1. package site.istak.org.tw;

  2. public class Students {
  3.        
  4.         private String Name;
  5.         private int mat;
  6.         private int eng;
  7.         private int chi;
  8.         private int avg;
  9.         /***********************/
  10.         public Students(String Name,int mat,int eng,int chi,int avg){
  11.                 this.Name=Name;
  12.                 this.mat=mat;
  13.                 this.eng=eng;
  14.                 this.chi=chi;
  15.                 this.avg=avg;
  16.         }
  17.         /****************/
  18.         public String Getname(String Name){
  19.                 return Name;
  20.                
  21.         }
  22.         public int Getgrapeenglish(int eng){
  23.                
  24.                 return eng;
  25.                
  26.         }
  27.     public int Getgrapemath(int mat){
  28.                
  29.                 return mat;
  30.                
  31.         }
  32.     public int Getgrapechinese(int chi){
  33.                
  34.                 return chi;
  35.                
  36.         }
  37.     public int Getavg(int eng,int chi,int mat){
  38.                 avg=(eng+mat+chi)/3;
  39.                 return avg;
  40.                
  41.         }
  42.    
  43. }
複製代碼

作者: 蔡季樺    時間: 2016-12-12 17:27

  1. package site.istak.org.tw;

  2. import java.util.ArrayList;
  3. import java.util.Scanner;

  4. public class Main {

  5.         public static void main(String[] args) {
  6.                 ArrayList <Student> list = new ArrayList();
  7.                 Scanner scanner = new Scanner(System.in);
  8.                 for(int i=0;i<3;i++)
  9.         {
  10.                 System.out.printf("請依序輸入  學生%d 的姓名、學號、國文、數學、以及英文:\r\n",i+1);
  11.                 String name =  scanner.next();
  12.                 int num = scanner.nextInt();
  13.                 int c = scanner.nextInt();
  14.                 int m = scanner.nextInt();
  15.                 int e  = scanner.nextInt();
  16.                 Student student = new Student(name,num,c,e,m);
  17.                 list.add(student);
  18.                
  19.         }
  20.                 for(int i=0;i<list.size();i++)
  21.         {
  22.                 System.out.print("該學生的姓名:");
  23.                 System.out.println(list.get(i).getname());
  24.                 System.out.print("該學生的座號:");
  25.                 System.out.println(list.get(i).getnum());
  26.                 System.out.println("國語成績:");
  27.                 System.out.println(list.get(i).getc());
  28.                 System.out.println("英文成績:");
  29.                 System.out.println(list.get(i).gete());
  30.                 System.out.println("數學成績:");
  31.                 System.out.println(list.get(i).getm());
  32.                 System.out.println("總分:");
  33.                 System.out.println(list.get(i).gettotal());
  34.                 System.out.println("平均:");
  35.                 System.out.println(list.get(i).getavg());
  36.         }
  37.         }

  38. }
複製代碼
  1. package site.istak.org.tw;

  2. public class Student {
  3.         private String name;
  4.         private int num;
  5.         private int c;
  6.         private int m;
  7.         private int e;
  8.         public Student(String name,int num,int c,int m,int e)
  9.         {
  10.                 this.name = name;
  11.                 this.num = num;
  12.                 this.c = c;
  13.                 this.m = m;
  14.                 this.e = e;       
  15.         }
  16.         public String getname()
  17.         {
  18.                 return name;
  19.         }public int getnum()
  20.         {
  21.                 return num;
  22.         }public int getc()
  23.         {
  24.                 return c;
  25.         }public int getm()
  26.         {
  27.                 return m;
  28.         }public int gete()
  29.         {
  30.                 return e;
  31.         }public int gettotal()
  32.     {
  33.         return c+m+e;
  34.     }public float getavg()
  35.     {
  36.         return (c+m+e)/3;
  37.     }
  38. }
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2