2017.12.14 Java实现-----图书管理系统
通过对图书的增删改查操作 用数组实现
Manager类
package demo55;
import java.util.*;
public class Manager {
Scanner sc = new Scanner(System.in);
int size = 0;
public void Menu(){
int num;
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("请选择");
num = sc.nextInt();
switch (num) {
case 1:
System.out.println("1.查看图书");
System.out.println("图书名称\t图书状态\t借出次数");
//init(); 这里不能放在这里不然size会自动增加 4、5、6
//查看图书(遍历数组)
for(int i= 0;i<size;i++){
String content ="";
if(books[i].status==0)
{
System.out.println("未借");
}else{
System.out.println("已借");
}
System.out.println(books[i].Bookname+"\t"+books[i].lendCount+"\t"+books[i].status);
}
break;
case 2:
addBook();//构造方法
break;
case 3:
System.out.println("3.删除图书");
break;
case 4:
System.out.println("4.修改图书");
break;
case 5:
System.out.println("5.借书图书");
break;
case 6:
System.out.println("6.还书图书");
break;
case 7:
System.out.println("7.退出");
break;
case 8:
System.out.println("8.排行榜");
break;
default:
break;
}
method();//记得写入这个方法
}
String answer = null;
public void method(){
System.out.println("是否继续(Y/N):");
answer= sc.next();
if(answer.equalsIgnoreCase("y")){
Menu();
}else{
System.out.println("欢迎下次使用!");
}
}
Book[] books = new Book[50];//生成对象数组
public void init(){ //初始化三本书的方法
//第一本书
books[0]= new Book(); //创建book[0] 的一个对象
books[0].Bookname = "活着";
books[0].lendCount = 0;
books[0].status = 1;
size++;
//第二本书
books[1]= new Book();
books[1].Bookname = "希望";
books[1].lendCount = 0;
books[1].status = 1;
size++;
//第三本书
books[2]= new Book();
books[2].Bookname = "软件工程";
books[2].lendCount = 0;
books[2].status = 1;
size++;
}
//2.添加图书操作
public void addBook(){
System.out.print("2.添加图书");
System.out.println("请输入你要添加的书名:");
String inputbookname = sc.next();
//创建新图书的一个对象
Book newBook = new Book();
newBook.Bookname = inputbookname;
//把新创建的图书对象存入到数组中的位置,
//books[3]= new Book();这个方法定死了
for(int i=0;i<books.length;i++){
if(books[i]==null){
books[i]=newBook;
size++;
break;//如果没有加这个就会输出50本书
}
}
/*通过size来控制当前位置
books[size] = newBook;
size++;//size要改变,+1
*/
}
//检索图书的存在
public int searchBook(String delBookName){
for(int i=0;i<size;i++){
if(books[i].Bookname.equals(delBookName)){
return i;
}
}
return -1;//没有找到书
}
public void delBook(){
System.out.println("请选择你需要删除的图书名字:");
String delBookName = sc.next();
//输入的 书去数组库中检索,检索到了,则返回当前此书的下标
int index = searchBook(delBookName);
if(index!=-1){
if(books[index].status==0){
//可以删除
books[index] = null;
System.out.println("恭喜,已成功删除图书!");
//每次删除一本新书,size-1
size--;
//位置
while(books[index]!=null){
books[index] = books[index+1];
index++;
}
//查看所有图书
}else{
//不可以删除
System.out.println("此书为已借出状态,不可删除!");
}
}else{
//此书不存在
System.out.println("你输入的删除图书不存在");
}
}
}
2017.12.14 Java实现-----图书管理系统的更多相关文章
- Gitlab一键端的安装汉化及问题解决(2017/12/14目前版本为10.2.4)
Gitlab的安装汉化及问题解决 一.前言 Gitlab需要安装的包太TM多了,源码安装能愁死个人,一直出错,后来发现几行命令就装的真是遇到的新大陆一样... ... 装完之后感觉太简单,加了汉化补丁 ...
- Java GUI 图书管理系统
01 概述 一款功能强大的图书馆管理系统,功能齐全,小白/大学生项目实训,学习的不二之选. 02 技术 此系统使用 java awt 实现.java.awt是一个软件包,包含用于创建用户界面和绘制图形 ...
- 用java实现图书管理系统。
图书管理系统. 一.项目设计到的知识 1.MVC设计模式思想(分包) >项目分包 >MVC简单介绍 2.GUI(图形化界面) 3.JDBC连接MySql数据库 4.I/O流 5.面向对象思 ...
- 2017.10.14 Java的流程控制语句switch&&随机点名器
今日内容介绍 1.流程控制语句switch 2.数组 3.随机点名器案例 ###01switch语句解构 * A:switch语句解构 * a:switch只能针对某个表达式的值作 ...
- 2017.12.20 Java中的 IO/XML学习总结 File类详细
IO / XML 一.File类 1.定义/概念 Java是面向对象的语言,要想把数据存到文件中,就必须要有一个对象表示这个文件.File类的作用就是代表一个特定的文件或目录,并提供了若干方法对这些文 ...
- 2017.12.14 Mybatis物理分页插件PageHelper的使用(一)
参考来自: http://www.360doc.com/content/15/0728/15/12642656_487954693.shtml https://www.cnblogs.com/digd ...
- 2017.12.9 Java中的排序---冒泡排序、快速排序、选择排序
//冒泡排序 public class demo{ public static void main(String[] args) { int[] sum={2,9,10,1,5,88}; System ...
- 2017.12.25 Java中面向对象思想的深刻理解
今日内容介绍 1.面向对象思想 2.类与对象的关系 3.局部变量和成员变量的关系 4.封装思想 5.private,this关键字 6.随机点名器 01面向对象和面向过程的思想 * A: 面向过程与面 ...
- 2017.12.24 Java序列化你不知道的事(二)
1 序列化允许重构 序列化允许一定数量的类变种,甚至重构之后也是如此,ObjectInputStream 仍可以很好地将其读出来. Java Object Serialization 规范可以自动管理 ...
随机推荐
- 《OD大数据实战》Mahout入门实例
一.环境搭建 1. 下载 mahout-0.9-cdh5.3.6.tar.gz 2. 解压 3. mahout org.apache.mahout.clustering.syntheticcontro ...
- [Xcode 实际操作]四、常用控件-(8)UITextField控件的使用
目录:[Swift]Xcode实际操作 本文将演示文本输入框控件的基本用法. 文本输入框主要用来接收和显示用户输入的内容. 在项目导航区,打开视图控制器的代码文件[ViewController.swi ...
- 帝都Day4(1)——还是dp
其实是day4 一.洛谷P1018 乘积最大 f[i][j]表示前i个数 切成j块 用f[i][j]而不用f[i][j][k](i到j切成k块)呢? Luogu1043 前缀和(好算一段里的数的和)+ ...
- EasyUI/TopJUI之如何动态改变下拉列表框ComboBox输入框的背景颜色
简单记录一下 前段时间接到客户需求:动态改变下拉列表框ComboBox输入框的背景颜色. 刚开始想的很简单在用户选择列表项的时候,判断一下列表框的value值添加相应的背景颜色就OK了,然而在实际操作 ...
- JS实现自动轮播图效果(js案例)
现在很多网站都有轮播图,这篇文章主要为大家详细介绍了js实现轮播图的完整代码及原理,需要的小伙伴可以参考一下. 1.轮播图主要功能: 1. 图片自动轮播(主图切换同时下面导航图片也会跟着变化) 2. ...
- CF987C Three displays 解题报告
题目传送门 题目大意 n个位置,每个位置有两个属性s,c,要求选择3个位置i,j,k,使得s_i<s_j<s_k,并使得c_i+c_j+c_k最小 方法1 n³枚举每一种情况(也许可以拿 ...
- Java基础笔记(十)—— 数组
数组是具有相同类型的数据的集合,是一种引用数据类型,一般具有固定的长度,并且在内存中占据连续的空间. 数组声明:数据类型[ ] 数组名; 数据类型 数组名[ ]; 如:int[ ...
- Jmeter常用线程组设置及场景运行时间计算
Jmeter中通过线程组来模拟大用户并发场景,今天主要介绍三个常用的线程组,帮助我们设计更加完善的测试场景,另外介绍下场景执行时间如何计算. 一.Thread Group 取样器错误后要执行的动作 ...
- POJ1032 Parliament
题目来源:http://poj.org/problem?id=1032 题目大意:给定一个正整数N(5<=N<=1000),将N拆为若干个不同的数使得它们的乘积最大(找到一组互不相等,和为 ...
- day02笔记
1.linux环境配置阿里云yum源 linux软件包管理之 yum工具(如同pip3工具) pip3是管理python模块的工具,自动解决模块依赖,降低开发人员心智负担 pip3 install f ...