一个简单的程序,实现查书和加书功能,但是新加的书并不能查的到,我知道是什么问题,但不知道怎么该,希望各位大侠ctrl+c一下帮帮忙,感激不尽。
import java.io.*;
import java.util.*;
class stock { 
String name; String author; int price;
public stock(){} 

stock(String a, String b, int c) {
name = a;
author = b;
price = c;
} void print() {
System.out.println("name is " + name);
System.out.println("author is " + author);
System.out.println("price is " + price);
}
stock [] get() {
int N = 100;
stock[] a = new stock[N];
a[0] = new stock("Java", "PlayGrrrr...", 12);
a[1] = new stock("C#", "Bill Gates", 13);
a[2] = new stock("Delphi", "Boxer", 14);
a[3] = new stock("Oracle", "zy", 15);

return a;
}
}class process {
void step1() {
System.out.println("do what?");
System.out.println("a.search    b.add   c.exit");
char ch = 0;
try {
ch = (char) System.in.read();
System.in.skip(2);
} catch (IOException z) {
}
if (ch == 'a') {
System.out.println("a.by name    b.by author"); char ch2 = 0;
try {
ch2 = (char) System.in.read();
System.in.skip(2);
} catch (IOException z) {
}
if (ch2 == 'a') {
System.out.print("plz input the book's name:");
InputDate fuck = new InputDate();
fuck.findbookname();
} if (ch2 == 'b') {
System.out.print("plz input the author's name:");
InputDate fuck2 = new InputDate();
fuck2.findauthorname();
}
}
if (ch == 'b') {
InputDate fuck3 = new InputDate();
fuck3.add();
}
if (ch == 'c') {
System.out.println("c u");
}
}
}class InputDate {
static private String s; static public void input() {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
try {
s = br.readLine();
} catch (IOException e) {
} } static public String getString() {
input();
return s; } static public int getInt() {
input();
return Integer.parseInt(s);
} public void findbookname() { stock mis = new stock(); 
stock a [] = mis.get();  // 这里就用到了上面改动过的 get方法
s = InputDate.getString();
Vector names = new Vector();
for (int i = 0; i < a.length && a[i + 1] != null; i++) {
names.add(a[i].name);
}
if (names.indexOf(s) != -1) {
System.out.println("u can fint it here!");
} else
System.out.println("sorry,there is not such a book!"); } public void findauthorname() {
s = InputDate.getString();
stock mis = new stock(); 
stock a [] = mis.get();
Vector authornames = new Vector();
for (int i = 0; i < a.length && a[i + 1] != null; i++) {
authornames.add(a[i].author);
}
if (authornames.indexOf(s) != -1) { System.out.println("there is such a book!");
} else
System.out.println("i didn't hear that pl at all!"); } public void add() {

System.out.println("plz input info:");
String ab, b;
int c;
ab = InputDate.getString();
b = InputDate.getString();
c = InputDate.getInt();
int i = 0;
stock mis = new stock(); 
stock a [] = mis.get();

while (a[i] != null)
i++;
a[i] = new stock(ab, b, c);
System.out.println("successfully added");
process a1 = new process();
a1.step1();
}
}
public class main {
public static void main(String args[]) {
process a1 = new process();
a1.step1();
}
}

解决方案 »

  1.   

    改好了
    ===============================================================================
    import java.io.*;
    import java.util.*;
    class stock { 
    static stock[] a=new stock[100];
    static{
    a[0] = new stock("Java", "PlayGrrrr...", 12);
    a[1] = new stock("C#", "Bill Gates", 13);
    a[2] = new stock("Delphi", "Boxer", 14);
    a[3] = new stock("Oracle", "zy", 15);
          
    } String name; String author; int price;
    public stock(){} 

    stock(String a, String b, int c) {
    name = a;
    author = b;
    price = c;
    } void print() {
    System.out.println("name is " + name);
    System.out.println("author is " + author);
    System.out.println("price is " + price);
    }
    stock [] get() {
    return a;
    }
    }class process {
    void step1() {
    System.out.println("do what?");
    System.out.println("a.search    b.add   c.exit");
    char ch = 0;
    try {
    ch = (char) System.in.read();
    System.in.skip(2);
    } catch (IOException z) {
    }
    if (ch == 'a') {
    System.out.println("a.by name    b.by author"); char ch2 = 0;
    try {
    ch2 = (char) System.in.read();
    System.in.skip(2);
    } catch (IOException z) {
    }
    if (ch2 == 'a') {
    System.out.print("plz input the book's name:");
    InputDate fuck = new InputDate();
    fuck.findbookname();
    } if (ch2 == 'b') {
    System.out.print("plz input the author's name:");
    InputDate fuck2 = new InputDate();
    fuck2.findauthorname();
    }
    }
    if (ch == 'b') {
    InputDate fuck3 = new InputDate();
    fuck3.add();
    }
    if (ch == 'c') {
    System.out.println("c u");
    }
    }
    }class InputDate {
    static private String s; static public void input() {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    try {
    s = br.readLine();
    } catch (IOException e) {
    } } static public String getString() {
    input();
    return s; } static public int getInt() {
    input();
    return Integer.parseInt(s);
    } public void findbookname() { stock mis = new stock(); 
    stock a [] = mis.get();  // 这里就用到了上面改动过的 get方法
    s = InputDate.getString();
    Vector names = new Vector();
    for (int i = 0; a[i ] != null&&i < a.length  ; i++) {
    names.add(a[i].name);
    }
    if (names.indexOf(s) != -1) {
    System.out.println("u can fint it here!");
    } else
    System.out.println("sorry,there is not such a book!"); } public void findauthorname() {
    s = InputDate.getString();
    stock mis = new stock(); 
    stock a [] = mis.get();
    Vector authornames = new Vector();
    for (int i = 0; a[i] != null&&i < a.length ; i++) {
    authornames.add(a[i].author);
    }
    if (authornames.indexOf(s) != -1) { System.out.println("there is such a book!");
    } else
    System.out.println("i didn't hear that pl at all!"); } public void add() {

    System.out.println("plz input info:");
    String ab, b;
    int c;
    ab = InputDate.getString();
    b = InputDate.getString();
    c = InputDate.getInt();
    int i = 0;
    stock mis = new stock(); 
    stock a [] = mis.get();

    while (a[i++] != null);
    stock.a[i-1] = new stock(ab, b, c);
    System.out.println("successfully added");
    process a1 = new process();
    a1.step1();
    }
    }
    public class main {
    public static void main(String args[]) {
    process a1 = new process();
    a1.step1();
    }
    }
      

  2.   

    搂主在添加时候,只是将你添加的新的stock对象放在了你的局部变量stock a[]里.而没有存到stock类中.你应该在stock类中加入一个存储数据的类成员.  楼上该的非常好的
      

  3.   

    程序总体来说写的很不错的.只是结构上可能可以变化一些.比如这样:  book ,bookself,然后把一些查找,添加等操作封装在实体类中. 或者你另外写一个operation控制类..    
    然后在Main类中进行组合.