2011-01-02 2 views
0

私のプログラムは電話帳に関するものです。リンクされたリストを使用していました。このコードに問題がありますが、構文エラーはありませんが、検索とリストを行うと答えが見えません更新方法リンク先リストを使用した電話帳

を追加するにはこれが最初のクラスです:

//----------------------------------------------------------------------------------------- 
class tel 
{ 

     private static String name; 
     private static String address; 
     private static int phoneNo; 
     private tel next; 
     private tel prev; 

     public tel(){ 
     } 
    public tel(String name1,String address1 ,int phoneNo1) 
    { 
    name = name1 ; 
    address = address1; 
    phoneNo = phoneNo1; 
    } 
     public static String getName() { 
       return name; 
     } 
     public void setName(String name1) { 
       name = name1; 
     } 
     public static String getAddress() { 
       return address; 
     } 
     public void setAddress(String address1) { 
       address = address1; 
     } 
     public static int getPhoneNo() { 
       return phoneNo; 
     } 
     public void setPhoneNo(int phoneNo1) { 
       phoneNo = phoneNo1; 
     } 
     public tel getNext() { 
       return next; 
     } 
     public void setNext(tel next1) { 
       next = next1; 
     } 
     public tel getPrev() { 
       return prev; 
     } 
     public void setPrev(tel prev1) { 
       prev = prev1; 
     } 
     public void display() 
     { 
     System.out.println("Name : " + getName() + " PhoneNo : " + getPhoneNo() + " Address : " + getAddress()); 
     } 
     } 
//------------------------------------------------------------------------------------------------------------------- 
//2ed class 
public class telList { 
private tel first; 
private tel last; 
private tel cur ; 
    public telList() 
    { 
    first = null ; 
    last = null ; 
    } 
    public boolean isEmpty() 
    {return first == null; } 

    public tel getCur() { 
       return cur; 
     } 
     public void setCur(tel cur1) { 
       cur = cur1; 
     } 
    public void insert(String na,String addr ,int pho) 
    { 
    tel newtel = new tel(na,addr,pho); 

    if (isEmpty()) 
    { 
    last = newtel; 
    first = newtel; 
    } 

    else 
    { 
    newtel.setNext(first); 
     first.setPrev(newtel); 
     first = newtel; 
    } 

    } 

    ////////////////////////////////// 
    public tel search(String Key) 
    { 
    tel cur = first; 
    while(cur.getName() != Key) 
    { 
     if(cur.getNext()== null) 
     return null; 
     else 
     cur = cur.getNext(); 
     } 

    return cur; 
    } 


    public void displaythelist() 
    { 
    tel cur = first; 
    while(cur != null) 
    { 
     System.out.println(cur.display()); 

     cur = cur.getNext(); 
    } 
    System.out.println(" "); 
    } 

} 
//3ed class 
//------------------------------------------------------------------------------------------------------------------- 
import java.io.*; 
import java.util.*; 
public class telTest { 
public static void main(String[] args)throws Exception { 

Scanner input = new Scanner(System.in); 
boolean quit = false; 
do { 
     int menu = 0; 
     System.out.println("******************************"); 
     System.out.println("Telephone Directory"); 
     System.out.println(); 
     System.out.println("1. Accept Data"); 
     System.out.println("2. Search"); 
     System.out.println("3. List of all persons"); 
     System.out.println("4. Exit"); 

     System.out.print("Please enter your choice: "); 
     menu = input.nextInt(); 
     System.out.println(); 
     tel t = new tel(); 
     telList t1 = new telList(); 
    switch (menu) { 
case 1: 
      System.out.print("Enter Name: "); 
      String name = input.next(); 
      t.setName(name); 
      System.out.print("Enter Address: "); 
      String address = input.next(); 
      t.setAddress(address); 
      System.out.print("Enter Phone No: "); 
      int no = input.nextInt(); 
      t.setPhoneNo(no); 
      t1. insert(t.getName(),t.getAddress(),t.getPhoneNo()); 
break ; 
//........................................................................... 
case 2: 
     System.out.print("Enter name to search information: "); 
     String n = input.next(); 
    try { 
     t1.search(t.getName()); 

     } 

    catch (Exception e) { 
          } 

break; 
//........................................................................... 
    case 3://list 
     try { 
      t1.displaythelist(); 

      } 

    catch (Exception e) { 
          } 
    break; 
//........................................................................... 
    case 4 ://exit 
      quit = true; 
    break; 
//........................................................................... 
    default: 
     System.out.println("Invalid Entry!"); 
    } 
    }while (!quit); 
} 
} 
+0

ここに質問がありますか? –

+0

@ダリントップにコメントがあります: "私のプログラムは電話帳に関するものです。私はリンクされたリストを使用していました。このコードには問題がありますが、構文エラーはありませんが、私は更新メソッド " – marcog

+0

@marcogを追加することを願っています。私はStackOverflowでどのように尋ねるべきかという観点から*質問*について質問していました。シナリオの説明、予想結果と実際の結果の提示方法、投稿する必要のある小規模のコードスニペットに、その他の有益な情報を提供してください。 –

答えて

1

while(cur.getName() != Key) 

を交換してください

while(!cur.getName().equals(Key)) 

オブジェクトの等価性を!=と比較しています。代わりに文字列の文字を比較する必要があります(同じ文字の2つの異なる文字列を同じものとして比較する必要があります)。

+0

検索/一覧表示のための出力がまだありませんどのように私が検索した名前の情報を得ることができますどのようにすべての名前を一覧表示することができます – nona

0

あなたはそれらがStaticであることを確認していますか?

private static String name; 
    private static String address; 
    private static int phoneNo; 

は、私はそれがあるべきだと思う

private String name; 
//... etc. 

編集:はまた、私はmain()

telList t1 = new telList(); 

doループ

EDIT2外であるべきだと思います:あなたはcase 1:t1.insert(t.getName(),t.getAddress(),t.getPhoneNo());あなたは本当にあなたがメイン 上で作成されたオブジェクトを使用していないときmain()

ので、ちょうどそのようにそれを行う:私はあなたが、とにかく新しいオブジェクトを作成表示されるものと

 case 1: 
      System.out.print("Enter Name: "); 
      String name = input.next(); 
      //t.setName(name); 
      System.out.print("Enter Address: "); 
      String address = input.next(); 
      //t.setAddress(address); 
      System.out.print("Enter Phone No: "); 
      int no = input.nextInt(); 
      //t.setPhoneNo(no); 
      t1.insert(name,address,no); 

t1

中しかし、あなたはそれを毎回再インスタンス化するので、あなたがOUTSIDEdoループのtelList t1 = new telList();を置くことを確認してください。

+0

ありがとう//彼らはまだ静的ではありません – nona

+0

検索/どのように私はそれのためにsearhの名前の情報を得ることができます – nona

関連する問題