给你修改了三个地方:
1.borrowBooks方法中,将System.out.println("你要借吗?")改为:
System.out.println("你要借吗?输入1表示借,其他数字表示不借。")
保证输入的时候输入的数字,否则会报出异常。
2.borrowBooks方法中,将self[score] = all[9]改为:self[score] = all[i]
如果是all[9],那么就始终是最后一本书籍信息了。
3.have方法中,你是想将所借的书籍信息都打印出来。修改的比较多,下面注释代码是原来的。
void have(Books[] self) {
// for (int i = 0i <2i++) {
// self[i].showBookInfo()
// }
for (int i = 0i <3i++) {
if(self[i]!=null)
self[i].showBookInfo()
}
}
****************** 附上所有代码:*************************
import java.util.Scanner
public class TestBook {
public static void main(String[] args) {
Books all[] = new Books[10]
Books self[] = new Books[3]
all[0] = new Books("java", 1, "12345", "tom", 34.0f, "人民出版社")
all[1] = new Books("c", 2, "12346", "tnn", 31.0f, "人民出版社")
all[2] = new Books("c++", 3, "12445", "mm", 35.0f, "人民出版社")
all[3] = new Books("c#", 4, "12365", "tt", 38.0f, "人民出版社")
all[4] = new Books("j2se", 5, "13345", "tosm", 31.1f, "人民出版社")
all[5] = new Books("j2ee", 6, "18345", "ttm", 32.0f, "人民出版社")
all[6] = new Books("jsp", 7, "12335", "cc", 33.0f, "人民出版社")
all[7] = new Books("net", 8, "12341", "bb", 36.0f, "人民出版社")
all[8] = new Books("ip", 9, "12343", "aa", 37.0f, "人民出版社")
all[9] = new Books("tcp", 10, "22345", "jj", 39.0f, "人民出版社")
Readers r = new Readers("xiaoming", 101, "1", 3)
r.searchAllBooks(all)
r.borrowBooks(all, self)
r.have(self)
r.give(all, self)
}
}
class Readers {
Scanner scan = new Scanner(System.in)
String names
int nums
String classes
int grade
int score = 0
// Books self[]=new Books[3]
Readers(String n, int u, String c, int g) {
names = n
nums = u
classes = c
grade = g
}
void searchAllBooks(Books[] all) {// 查书
for (int i = 0i <10i++)
all[i].showBookInfo()
// self[score]=all[0]
}
void give(Books[] all, Books[] self) {// 还书
System.out.println("请输入您要还的书的书号")
int n = scan.nextInt()
for (int i = 0i <10i++) {
if (n == all[i].num) {
for (int j = 0j <3j++) {
if (self[j] == all[i]) {
self[j] = null
System.out.println("还书成功")
}
}
}
}
}
void have(Books[] self) {
// for (int i = 0i <2i++) {
// self[i].showBookInfo()
// }
for (int i = 0i <3i++) {
if(self[i]!=null)
self[i].showBookInfo()
}
}
void giveMoney() {
}
void borrowBooks(Books[] all, Books[] self) {
System.out.println("请输入您要查找的书名:")
String n = scan.next()
int i
for (i = 0i <10i++) {
if (n.equals(all[i].name)) {
all[i].showBookInfo()
break
}
}
//System.out.println("你要借吗?")
System.out.println("你要借吗?输入1表示借,其他数字表示不借。")
int j
j = scan.nextInt()
if (j == 1) {
System.out.println("借阅成功")
//self[score] = all[9]
self[score] = all[i]
score += 1
}
if (score <4) {
System.out.println("您还可以借阅" + (3 - score) + "本")
} else {
System.out.println("对不起,一个人只能借3本")
}
}
}
class Books {
String name
int num
String ISBN
String writer
float price
String publisher
Books(String n, int u, String i, String w, float p, String l) {
name = n
num = u
ISBN = i
writer = w
price = p
publisher = l
}
void showBookInfo() {
System.out.println("**************************")
System.out.println("书名:" + name)
System.out.println("索书号:" + num)
System.out.println("ISBN号:" + ISBN)
System.out.println("价格:" + price)
System.out.println("出版社:" + publisher)
System.out.println("**************************")
}
}
----------------------------------------------------
HashMap的常用方法
map的存储和修改方式 map.put(key, value)
map是否包含某个元素map.containsKey(key)
map某个key的value值map.get(key)
参考代码
import java.util.HashMappublic class BookTest {
static HashMap<String, Integer> map=new HashMap<String, Integer>()
static{//初始化图书信息
map.put("三国志", 8)
map.put("红楼梦", 0)
map.put("西游记", 15)
}
public static void main(String[] args) {//main方法
jieShu("水浒")
jieShu("三国志")
huanShu("三国志")
jieShu("红楼梦")
huanShu("红楼梦")
jieShu("红楼梦")
}
public static void jieShu(String name){//借书
if(!map.containsKey(name)){//查询图书馆是否有这本书
System.out.println("书籍:"+name+"\t查无此书!")
return
}
if(map.get(name)<=0){//查询图书数量是否为0
System.out.println("书籍:"+name+"\t已全部借出,请明日在来")
return
}
map.put(name, map.get(name)-1)
System.out.println("书籍:"+name+"\t借书成功。"+"\t库存:"+map.get(name))
}
public static void huanShu(String name){//还书
if(!map.containsKey(name)){
System.out.println("查无此书")
}else{
map.put(name, map.get(name)+1)
System.out.println("书籍:"+name+"\t还书成功。"+"\t库存:"+map.get(name))
}
}
}
测试输出
书籍:水浒 查无此书!书籍:三国志 借书成功。 库存:7
书籍:三国志 还书成功。 库存:8
书籍:红楼梦 已全部借出,请明日在来
书籍:红楼梦 还书成功。 库存:1
书籍:红楼梦 借书成功。 库存:0
package Managementimport java.util.List
import java.util.ArrayList
public class Management {
public static List<Book> bookList=null
public Management() {
// TODO Auto-generated constructor stub
bookList=new ArrayList<Book>(100)
}
public void addbook(Book book)
{
bookList.add(book)
}
public Book[] findBook(String bookName)
{
Book [] book=new Book[100]
int j=0
for(int i=0i<bookList.size()i++)
{
if(bookName.equals(bookList.get(i).getName()))
{
book[j]=bookList.get(i)
j++
}
}
return book
}
public Book[] ShowAllBook()
{
Book[]book=new Book[100]
for(int i=0i<bookList.size()i++)
{
book[i]=bookList.get(i)
bookList.get(i).printInfo()
}
return book
}
}
class Book
{
private String name
private String author
public String getName() {
return name
}
public void setName(String name) {
this.name = name
}
public String getAuthor() {
return author
}
public void setAuthor(String author) {
this.author = author
}
void printInfo()
{
System.out.println("书名为"+this.name+"作者为"+this.author)
}
}
class Reader
{
private String name
public void borrowbook(Book book) {
Management liabry=new Management()
for(int i=0i<liabry.bookList.size()i++)
{ if(book.getAuthor().equals(liabry.bookList.get(i).getAuthor())&&book.getName().equals(liabry.bookList.get(i).getName()))
{
liabry.bookList.remove(i)
System.out.println("借书成功!")
break
}
}
}
public void backbook(Book book) {
Management liabry=new Management()
liabry.addbook(book)
System.out.println("还书成功")
}
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)