七月初决定要学IT,起初是想学Android开发,源于高中开始接触Android,对手机的APP和系统比较感兴趣,自己对手机的APP和系统也比较有研究。起初自己在网上找了一些学习Android开发的教学视频开始自习,学了几天的Java基础,之后又开始学习开发一些最简单的APP。 后来决定报个培训班,系统学习提高学习效率。通过了解后,发现目前Android开发工程师的市场需求量并不是很大,而Java开发工程师是大部分公司都需要的,市场需求量也比较大,在朋友的推荐下来了黑马程序员。 上课是双元教学,视频中的老师讲得挺好的,通俗易懂,前面几天的基础内容对我来说学习起来都没什么难度,知识点都能比较快地吸收。课堂老师也教了我们一些额外的知识,同学们问的问题也能得到较好的解答。 在课堂学习之余,我也预习了之后的课程内容。我基于基础班最后一天的学生管理系统,写了一个图书管理系统。能在控制台上完成基本的图书录入,借阅登记等基本功能。 主界面如下: ----------------------------------------------------------------------------------------------------------------- ————图书馆管理系统———— 1 添加书籍 2 添加借阅信息 3 查询所有借阅信息 4 删除借阅信息 5 删除书籍 6 退出系统 请输入操作指令: ------------------------------------------------------------------------------------------------------------ 这个程序是通过ArrayList集合添加包含图书和借阅者信息的String类型对象,通过对集合的添加、修改、删除等方法来实现功能。 通过 Scanner sc = new Scanner(System.in); String a = sc.nextLine(); 录入指令 通过switch选择要执行的方法。 --------------------------------------------------------------------------------------------------------------- 添加书籍操作: ————图书馆管理系统———— 1 添加书籍 2 添加借阅信息 3 查询所有借阅信息 4 删除借阅信息 5 删除书籍 6 退出系统 请输入操作指令: 1 请输入书籍书号: 0001 请输入书籍名称: 一本书 添加书籍成功。 ----------------------------------------------------------------------------------------------------------------------- 通过把键盘录入的字符串赋值的新建的对象的成员变量中,再通过arrayList的add方法将对象添加到集合中。 添加借阅者信息操作: ------------------------------------------------------------------------------------------------------------------------ ————图书馆管理系统———— 1 添加书籍 2 添加借阅信息 3 查询所有借阅信息 4 删除借阅信息 5 删除书籍 6 退出系统 请输入操作指令: 2 请输入借阅信息: 请输入要借阅书籍的书号: 0001 请输入借阅人姓名: 借阅人 借阅时间为:2019年08月20日 23:26:07 添加借阅信息成功。 ------------------------------------------------------------------------------------------------------------------------------------- 通过arrayList的set方法将录入的借阅信息替换原来集合中的目标的对象的成员变量的默认字符串。 其中用以下代码获取当前时间: Date d = new Date(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss"); String format = sdf.format(d); String mdate = format; 读取借阅信息操作: ------------------------------------------------------------------ ————图书馆管理系统———— 1 添加书籍 2 添加借阅信息 3 查询所有借阅信息 4 删除借阅信息 5 删除书籍 6 退出系统 请输入操作指令: 3 书号 书名 借阅人 借出时间 0001 一本书 借阅人 2019年08月20日 23:26:07
————图书馆管理系统———— 1 添加书籍 2 添加借阅信息 3 查询所有借阅信息 4 删除借阅信息 5 删除书籍 6 退出系统 请输入操作指令: ----------------------------------------------------------------------------------------------
用arrayList的get方法和自定义reader类的get方法读取借阅信息,删除借阅信息也是用arrayList的get方法和自定义reader类的get方法替换掉借阅信息来实现的。
删除书籍操作: ------------------------------------------------------------------------------------------------- ————图书馆管理系统———— 1 添加书籍 2 添加借阅信息 3 查询所有借阅信息 4 删除借阅信息 5 删除书籍 6 退出系统 请输入操作指令: 5 请输入要删除的书籍的书号: 0001 删除书籍信息成功。
————图书馆管理系统———— 1 添加书籍 2 添加借阅信息 3 查询所有借阅信息 4 删除借阅信息 5 删除书籍 6 退出系统 请输入操作指令: -------------------------------------------------------------------- 用arrayList的remove方法移除集合中的目标对象来删除书籍。 为了提高代码的健壮性,每次执行操作前都要执行一次对书籍编号的判断,或者对集合有没有已添加对象进行判断,再进行想要的添加、修改、删除操作。系统中还有一些功能需要完善,如防止误操作的确认执行操作的功能等。 通过这几天的学习,我发现我对敲代码还挺感兴趣的,相信未来能把技术学好。 完整代码如下: import java.text.SimpleDateFormat;import java.util.ArrayList;import java.util.Date;import java.util.Scanner;public class LibraryManegementSystem {
public static void main(String[] args) {
ArrayList<Reader> arrayList = new ArrayList<>();
Scanner sc = new Scanner(System.in);
while (true) {
System.out.println("\n" + "————图书馆管理系统————");
System.out.println("\t" + "1 添加书籍");
System.out.println("\t" + "2 添加借阅信息");
System.out.println("\t" + "3 查询所有借阅信息");
System.out.println("\t" + "4 删除借阅信息");
System.out.println("\t" + "5 删除书籍");
System.out.println("\t" + "6 退出系统");
System.out.println("请输入操作指令:");
String a = sc.nextLine();
switch (a) {
case "1":
addBook(arrayList);
break;
case "2":
addReader(arrayList);
break;
case "3":
findReader(arrayList);
break;
case "4":
deleteReader(arrayList);
break;
case "5":
deleteBook(arrayList);
break;
case "6":
System.out.println("退出系统成功。");
System.exit(0);
break;
default:
System.out.println("你输入的指令有误请重新输入:");
break;
}
}
}
//添加还书日期
public static void addBook(ArrayList<Reader> arrayList) {
Scanner sc = new Scanner(System.in);
String number;
while (true) {
System.out.println("请输入书籍书号:");
number = sc.nextLine();
boolean flag = isUsed(arrayList, number);
if (flag) {
System.out.println("该书籍已存在,请勿重复添加!");
} else {
break;
}
}
System.out.println("请输入书籍名称:");
String bookname = sc.nextLine();
Reader reader = new Reader();
reader.setNumber(number);
reader.setName(bookname);
arrayList.add(reader);
System.out.println("添加书籍成功。");
}
private staticboolean isUsed(ArrayList<Reader> arrayList, String number) {
boolean flag = false;
for (int i = 0; i < arrayList.size(); i++) {
if (number.equals(arrayList.get(i).getNumber())) {
flag = true;
break;
}
}
return flag;
}
public static void addReader(ArrayList<Reader> arrayList) {
if (arrayList.size() == 0) {
System.out.println("无信息,请先添加信息。");
//为了不让程序继续往下执行,用return;
return;
}
Scanner sc = new Scanner(System.in);
System.out.println("请输入借阅信息:");
System.out.println("请输入要借阅书籍的书号:");
String number = sc.nextLine();
int index = -1;
Reader book;
String name = "";
for (int i = 0; i < arrayList.size(); i++) {
book = arrayList.get(i);
if (book.getNumber().equals(number)) {
index = i;
book = arrayList.get(index);
name = book.getName();
break;
}
}
if (index == -1) {
System.out.println("该书籍不存在,请重新输入。");
} else {
System.out.println("请输入借阅人姓名:");
String reader = sc.nextLine();
Date d = new Date();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy年MM月dd日 HH:mm:ss");
String format = sdf.format(d);
d.getTime();
String mdate = format;
System.out.println("借阅时间为:" + mdate);
Reader reader1 = new Reader();
reader1.setName(name);
reader1.setNumber(number);
reader1.setReader(reader);
reader1.setmDate(mdate);
for (int i = 0; i < arrayList.size(); i++) {
if (reader1.getNumber().equals(number)) {
arrayList.set(i, reader1);
break;
}
}
System.out.println("添加借阅信息成功。");
}
}
//输错书号输成别的已有的书号
//重复删除
//确认删除界面
public static void deleteReader(ArrayList<Reader> arrayList) {
if (arrayList.size() == 0) {
System.out.println("无信息,请先添加信息。");
//为了不让程序继续往下执行,用return;
return;
}
Scanner sc = new Scanner(System.in);
System.out.println("请输入要删除借阅信息书籍的书号:");
String number = sc.nextLine();
int index = -1;
Reader book;
String name = "";
for (int i = 0; i < arrayList.size(); i++) {
book = arrayList.get(i);
if (book.getNumber().equals(number)) {
index = i;
book = arrayList.get(index);
name = book.getName();
break;
}
}
if (index == -1) {
System.out.println("该书籍不存在,请重新输入。");
} else {
Reader reader1 = new Reader();
reader1.setName(name);
reader1.setNumber(number);
reader1.setReader("无");
reader1.setmDate("");
for (int i = 0; i < arrayList.size(); i++) {
if (reader1.getNumber().equals(number)) {
arrayList.set(i, reader1);
break;
}
}
System.out.println("删除借阅信息成功。");
}
}
//查看单人借阅信息
public static void findReader(ArrayList<Reader> array) {
if (array.size() == 0) {
System.out.println("无信息,请先添加信息。");
//为了不让程序继续往下执行,用return;
return;
}
// \t 是tab键缩进
System.out.println("书号\t书名\t借阅人\t借出时间");
for (int i = 0; i < array.size(); i++) {
Reader reader = array.get(i);
System.out.println(reader.getNumber() + "\t" + reader.getName()
+ "\t" + reader.getReader() + "\t" + reader.getmDate());
}
}
//输错书号,确认删除的界面
public static void deleteBook(ArrayList<Reader> arrayList) {
if (arrayList.size() == 0) {
System.out.println("无信息,请先添加信息。");
//为了不让程序继续往下执行,用return;
return;
}
Scanner sc = new Scanner(System.in);
System.out.println("请输入要删除的书籍的书号:");
String number = sc.nextLine();
int index = -1;
for (int i = 0; i < arrayList.size(); i++) {
Reader book = arrayList.get(i);
if (book.getNumber().equals(number)) {
index = i;
break;
}
}
if (index == -1) {
System.out.println("该书籍不存在,请重新输入。");
} else {
arrayList.remove(index);
System.out.println("删除书籍信息成功。");
}
}
} public class Reader { private String number;
private String name;
private String reader = "无";
private String date = " ";
public Reader() {
}
public Reader(String number, String name, String reader, String date) {
this.number = number;
this.name = name;
this.reader = reader;
this.date = date;
}
public String getNumber() {
return number;
}
public void setNumber(String number) {
this.number = number;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getReader() {
return reader;
}
public void setReader(String reader) {
this.reader = reader;
}
public String getmDate() {
return date;
}
public void setmDate(String date) {
this.date = date;
}
}
|