平生-事 2019-03-21 22:31 采纳率: 100%
浏览 354
已结题

萌新求大神帮忙找找哪里出错了,图书管理系统。

import java.util.*;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.text.Collator;
import java.util.Comparator;
import java.util.Locale;
public class Library 
{
    Scanner sc=new Scanner(System.in);
    public int curLen;
    public Book []books;
    File file=new File("图书信息.txt");
    File clfile=new File("其余信息.txt");
    Comparator cmp=Collator.getInstance(java.util.Locale.CHINA);
    public Library()
    {
        books=new Book[100000];
        curLen=0;
        ReaderFile(file);
    }


    //写文件
    public void WriteFile(File file,Book books,boolean tf) 
    {

          try
          {     
              String s[];
              FileWriter outOne=new FileWriter(file,tf);
              BufferedWriter outTwo= new BufferedWriter(outOne);
              String str=books.getName()+","+books.getISBN()+","+books.author+","+books.getPrice();
              outTwo.write(str);
              outTwo.newLine();
              outTwo.close();
              outOne.close();    
          } 
         catch(Exception e){
                     }   
    }
     //读文件
     public void ReaderFile(File file) 
        {
            try
            {
               FileReader inOne=new FileReader(file);
               BufferedReader inTwo= new BufferedReader(inOne);
               String s=null;
               while((s=inTwo.readLine())!=null) {
                String[] st= s.split(","); 
                String bookName=st[0]; 
                String ISBN=st[1];
                String CBS=st[2]; 
                String price=st[3];
                books[curLen]=new Book(bookName,ISBN,CBS,price);
            //  System.out.println("正在加载数据"+this.curLen+"--->>>");
                curLen++;
               }
               inOne.close();
               inTwo.close();
         }
         catch(Exception e){System.out.println("读文件异常222");}
         }

    //add 
    public void append()
    {
        System.out.println("请输入书名:");
        String name=sc.next();
        System.out.println("请输入作者:");
        String author=sc.next();
        System.out.println("请输入ISBN编号:");
        String ISBN=sc.next();
        System.out.println("请输入该书的价格:");
        String price=sc.next();
        Book book=new Book(name,author,ISBN,price);
        this.add(book);
    }

    public void add(Book book)//增加图书的方法
    {
        if(this.curLen!=books.length)
        {
            books[curLen]=new Book();
            books[curLen]=book;
            this.curLen++;
            WriteFile(file,book,true);
            WriteFile(clfile,new Book("增加后结果如下:","总计:"+this.curLen,"继续加油","奋斗每一天"),false);
            for(int i=0;i<curLen;i++)
            {
                WriteFile(clfile,books[i],true);//数据更新到处理结果文件
            }
            System.out.println("增加完成,请打开——>处理结果.txt文档查看");
        }
        else 
        {
            System.out.println("数组已满,添加失败");
        }
    }

    public void showLibrary()
    {
        for(int i=0;i<this.curLen;i++)
            System.out.println(books[i].toString());
    }

    private int search(String name)//无序按姓名查找
    {

        for(int i=0;i<this.curLen;i++)
        {
            if(books[i].getName().equals(name)==true)
            { 
               return i;
            }        
        }
        return -1;
    }

    public void serach(String name)
    {
        int index=search(name);
        if(index==-1)
        {
            WriteFile(clfile,new Book("没有你要找的书","请重新查找","",""),false);
        }
        WriteFile(clfile,books[index],false);
    }
    public void mhSearch(String name)//按姓名模糊查找
    {
        int count=0;
        WriteFile(clfile,new Book("加载文件","从:"+this.curLen,"本图书中搜索","结果如下"),false);
        for(int i=0;i<this.curLen;i++)
        {
            if(books[i].getName().contains(name)==true)
            { 
                System.out.println("#######已搜到"+count+++"本图书-->>>");
                WriteFile(clfile,books[i],true);
            }        
        }
    }
    public void remove(String name)
    {
        int index=search(name);
        if(index==-1)
        {
            System.out.println("删除失败,无该图书请重新尝试");
        }
        else 
        {
            books[index]=books[curLen--];
            WriteFile(file,new Book("对原数据进行:","更新","总计:"+this.curLen,"加油"),false);//将数据更新到原文件
            WriteFile(clfile,new Book("删除后结果如下:","总计:"+this.curLen,"",""),false);
            for(int i=0;i<curLen;i++)
            {
                WriteFile(clfile,books[i],true);//数据更新到处理结果文件
                WriteFile(file,books[i],true);//将数据更新到原文件
            }
            System.out.println("删除完成,请打开——>处理结果.txt文档查看");
        }


    }
    public void qSort()//简单选择排序
    {
        Book temp;
        for(int i=0;i<curLen;i++)
        {
            int min =i;
            for(int j=i+1;j<curLen;j++)
                if(cmp.compare(books[i].getName(),books[j].getName())<0)
                    min=j;
            if(min!=i)
            {
                temp=books[i];
                books[i]=books[min];
                books[min]=temp;
            }
        }
    }

    //顺序表快排
    */
    public static void main(String[] args) 
    {
        Library li=new Library();
    }
}

public class Book 
{
    public String name;
    public String ISBN;
    public String author;
    public String price;

    public Book()
    {

    }
    public Book(String N,String I,String A,String P)
    {
        this.name=N;
        this.ISBN=I;
        this.author=A;
        this.price=P;
    }
    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getISBN() {
        return ISBN;
    }

    public void setISBN(String iSBN) {
        ISBN = iSBN;
    }

    public String getAuthor() {
        return author;
    }

    public void setAuthor(String author) {
        this.author = author;
    }

    public String getPrice() {
        return price;
    }

    public void setPrice(String price) {
        this.price = price;
    }

    public String toString() 
    {
        return "名字:"+name+"编号:"+ISBN+"作者:"+author+"价格:"+price;
    }

}

  • 写回答

2条回答 默认 最新

  • huangMVC 2019-03-22 17:08
    关注

    试了一下,你那个输入感觉没什么用,然后File file=new File("D:\text\图书信息.txt");这里最好有个路径,不然直接catch块了,其余的不知道

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 一道python难题2
  • ¥15 一道python难题
  • ¥15 用matlab 设计一个不动点迭代法求解非线性方程组的代码
  • ¥15 牛顿斯科特系数表表示
  • ¥15 arduino 步进电机
  • ¥20 程序进入HardFault_Handler
  • ¥15 oracle集群安装出bug
  • ¥15 关于#python#的问题:自动化测试
  • ¥20 问题请教!vue项目关于Nginx配置nonce安全策略的问题
  • ¥15 教务系统账号被盗号如何追溯设备