java图书管理系统的简单实现

本文介绍了一个图书管理系统的设计与实现,包括学生和管理员的不同权限功能,如图书查询、借阅、归还等,并通过Java类和对象、继承、多态等技术实现。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

图书管理项目文档设计

项目介绍:

本系统是针对图书管理工作过程进行设计的,管理员和学生分别对图书进行访问,不同的身份具有不同的访问功能,对此进行代码实现。图书馆管理系统的开发主要涉及到图书的管理,学生信息的管理,管理员信息的管理三大功能的数据管理。

项目功能:

注册用户可以登录此系统; 非注册用户注册后可以使用本系统; 读者登陆成功后可以查询、借阅、归还图书。管理员可以对读者、以及图书进行管理。

学生身份登陆成功:查询图书信息,借书还书功能

管理员身份登陆成功:查询图书信息,上架图书,下架图书,添加学生信息,删除学生信息功能。

项目知识点:

Java类和对象、继承、多态

项目实现思路:

  1. 该设计至少有

Book类{属性:书名,作者,出版社,价格},

Student类{学号,手机号,姓名,性别,密码},

Manager类{属性:职工号,手机号,姓名,性别,密码},

以及Library类构成,添加相对应的属性和方法。

  1. 在Library类中添加属性以及测试函数调用的方法start(); 在start函数中进行功能代码实现。
  2. 登录功能:学生根据手机号+密码 或者 学号+密码形式进行登录操作
  3. 注册功能:学生展示的页面只能登录,学生的信息是由管理员登录成功后进行注册的。如果选择管理员身份操作,管理员具有登录和注册的功能。
  4. 学生身份登陆成功具有的功能:
  1. 查询图书信息,
  2. 借书,
  3. 还书
  4. 修改自己密码的功能(备注:学生信息被管理员注册之后的密码使用初始默认值:tulun666)
  1. 管理员身份登陆成功具有的功能:
  1. 查询图书信息,
  2. 上架图书,
  3. 下架图书,
  4. 添加学生信息,
  5. 删除学生信息功能。
  6. 注册管理员

根据不同的功能具体在相对应的类中实现相对应的方法。

项目具体实现:

Library类

package src3;
import java.util.Scanner;
public class Library {
    private Manager manager;
    private Book book;
    private User user;
    public Library(){
        book=new Book("","","",0);
        user=new User(0,"",0,0,"");

    }
    public void Open(){
        Scanner scanner=new Scanner(System.in);
        //给定一个起始管理员
        People manager=new Manager("tdj","111",20,111,187);
        manager.add(manager);
        while (true){
        System.out.println("1.使用者登陆    2.管理员登陆      3.退出");
        int choice=scanner.nextInt();
        if (choice==3){break;}

            System.out.println("请输入账号:");
            int account=scanner.nextInt();
            System.out.println("请输入密码");
            String passwd=scanner.next();
        switch (choice){//
            case 1://使用者登陆

                if(user.contain(user,account,passwd)){//查询账号密码是否正确
                userLogin(account,passwd);

                }else{
                    System.out.println("账号密码不存在");
                }
                break;
            case 2://管理员登陆

                if(manager.contain(manager,account,passwd)){//查询账号密码是否正确
                    managerLogin(account,passwd);

                }else{
                    System.out.println("账号密码不存在");
                }
                break;
        }
        }
    }
    //使用者登陆
    public void userLogin(int account,String passwd){
        Scanner scanner=new Scanner(System.in);
        while (true){
        System.out.println("1.查阅图书信息  2.借书  3.还书   4.修改密码   5.退出");
        int choice=scanner.nextInt();
        if(choice==5){break;}
        switch (choice){
            case 1://查阅图书信息
                System.out.println("请输入书名");
                String name1=scanner.next();
                if(book.search(name1)==null){
                    System.out.println("未找到此书");
                }else {
                    System.out.println(name1+"的作者是"+book.search(name1).getWriter()+"出版于"+book.search(name1).getPress());
                }
                break;
            case 2://借书
                System.out.println("请输入书名:");
                String name2=scanner.next();
                user.borrow(book.search(name2));
                break;
            case 3://还书
                System.out.println("请输入要还的书名");
                String name3=scanner.next();
                user.back(name3);

                break;
            case 4://修改密码
                System.out.println("请输入新密码");
                String newPasswd=scanner.next();
                user.change(account,newPasswd);

        }
        }

    }
    //管理员登陆
    public void managerLogin(int account,String passwd){
        Scanner scanner=new Scanner(System.in);
        while (true){
            System.out.println("1.查阅图书信息  2.上架图书  3.下架图书   4.添加使用者信息   5.删除使用者信息  6.管理员注册  7.退出");
            int choice=scanner.nextInt();
            if(choice==7){break;}
            switch (choice){
                case 1://查阅图书信息
                    System.out.println("请输入书名");
                    String name1=scanner.next();
                    if(book.search(name1)==null){
                        System.out.println("未找到此书");
                    }else {
                        System.out.println(name1+"的作者是"+book.search(name1).getWriter()+"出版于"+book.search(name1).getPress());
                    }
                    break;
                case 2://上架图书
                    System.out.println("请依次输入书的书名,作者,出版社和价格");
                    String name2=scanner.next();
                    String whiter2=scanner.next();
                    String press2=scanner.next();
                    float price2=scanner.nextFloat();
                    Book book2=new Book(name2,whiter2,press2,price2);
                    book.add(book2);
                    break;

                case 3://下架图书
                    System.out.println("请输入要下架书的书名");
                    String name3=scanner.next();
                    book.remove(name3);
                    break;
                case 4://添加使用者
                    System.out.println("请依次输入使用者学号,姓名,年龄,手机号");
                    int account4=scanner.nextInt();
                    String name4=scanner.next();
                    int age=scanner.nextInt();
                    int number=scanner.nextInt();
                    User user4=new User(account4,name4,age,number,"tulun666");
                    user.add(user4);
                    break;
                case 5://删除使用者
                    System.out.println("请输入要删除的使用者账号");
                    int account5=scanner.nextInt();
                    user.remove(account);
                    break;
                case 6://管理员注册
                    System.out.println("请输入管理员的姓名,工号,手机号,密码和年龄");
                    int account6=scanner.nextInt();
                    String name6=scanner.next();
                    int age6=scanner.nextInt();
                    int number6=scanner.nextInt();
                    String passwd6=scanner.next();
                    Manager manager=new Manager(name6,passwd6,age6,account6,number6);
                    manager.add(manager);

            }
        }

    }

}

People类

package src3;

abstract public class People {
    private String name;
    private int age;
    private int number;//手机号
    private String passwd;//密码
    private int account;//工号,学号

    public People(String name,String passwd,int age,int account,int number){
        this.account=account;
        this.age=age;
        this.name=name;
        this.passwd=passwd;
        this.number=number;

    }
    //查找
    abstract boolean contain(People people,int account,String passwd);
    abstract  void add(People people);
    public String getName() {
        return name;
    }

    public int getAge() {
        return age;
    }

    public int getNumber() {
        return number;
    }

    public String getPasswd() {
        return passwd;
    }

    public int getAccount() {
        return account;
    }

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

    public void setAge(int age) {
        this.age = age;
    }

    public void setNumber(int number) {
        this.number = number;
    }

    public void setPasswd(String passwd) {
        this.passwd = passwd;
    }

    public void setAccount(int account) {
        this.account = account;
    }
}

User类

 

package src3;

import java.util.Arrays;

public class User extends People {
    private User[] users;
    private static final int INITSIZE = 10;
    private int size;
    private Book[] borrowRecord;//借书记录
    private int count;//计借书的本书
    public User(int account,String name,int age,int number,String passad) {
        super(name,passad,age,account,number);
        users = new User[INITSIZE];
        this.size = size;
        borrowRecord=new Book[2];
    }
//查询账号密码是否正确
    @Override
    public boolean contain(People people,int account,String passwd) {
        boolean flag = false;
        if(people instanceof User) {
            User user = (User)people;
            for (int i = 0; i < size; i++) {
                if (users[i].getAccount() == account && users[i].getPasswd().equals(passwd)) {
                    flag = true;
                }
            }
        }

        return flag;
    }



    //添加学生信息
    @Override
    public void add(People people){
        if(people instanceof User) {
            User user=(User)people;
            if (users.length == size) {
                users = Arrays.copyOf(users, users.length + (users.length >> 1));
            }
            users[size] = user;
            user.setPasswd("tulun666");
            size++;
        }
    }
    //删除使用者信息
    public void remove(int account){
        for(int i=0;i<size;i++){
            if(users[i].getAccount()==account){
                for(int j=i+1;j>size;j++){//数据移动
                    users[j-1]=users[j];
                }
                size--;
            }
        }
    }
    //修改密码
    public void change(int account,String newPasswd){
        for(int i=0;i<size;i++){
            if(users[i].getAccount()==account){
                users[i].setPasswd(newPasswd);
            }
        }
    }
    //借书记录
    public boolean borrow(Book book){
        boolean flag=false;
        if(count>=1){
            return flag;
        }else{
            borrowRecord[count++]=book;
        }return flag;
    }
    //还书
    public void back(String name){
        for(int i=0;i<size;i++){
            if(borrowRecord[i].getName()==name){
                for(int j=i+1;j>size;j++){//数据移动
                    borrowRecord[j-1]=borrowRecord[j];
                }
                count--;
            }
        }
    }
}

Manager类

package src3;

import java.util.Arrays;

public class Manager extends People {
    private Manager[] managers;
    private static final int INITSIZE = 10;
    private int size;
public Manager(String name,String passwd,int age,int account,int number){
    super(name,passwd,age,account,number);
    managers=new Manager[INITSIZE];

}
    //创建管理员
    @Override
    public  void add(People people){
    if(people instanceof Manager){
        Manager manager=(Manager)people;
        if(managers.length==size){
            managers= Arrays.copyOf(managers,managers.length+(managers.length>>1));
        }
        managers[size]=manager;
        size++;

    }
}
//账号密码错误
    @Override
public boolean contain(People people,int account,String passwd) {
    boolean flag = false;
    for (int i = 0; i < size; i++) {
        if (managers[i].getAccount() == account && managers[i].getPasswd().equals(passwd)) {
            flag = true;
        }
    }

    return flag;
}

}

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值