2015-04-07 60 views
2
public class Student{ 

String name; 
double cgpa; 
String status; 

public void setName(String name){ 

    this.name=name; 
} 

public String getName(){ 

    return name; 
} 
public void setCgpa(double cgpa){ 

    this.cgpa=cgpa; 
} 

public double getCgpa(){ 
    return cgpa; 
} 

public String findStatus(){ 


    if(cgpa >= 2.0){ 
     System.out.println("Your Status : Good Standing (GS)"); 
    } else if (cgpa >1.7){ 
     System.out.println("Your Status: Probational (P)"); 
    } else{ 
     System.out.println("Your Status: Fail (F)"); 
    } 
    return status; 
    } 
public String toString() 
    { 

    return "\nStudent Name: "+name+"\nYour current status: "+status; 
} 

    public static void main(String[]args){ 

    Scanner in = new Scanner(System.in); 
    System.out.println("Please enter your name: "); 
    String name=in.nextLine(); 
    System.out.println("Please enter your CGPA: "); 
    double cgpa=in.nextDouble(); 

    Student mystudent = new Student(); 
    System.out.println("Your name: " +mystudent.getName()); 
    System.out.println("Your CGPA: " +mystudent.findStatus()); 

}  
    } 

以下代碼沒有任何語法錯誤,但是當我嘗試執行它時,用戶輸入不存儲,結果輸出變爲空。我嘗試創建在TestStudent類中運行它,但結果仍然相同。Java - 用戶輸入不存儲

回答

0

下面的代碼不會保存你的信息,因爲你沒有保存它。

Student mystudent = new Student(); 
System.out.println("Your name: " +mystudent.getName()); 
System.out.println("Your CGPA: " +mystudent.findStatus()); 

使用下面的代碼來做到這一點:

Student mystudent = new Student(); 
mystudent.setName(name); 
mystudent.setCgpa(cgpa); 

// now it will give you the result 
System.out.println("Your name: " +mystudent.getName()); 
System.out.println("Your CGPA: " +mystudent.findStatus()); 
+0

謝謝你的幫助。 – Key

+0

您的歡迎:) –

0

你忘記了存儲數據:

您需要添加此行:

mystudent.setName(name); 
mystudent.setCgpa(cgpa); 

它的外觀喜歡這個。

public static void main(String[]args){ 
    Student mystudent = new Student(); 

    Scanner in = new Scanner(System.in); 

    System.out.println("Please enter your name: "); 
    String name=in.nextLine(); 
    mystudent.setName(name); 

    System.out.println("Please enter your CGPA: "); 
    double cgpa=in.nextDouble(); 
    mystudent.setCgpa(cgpa); 


    System.out.println("Your name: " +mystudent.getName()); 
    System.out.println("Your CGPA: " +mystudent.findStatus()); 

}  
0

這段代碼有兩個不好的實現。你findStatus()返回空(初始化)字符串,您沒有設置(初始化)CGPA 下面是編輯的代碼

公共類學生{

字符串名稱;雙cgpa;字符串狀態;

公共無效setname可以(字符串名稱){

this.name=name; } 

公共字符串的getName(){

return name; } public void setCgpa(double cgpa){ 

this.cgpa=cgpa; } 

公共雙getCgpa(){ 回報CGPA; }

公共字符串findStatus(){

if(cgpa >= 2.0){ 
    status = "Status : Good Standing (GS)"; 
} else if (cgpa > 1.7){ 
    status = "Your Status: Probational (P)"; 
} else{ 
    status = "Status: Fail (F)"; 
} 
return status; 
} public String toString(){ 
    return "\nStudent Name: "+name+"\nYour current status: "+status; } 

public static void main(String[]args){ 

學生mystudent =新學生();

Scanner in = new Scanner(System.in); 
System.out.print("Please enter your name: "); 
String name=in.nextLine(); 
mystudent.setName(name); 

System.out.print("Please enter your CGPA: "); 
double cgpa=in.nextDouble(); 
mystudent.setCgpa(cgpa); 

System.out.println("Your name: " +mystudent.getName()); 
System.out.println("Your CGPA: " +mystudent.findStatus()); 

}}