2016-11-18 66 views
-3

对不起,我的英语不好,我有2个问题让我迷惑。第一个问题,我想用户输入3件事(名称,联系人,IDNumber),但是当我尝试输入名称,名称输入我找到了解决方案输入位置丢失的解决方案,当修复它(scan.nextLine())时,另一个问题出来,这是输入丢失。第二个问题是我如何分配构造函数到数组。数组和输入

public class newClient { 
    Scanner scan= new Scanner(System.in); 
    Random rand=new Random(); 
    static int IDumber; 
    String unique; 
    int pin; 
    static int count = 0; 
    private String name; 
    private String idNumber; 
    private String contact; 

    public newClient(){ 
     setContact(contact); 
     setIdNumber(idNumber); 
     setName(name); 
     count++; 
    } 

    public String getName(){ 
     return name; 
    } 

    public void setName(String name){ 
     this.name=name; 
    } 

    public String getIdNumber(){ 
     return idNumber; 
    } 

    public void setIdNumber(String idNumber){ 
     this.idNumber=idNumber;  
    } 

    public String getContact(){ 
     return contact;  
    } 

    public void setContact(String contact){ 
     this.contact=contact; 
    } 

    public int uniqueID(){ 
     unique = idNumber.substring(8); 
     IDumber = Integer.parseInt(unique); 
     return IDumber; 
    } 

    public void display(){ 
     System.out.println("This is the password for first time login "+pin); 
    } 
    public int pinCode(){  
     pin = rand.nextInt(9000)+1000; 
     return pin; 
    } 

    public String toString(){ 
     return "Name: "+name+"\nUniqueID: "+IDumber+"\nContact: "+getContact()+"\npinCode: "+pin ; 
    } 

    public void admin(){ 
     newClient []nc = new newClient[10]; 
     login(); 
     while(true){ 
      System.out.println("Select 1:add Client\n 2:add Account\n 3:login as Client"); 
      try{ 
       int selection = scan.nextInt(); 
       switch(selection) 
       { 
       case 1: addClient(nc); 
         break; 
       case 2: addAccount(nc); 
         break; 
       case 3: client.client(); 
         break; 
       default: System.out.println("INvalid selection"); 
       } 
      } 
      catch(InputMismatchException ex){ 
       System.out.println("Invalid input"); 
       scan.nextLine(); 
      } 
     }  
    } 

    public void addClient(newClient []nc){ 
     newClient nw = new newClient(); 
     System.out.println("Enter name"); 
     nw.setName(scan.nextLine()); 
     scan.nextLine(); 
     System.out.println("Enter contact"); 
     nw.setContact(scan.nextLine());   
     System.out.println("Enter id number"); 
     nw.setIdNumber(scan.nextLine()); 
     nc[newClient.count]= new newClient(); 
     System.out.println("count"+nc[newClient.count]); 
     nw.pinCode(); 
     nw.uniqueID(); 
     System.out.println(nw.toString()); 
    } 
} 

回答

1

首先,我不明白你在做什么,你想问什么。 第二我知道你是Java的新手。虽然,你甚至不知道如何编码,但我建议你在开始编码之前先阅读一些材料书。你的代码有一些主流和错误,其中一些我在下面修正。我也描述了其中的一些。

  • java命名约定。
  • 太多的全局变量。
  • 必须单独创建结构文件,即(客户端)并使用它。

代码从这里开始。

import java.util.InputMismatchException; 



import java.util.Random; 

import java.util.Scanner;

`public class Client` { 

    private String name; 
    private String idNumber; 
    private String contact; 
    private String unique; 
    private int pin; 

    //Constructor is for initialize values and basic functionality 
    public Client() 
    { 
     name = null; 
     idNumber = null; 
     contact = null; 
     unique = null; 
     pin = 0; 
    } 
    //Thats how you can interact with constructor 
    public Client(String name, String idNumber, String contact, String unique, int pin) 
    { 
     this.name = name; 
     this.idNumber = idNumber; 
     this.contact = contact; 
     this.unique = unique; 
     this.pin = pin; 
    } 

    public String getName(){ 
     return name; 
    } 

    public void setName(String name){ 
     this.name=name; 
    } 

    public String getIdNumber(){ 
     return idNumber; 
    } 

    public void setIdNumber(String idNumber){ 
     this.idNumber=idNumber;  
    } 

    public String getContact(){ 
     return contact;  
    } 

    public void setContact(String contact){ 
     this.contact=contact; 
    } 
    public String getUnique(){ 
     return unique;  
    } 

    public void setUnique(String unique){ 
     this.unique=unique; 
    } 
    public int getPin(){ 
     return pin; 
    } 
    public void setPin(int pin){ 
     this.pin=pin; 
    } 
    @Override 
    public String toString() { 
     return "Client [name=" + name + ", idNumber=" + idNumber + ", contact=" + contact + ", unique=" + unique 
       + ", pin=" + pin + "]"; 
    } 

}

class NewClient 
{ 
    public int uniqueId(String idNumber){  
     String unique = idNumber.substring(8); 
     return Integer.parseInt(unique);  
    } 
public void display(int pin){ 
    System.out.println("This is the password for first time login "+pin); 
} 

public int pinCode(){ 
    Random rand = new Random(); 
    return rand.nextInt(9000)+1000; 
} 

public void admin(){ 
    Client []nc = new Client[10]; 
    @SuppressWarnings("resource") 
    Scanner scan = new Scanner(System.in); 
    //You have somes method like login(), and i don't know what they are, so i comment rhem.. 
    //login(); 
    while(true){ 
     System.out.println("Select 1:add Client\n 2:add Account\n 3:login as Client"); 
     try{ 

      int selection = scan.nextInt(); 
      switch(selection) 
      { 
      case 1: nc[1] = addClient(); 
        break; 
      case 2: //addAccount(nc); 
        break; 
      case 3: //client.client(); 
        break; 
      default: System.out.println("INvalid selection"); 
      } 
     } 
     catch(InputMismatchException ex){ 
      System.out.println("Invalid input"); 
      scan.nextLine(); 
     } 
    }  
} 

public Client addClient(){ 
    Client client = new Client(); 
    Scanner scan = new Scanner(System.in); 
    System.out.println("Enter name"); 
    client.setName(scan.nextLine()); 
    scan.nextLine(); 
    System.out.println("Enter contact"); 
    client.setContact(scan.nextLine());   
    System.out.println("Enter id number"); 
    client.setIdNumber(scan.nextLine()); 
    client.setPin(pinCode()); 
    client.setUnique(String.valueOf(uniqueId(client.getIdNumber()))); 
    System.out.println(client.toString()); 

    return client; 
} 

}

我不知道,我回答你的问题或没有,但你应该试试这种方法!...关心

+0

感谢的方式! !是的我是一个新手在编码,我不太了解Java ...我感到很抱歉我发布的问题。实际上,这是我的项目的一部分,我不删除那些不相关的东西。我得到一个构造函数给数组(当我们呃创建了一个构造函数(nc [newClient.count] = new Client()))。因为我的演讲只是向我展示了一个类似的例子,我甚至不知道有什么其他方式可以做这样的事情。 –

+0

您应该首先学习基础知识,学习面向对象的方法,阅读书籍,看教程和其他内容,这些将帮助您快乐编码。 –