还是概念问题搞不清楚,昏死,想自杀啊!
一个简单的程序,实现查书和加书功能,但是新加的书并不能查的到,我知道是什么问题,但不知道怎么该,希望各位大侠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();
}
}
[解决办法]
改好了
===============================================================================
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();
}
}
[解决办法]
搂主在添加时候,只是将你添加的新的stock对象放在了你的局部变量stock a[]里.
而没有存到stock类中.
你应该在stock类中加入一个存储数据的类成员.
楼上该的非常好的
[解决办法]
精神可嘉-.-
[解决办法]
鼓励中... ...
