VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 847|回复: 7

还是概念问题搞不清楚,昏死,想自杀啊!

[复制链接]

2

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-1-15 21:00:01 | 显示全部楼层 |阅读模式
一个简单的程序,实现查书和加书功能,但是新加的书并不能查的到,我知道是什么问题,但不知道怎么该,希望各位大侠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();
        }
}

回复

使用道具 举报

2

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-1-19 15:00:02 | 显示全部楼层
谢谢各位了。。。
回复

使用道具 举报

1

主题

21

帖子

19.00

积分

新手上路

Rank: 1

积分
19.00
发表于 2020-1-20 09:18:01 | 显示全部楼层
改好了
===============================================================================
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();
        }
}
回复

使用道具 举报

0

主题

4

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-1-20 14:00:01 | 显示全部楼层
搂主在添加时候,只是将你添加的新的stock对象放在了你的局部变量stock a[]里.

而没有存到stock类中.

你应该在stock类中加入一个存储数据的类成员.  

楼上该的非常好的
回复

使用道具 举报

1

主题

51

帖子

32.00

积分

新手上路

Rank: 1

积分
32.00
发表于 2020-1-20 20:36:01 | 显示全部楼层
精神可嘉-.-
回复

使用道具 举报

2

主题

6

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
 楼主| 发表于 2020-1-21 00:18:01 | 显示全部楼层
呵呵,好人会有好报滴,我也不会一直是个菜鸟滴,希望一个寒假过来水平能有长进。谢谢各位好心人。
回复

使用道具 举报

0

主题

4

帖子

3.00

积分

新手上路

Rank: 1

积分
3.00
发表于 2020-1-21 12:09:01 | 显示全部楼层
程序总体来说写的很不错的.

只是结构上可能可以变化一些.

比如这样:  book ,bookself,然后把一些查找,添加等操作封装在实体类中. 或者你另外写一个operation控制类..   
然后在Main类中进行组合.
回复

使用道具 举报

0

主题

1

帖子

2.00

积分

新手上路

Rank: 1

积分
2.00
发表于 2020-1-21 19:09:02 | 显示全部楼层
鼓励中... ...
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表