图书管理系统(面向对象+数组)

2015-第1周项目4-图书馆的书 【项目4 - 图书馆的书】   编写一个Book类,包含name(书名)、writer(著者)、public_name(出版社)、price(价格)、number(数量)、NO(书号)等数据成员。定义成员函数setBook,用来为书籍的数据成员赋值,定义成员函数borrow和restore,分别办理借出和还回(借、还书时,暂时只完成数量的增1减1,这里的书仍是一种书的概念,随着课程进展,我们继续 阅读详情

package KindMethod2;

//           属性块

public class Library {

    private String name;        //图书名称
    private int state;          //借阅状态,0:可借阅,1:已借出
    private int date;           //借出日期
    private int count;          //借出次数

    public Library() {

    }

    public Library(String name, int state, int date, int count) {
        this.name = name;
        this.state = state;
        this.date = date;
        this.count = count;
    }

    public String getName() {
        return name;
    }

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

    public int getState() {
        return state;
    }

    public void setState(int state) {
        this.state = state;
    }

    public int getDate() {
        return date;
    }

    public void setDate(int date) {
        this.date = date;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }
}
 

package KindMethod2;

public class BookRealize {
    private Library[] librarie;         //存储图书数组
    private int total;      //数组下标

    public Library[] getLibrarie() {
        return librarie;
    }

    public void setLibrarie(Library[] librarie) {
        this.librarie = librarie;
    }

    public int getTotal() {
        return total;
    }

    public void setTotal(int total) {
        this.total = total;
    }
    public BookRealize(int tota){
        librarie=new Library[tota];
    }
//    新增图书
    public boolean addBook(Library library){
        if(total<0 || total>librarie.length){
            return false;
        }else{
            librarie[total++]=library;
            return true;
        }
    }
//    查看图书
    public Library[] showBook(){
        Library[] newlibraries= new Library[total];
        for(int i=0 ;i<total;i++){
            newlibraries[i]=librarie[i];
        }
        return newlibraries;
        }


//    删除图书
    public boolean deleteBook(int num){
        if(num>total || num<0){
            return false;
        }else{
            Library[] newLibraries=new Library[total];
            for(int i=num;i<total-i;i++){
                librarie[i]=newLibraries[i];
            }
            librarie[--total]=null;
            return true;
        }
    }
//    借出图书
    public boolean borrow(int num){
        if(num>total || num<0 || librarie[num].getState()==1){
            return false;
        }else{
            librarie[num].setState(1);
            librarie[num].setCount(librarie[num].getCount()+1);
            return true;
        }
//        Library[] newlibraries1 = new Library[total];
//        int num=0;
//            for(int j=0;j<total;j++){
//                if (newlibraries1[j].getState()==0){
//                    newlibraries1[num++]=newlibraries1[j];
//                }
//            }
//            return newlibraries1;
    }

//    归还图书
    public boolean retur(int num){
        if(num>total || num<0 || librarie[num].getState()==0){
            return false;
        }else{
            librarie[num].setState(0);
            return true;
        }
    }
}
package KindMethod2;

import java.util.Scanner;

public class Test {
BookRealize bookRealize = new BookRealize(6);
    public Test(){
    Library library =new Library("三国演义",0,21,23);
    bookRealize.addBook(library);
    }
    Scanner sc =new Scanner(System.in);
    public void setting(){
        boolean bool=true;
        do{
            System.out.println("----------------------迷你图书管理系统---------------------");
            System.out.println("\t\t1、新增图书");
            System.out.println("\t\t2、查看图书");
            System.out.println("\t\t3、删除图书");
            System.out.println("\t\t4、借出图书");
            System.out.println("\t\t5、归还图书");
            System.out.println("\t\t6、退出图书系统");
            System.out.print("请选择:");
            int choose = sc.nextInt();
            switch (choose){
                case 1:
                    addBook();
                    break;
                case 2:
                    showBook();
                    break;
                case 3:
                    deleteBook();
                    break;
                case 4:
                    borrowBook();
                    break;
                case 5:
                    retueBook();
                    break;
                case 6:
                    bool=false;
                    System.out.println("已退出");
            }
        }while(bool);
    }
//    增加
    public void addBook(){
        System.out.println("--------------------新增图书----------------------");
        System.out.print("图书名称");
        String name = sc.next();
        System.out.print("借阅状态(0:可借阅,1:已借出)");
        int state = sc.nextInt();
        System.out.print("借出日期(当月1-31号)");
        int date = sc.nextInt();
        System.out.print("借出次数");
        int count = sc.nextInt();
        Library library=new Library(name,state,date,count);
        boolean boole=bookRealize.addBook(library);
        if(boole==true){
            System.out.println("\t添加成功");
        }else{
            System.out.println("\t添加失败");
        }
    }
//    查看图书
    public void showBook(){
        Library[] books = bookRealize.showBook();
        if(books==null){
            System.out.println("你没有任何图书");
            return;
        }
        System.out.println("编号"+"\t\t名字"+"\t\t借阅状态"+"\t\t借出日期"+"\t借出次数");
        for(int i=0;i<books.length;i++){
            System.out.println((i+1)+"\t\t"+books[i].getName()+"\t\t"+books[i].getState()+"\t\t"+
                    books[i].getDate()+"\t\t"+books[i].getCount());
        }
        return;
    }
//    删除图书
    public void deleteBook(){
        Library[] books = bookRealize.showBook();
        System.out.println("编号"+"\t\t名字"+"\t\t借阅状态"+"\t\t借出日期"+"\t\t借出次数");
        for(int i=0;i<books.length;i++){
            System.out.println((i+1)+"\t\t"+books[i].getName()+"\t\t"+books[i].getState()+"\t\t"+
                    books[i].getDate()+"\t\t"+books[i].getCount());
        }
        System.out.print("请输入要删除图书的编号:");
        int num= sc.nextInt();
        boolean boole =bookRealize.deleteBook(num-1);
        if (boole==true){
            System.out.println("删除图书成功");
        }else{
            System.out.println("删除图书失败");
        }
        return;
    }
    //        借出图书
    public void borrowBook(){
        Library[] books = bookRealize.showBook();
        System.out.println("编号"+"\t\t名字"+"\t\t借阅状态"+"\t\t借出日期"+"\t\t借出次数");
        for(int i=0;i<books.length;i++){
            System.out.println((i+1)+"\t\t"+books[i].getName()+"\t\t"+books[i].getState()+"\t\t"+
                    books[i].getDate()+"\t\t"+books[i].getCount());
        }
        System.out.print("请输入要借书的书号:");
        int num = sc.nextInt();
        boolean boole=bookRealize.borrow(num-1);
        if(boole==true){
            System.out.println("借书成功");
        }else{
            System.out.println("借书失败,输入有误或已经借出去了");
        }
        return;
    }
//    归还图书
    public void retueBook(){
        Library[] books = bookRealize.showBook();
        System.out.println("编号"+"\t\t名字"+"\t\t借阅状态"+"\t\t借出日期"+"\t\t借出次数");
        for(int i=0;i<books.length;i++){
            System.out.println((i+1)+"\t\t"+books[i].getName()+"\t\t"+books[i].getState()+"\t\t"+
                    books[i].getDate()+"\t\t"+books[i].getCount());
        }
        System.out.print("请输入要还书的书号:");
        int num = sc.nextInt();
        boolean boole=bookRealize.borrow(num-1);
        if(boole==true){
            System.out.println("还书成功");
        }else{
            System.out.println("还书失败,输入的书号有误");
        }
        return;
}
    public static void main(String[] args) {
        Test test = new Test();
        test.setting();
    }
}

用数组存放书本信息 用数组存放书本信息,其中包含 #include "stdio.h" #define N 5 struct book { char bookname[20]; char author[20]; char time[20]; int borrowed; }; int main() { int i;book str[N]; for(i=0;i<N;i++) { print 阅读详情

相关推荐

图书管理系统(初级代码)

初级代码主要使用数组,不涉及面向对象思想 import javax.print.DocFlavor; import java.util.Scanner; public class BookMange { public static void main(String[] args) { //Scanner对象 Scanner sc = new Scanner(System.in); //准备存储书籍信息的数组 String[] bookname = new String[6];//书名 int[] state

phymatht的博客 674

面向对象进阶训练

文章目录一、编写一个类Book,代表图书二、通过类描述衣服,每个衣服对象创建时需要自动生成一个序号值 一、编写一个类Book,代表图书 public class day06_1 { public static void main(String[] args) { BookTest q1 = new BookTest(); q1.det(); } } class Book{ private String title;//私有化标题、 //获取标题 public String getT.

q18770158319的博客 218

14、Java——迷你图书管理器(对象+数组)

利用对象和数组、方法等知识,实现的迷你图书管理系统

不迁怒,不贰过。小知识,大智慧。 1326

对象数组实现图书管理系统

实现: 增删改查 ID和ISBN只可读不可改 输出规范。如:用户输入无效空格,利用正则,使结果不输出无效空格。 利用关键字查找书籍信息 价格需要由字符串转换为浮点型,如果发生异常,说明用户的输入有错误,让用户重新输入 数据输入时如果不符合要求必须重新输入。如:书名号规范,价格必须为数字 package bean.gcu; public class Book { private String Name; private String Aut.

weixin_65015547的博客 408

《AI应用架构师必学:企业AI能力地图构建的高级技巧》

企业AI能力地图,简单来说,是一种可视化工具,它展示了企业在AI领域所具备的各种能力及其相互关系。就如同城市地图展示城市的街道、建筑和设施一样,AI能力地图呈现了企业在数据处理、模型开发、算法应用等多个方面的能力布局。

AGI×大数据,开启智能时代的认知跃迁;解码AGI,赋能数据驱动的智能革命。 819

手把手教你配置SAP PP供应区域(Supply Area):实现线边仓精准发料与物料流优化

本文详细解析了SAP PP供应区域(Supply Area)的配置方法,帮助企业实现线边仓精准发料与物料流优化。通过三级优先级逻辑和四步配置法,系统可自动识别最优组件来源位置,显著提升生产订单处理效率和库存准确率。文章还提供了典型问题解决方案和性能优化技巧,适用于离散制造和重复制造场景。

weixin_29275257的博客 434

C++图书管理系统

计算机学院 2020 级小学期编程实践课程 上机实验题目 ####(一)基于学生结构体数组的图书管理系统(20 分) 定义学生结构体类型的数组,静态初始化学生信息(不包括借书信息)。 图书使用二维字符数组或字符指针数组单独定义。 1、管理员为超级用户,管理员登录后可利用全局函数完成学生数据的管理 和查询,例如查询全部学生借书信息等; 2、学生登录后,通过仅可对自己完成借书和查询功能,无权访问他人信息。 注意:必须熟悉结构体和结构体数组的访问;必须实现不同角色的权限控制; 严禁编写只有一个主函数的程序,必须根

程序设计 1781

逆向分析TikTok的Cronet网络库:定位libsscronet.so并Hook关键SSL函数

本文深入探讨了逆向分析TikTok的Cronet网络库的技术细节,重点介绍了如何定位libsscronet.so并Hook关键SSL函数。通过Java到Native的调用链路追踪、So库定位策略和SSL验证函数的动态Hook技巧,帮助开发者突破定制化网络库的协议加密防护,实现流量解密和协议分析。

weixin_27875131的博客 972

图书管理系统(用数组完成)

练习:用数组写一个图书管理系统(增删改查) 方法一: Book类 package Bookmanager; import java.text.SimpleDateFormat; import java.util.Date; /** * * * * */ public class Book { private String id; private String name; private String author; private Date date; public Bo

sinat_41153871的博客 1695

【寄存器模型】二、前门访问与后门访问

1.后门访问可以更好的完成前门访问能够完成的事情:后门访问不消耗仿真时间,且消耗的运行时间也远小于前门访问的运行时间。 2.后门访问可以完成前门访问不能完成的事:对于某些特定的场景,如网络通信系统中的一些只读计数器,当要验证计数器进位归零的场景时,前门访问无法完成写寄存器操作,只能通过消耗仿真时间来使计数器到达特定的计数值。而后门访问可以直接对只读寄存器赋一个初值......

carrotbanana的博客 9658

LLC同步整流实战:从驱动时序到调试仿真,效率提升与避坑指南

同步整流技术是提升开关电源效率的关键手段,尤其在LLC谐振变换器中,通过低导通电阻MOSFET替代二极管可显著降低副边整流损耗。然而,驱动时序、电流过零检测及轻载模式切换是工程实践中的核心难点。从Vds检测原理到死区调节,再到仿真与实测验证,工程师需掌握完整的调试方法论。该技术广泛应用于通信电源、服务器电源及车载DC/DC,合理设计LLC同步整流方案能实现满载效率提升约1.8个百分点,同时优化热分布。本文以600W半桥LLC样机为线索,深入分析工作模态、驱动芯片选型、波形判断与仿真模型搭建,为电源设计提供可

weixin_29165465的博客 300

C# 图书管理系统:从面向过程到面向对象,三种实现方式详解

本文介绍一个基于C# 面向对象编程的图书管理系统控制台应用程序。该系统实现了图书的增删改查、借阅归还等核心功能,适合作为 C# 入门或课程设计参考。技术点说明面向对象使用Book类封装图书数据,实现数据与行为的结合数组存储使用Book[]数组作为数据容器,简单直观空值判断通过null判断数组位置是否占用索引查找FindBook()方法复用,避免代码重复状态管理使用字符串"可借""已借出"管理图书状态。

2302_80380469的博客 518

Webug4.0 打靶笔记

一、Webug 的安装 (1)基本信息 WeBug 名称定义为”我们的漏洞”靶场环境 ,基础环境是基于 PHP/mysql 制作搭建而成,中级环境与高级环境分别都是由互联网漏洞事件而收集的漏洞存在的操作环境。部分漏洞是基于Windows操作系统的漏洞所以将WeBug的web环境都装在了一个纯净版的Windows 2003的虚拟机中。在 webug3.0 发布后的四百多天 226安全团队终于在大年初二发布了 webug 的 4.0 版本。 (2)虚拟机的安装 最新超详细VMware虚拟机下载与安装_隐

m0_60716947的博客 6128

面向对象基础项目----图书管理系统(数组)

登录: 判断用户输入的帐号密码是否正确。 1 用户平台:1.1图书信息查询;1.2图书购买;1.3退出 2 管理平台:2.1图书入库;2.2图书出库;2.3增加图书 3 管理员:3.1会员信息查询;3.2会员信息增加;3.3会员信息修改;3.4会员信息删除;3.5退出 User.class 1 package com.ji...

weixin_30776273的博客 367

基于Spring Boot + Vue 3的前后端分离教材订购系统设计与实现

随着高校信息化建设的不断深入,传统手工管理教材的方式已无法满足高效、准确、透明的需求。文章将详细阐述系统的需求分析、架构设计、数据库设计、核心功能模块的实现(包括用户认证、教材管理、购物车、订单管理等),并提供关键代码片段。一个集中化、在线化的教材订购系统可以有效地解决这些问题,实现教材信息的统一管理、学生在线选书、订单自动汇总、财务清晰对账,极大地提升了管理效率和服务质量。系统采用了先进的前后端分离架构,实现了用户管理、教材管理、购物车、订单管理等核心功能,具有良好的可扩展性和可维护性。

2201_76125393的博客 330

第一节:初识n8n与下一代工作流自动化

本章介绍了n8n的Fair-code理念与节点式架构,对比了其与Zapier/Make的核心差异,并引导读者在n8n Cloud上完成首次界面导览,建立了工作流自动化的宏观认知。

easeyoo的专栏 106

图书管理系统(java) 代码展示和思路介绍 (9000字小长文)

作为一个图书管理系统,我们可以将它分成这个几个对象。

cjejwe的博客 1356

廖雪峰Python教程[完整版]

廖雪峰的python教程整理的,已经排好版了,而且还是完整的,适合小白

APL语言的面向对象编程

APL是一种解释性语言,由肯尼斯·伊万斯于1960年代初期开发。强大的数组处理能力:APL内置对多维数组的支持,可以很方便地进行矩阵运算和数组操作。简洁的语法:APL使用大量符号,使得代码具有较高的密度,但这也使得语言学习曲线较陡峭。函数式编程风格:APL支持高阶函数、匿名函数等特性,鼓励使用函数式编程的方法。尽管APL并不完全符合传统的面向对象编程的定义,但其设计理念可以在一定程度上启用OOP的特性。我们可以定义一个书籍对象,包括书名、作者和发布年份。apl。

2501_90443868的博客 337

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

图书管理系统(反射,注解)与基础知识的梳理

这种方法可扩展性低,如果确定了此类的比较固定不变,建议写在类中Comparator:传入比较器,比较器实现。

2401_84009215的博客 958

visio安装包

Microsoft Office Visio 是一款专业的制图软件。利用经过更新的形状、协作工具和数据链接图表,创建专业级图表以简化复杂的信息。

Java语法实现的图书管理系统项目

用Java语法呈现的图书管理系统项目!!内涵讲解,为何报错以及代码呈现!!

2401_87638876的博客 1379

Java图书管理系统开发教程

这里的将menu定义为抽象方法是因为不同的用户有不同的菜单,这里后面会实现动态绑定。work方法有两个部分,一个是choice及操作者所选择的身份信息,一个是操作书架,不同的身份信息对应的功能不同,所以我们通过choice再去调用work,是其保持一致到此我们的图书管理系统就已经全部写完了,稍微复杂一点的地方在数组的调用,可着重看一下这块部分。这个代码就是看起来唬人,其实写起来也还好,对不懂的地方多研究一下,相信大家都可以完成,有不懂的地方可以问我哦。

2401_83281222的博客 901

java基础练习 (内含答案 )(11.21持续更新中)

java基础练习数据类型控制语句循环语句数组(一) 数据类型 1.新建一个JAVA工程HelloJava,创建一个test包,新建一个FristDemo类,写一个main方法,定义两个int 类型的变量 a 和 b ,分别打印输出a与b的‘加/减/乘/除/取余’的结果。 package test; public class FristDemo { public static void main(...

十七观察室 4478

基于C#的面向对象思想的图书管理系统

摘要:本文介绍了一个基于C#控制台实现的简易图书管理系统。系统支持管理员和读者两种身份登录,提供图书增删改查、借阅归还等核心功能。采用内存数组存储数据(容量为6),包含Book类定义和Program类实现。管理员可进行图书管理操作,读者可借阅归还图书。系统包含登录验证、操作菜单循环等功能,但数据仅存于内存,程序退出后丢失。代码展示了核心类结构、初始化方法及各类操作逻辑的实现细节。

2301_77869434的博客 506

【JAVA】经典图书管理系统的实现

本文介绍了一个基于Java的小型图书管理系统练手项目。系统采用面向对象设计,包含图书(Book)、书单(BookList)等核心类,通过接口(IOPeration)实现不同操作功能。系统分为管理员和普通用户两种角色:管理员可进行图书增删查改等操作,普通用户可借阅归还图书。程序通过菜单交互实现功能选择,展示了Java基础语法、封装继承、多态等特性,适合新手程序员学习实践。文中提供了完整的类结构设计和源代码实现。

Mr_star_galaxy的博客 106

Java初级图书管理系统2

(3.)满足上述条件,开始添加书籍,调用Book的构造方法,用其接收我们输入的新书的各个属性,然后通过 setbook(位置,新书)来添加图书,通过 setuseSize (新的实际书量)来更新实际书的数量。(3.)若书架上有书且书架上确有此书,则检查该书状态,若已被借出,则无法借出,若未被借出,则改变此书状态为true,return;思路:既然是还书,那我们就不考虑书架满了的情况了,直接通过for循环查找此书是否被借出过,如果被借出过,归还的时候,要记得更新一下此书的状态哦。

Yukinaaaa的博客 517

面向对象编程

没有头绪好难

贫民窟代言人的博客 114
上一篇: 吃货联盟系统简单实现(对象+数组)
下一篇: 汽车租贷管理系统简单实现
「已注销」
博客等级 码龄4年 169粉丝 58原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

「已注销」

老板大气,I am happy

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值