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 规范可以自动管理 ...
随机推荐
- bzoj 4974: [Lydsy八月月赛]字符串大师
4974: [Lydsy八月月赛]字符串大师 Time Limit: 1 Sec Memory Limit: 256 MBSubmit: 371 Solved: 190[Submit][Statu ...
- 洛谷P4762 [CERC2014]Virus synthesis(回文自动机+dp)
传送门 回文自动机的好题啊 先建一个回文自动机,然后记$dp[i]$表示转移到$i$节点代表的回文串的最少的需要次数 首先肯定2操作越多越好,经过2操作之后的串必定是一个回文串,所以最后的答案肯定是由 ...
- JavaWeb:Servlet技术
JavaWeb:Servlet技术 快速开始 Servlet是什么 Java Servlet 是运行在 Web 服务器或应用服务器上的程序,它是作为来自 Web 浏览器或其他 HTTP 客户端的请求和 ...
- web综合案例03
web综合案例03 web综合案例03 web综合案例03 web综合案例03 ... 待复习
- n个点的基环树数量
某裴姓蒟蒻上午提了一个小问题(rt)..然后他升华了..升华之前感受到了神犇的力量... 方法一: g[n][k]表示n个点,k条边的无向图(不一定连通) f[n][k]表示表示n个点,k条边的无向连 ...
- ACM-ICPC 2018 南京赛区网络预赛 Lpl and Energy-saving Lamps (线段树:无序数组找到第一个小于val)
题意:n个房间,每个房间有ai盏旧灯,每个月可以买m盏新灯,要求:按房间顺序换灯,如果剩下的新灯数目大于ai,那么进行更换,否则跳过该房间,判断下一个房间.如果所有房间都换完灯,那么久不会再买新灯. ...
- AOP的XML实现方式
与注解方式类似,只不过所有设置是通过xml来设置 // 切面类 public class Aop { public void around(ProceedingJoinPoint pjp) throw ...
- php安装错误 (node.c:1953:error) 解决办法
CentOs安装PHP在make时报错: root@---- [/opt/php-5.2.17]# make /bin/sh /opt/php-5.2.17/libtool --silent --pr ...
- PHPCMS的自增长标签
设置幻灯片的时候,需要用到自增长ID. <div class="tt_pic"><img src="images/1.gif" />&l ...
- Srping MVC中Controller的void方法
第一种 通过修改response来修改页面 /** * 方式一:通过声明HttpServletResponse类型的方法入参,来使用HttpServletResponse对象. * 注意:在Contr ...