java实现简单的图书管理系统简单框架(便于理解)

Java 图书管理系统 虽然我们完成了图书管理系统部分的代码,但是这个系统的逻辑还是不完善的。想完善的可以自己去完善。这个小项目虽然小,但是在实现的过程中确实是挺锻炼初学者的,比如按照不同的菜单去调用不同的操作的方法的实现。回顾整个过程,并不是一下子就很顺利的写完的,所以在写之前,要打一个大概的框架,在写的过程中完善代码。httpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttpshttps。... 阅读详情

框架意义:

理解menu菜单的选择与返回上一级的实现

不确定循环次数用while对应不确定输入错误的次数

如何退出一层循环,break

如何保证只有一个出口,合理利用while1与break,switch,if。 

package com.w3day3.test1.model;

/**
 * @Title
 * @Author Eastlin
 * @Description:
 */
public abstract class Person {
    public String pname;//用户名等等
    private   String sex;
    private int age;
    public static Book[] books = new Book[]{
            new Book("西游记", "吴承恩", 10, "名著", true),
            new Book("红楼梦", "曹雪芹", 20, "名著", true),
            new Book("三国演义", "罗贯中", 15, "名著", true),
            new Book("小茗同学", "小明", 5, "杂志", true),
            new Book("C与指针", "马老师", 35, "计算机", true),
            new Book("Java编程思想", "王老师", 55, "计算机", true),
            new Book("新世界", "陈宇", 15, "杂志", true),
            new Book("阿衰与大头妹", "阿衰", 5, "漫画", true),
            new Book("一个人就一个人", "刘同", 35, "小说", true),
            new Book("活着", "陈彤", 36, "小说", true),
            new Book(),
            new Book(),
            new Book(),
    };

    public Person() {
    }

    public Person(String pname, String sex, int age) {
        this.pname = pname;
        this.sex = sex;
        this.age = age;
    }

    @Override
    public String toString() {
        return "当前普通用户:姓名:"+ this.pname+ " "+"性别:" +this.sex+ " "+"年龄:"+this.age;
    }

    public String getSex() {
        return sex;
    }

    public void setSex(String sex) {
        this.sex = sex;
    }

    public int getAge() {
        return age;
    }

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





package com.w3day3.test1.model;

/**
 * @Title
 * @Author Eastlin
 * @Description:
 */
public class Book {
    private String bookName;
    private String authorName;
    private double price;
    private  String type;
    private boolean status;//标志位,用于逻辑删除(可以减少字段的增删)

    public Book(String bookName, String authorName, double price, String type, boolean status) {
        this.bookName = bookName;
        this.authorName = authorName;
        this.price = price;
        this.type = type;
        this.status = status;
    }
    public Book() {  //默认10本书
        this(10);
    }
    public Book(int i) {
        Person.books = new Book[i];//Person类变量
    }
    @Override
    public String toString() {//重写输出对象
        return "【" + bookName+ "】—— 【" + authorName + "】——【" + price + "】——【" +type+ "】——" +status;
    }
    public String getBookName() {
        return bookName;
    }

    public void setBookName(String bookName) {
        this.bookName = bookName;
    }

    public String getAuthorName() {
        return authorName;
    }

    public void setAuthorName(String authorName) {
        this.authorName = authorName;
    }

    public double getPrice() {
        return price;
    }

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

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    public boolean isStatus() {
        return status;
    }

    public void setStatus(boolean status) {
        this.status = status;
    }

}



package com.w3day3.test1.model;

import com.w3day3.test1.Root;
import com.w3day3.test1.User;

import java.util.Scanner;

/**
 * @Title
 * @Author Eastlin
 * @Description:
 */
public class Library {
    //在这我们也可以加普通用户集合,管理员集合进行增删改查 TODO
    static User admin=new User("狂徒张三","男",35);//设置一个管理员
    Scanner input = new Scanner(System.in);
    //登录函数:显示主页
    public void login() {
        int count = 0;
        Person p = null;
        while (count < 2) {//死循环,搭配break
            System.out.println("===============Eastlin图书管理系统===============");
            System.out.println("欢迎讨论指正! qq113397025" + "\n");
            System.out.println("请登录:1.普通用户  2.管理员登录  3.退出系统");

            System.out.print("输入数字进行选择:");
            int n =input.nextInt();
            //通过输入的值进行选择(代码是提供判断选择)
            if (n == 3) {//退出,结束代码运行
                return;
            }
            switch (n) {
                case 1://普通用户
                    System.out.println("请输入姓名:");
                    String name = input.next();
                    System.out.println("请输入性别:");
                    String sex = input.next();
                    System.out.println("请输入年龄:");
                    int age = input.nextInt();
                    p=new User(name,sex,age) ;

                    System.out.println("登录成功");
                    System.out.println(p);//显示当前用户,重写了toString
                    //普通用户循环操作
                    while (true) {//死循环,搭配break
                        System.out.println("请输入你的操作: 1.查询书籍 2.借阅书籍 3.归还书籍 4.显示书籍列表 5.退出");
                        int i = input.nextInt();
                        if (i == 5) {
                            System.out.println("您已成功退出!");
                            break;
                        }else {
                            p.operate(i);  //调用普通用户的操作方法(非选择数字5或其他,找不到方法停留在此死循环)
                            //不在范围,可if判断,输出提示  TODO
                        }
                    }
                    break;
                case 2:
                    System.out.println("请输入管理员姓名:");
                    String Rname = input.next();
                    System.out.println("请输入性别:");
                    String Rsex = input.next();
                    System.out.println("请输入年龄:");
                    int Rage = input.nextInt();

                    p = new Root(Rname,Rsex,Rage);//构造管理员对象
//进行管理员登录判断 TODO
                    System.out.println("登录成功!");
                    System.out.println(p);
                    while (true) {
                        System.out.println("请输入你的操作: 0.整理书籍 1.查阅书籍 2.增加书籍 3.删除书籍 4.显示书籍列表 5.退出");
                        int j = input.nextInt();
                        if (j == 5) {
                            System.out.println("您已成功退出!");
                            break;
                        }else{
                            p.operate(j);//调用管理员的操作方法
                            //不在范围,可if判断,输出提示  TODO
                        }
                    } break;

            }

        }
    }
}


package com.w3day3.test1;

import com.w3day3.test1.model.Person;
//Root仅仅比User多一个整理的方法,看着可以尝试优化,
// 但是会显得程序复杂,一个是+操作,一个是-操作。是相似,不是相同

/**
 * @Title
 * @Author Eastlin
 * @Description:
 *管理员操作选择
 * 用户操作+整理(有序才便于查找)
 */
public class Root extends Person implements Operate {
    public Root() {
    }

    public Root(String pname, String sex, int age) {
        super(pname, sex, age);
    }

    @Override
    public void operate(int i) {//操作选择(判断实现)TODO
        System.out.println(0+"你选择了"+i);
        switch (i){
            case 0:
                sort();//整理书籍
                break;
            case 1:
                findBook();//找书
                break;
            case 2:
                deleteBook();//删书
                break;
            case 3:
                addBook();//加书
                break;
            case 4:
                showBook();//书籍列表
                break;
        }
    }
    public void sort(){//整理,管理员特有
        System.out.println(00);
    }

    @Override
    public void findBook() {
        System.out.println(01);
    }

    @Override
    public void deleteBook() {
        System.out.println(02);
    }

    @Override
    public void addBook() {
        System.out.println(03);
    }

    @Override
    public void showBook() {
        System.out.println(04);
    }
}


package com.w3day3.test1;

import com.w3day3.test1.model.Person;


/**
 * @Title
 * @Author Eastlin
 * @Description:
 */
public class User extends Person implements Operate {
    public User() {
    }

    public User(String pname, String sex, int age) {
        super(pname, sex, age);
    }

    @Override
    public void operate(int i) {//操作选择(判断实现)TODO
        System.out.println(0+"你选择了"+i);
        switch (i){
            case 1:
                findBook();//找书
                break;
            case 2:
                deleteBook();//借书
                break;
            case 3:
                addBook();//还书
                break;
            case 4:
                showBook();//书籍列表
                break;
        }
    }

    @Override
    public void findBook() {
        System.out.println(01);
    }

    @Override
    public void deleteBook() {
        System.out.println(02);
    }

    @Override
    public void addBook() {
        System.out.println(03);
    }

    @Override
    public void showBook() {
        System.out.println(04);
    }
}

package com.w3day3.test1;

/**
 * @Title
 * @Author Eastlin
 * @Description:
 */
public interface Operate {
    public void findBook();//1.查询、查阅
    public void deleteBook();//2.删除、借阅
    public void addBook();//3.增加、还书
    public void showBook();//4.显示书籍列表
}

package com.w3day3.test1;

import com.w3day3.test1.model.Library;

/**
 * @Title
 * @Author Eastlin
 * @Description:
 */
public class Main {
    public static void main(String[] args) {
        Library library=new Library();
        library.login();
    }
}

JAVA图书管理系统详细代码 java图书管理系统 阅读详情

相关推荐

SSM框架应用实例《图书管理系统》

针对上一篇文章详细介绍了SSM框架的搭建,这篇文章使用SSM给大家举一个栗子;希望对大家有所帮助。 一开始想就这样结束教程,但是发现其实很多人都还不会把这个SSM框架用起来,特别是mybatis部分。那我现在就以最常见的“图书管理系统”中【查询图书】和【预约图书】业务来做一个demo吧! 首先新建数据库名为ssm,再创建两张表:图书表book和预约图书表appointment,并且

niqinge 1万+

(Java毕业设计)图书馆书库管理系统(基于SSM框架)附源码

如今生活节奏也是不断加快,越来越多的喜欢看书的人选择通过网上在线租赁图书方式租赁图书,为了更好的方便消费者和图书馆管理人员,结合目前流行的在线经营理念,让每一本图书能够让更多的读者阅读。该系统前端使用JQuery框架对DOM操作,后端代码使用Java语言编写的,高效快速。数据库管理系统使用开源软件MYSQL,节约成本。该网站页面简洁,能够让浏览网站的用户快速查询到自己想要获得的信息,并做出相应的处理。

岛上程序猿 1513

Java_图书管理系统_总结1

Java_图书管理系统_总结1 嗷呜 嗷呜 嗷呜~ 经过使用IO流操作进行编写简单的图书管理系统(控制台输出)的实践项目后,有许许多多的感受以及项目总结想在这边分享一下~ 先容我呐喊一句:终于结束了!!! 笔者在之前主要是通过数据库对数据进行操作。 =_=本次却全部是由IO流操作存取数据。 掌握java基本语法 熟悉使用流程控制 理解面向对象思想 熟练封装,继承,多态 熟悉使用接口,异常 熟悉使用集合 熟悉掌握I/o流相关操作 目的是为了通过此次小小项目来检验自己对Java基础的掌握情况。本篇文章主要

m0_46613077的博客 3032

(java毕业设计源码)基于java图书馆管理系统获取

图书馆管理系统是基于java编程语言和mysql数据库开发的bs架构系统,本系统主要功能是管理员对图书馆信息比如办卡,书架,管理员等设置,可以添加读者,图书等信息,查询借阅,图书档案进行管理。本设计功能较为齐全,适合作为难度不高的java毕业设计和java课程设计。...

qq_28059693的博客 1482

图书管理系统【Java】+原码

图书管理系统的大致实现,对面向对象有更深入的了解,加上原码!!!

qq_51050614的博客 2393

Java——简单图书管理系统

数据类型变量iffor数组方法类和对象封装继承多态抽象类和接口今天就是把上述知识点全部都用起来 图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理系统图书管理

m0_74100417的博客 3932

基于java SSM框架的图书馆管理系统

后端:java语言,SSM框架,MySql数据库。基于java SSM框架的图书馆管理系统。前端:jsp页面,layUI框架。

程序猿大波的博客 679

图书管理系统的设计与实现

本文还有配套的精品资源,点击获取 简介:图书管理系统是一个自动化图书馆管理的应用程序,基于Java语言和SSH框架构建。SSH框架通过MVC设计模式分离业务逻辑、数据访问和用户界面,Struts2负责请求处理和映射,Spring作为核心管理Bean生命周期和服务注入,Hibernate简化数据库操作提供ORM支持。系统涵盖用户管理、图书管理、借阅与归还、预约与续借、库存管理...

weixin_42355400的博客 5512

用Java实现简单的图书管理系统

用Java实现简单的图书管理系统

2302_76435884的博客 3104

【论文精读】Formal Mathematical Reasoning: A New Frontier in AI

注:本文根据师兄汇报内容总结。

m0_60634555的博客 1189

11-4 AEB 算法原理及系统组成

本专题旨在探讨如何利用仿真软件开发自动紧急制动系统AEB,主要通过整理开发流程,实现从需求到验证的全流程掌握,为后续开发提供支持;同时,研究了如何在汽车自动驾驶仿真工具中开发自己的算法,并解决了从ISO、E-CNAP、GB/T以及交通法规等提炼出功能需求的问题,以快速实现原型模型的开发。本专题重点讲解了AEB的工作原理、系统/软件架构和需求、算法模型及实现、CCRs/CCRb/CCRm建模与仿真、VRU-AEB-B/P/M建模与仿真,同时还提供了测试用例,期待将AEB算法成功地产品化。

AIgraphX 8556

第一个Java项目———Java实现简单图书管理系统(GUI)

暑假写了个图书管理系统,编译器用的是eclipse,加入了WindowBuilder插件做界面(做的特丑),数据库用的是MySQL。 实现了图书的查询,借阅,归还,删除,增加。用户的删除,查询。分为管理员和用户。 一,程序整体框架 从项目开始,无从下手,随着学习的深入,慢慢的熟悉了开发流程,先把整体框架搭起来,这个过程可以减少后续的一些麻烦,做数据库前先想好需求,...

liu_xin_xin的博客 5万+

MATLAB功率谱函数psd与pwelch的使用

在网上看到 clear; Fs=1000; n=0:1/Fs:1; y=cos(2*pi*40*n)+3*cos(2*pi*100*n)+randn(size(n)); Nfft=1000; window=hanning(100); noverlap=20; dflag='none'; [Pxx,f]=psd(y,Nfft,Fs,window,noverlap); figure plot(f,10*log10(Pxx)); xlabel('frequency/Hz');ylab

qq_41687938的博客 2万+

Java图书管理系统

学习要学以致用,于是写了一个粗糙的java图书管理系统,实现了图书的增删改查的基本操作,在写的过程中遇到了很多问题,不过也都通过暴力解决了。大晚上的脑仁不够用了, 直接上图吧。主界面:增加图书:查找图书:修改图书:删除图书:源代码:package success; import java.util.Scanner; ​ public class Library { Scanner inpu...

qq_40265501的博客 4万+

Eclipse邂逅Deepseek:本地化部署全攻略

通过前面一系列的步骤,我们成功地在 Eclipse 中完成了 Deepseek 的本地化部署,并且对部署后的功能进行了测试和优化,还解决了可能遇到的一些常见问题。这一过程不仅让我们体验到了将强大的大语言模型与高效的开发环境相结合的魅力,也为我们在软件开发过程中带来了诸多便利。本地化部署 Deepseek 到 Eclipse,使得我们在代码编写过程中能够获得智能的代码补全和精准的问答支持,大大提高了开发效率。同时,本地化部署保障了数据的安全性和隐私性,避免了数据在传输过程中可能面临的风险。

远程部署调试 运行安装 项目调试 二次开发 项目技术新 持续迭代 部分源码免费分享 4522

Transformer模型详解

​本文主要介绍Transformer系列,从基础到理论,对注意力机制进行总结并解释《Attention is all you need》,提出解决sequence to sequence问题的transformer模型,用全attention的结构代替了lstm,抛弃了之前传统的encoder-decoder模型必须结合cnn或者rnn的固有模式,只用attention。文章的主要目的是在减少计算量和提高并行效率的同时不损害最终的实验结果。

专注大数据与人工智能技术分享,欢迎私信加群互相学习! 5311

将Java与数据库连接起来(配置idea),实现一个简单的图书管理系统

1.通过connector连接Java和Mysql数据库。

weixin_73733267的博客 7925

Copilot在游戏开发中的应用:Unity脚本自动生成实践

2021年GitHub Copilot的发布,为代码自动生成带来了革命性突破。作为基于GPT模型训练的AI辅助编程工具,Copilot能根据注释、函数名、代码上下文,实时生成符合语法和逻辑的代码片段,甚至完整脚本。减少重复劳动:自动生成模板代码(如生命周期、结构),让你专注核心逻辑;降低API学习成本:对Unity特有的组件(RigidbodyAnimator)、类(),Copilot能生成符合最佳实践的调用代码;统一代码风格:通过团队共享提示词模板,让生成的代码符合项目规范;快速原型迭代。

AIGC应用创新大全的博客 1619

基于Java实现的简单图书管理系统

本文介绍了一个基于Java的简易图书管理系统实现。系统分为三大模块:图书模块、操作模块和用户模块。图书模块包含Book类和BookList类,实现图书信息存储和管理;操作模块通过IOperation接口统一各类功能(查找、新增、删除、借阅等);用户模块区分管理员和普通用户不同权限。系统采用面向对象设计,运用继承、多态和接口等特性,实现基本图书管理功能。最后还扩展了按价格、书名和作者排序的功能。该系统展示了Java面向对象编程的综合应用,适合作为初学者理解类设计、接口实现和模块化开发的实践案例。

ym1123568700的博客 750

使用 Python 爬取 YouTube 视频评论(弹幕)

✅ 如何使用 Python 调用 YouTube Data API v3。✅ 如何爬取指定视频的所有评论信息。✅ 如何对评论数据进行初步分析与可视化。✅ 如何扩展功能,实现评论回复获取和多视频批量爬取。

2201_76125261的博客 645

【KingSCADA】如何创建新应用

KingSCADA3.8集成开发环境是基于工程的应用管理模式,实现了对多个应用的集中开发和管理的功能,一个工程可以同时管理多个应用,即在KingSCADA3.8工程设计器中可以同时对多个应用进行开发,应用之间可以实现相互复制、粘贴等功能,大大提高了开发效率。(此处感觉和VS类似)使用KingSCADA3.8开发的系统称为应用,一个完整的应用一般包含以下部分或全部内容:IO设备、IO采集点、图形界面、动画链接、趋势曲线、报警和事件、历史记录、数据库、Web Server等部分。

做有价值的事,积累有价值的笔记! 3109

图书管理系统——Java实现

文章基于JavaSE的语法实现了一个简单的图书管理系统,能够帮助大家巩固已学知识,了解Java项目的习惯

xiaokuer_的博客 842

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

Java实现图书管理系统

Java实现图书管理系统

如风暖阳的博客 1817

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

图书管理系统Java实现

图书管理系统java实现版本保姆级教学,思路和步骤详解,代码设计非常巧妙!文末附有总代码!!

A1546553960的博客 2595

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

Java——图书管理系统

本篇文章来带大家做一个简单的练习:图书管理系统。到此图书管理系统就全部介绍完毕了,希望大家看完之后也能对Java类和对象有更深层次的理解,我也知道这个管理系统并不完备,还有许多bug,且只实现了主要的功能,这只是真正图书管理系统的一小部分而已,但是就是这一小部分也花费了我十分长的时间,有机会的话我会在后面继续完善这个系统。

2301_80817503的博客 1956

Java:图书管理系统

集合“类和对象”、“继承和多态”、“抽象类和接口”为一体的小项目,一篇文章让你彻底看懂图书管理系统的代码。

蔡欣致的个人博客 6189
上一篇: java实现简单的图书管理系统(以及代码中用了特殊注释TODO,XXX,FIXME),compare接口
下一篇: set实现排序输出(TreeSet,比较器,转list,转数组)
Eastlin_1
博客等级 码龄6年 3109粉丝 122原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值