编写一个图书类Book,成员变量包括:图书的书名、作者、月销量等属性,定义两个构造方法:一个不带参数,另一个带参数(初始化图书的相关属性);成员方法包括:用于设置书名、作者、月销量等属性的setBook()、用于输出书名、作者、月销量等数据的printBook(),编译、运行输出如下格式的信息:
书名:《*》
作者:
月销售量:**本
程序分析
正常构建图书类,包括书的属性及增删改方法。建立图书对象数组用来存储数据。使用switch条件选择语句对程序进行整体控制
源代码
图书类Book类
package experiment.exp3;
import java.util.Scanner;
public class Book {
private String bookname,authorname;
private int sum,no;
public Book()
{}
public Book(String bookname_init,String authorname_init,int num_init,int no)
{
bookname=bookname_init;authorname=authorname_init;sum=num_init;
}
public void setBook()
{
System.out.print("您要修改哪个位置1.书名2.作者3.销量");
Scanner sc1=new Scanner(System.in);
switch(sc1.nextInt())
{
case 1:
System.out.println("请输入要更正的名字:");
bookname=sc1.next();
System.out.println("修改成功!");
break;
case 2:
System.out.println("请输入更改作者的名字:");
authorname=sc1.next();
System.out.println("修改成功!");
break;
case 3:
System.out.println("请输入校准后的销量:");
sum=sc1.nextInt();
System.out.println("校正成功!");
sc1.close();
}
}
public void display()
{
System.out.println("书名:《"+bookname+"》"+"书号"+no+"\n"+"作者:"+authorname+"\n"+"销量:"+sum);
}
}
图书测试类(用来执行对图书类对象数组的增删改)
package experiment.exp3;
import java.util.Scanner;
public class bookTest {
public static void main(String[] args) {
Book[] b=new Book[10];
b[0]=new Book("《留言》","张爱玲",200,0);
b[1]=new Book("《送你一匹马》","三毛",300,1);
b[2]=new Book("缘缘堂随笔","丰子恺",290,2);
Scanner sc2=new Scanner(System.in);
int i=3;
while(true)
{
System.out.println("您要进行的操作是:1.增加新书2.修改书籍信息3.查看书籍信息4.退出");
switch(sc2.nextInt())
{
case 1:
System.out.println("请输入书籍信息");
if(i<9)
{
String s=sc2.next();
b[i]=new Book(s,sc2.next(),sc2.nextInt(),i);
System.out.println(s+"成功加入书库!");
i++;
}
else
System.out.println("已达存储书籍上限!");
break;
case 2:
System.out.println("请输入您要修改的书籍的标号:");
int c=sc2.nextInt();
if(c<i)
{
b[c].setBook();
}
else
System.out.println("该书不存在");
break;
case 3:
System.out.println("请输入您要查看的书籍书号:输入10查看全部");
int a=sc2.nextInt();
if(a<10)
b[a].display();
else
{
int k;
for(k=0;k<i;k++)
b[k].display();
}
break;
case 4:
sc2.close();
System.exit(0);
}
}
}
}
运行结果