图书管理系统
本栏所写均为面向基础小白食物,本文涉及知识均为JavaSE基础篇,望悉知!!!
实现功能
1、检测登录(由于本实验未涉及IO以及数据库,所以,这里只是简单的进行匹配验证 默认账户名及密码: jinhuan pass 可自行修改)
2、图书添加:
图书类:书名
图书编号
出版社
出版日期(date类,后期录入使用日期转换)
价钱
状态值(bool类型 默认为true,为false表明被删除)
3、图书删除
根据输入检所对应书籍
设置其状态值为false——>即做伪删除
4、修改
检索对应图书
设置其各个属性值
5、查询图书
根据书名模糊查询
根据书籍编号模糊查询
6、查看所有图书
查看方式:
1、按照录入顺序
2、按照价钱升序<使用Compator>
3、按照价钱降序<使用Compator>
4、按照出版日期先后<使用Compator>
注意在进行遍历的时候,先判断书籍状态
好啦,以上就是全部内容啦,下面为实现细节,大家可以以此为鉴,则其善者,去其糟粕,老规矩,文末附上了下载链接,欢迎大家三连后食用
核心代码
Dao层
书籍模糊查找
public List<Book> findBookByName(String name){
List<Book> resList = new ArrayList<>();
for (Book book : list) {
if (book.getStatus() && book.getName().contains(name)){
resList.add(book);
}
}
return resList;
}
四种遍历方式
默认输出
public void print(List<Book> books) {
if (books == null || books.size() == 0){
System.out.println("当前未存储任何书籍!");
return;
}
for (Book book : books) {
if (book.getStatus()){
System.out.println(book);
}
}
}
按照价格升序
public void printByUpPrice(List<Book> list) {
if (list == null || list.size() == 0){
System.out.println("当前未存储任何书籍!");
return;
}
Collections.sort(list, new Comparator<Book>() {
@Override
public int compare(Book o1, Book o2) {
if (o1.getPrice() > o2.getPrice()){
return 1;
}else if (o1.getPrice() < o2.getPrice()){
return -1;
}else{
return 0;
}
}
});
for (Book book : list) {
if (book.getStatus()){
System.out.println(book);
}
}
}
按照价格降序
public void printByDownPrice(List<Book> list) {
if (list == null || list.size() == 0){
System.out.println("当前未存储任何书籍!");
return;
}
Collections.sort(list, new Comparator<Book>() {
@Override
public int compare(Book o1, Book o2) {
if (o1.getPrice() > o2.getPrice()){
return -1;
}else if (o1.getPrice() < o2.getPrice()){
return 1;
}else{
return 0;
}
}
});
for (Book book : list) {
if (book.getStatus()){
System.out.println(book);
}
}
}
按照日期先后排序
public void printByDate(List<Book> list) {
if (list == null || list.size() == 0){
System.out.println("当前未存储任何书籍!");
return;
}
Collections.sort(list, new Comparator<Book>() {
@Override
public int compare(Book o1, Book o2) {
if (o2.getPublicationDate().after(o1.getPublicationDate())){
return 1;
}else if (o2.getPublicationDate().after(o1.getPublicationDate())){
return -1;
}else{
return 0;
}
}
});
for (Book book : list) {
if (book.getStatus()){
System.out.print(book+"\t");
}
}
System.out.println();
}
view层
书籍添加
private void addMenu() {
System.out.println("请输入要添加的书名:");
String name = input.next();
System.out.println("请输入该书的编号");
String id = input.next();
Double price;
System.out.println("请输入该书的单价:");
do{
if (input.hasNextDouble()){
price = input.nextDouble();
break;
}else{
System.out.println("格式输入有误,请检查后重试!");
input.next();
}
}while (true);
System.out.println("请输入该书的出版社:");
String press = input.next();
Date publicationDate;
while (true){
System.out.println("请输入该书的出版日期:请依次输入年月日,以小数点隔开!如(2001.1.12)");
String time = input.next();
if (formateDate(time) != null){
publicationDate = formateDate(time);
break;
}
}
System.out.println(bookDao.addBook(new Book(name,price,true,id,press,publicationDate)) ? "添加成功!" : "添加失败");
while (true){
System.out.println("是否继续添加图书? 1-是 0-否");
String command = input.next();
if ("1".equals(command)){
addMenu();
break;
}else if ("0".equals(command)){
commandMenu();
break;
}else {
System.out.println("格式输入有误,请检查后重试!");
}
}
}
输入日期转换
public Date formateDate(String date) {
SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy.MM.dd");
try {
return simpleDateFormat.parse(date);
} catch (ParseException e) {
System.out.println("格式输入有误!");
}
return null;
}
检测登录
private boolean checkUser(String username, String password) {
return "jinhuan".equals(username) && "pass".equals(password);
}
源码下载链接
以上均为本人个人观点,借此分享,希望能和大家一起进步。如有不慎之处,劳请各位批评指正!鄙人将不胜感激并在第一时间进行修改!
|