2015-11-27 105 views
0

所以我需要爲我的程序使用矢量類。用戶定義了它的大小,基本上這意味着'學生的數量'被處理,因爲我必須在測試中收到姓名,身份證號碼和他們的答案。然後,我必須將所述答案與正確答案進行比較,確定他的成績(如果超過70%,他/她通過)。我對構造函數感到困惑,因爲我似乎無法將值(答案)發送給我的班級,並進行比較,因此學生總是失敗並獲得「0」。這是我得到了什麼(我是一個小白:C):在矢量類(Java)中加載矢量

import java.io.*; 
class vector 
{ 
private String nom, ced;//name and id 
private String[] res = new String [12];//answers 

vector (String n, String c) 
{ 
    nom = n; 
    ced = c; 
} 
vector (String tab[]) 
{ 
    res = tab; 
} 

public String nombre()//name 
{ 
    return nom; 
} 
public String cedula()//id 
{ 
    return ced; 
} 
public int puntaje()//score 
{ 
    String[] clv= {"b","c","a","b","d","a","c","d","a","b","c","d"};//right answers 
    int x,acum=0; 
    for(x=0;x<12;x++) 
    { 
     if(res[x]==clv[x]) 
      acum=acum+1; 
    } 
    return acum; 
} 
public String resultado()//result 
{ 
    double nota; 
    String msg; 
    nota = puntaje()*100/12; 
    if(nota>=70) 
     msg = ("APROBÓ!" + nota);//pass 
    else 
     msg = ("FRACASÓ!" + nota);//fail 
    return msg; 
} 
} 




public class pizza //sorry 
{ 
public static void main(String[] args)throws IOException 
{ 
    BufferedReader br = new BufferedReader(new InputStreamReader (System.in)); 
    int size; 
    System.out.println("Numero de estudiantes que tomaron la prueba ---> ");//# of students 
    size = Integer.parseInt(br.readLine()); 
    vector [] objnc = new vector[size]; 
    int i, j; 
    String nom, ced, r; 
    String [] resp = new String [12]; 

    try 
    { 
    for(i=0;i<size;i++) 
    { 
    System.out.println("Ingrese el nombre ---> ");//name 
    nom = br.readLine(); 
    System.out.println("Ingrese la cédula ---> ");//id 
    ced = br.readLine(); 
    System.out.println("Ingrese las respuestas: ---> ");//answers 
    for(j=0;j<12;j++) 
    { 
     r = br.readLine(); 
     br.skip(1); 
     resp[j] = r; 
     vector objc = new vector(resp); 

    } 

    objnc[i] = new vector(nom,ced); 
    } 
} 
catch(NumberFormatException z) 
    { System.out.println("Error de conversion... "+z); 
    } 
    catch(IOException z) 
    { System.out.println("Error de entrada/salida... "+z); 
    } 
    catch(NullPointerException z) 
    { System.out.println("Error de lectura... "+z); 
    } 
    catch(Exception z) 
    { System.out.println("Error... "+z); 
    }   

    for(i=0;i<size;i++) 
    System.out.println(objnc[i].nombre()+" "+objnc[i].cedula()+" "+objnc[i].resultado()); 

} 
} 

回答

1

哈哈,太糟糕了您的學生;)

你應該創建一個名爲學生一個單獨的類。在這個學生類中,添加名稱,身份證號碼和答案的變量。接下來,添加一個名爲checkGrades()的矢量類的方法。這種方法應該將學生對象作爲參數。在此方法中,編寫用於檢查單個學生成績的代碼。如果他通過/失敗,返回true或false。

然後在創建矢量對象的同一文件中創建所需的所有學生對象。 例如:學生student1 =新的學生(填入參數)

一旦你創建了所有的學生,使用矢量的checkGrades(),傳遞一個Student對象作爲參數來檢查每個學生是否通過。