2015-11-27 109 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对象作为参数来检查每个学生是否通过。