简单的图书管理系统

自写的极其简陋的图书管理系统,代码不太规范,在学习中慢慢改

现在还存在两个问题:

1.还书还的是null
2.借书传的不是书的编号

在周末之前解决

如有疑问或建议欢迎留言


LibMain.java

import java.util.Scanner;

/*
 *  * 图书管理系统
 * 1.登录和注册
 * 2.登录成功后
 *         a.显示所有图书列表 添加 查询  修  删除
 *         b.借阅图书   需要绑定借阅人账号
 *         c.查看已借阅图书列表  归还图书
 * 3.退出当前登录的账号
 */

public class LibMain {

    public static void main(String[] args) {
        /*
         * 预定义
         */
        Libmanage lib = new Libmanage();
        Scanner sc = new Scanner(System.in);
        //将会接收op1方法的返回值,是否进行下一阶段
        int Op1=0;
        //用于第一个while循环————登录注册操作
        int flag1=1;
        //用于第二个while循环————是否对图书进行操作
        int flag2=1;
        //将用于接收对图书的操作
        int Op2=0;

        /*
         * 开始进入图书馆
         */
        System.out.println("欢迎来到网络图书馆!");
        while(flag1==1){
            System.out.println("请输入需要的操作:1.登录2.注册0.退出系统");
            Op1 = lib.op1();//在op1方法中登录成功,就会返回1,进入图书操作界面

            if(Op1==1){
                while(flag2==1){
                    lib.show();//显示操作菜单
                    Op2=sc.nextInt();
                    switch(Op2){
                    case 1:
                        lib.addBook();
                        break;
                    case 2:
                        lib.delBook();
                        break;
                    case 3:
                        lib.modBook();
                        break;
                    case 4:
                        lib.selBook();
                        break;
                    case 5:
                        lib.showAllBook();
                        break;
                    case 6:
                        lib.borBook();
                        break;
                    case 7:
                        lib.showBorBook();
                        break;
                    case 8:
                        lib.huanBook();
                        break;
                    case 0:
                        flag2=0;
                        break;
                    default:
                        break;
                    }
                }//第二个while的大括号
            }
        }//第一个while循环的大括号
    }
}

Library.java

/**
 * 图书信息
 * @author y
 *
 */
public class Library {
    //书名
    private String bookName;
    //作者
    private String bookAuther;
    //价格
    private double bookPrice;
    /*
     * set&get
     */
    public String getBookName() {
        return bookName;
    }
    public void setBookName(String bookName) {
        this.bookName = bookName;
    }

    public double getBookPrice() {
        return bookPrice;
    }
    public void setBookPrice(double bookPrice) {
        this.bookPrice = bookPrice;
    }
    public String getBookAuther() {
        return bookAuther;
    }
    public void setBookAuther(String bookAuther) {
        this.bookAuther = bookAuther;
    }
    /*
     * 构造方法
     */

    public Library() {
        super();
        // TODO Auto-generated constructor stub
    }
    public Library(String bookName, String bookAuther, double bookPrice) {
        super();
        this.bookName = bookName;
        this.bookAuther = bookAuther;
        this.bookPrice = bookPrice;
    }
    @Override
    public String toString() {
        return "书名:" + bookName + ",作者: " + bookAuther + ", 价格:" + bookPrice;
    }

}

Libmanage.java

package com.inclass.test;
/**
 * 图书和用户的操作
 * @author y
 *
 */

import java.util.Scanner;
import java.util.TreeMap;

public class Libmanage {
    Scanner sc = new Scanner(System.in);
    //将会接收登录注册指令
    int op1=0;
    //成员变量————用户
    TreeMap<String, String> userMap = new TreeMap<>();
    //成员变量————图书
    TreeMap<Integer, Library> bookMap = new TreeMap<>();
    //图书编号
    int bno=0;
    //成员变量————用户和借书的关系
    TreeMap<Integer, Library> borBook = new TreeMap<>();//将会被借出去的书存在这个treemap里,然后再与用户关联
    TreeMap<Integer, Library> huanBook = new TreeMap<>();//要还的书的中介
    TreeMap<String, TreeMap> userBook = new TreeMap<>();

    //用于注册或登录的用户名和密码
    String name=null,password=null;
    //用于图书操作的属性定义
    String bname,bauther;//书名,书作者
    double bprice;//书价格

    /*
     * 登录注册选择
     */
    public int op1(){
        int fh=0;
        try{
            op1 = sc.nextInt();//接收登录注册指令
            if(op1==1){
                int i=1;
                System.out.println("请输入用户名:");
                name = sc.next();
                for (String str : userMap.keySet()) {
                    if(str.equals(name)){
                        fh=login(str);//登录————登录成功会返回1,失败返回0
                        i=0;//如果没有该用户,那就会进行注册,有,置为0,不注册
                        break;
                    }
                }
                if(i==1){
                    System.out.println("没有"+name+"用户,请进行注册!");
                    register();//跳到注册界面
                }

            }else if(op1==2){
                register();//注册
            }else if(op1==0){
                System.out.println("退出系统!...");
                System.exit(0);
            }else{
                System.out.println("输入有误请重新输入");
            }
        }catch(Exception e){
            System.out.println("输入有误请重新输入");
            sc.next();//出现异常后,就不断进行死循环的解决办法(可想想别的解决办法)
        }
        return fh;
    }

    /*
     * 用户注册
     *     ->对密码没有要求
     */
    public int register(){
        System.out.println("请输入用户名:");
        name = sc.next();
        System.out.println("请输入密码:");
        password = sc.next();
        for (String str : userMap.keySet()) {
            if(str.equals(name)){
                System.out.println("已经存在该用户!请重新注册!");
                return 0;
            }
        }
        userMap.put(name, password);
        System.out.println("注册成功!");
        return 1;
    }

    /*
     * 用户登录
     *     ->先判断用户名是否相同,然后再判断密码是否相同。没有符合条件的就返回false,否则返回true
     */
    public int login(String name){

        System.out.println("请输入密码:");
        password = sc.next();
        if(password.equals(userMap.get(name))){
            System.out.println("登陆成功!");
            return 1;
        }
        System.out.println("用户名或密码错误!");
        return 0;
    }

    /*
     *1.增加图书
     */
    public void addBook(){
        try {
            int x=0;
            System.out.println("请输入图书编号:");
            bno = sc.nextInt();

            for (int i : bookMap.keySet()) {
                if(i==bno){
                    x=1;//如果已有图书,置为1,告诉用户不能添加
                }
            }
            if(x==0){
                System.out.println("请输入书名:");
                bname = sc.next();
                System.out.println("请输入作者:");
                bauther = sc.next();
                System.out.println("请输入价格:");
                bprice = sc.nextDouble();
                bookMap.put(bno, new Library(bname,bauther,bprice));
                System.out.println("增加成功!新添图书的信息为:");
                System.out.println("编号:"+bno + " " + bookMap.get(bno));
            }else if(x==1){
                System.out.println("已经存在编号为"+bno+"的书,请重新输入");
            }

        } catch (Exception e) {
            System.out.println("输入有误请重新输入!");
        }
        bno=0;//预防性措施
    }

    /*
     * 2.删除图书
     */
    public void delBook(){
        System.out.println("请输入图书编号:");
        try {
            int x=0;
            bno=sc.nextInt();
            for (int i : bookMap.keySet()) {
                if(bno==i){
                    x=1;
                }
            }
            if(x==1){
                bookMap.remove(bno);
                System.out.println("删除成功!");
            }else{
                System.out.println("没有编号为"+bno+"的书");
            }
        } catch (Exception e) {
            System.out.println("输入有误请重新输入!");
        }
        bno=0;//预防性措施
    }

    /*
     * 3.修改图书信息
     */
    public void modBook(){
        try {
            int x=0;
            System.out.println("请输入需要修改的图书编号:");
            bno = sc.nextInt();
            for (int i : bookMap.keySet()) {
                if(bno==i){
                    x=1;
                }
            }
            if(x==1){
                System.out.println("请输入修改后的书名:");
                bname = sc.next();
                System.out.println("请输入修改后的作者:");
                bauther = sc.next();
                System.out.println("请输入修改后的价格:");
                bprice = sc.nextDouble();
                bookMap.put(bno, new Library(bname,bauther,bprice));
                System.out.println("修改成功!修改后图书的信息为:");
                System.out.println("编号:"+bno + " " + bookMap.get(bno));
            }else{
                System.out.println("没有编号为"+bno+"的书");
            }
        } catch (Exception e) {
            System.out.println("输入有误请重新输入!");
        }
        bno=0;//预防性措施
    }

    /*
     * 4.查询图书
     */
    public void selBook(){
        int x=0;
        try {
            System.out.println("请输入需要查询的图书编号:");
            bno=sc.nextInt();
            for (int i : bookMap.keySet()) {
                if(i==bno){
                    System.out.println(bookMap.get(i));
                    x=1;
                    break;
                }
            }
            if(x==0){
                System.out.println("没有编号为"+bno+"的书");
            }
        } catch (Exception e) {
            System.out.println("输入有误请重新输入!");
        }
        bno=0;//预防性措施
    }

    /*
     * 5.显示所有可借阅的书
     */
    public void showAllBook(){
        for (int i : bookMap.keySet()) {
            System.out.println(i +" "+ bookMap.get(i));
        }
    }

    /*
     * 6.借书
     */
    public void borBook(){
        try {
            int x=0;
            System.out.println("请输入需要借阅图书的编号:");
            bno=sc.nextInt();
            for (int i : bookMap.keySet()) {
                if(bno==i){
                    x=1;
                }
            }
            if(x==1){
                borBook.put(bno, bookMap.get(bno));//中介
                userBook.put(name, bookMap);//用户和借出去的书相关联
                bookMap.remove(bno);//把这本书从图书馆移除
                borBook.clear();//清除缓存,便于多用户借书
            }else{
                System.out.println("不存在"+bno+"的书,请重新输入");
            }
        } catch (Exception e) {
            System.out.println("输入有误请重新输入!");
        }
        bno=0;//预防性措施
    }

    /*
     * 7.查看已经借出去的书
     */
    public void showBorBook(){
        for (String str : userBook.keySet()) {
            System.out.println(str);
            System.out.println("        " + userBook.get(str));
        }
    }

    /*
     * 8.还书
     */
    public void huanBook(){
        try {
            System.out.println("请输入需要归还图书的编号:");
            bno=sc.nextInt();
            huanBook.put(bno, (Library) userBook.get(name).get(bno));//中介
            bookMap.put(bno, huanBook.get(bno));//向图书馆存书
            userBook.remove(name, userBook.get(name).get(bno));//将对应关系中的书删除
            huanBook.clear();//清除缓存
        } catch (Exception e) {
            System.out.println("输入有误请重新输入!");
        }
        bno=0;//预防性措施
    }

    /*
     * 显示操作菜单
     */
    public void show(){
        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("8.归还图书");
        System.out.println("0.返回上一级");
    }

    {//事先存几本书和一名用户
        bookMap.put(001, new Library("书1","作者1",12));
        bookMap.put(002, new Library("书2","作者2",15));
        bookMap.put(003, new Library("书3","作者3",17));
        bookMap.put(004, new Library("书4","作者4",19));
        userMap.put("aaa", "123");
    }

}

原文地址:https://www.cnblogs.com/bkytep/p/9587984.html

时间: 2024-07-31 07:17:04

简单的图书管理系统的相关文章

jsp数据库增删改查——简单的图书管理系统网页版

登录(指定登录号密码的简单判断): 1 <%@ page language="java" import="java.sql.*" pageEncoding="gb2312"%> 2 <html> 3 <head> 4 <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">

制作简单的图书管理系统

1 package libray; 2 3 import java.sql.Connection; 4 import java.sql.DriverManager; 5 import java.sql.ResultSet; 6 import java.sql.SQLException; 7 import java.sql.Statement; 8 9 public class DbConn { 10 11 private static final String DRIVER="com.mysql

图书管理系统

该图书馆里系统能实现基本的对图书信息的操作和借阅.归还功能. 一.主要内容: 本课程设计结合本学期所学C语言知识,数组.函数.结构体.指针.链表.文件读取操作等等,准备设计开发一个简单的图书管理系统.设计开发这个系统需要用到链表.文件读取操作.结构体.函数.指针.等C语言知识.本课程设计将会实现对图书信息的账号登录.注册账号.密码修改.密码查找.查找.输出.排序.备份.恢复.图书借阅和归还功能.本着简单.易用的设计原则,本课程设计在尽量优化界面在保证输入输出美观的同时又不失友好的交互界面. 本次

图书管理系统的设计

1.导言 1.1.目的 1.2.范围 2.系统定义 2.1.项目来源背景 2.2.项目要达到的目标 2.3.系统整体结构 3.应用环境 3.1.系统运行网络环境 3.2.系统运行硬件环境 3.3.系统运行软件环境 4.功能规格 4.1.XXX模块功能说明 5.性能需求 5.1.界面需求 6.产品提交 7.实现约束       1.目 的 1.1.目 的    为了方便借阅图书,制定了图书管理系统,可以从网上直接进行预定借阅,y在网上阅读电子版的书籍. 1.2.范 围 适用于本校学生,和老师,以及

简单工厂的使用(图书管理系统)

简单工厂模式是由一个工厂对象决定创建出哪一种产品类的实例.简单工厂模式是工厂模式家族中最简单实用的模式,可以理解为是不同工厂模式的一个特殊实现. 场景:有一个图书管理系统,需要进行书本管理,所有对书本的操作都进行归类,大致可以分成入账.预定.借用.续借.归还.领料.清退.转移.核销等操作,每一次的操作认为是一个订单,订单有创建,审批.取消.拒绝等状态.每一个订单包含一个或者以上的书本信息,简单工厂,先根据订单类型来创建完订单,需要先构建好入参,如下所示 strUserDoc 主要是当前操作人信息

图书管理系统-python简单实现

import sys books=[['红楼梦','曹雪芹',50],['三国义','罗贯中',55],['西游记','吴承恩',60],['水浒传','施耐庵',65]] users=[['Tom','123'],['Mike','321']] flag=False def login(): print('请输入用户名:',end='') username=input() print('请输入用户密码:',end='') password=input() if [username,passwo

脚踏实地 志存高远-快意图书管理系统开发侧记之二

以网络技术为主的信息技术的飞速发展,使得图书管理信息化向着更加智能.快捷的方向不断变革.原有的一批图书管理软件的处理模式.软件架构.操作流程已不能满足网络时代所要求的双向互动.信息共享.高度智能的操作诉求.快意团队于2011年10月成立,并在调研数家企事业单位.大中专学校.中小学校图书管理业务流程及需求的基础上,研制了快意图书管理综合解决方案,开发了快意图书综合管理软件,并针对不同行业特点,进行了差异化开发,推出了快意图书管理企事业版本,中小学版本.大中专院校等多个版本,为不同行业图书管理提供了

【图书管理系统】——要学会抓住机会

图书管理系统经历了一个月,算是完成了,这算是自己参与的第一个B/S系统,感觉什么东西都是新的,在这个系统里真的可以学到很多东西,最想说的就是感谢老师给了这么一个锻炼的机会,最重要的还是自己抓住了这个机会. 最先开始的时候,听说了有这个系统,师傅也一直在说让我做一个项目,然后就毫不犹豫的参加了.后来听说没有师姐带着,就是自己做,突然就觉得这个项目并没有很正式,一下子就泄了心气了,不过好在当初没有退出,还是坚持做了下来,到最后做完为止,才发觉这个系统对自己现阶段是多么的重要,才觉得自己的眼界一下子就

Node.js 切近实战(二) 之图书管理系统(图书信息录入)

上一节我们讲了图书管理系统的登录,相信大家对jade模板和angular js也有了了解,今天的话我们来看一下图书信息录入.在这里我们准备使用Nosql数据库,本篇博客中使用的是MongoDB.OK.Mongo DB的安装我就不多说了,那么Node.Js平台使用mongoDB我们使用什么扩展包好呢,我觉得还是mongoose比较合适,封装了好多针对mongodb的方法,简单易用. 首先我们来看一下图书model的设计bookInfo.js. var mongoose = require('mon