注:本文非标准教程,仅是总结个人学习过程,可能存在纰漏,如有错误之处欢迎留言告知,非常感谢
题目:
一、·定义图书类Book,包含属性(全部私有):
书名,作者,出版社,价格,ISBN,
构造函数1:通过参数传递书名给书名属性赋值;
构造函数2:通过参数传递书名、作者给相关属性赋值;
构造函数3:通过参数传递书名、作者、出版社给相关属性赋值;
构造函数4:通过参数传递书名、作者、出版社、价格给相关属性赋值;
构造函数5:通过参数传递书名、作者、出版社、价格、ISBN给相关属性赋值;
方法:
给所有属性添加get方法(返回属性值)和set方法(设置属性值)。
二、定义类BookManage,包括
属性:Book类数组;
构造函数:参数表示属性数组的长度,给属性数组分配内存空间,为数组中的每一个元素创建一个Book类对象(对象各个属性的值可以从键盘输入,也可以自己任意定义)。
方法:
search,参数表示书名,从属性数组中查询某本书是否存在,存在返回1,不存储返回0;
search,参数表示要查询书价格的下限和上限,从属性数组中查询价格位于某个价格区间的书籍,将满足条件的书的书名输出。
search,参数表示书名和作者,从属性数组中查询是否存在满足条件的书,如果有,输出该书的所有信息,并返回1,否则输出“没有满足条件的书”,并返回0.
后面有总结,在代码里有有注释。。。
import java.util.*;
public class Book {
private String name;
private String author;
private String publicing;
private String price;
private String ID;
Book(){
}
Book(String name){
this.name=name;
}
Book(String name,String author){
this.name=name;
this.author=author;
}
Book(String name,String author,String publicing){
this.name=name;
this.author=author;
this.publicing=publicing;
}
Book(String name,String author,String publicing,String price){
this.name=name;
this.author=author;
this.publicing=publicing;
this.price=price;
}
Book(String name,String author,String publicing,String price,String ID){
this.name=name;
this.author=author;
this.publicing=publicing;
this.price=price;
this.ID=ID;
}
public void setname(String aaa) {
this.name=aaa;
}
public String getname() {
return name;
}
public void setauthor(String aaa) {
this.author=aaa;
}
public String getauthor() {
return author;
}
public void setpublicing(String aaa) {
this.publicing=aaa;
}
public String getpublicing() {
return publicing;
}
public void setprice(String aaa) {
this.price=aaa;
}
public String getprice() {
return price;
}
public void setID() {
ID="0000FFF";
}
public String getID() {
return ID;
}
}
import java.util.*;
public class bookManage {
Book[] books; //创建一个book类的数组对象
bookManage(int count){
Scanner scan=new Scanner(System.in);
books=new Book[count];
for(int i=0;i<count;i++) {
String n=scan.nextLine(); //名字
String a=scan.nextLine(); // 作者
String pu=scan.nextLine(); //出版社
String pri=scan.nextLine(); //价格
books[i]=new Book(n,a,pu,pri);
String name=books[i].getname();
String author=books[i].getauthor();
String publicing=books[i].getpublicing();
String price=books[i].getprice();
}
}
void search1(String aa,int count) //查询某本书是否存在
{
for(int i=0;i<count;i++) {
if(aa.equals(books[i].getname())) {
System.out.println("YES,have this book!");
}
}
}
void search2(int bb,int pp,int count) //查询书价格的下限和上限
{
int hhh;
for(int i=0;i<count;i++) {
hhh=Integer.valueOf(books[i].getprice()).intValue();
if(hhh>bb &&hhh<pp) {
System.out.println("书名为:"+books[i].getname());
}
}
}
void search3(String dd,int count) //查询作者
{
for(int i=0;i<count;i++) {
if(dd.equals(books[i].getauthor())) {
System.out.println("书名为:"+books[i].getname());
}
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner qqq=new Scanner(System.in);
System.out.println("输入i本书本:");
int i=qqq.nextInt();
System.out.println("输入书本信息:按书名,作者,出版社,价格输入:");
bookManage cc=new bookManage(i);
System.out.println("输入要查找的书本");
Scanner qq=new Scanner(System.in);
String aab=qq.nextLine();
cc.search1(aab,i);
System.out.println("输入要查找的价格下线和上界:");
int bb=qqq.nextInt();
int pp=qqq.nextInt();
cc.search2(bb, pp,i);
System.out.println("输入要查找的作者的名字:");
Scanner qqw=new Scanner(System.in); //这个地方删除就出错,不知道原因。。。。
String dd=qqw.nextLine();
cc.search3(dd,i);
}
}
//算法图解
//歪果仁
//上海出版
//40
//python入门编程
//美国人
//北京出版
//87
总结:
一 Java 中int、String的类型转换
int -> String
int i=12345;
String s=””;
第一种方法:s=i+””;
第二种方法:s=String.valueOf(i);
String -> int
s=“12345”;
int i;
第一种方法:i=Integer.parseInt(s);
第二种方法:i=Integer.valueOf(s).intValue();
详细见教程:
http://www.cnblogs.com/bluestorm/p/3698810.html
二 Java中的equals和==
String str1 = new String("hello");
String str2 = new String("hello");
System.out.println(str1==str2);
System.out.println(str1.equals(str2));
反正String比较最好用这个.equals(),
我在比较时用==总是错。。。。。
(debug de了一晚上)
详细见教程:
https://www.cnblogs.com/dolphin0520/p/3592500.html