2016-11-18 12 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; 

импорт 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 ... Мне так жаль, что я поставил вопрос. Фактически это часть моего проекта, и я не удаляю те не соответствующие вещи. И как можно Я получаю назначение конструктора массиву (когда мы er создал конструктор (nc [newClient.count] = new Client())). Поскольку моя лекция просто показывает мне похожий пример, и я даже не знаю, есть ли другой способ сделать что-то подобное. –

+0

Сначала вы должны сначала поработать над своей базой, изучить объектно-ориентированные подходы, прочитать книги, посмотреть учебники и прочее, что поможет вам, счастливое кодирование. –