1.需要懂得String类
/*
* String字符串:存储多个字符的数据类型,它是引用数据类型。
格式: String 变量名 =”变量值“;
* 比较字符串内容是否相等:字符串.equals(相比较的字符串)。
* equals方法左右 无论是变量名还是字符串内容,都可以进行比较。
* * */
public class StringDemo {
//主方法
public static void main(String[] args) {
//使用String
String name="HelloJava";
//输出内容
/*System.out.println(name);
System.out.println("---------------------");
//字符串拼接
System.out.println("你好Java\n"+name);
System.out.println("----------------------");*/
/* //比较两个字符串是否相等:比较内容是否一致
String name1="HelloJava";
String name2="Helloc";
//1.变量名.equals(变量名)
System.out.println(name.equals(name1));
System.out.println(name.equals(name2));
System.out.println("----------------------");
//2.变量名.equals(字符串内容)
System.out.println(name.equals("NI好"));
System.out.println(name.equals("HelloJava"));
*/
System.out.println("-------------------");
//3.字符串.equals(字符串)
System.out.println( "HelloJava".equals("HelloJava"));
System.out.println("HelloJava".equals(name));
}
}
2.图书管理系统初步实现的分析
/*
分析:
1.我们只学过字符,字符串怎么存储? String类
2.图书信息的储存:可以使用一维数组
3.用户输入的信息可以使用Scanner类
4.怎么可以让我们程序一直运行
5.添加,修改,删除数据实际上就是对一维数组元素的增删改。
#准备工作
程序开始前,我们需要把程序内书籍的信息准备好,因为没有学习数据库,所以数据不是动态获取的
#存储图书信息的数组。
#已有的图书信息。
编号 书籍名称 借阅状态 借出天数 累计借出
1 ....
2 ......
3 .......
*
* */
3.简易图书馆六大功能的实现
package 项目;
import java.util.Scanner;
/**
* 项目练习:图书管理系统
*/
public class BookeManager2 {
//主方法
public static void main(String[] args) {
/*
准备工作
*/
//Scanner对象
Scanner sc = new Scanner(System.in);
//准备存储一维信息的一维数组
String[] bookName = new String[6];//书名
int[] state = new int[6];//状态:0未借出。1已借出
int[] date = new int[6];//借出天数
int[] count = new int[6];//借出的总次数
//准备已有的图书信息
bookName[0] = "Java葵花宝典";
state[0] = 1;//借出
date[0] = 4;
count[0] = 15;
bookName[1] = "Java基础";
state[1] = 0;//未借出
date[1] = 2;
count[1] = 15;
bookName[2] = "Java之三十天成为大神";
state[2] = 1;
date[2] = 7;
count[2] = 17;
//控制程序结束的变量
boolean flag=true;//程序运行 ,false 程序结束
/*
*主菜单界面
*
*/
do {
int goBack = -1;
System.out.println("**********************************************************************");
System.out.println("* Welcome 访问一本书也没有的图书管理系统 *");
System.out.println("**********************************************************************");
System.out.println();
System.out.println();
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("***********************************************************************");
System.out.println("请选择1-6任意一个数字");
//接受用户输入菜单的选项
int num = sc.nextInt();
//进入菜单
wc: switch (num) {
case 1:// 1.图书添加
System.out.println("请输入要添加的书名:");
String name = sc.next();
String addInfo = addBook(bookName, name);
System.out.println(addInfo);
while(goBack!=0){
System.out.println("请输入0返回:");
goBack = sc.nextInt();
if(goBack==0){
break wc;
}
}
case 2://2.图书查看
printBook(bookName, state, date, count);
//控制返回主菜单
while(goBack!=0){
System.out.println("请输入0返回:");
goBack = sc.nextInt();
if(goBack==0){
break wc;
}
}
case 3://3.图书删除
System.out.println("请输入要删除的书籍名称:");
String delName = sc.next();
String delInfo = delBook(bookName,state,delName);
System.out.println(delInfo);
//控制返回主菜单
while(goBack!=0){
System.out.println("请输入0返回:");
goBack = sc.nextInt();
if(goBack==0){
break wc;
}
}
case 4://4.图书借出
System.out.println("请您输入要借的书籍:");
String borrowName = sc.next();
String borrowInfo = borrowBook(bookName, state, date, count, borrowName);
System.out.println(borrowInfo);
//控制返回主菜单
while(goBack!=0){
System.out.println("请输入0返回:");
goBack = sc.nextInt();
if(goBack==0){
break wc;
}
}
case 5://5.图书归还
System.out.println("请您输入要归还的书籍:");
String backName = sc.next();
String backInfo = backBook(bookName, state,date, backName);
System.out.println(backInfo);
//控制返回主菜单
while(goBack!=0){
System.out.println("请输入0返回:");
goBack = sc.nextInt();
if(goBack==0){
break wc;
}
}
case 6:// 6.退出系统
System.out.println("感谢使用,再见!");
flag=false;
break;
}
} while (flag);
}
/**
*图书信息查看的方法
* @param bookName 存放书籍的名称的数组
* @param state 存放书籍的状态的数组
* @param date 借出的天数的数组
* @param count 借出的总计次数
*/
public static void printBook(String[] bookName, int[] state, int[] date, int[] count) {
//输出结果的标题
System.out.println("编号\t"+"书籍名称\t\t"+"书籍状态\t\t"+"借出天数\t\t"+"借出合计\t\t");
//循环遍历输出信息
for(int i=0;i<bookName.length;i++){
if (bookName[i] != null) {
System.out.print((i + 1) + "\t" + bookName[i]+"\t\t");
if (state[i]==1) {
System.out.print("已借出" + "\t\t");
}else{
System.out.print("未借出"+"\t\t");
}
System.out.print(date[i]+"天"+"\t\t");
System.out.print (count[i]+"次"+"\t\t");
System.out.println();
}
}
}
/**
* 添加书籍的方法
* 确定 返回值类型 String
* 参数列表:bookName[],name要添加的书名
*/
/**
*
* @param bookName 存储书名的数组
* @param name 要添加的书名
* @return 添加是否成功过的信息
*/
public static String addBook(String[] bookName, String name) {
//遍历数组
for (int i = 0; i < bookName.length; i++) {
//判断书名是否为null
if (bookName[i] == null) {
bookName[i]=name;
return "插入书籍成功!";
}
}
return "操作失败,书架已满";
}
/*
* 删除书籍的方法
* 确定 返回值类型:String
* 参数列表:bookName[] name
*
*
* */
/**
*
* @param bookName 存储书名的数组
* @param state 存储书籍状态的数组
* @param delName 被删除书籍的名称
* @return 删除是否成功N
*/
public static String delBook(String[]bookName,int []state, String delName) {
for (int i = 0; i < bookName.length; i++) {
//借出不成功情况:
//1.数组中不存在该名称
//2.已借出状态
if ( bookName[i].equals(delName)) {
if (state[i]==0){
bookName[i]=null;
return "删除成功";
}else {
return "您输入的书籍已借出,操作失败!";
}
}
}
return "您输入的书籍不存在";
}
/*
* 图书借阅功能
* 返回类型:String
* 参数列表:所有数组
* */
/**
* 图书借阅功能
* * @param bookName 存放书籍的名称的数组
* * @param state 存放书籍的状态的数组
* * @param date 借出的天数的数组
* * @param count 借出的总计次数
* @param borrowName 借阅图书的名称
@return 借阅是否成功的信息
*/
public static String borrowBook(String[] bookName, int[] state, int[] date, int[] count,String borrowName) {
for (int i = 0; i < bookName.length; i++) {
//在数组中寻找书籍名称的元素
if (bookName[i] != null && bookName[i].equals(borrowName)) {
//判断书籍借阅状态
if (state[i] == 0) {
state[i]=1;
date[i]=1;
count[i]++;
return "借阅成功!";
}else{
return "对不起,该书已借出!";
}
}
}
return "您借阅的书籍不存在!";
}
/**
* 图书归还功能
* * @param borrowName 存放书籍的名称的数组
* * @param state 存放书籍的状态的数组
* * @param date 借出的天数的数组
* * @param count 借出的总计次数
* @param backName 归还图书的名称
@return 借阅是否成功的信息
*/
public static String backBook(String[] bookName, int[] state,int[]date, String backName) {
for (int i = 0; i < bookName.length; i++) {
//在数组中寻找书籍名称的元素
if (bookName[i] != null && bookName[i].equals(backName)) {
//判断书籍借阅状态
if (state[i] == 1) {
state[i]=0;
date[i]=0;
return "归还成功!";
}else{
return "对不起,该书未借出归还失败!";
}
}
}
return "您没有借阅该书籍!";
}
}