图书管理系统代码实现
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);}
图书管理系统代码实现相关推荐
- C语言:图书管理系统代码和详细分析
题目概述: 图书管理系统. 编程: #include<stdio.h> #include<stdlib.h> #include<string.h> //1.写界面- ...
- c语言图书管理系统代码
#include <stdio.h> #include <string.h> #include <stdlib.h> #include <conio.h> ...
- Java+Jsp+MySql实现图书管理系统_图书管理系统代码
文章目录 01 系统介绍 02 下载源码 03 工程结构 04 访问系统 05 技术支持 06 功能展示 管理员 普通用户 01 系统介绍 系统名称:图书管理系统(manage_books) 开发工具 ...
- C++程序设计_图书管理系统的控制台实现
求打赏求收藏求转发! 提供PDF资源 https://download.csdn.net/download/weixin_43781565/12429074 (审核后可供下载) Peace and l ...
- C语言实现图书管理系统
C语言实现图书管理系统 代码如下: # include "stdio.h" # include "stdlib.h" # include "strin ...
- Java:图书管理系统
文章目录 前言 基本情况介绍 主体思想&部分实现代码 图书类 书架类 抽象出图书管理系统使用者的类 子类:管理员 子类:用户 Main类 Operation包 IOperation接口 新增图 ...
- 基于eclipse开发软件的Javaweb图书管理系统【源代码】及部分软件
第一步 下载JDK 1.下载网址:所需JDK网址 根据自己的操作系统选择,x86代表32位,x64代表64位.点击相应的jdk下载.(本机系统是Windows 64位的,选择.exe) 2.百度网盘下 ...
- java--面向对象----->图书管理系统
一.写主类 public class Message { //属性 private String name; private int state; private int da ...
- C# 图书管理系统(MySQL)——属性设计(三)
目录 1.窗体Form属性设计 2. 文本框控件:TextBox(输入用户名及密码) 3.单选按钮控件:RadioButton 4.按钮 :Button 5.下拉框:comboBox 1.窗体Form ...
最新文章
- SAP MM MB21创建预留单据时候M标记能否自动勾选?
- LeetCode Generate Parentheses
- 最全Windows下搭建go语言开发环境以及开发IDE
- SQL Server改MySQL注意事项
- 18秋学期计算机基础在线作业2,东大18秋学期《计算机应用基础》在线作业2.pdf...
- 程序员的未来真的一片阴霾吗,大厂女程序员从未摆脱焦虑
- 计算机学生工学交替报告书,工学交替学生守则
- golang实现常用数据结构
- 可以练计算机应用基础的网址,计算机应用基础(第3版)章节练习题答案
- android 百度地图大头针,百度地图(大头针)
- Linux命令:grep awk sed详解
- 种子文件多服务器,别再问我什么是 BT 种子了!一次性全告诉你
- Sybase数据库安全
- C#nameof用法
- QT 5.14 高仿 Win10 计算器(标准、科学、程序员、货币、容量)
- (int)类型和(int )类型的区别
- Fabric.js 铅笔笔刷
- 解锁忘记密码的iPhone X
- 从王者荣耀看设计模式(十.外观模式)
- vue3 setup中父组件通过Ref调用子组件的方法