1.项目需求

为某图书馆开发一个迷你图书管理系统,实现图书的管理,包括如下功能:

(1)新增图书

(2)查看图书

(3)删除图书

(4)借出图书

(5)归还图书

(6)退出系统

2.覆盖知识

程序基本概念、变量 、数据类型、流程控制、顺序、选择 、循环、跳转语句、数组、变量、类、方法等

3.代码实现

首先我们得创建一个Book类,其中包含书名、借阅状态、借阅日期、借阅次数。

如下图所示,书名、借阅状态、借阅日期、借阅次数设为私有的,并创建有参无参构造器以及get、set方法。

public class Book {private String name;//书名private int state;//借阅状态private int date;//借阅日期private int count;// 借阅次数public Book(String name, int state, int date, int count) {super();this.name = name;this.state = state;this.date = date;this.count = count;}public Book() {super();}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;}

然后就是构建

(1)新增图书

(2)查看图书

(3)删除图书

(4)借出图书

(5)归还图书

(6)退出系统

这几步的方法了

创建一个Fangfa类

如下图所示

import java.util.Scanner;public class Fangfa {static Scanner sc = new Scanner(System.in);public void muLu() {// 输出欢迎菜单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("-------------------------");}public static void add(Book[] book) {System.out.println("---新增图书---");System.out.println("请输入图书名称:");String BookName = sc.next();boolean isAdd = false;// 判断是否成功加入for (int i = 0; i < book.length; i++) {if (book[i] == null) {book[i] = new Book(BookName, 0, 0, 0);System.out.println("新增《" + BookName + "》 成功!");isAdd = true;break;}}if (!isAdd) {System.out.println("抱歉,新增《" + BookName + "》 失败!货架已满!");}System.out.println("*********************************");}public static void chaKan(Book[] book) {System.out.println("---查看图书---");System.out.println("序号\t状态\t名称\t借出日期\t借出次数");for (int i = 0; i < book.length; i++) {if (book[i] != null) {String BookState = (book[i].getState() == 0) ? "可借阅" : "已借出";String BookDate = (book[i].getDate() == 0) ? "" : book[i].getDate() + "日";System.out.println((i + 1) + "\t" + BookState + "\t"+ book[i].getName() + "\t" + BookDate + "\t"+ book[i].getCount() + "次");}}System.out.println("*********************************");}public static void del(Book[] book) {System.out.println("---删除图书---");System.out.println("请输入要删除图书的名称:\n");String delName = sc.next();int delId = 0;boolean flag = false;for (int i = 0; i < book.length; i++) {if (book[i].getState() == 0 && delName.equals(book[i].getName())) {delId = i;flag = true;break;} else if (book[i].getState() == 1&& delName.equals(book[i].getName())) {System.out.println("书已借出,不能删除!");flag = true;break;}}if (delId != 0) {for (int i = delId; i < book.length; i++) {book[i - 1] = book[i];}book[book.length - 1] = null;System.out.println("图书已删除!");}if (!flag) {System.out.println("没有找到匹配信息!");}System.out.println("*********************************");}public static void lend(Book[] book) {System.out.println("---借出图书---");System.out.print("请输入图书名称:\n");String lendName = sc.next();for (int i = 0; i < book.length; i++) {if (lendName.equals(book[i].getName()) && book[i].getState() == 0) {System.out.println("请输入借出日期");int lendDate;book[i].setDate(lendDate = sc.nextInt());while (lendDate < 1 || lendDate > 30) {System.out.println("你输入的日期有误,请重新输入!");book[i].setDate(lendDate = sc.nextInt());}book[i].setCount(book[i].getCount() + 1);book[i].setState(1);System.out.println("《" + lendName + "》借出成功!");break;} else if (lendName.equals(book[i].getName())&& book[i].getState() == 1) {System.out.println("此书已被借出!");break;} else if (book[i] == null) {System.out.println("没有找到匹配信息!");break;}}System.out.println("*********************************");}public static void bookReturn(Book[] book) {System.out.println("---归还图书---");System.out.print("请输入归还图书名称:\n");String returnBook = sc.next();int money = 0;// 租金for (int i = 0; i < book.length; i++) {if (book[i] == null) { // 无匹配System.out.println("没有找到匹配信息!");break;} else if (returnBook.equals(book[i].getName())&& book[i].getState() == 1) {// 找到匹配book[i].setState(0);System.out.print("请输入归还日期:");int redate = sc.nextInt();while (redate < book[i].getDate() || redate > 31) { // 归还日期不能小于借出日期,也不能大于31if (redate < book[i].getDate()) {System.out.println("归还日期不能小于借出日期,请重新输入:");} else {System.out.println("一个月只有31天,请重新输入:");redate = sc.nextInt();}}money = redate - book[i].getDate();System.out.println("\n归还《" + returnBook + "》成功!");System.out.println("借出日期为:" + book[i].getDate() + "日");System.out.println("归还日期为:" + redate + "日");System.out.println("应付租金(元):" + money + "元");book[i].setDate(0);break;} else if (returnBook.equals(book[i].getName())&& book[i].getState() == 0) {// 找到匹配但没有借出System.out.println("该图书没有被借出!无法进行归还操作。");break;}}}

最后做一个运用main方法的类

如下图

import java.util.Scanner;public class Order {public static void main(String[] args) {Scanner sc = new Scanner(System.in);Book[] book = new Book[6];book[0] = new Book("罗马假日", 1, 1, 15);book[1] = new Book("白雪公主", 0, 0, 12);book[2] = new Book("葫芦兄弟", 0, 0, 30);Fangfa ff =new Fangfa(); int num = -1;do {ff.muLu();System.out.println("请选择:");int choose = sc.nextInt();switch (choose) {case 1:// 新增图书Fangfa.add(book);break;case 2:Fangfa.chaKan(book);// 查看图书break;case 3:Fangfa.del(book);// 删除图书break;case 4:Fangfa.lend(book);// 借出图书break;case 5:Fangfa.bookReturn(book);// 归还图书break;case 6:// 退出图书break;default:break;    }if(choose<1||choose>5){break;}else{System.out.println("请输入0返回");num=sc.nextInt();}} while (num == 0);}

图书管理系统代码实现相关推荐

  1. C语言:图书管理系统代码和详细分析

    题目概述: 图书管理系统. 编程: #include<stdio.h> #include<stdlib.h> #include<string.h> //1.写界面- ...

  2. c语言图书管理系统代码

    #include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> ...

  3. Java+Jsp+MySql实现图书管理系统_图书管理系统代码

    文章目录 01 系统介绍 02 下载源码 03 工程结构 04 访问系统 05 技术支持 06 功能展示 管理员 普通用户 01 系统介绍 系统名称:图书管理系统(manage_books) 开发工具 ...

  4. C++程序设计_图书管理系统的控制台实现

    求打赏求收藏求转发! 提供PDF资源 https://download.csdn.net/download/weixin_43781565/12429074 (审核后可供下载) Peace and l ...

  5. C语言实现图书管理系统

    C语言实现图书管理系统 代码如下: # include "stdio.h" # include "stdlib.h" # include "strin ...

  6. Java:图书管理系统

    文章目录 前言 基本情况介绍 主体思想&部分实现代码 图书类 书架类 抽象出图书管理系统使用者的类 子类:管理员 子类:用户 Main类 Operation包 IOperation接口 新增图 ...

  7. 基于eclipse开发软件的Javaweb图书管理系统【源代码】及部分软件

    第一步 下载JDK 1.下载网址:所需JDK网址 根据自己的操作系统选择,x86代表32位,x64代表64位.点击相应的jdk下载.(本机系统是Windows 64位的,选择.exe) 2.百度网盘下 ...

  8. java--面向对象----->图书管理系统

    一.写主类 public class Message { //属性     private String name;     private int state;     private int da ...

  9. C# 图书管理系统(MySQL)——属性设计(三)

    目录 1.窗体Form属性设计 2. 文本框控件:TextBox(输入用户名及密码) 3.单选按钮控件:RadioButton 4.按钮 :Button 5.下拉框:comboBox 1.窗体Form ...

最新文章

  1. SAP MM MB21创建预留单据时候M标记能否自动勾选?
  2. LeetCode Generate Parentheses
  3. 最全Windows下搭建go语言开发环境以及开发IDE
  4. SQL Server改MySQL注意事项
  5. 18秋学期计算机基础在线作业2,东大18秋学期《计算机应用基础》在线作业2.pdf...
  6. 程序员的未来真的一片阴霾吗,大厂女程序员从未摆脱焦虑
  7. 计算机学生工学交替报告书,工学交替学生守则
  8. golang实现常用数据结构
  9. 可以练计算机应用基础的网址,计算机应用基础(第3版)章节练习题答案
  10. android 百度地图大头针,百度地图(大头针)
  11. Linux命令:grep awk sed详解
  12. 种子文件多服务器,别再问我什么是 BT 种子了!一次性全告诉你
  13. Sybase数据库安全
  14. C#nameof用法
  15. QT 5.14 高仿 Win10 计算器(标准、科学、程序员、货币、容量)
  16. (int)类型和(int )类型的区别
  17. Fabric.js 铅笔笔刷
  18. 解锁忘记密码的iPhone X
  19. 从王者荣耀看设计模式(十.外观模式)
  20. vue3 setup中父组件通过Ref调用子组件的方法

热门文章

  1. FASTA 与 FASTQ格式详解
  2. 2019CSUST选拔赛
  3. CSS - 基于before及after伪元素添加字符
  4. 如何在 Windows 11 上安装 RSAT 远程服务器管理工​​具
  5. linux端口占用清除
  6. Linux Wine环境下如何编译安装CS反恐精英
  7. AE磨皮美容插件:beauty box mac版(支持ae2020)
  8. Raspberry pi,一个好玩的派:第四季 NOOBS
  9. 频繁跳槽涨工资?No,居然会影响征信!
  10. All in区块链,你看到的是泡沫还是变革?