mpython 2017-05-11 01:37 采纳率: 0%
浏览 1627

Java新手一个练习图书馆系统添加一个功能搞不出来,请大家帮帮忙

如何实现不能重复添加重复的名称

图片说明

试过在for循环里添加一个if判断

    if(this.name[i].equals(name)){}

结果输入重复的图片说明
图片说明

很迷茫...

完整代码:

package library;
import java.awt.Container;
import java.util.Scanner;

public class Book {
    private String name[];
    private int state[];
    private int count[];
    Scanner sc =new Scanner(System.in);


    public Book(){

        name = new String[10];
        state = new int[10];
        count = new int[10];




        name[0] = "云计算";
        name[1] = "Linux";
        name[2] = "Java";

        state[0] = 1;
        state[1] = 0;
        state[2] = 0;

        count[0] = 20;
        count[1] = 20;
        count[2] = 20;
    }

//查看
        public void List(){
            System.out.println("------------------------------\n图书编号     图书名称    借出次数      当前状态\n------------------------------");
            for(int i=0;i<name.length;i++){
                if(name[i]==null){
                    continue;
                }else{

                    if(this.state[i]==0){

                        System.out.println(" "+(i+1)+"  "+name[i]+" "+""+count[i]+" "+"未借出");
                    }else{

                        System.out.println(" "+(i+1)+"  "+name[i]+" "+count[i]+"    "+"已借出");
                        }
                }

        }


            }
//增加    
    public void Add(String name){
        int n=0;
        for(int i=0;i < count.length;i++){





            if(this.name[i]!=null){
                n=n+1;
            }else if(this.name.equals(name)){
                System.out.println("error");
            }
    }
        this.name[n]=name;
        this.state[n]=0;
        this.count[n]=0;
        System.err.println("书籍《"+name+"》,增加成功");
    }

//删除
    public int Del(int d){
        if(this.name[d-1]==null){
            System.err.println("数字有误,请重新输入");
            return 1;
        }else{  
    System.err.println("《"+this.name[d-1]+"》,删除成功");

    for (int i = d;i<name.length;i++){

        name[i-1]=name[i];
        state[i-1]=state[i];
        count[i-1]=count[i];

    }

        name[name.length-1]=null;
    return 2;
        }

    }

//修改
    public void Update(int u,String name){


            if(this.name[u-1]!=null){
                this.name[u-1]=name;
                System.err.println("本书已修改为《"+this.name[u-1]+"》");


            }else{
                System.err.println("找不到该书,已自动添加到书架");



            }
        }


//借书    
    public void Loan(int s){
        if(this.name[s-1]==null){
            System.err.println("输入有误");
        }else if(this.state[s-1]==1){
            System.err.println(this.name[s-1]+"已借出");
        }else{
            this.state[s-1]=1;
            this.count[s-1]=count[s-1]+1;
            System.err.println("请输入借书时间");
            int day = sc.nextInt();

            //System.err.println("借出("+day+")天,花费("+(day*2)+")元");
            System.err.println(this.name[s-1]+"借出成功!\n"+"借出("+day+")天,花费("+(day*2)+")元。");
        }
    }

//还书
    public void Return(int r){
        if(this.name[r-1]==null){
            System.err.println("数字有误,请重新输入");
        }else if(this.state[r-1]==0){
            System.err.println(this.name[r-1]+"未借出");
        }else{
            this.state[r-1]=0;

            System.err.println(this.name[r-1]+"归还成功");
  }

    }


}

package library;


import java.util.Scanner;

import org.w3c.dom.css.Counter;

public class project1 {
    public static void main(String[] args){
        Scanner sc =new Scanner(System.in);
        Book b = new Book();

        String r="";
        try {
            do{
                System.out.println("欢迎进入图书馆系统");
                System.out.println("请选择操作:");

                System.out.println("--------------");
                System.out.println("1.查询图书");
                System.out.println("2.增加图书");
                System.out.println("3.删除图书");
                System.out.println("4.借出图书");
                System.out.println("5.修改图书");
                System.out.println("6.归还图书");
                System.out.println("7.退出系统");
                System.out.println("--------------");
                System.out.println("请输入操作编号:");

                String key="";
                key = sc.next();

                switch(key){

                case "1":
                //  System.err.println("------------------------------\n图书编号     图书名称    借出次数      当前状态\n------------------------------");

                    b.List();
                    System.out.println("输入7退出系统,其他任意键返回");
                    r=sc.next();
                    break;
                case "2":
                    System.out.println("请输入书本名称:");
                    b.Add(sc.next());
                    b.List();

                    System.out.println("输入7退出系统,其他任意键返回");
                    r=sc.next();
                    break;
                case "3":
                    System.out.println("请输入要删除的图书序号:");
                    b.List();



                    b.Del(sc.nextInt());
                    b.List();
                    System.out.println("输入7退出系统,其他任意键返回");
                    r=sc.next();
                    break;
                case "4":
                    System.out.println("请输入要借出的图书序号:");
                    b.List();
                    b.Loan(sc.nextInt());
                    b.List();
                    System.out.println("输入7退出系统,其他任意键返回");
                    r=sc.next();
                    break;
                case "5":
                    System.out.println("请输入要修改的图书序号:");

                    b.List();

                    int id = sc.nextInt();

                    System.out.println("请输入要修改的名称");
                    String name =sc.next();
                    b.Update(id,name);
                    b.Add(name);
                    b.List();
                    System.out.println("输入7退出系统,其他任意键返回");
                    r=sc.next();
                    break;
                case "6":
                    System.out.println("请输入要归还的图书序号:");
                    b.List();
                    b.Return(sc.nextInt());
                    b.List();
                    System.out.println("输入7退出系统,其他任意键返回");
                    r=sc.next();
                    break;
                case "7":
                    System.out.println("程序运行结束");
                    return;



                }
            }while (!r.equals("7"));
            System.out.println("程序运行结束");
        } catch (Exception e) {
            // TODO: handle exception
            System.out.println("输入错误 , 请重新运行程序!");
        }
    }

}

  • 写回答

3条回答 默认 最新

  • 关注

    有两种方法,你可以在数据库设计的时候,设计“名称”字段为不可重复校验。
    还有一种就是在添加数据时,你可以先通过“名称”查询,如果查询到的话就有重复,否则可以添加

    评论

报告相同问题?

悬赏问题

  • ¥50 如何增强飞上天的树莓派的热点信号强度,以使得笔记本可以在地面实现远程桌面连接
  • ¥15 MCNP里如何定义多个源?
  • ¥20 双层网络上信息-疾病传播
  • ¥50 paddlepaddle pinn
  • ¥20 idea运行测试代码报错问题
  • ¥15 网络监控:网络故障告警通知
  • ¥15 django项目运行报编码错误
  • ¥15 请问这个是什么意思?
  • ¥15 STM32驱动继电器
  • ¥15 Windows server update services