java单链表怎么实现书籍管理系统
发表于:2025-11-09 作者:千家信息网编辑
千家信息网最后更新 2025年11月09日,这篇文章主要介绍"java单链表怎么实现书籍管理系统",在日常操作中,相信很多人在java单链表怎么实现书籍管理系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"jav
千家信息网最后更新 2025年11月09日java单链表怎么实现书籍管理系统
这篇文章主要介绍"java单链表怎么实现书籍管理系统",在日常操作中,相信很多人在java单链表怎么实现书籍管理系统问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答"java单链表怎么实现书籍管理系统"的疑惑有所帮助!接下来,请跟着小编一起来学习吧!
书籍管理系统功能:
1).添加图书
2).删除图书
3).查看图书
4).修改书籍
5).修改排序方式
6).模糊查询
7).退出程序
代码实现:
Book类
package com.bookmanagement.book;public class Book {//书类 public String no; public String name; public int price; public String type; public Book next; public Book(String Bno,String Bname,int Bprive,String Btype) { this.no=Bno; this.name=Bname; this.price=Bprive; this.type=Btype; } public Book() { } //toString方法 @Override public String toString() { return " Bookno=" + no + ", Bookname=" + name + ", Bookprice=" + price + ", Booktype=" + type; } }1).添加图书
package com.bookmanagement.function;import java.util.Scanner;import com.bookmanagement.book.*;public class AddBook { static Scanner input = new Scanner(System.in); public static void addbook() { System.out.println("请输入书编号:"); String no = input.next(); System.out.println("请输入书名字:"); String name = input.next(); System.out.println("请输入书价格:"); int price = input.nextInt(); System.out.println("请输入书类型:"); String type = input.next(); Book bo = new Book(no,name,price,type); add(bo); } public static void add(Book bo) { Book temp = Test.head;//把头节点赋值给一个辅助类 boolean falg = false; while(true) { if(temp.next == null) {//判断链表是否到最后 break; } if(Test.stroing %2 == 1) {//判断是否修改了显示顺序 if(temp.next.no.compareToIgnoreCase(bo.no)<0) {//寻找适合的位置插入节点//跳过头节点 break; }else if(temp.next.no.compareToIgnoreCase(bo.no)==0){ falg = true; break; } }else { if(temp.next.no.compareToIgnoreCase(bo.no)>0) {//寻找适合的位置插入节点//跳过头节点 break; }else if(temp.next.no.compareToIgnoreCase(bo.no)==0){ falg = true; break; } } //节点后移 temp = temp.next; } if(falg) {//判断是否输入相同的编号 System.out.println("插入"+bo.no+"的数据编号已存在"); }else { bo.next = temp.next; temp.next = bo; } } }2).删除图书
package com.bookmanagement.function;import java.util.Scanner;import com.bookmanagement.book.*;public class DropBook { static Scanner input = new Scanner(System.in); public static void dropbook() { System.out.println("请输入需要删除图书的编号:"); String no = input.next(); Book temp = Test.head; boolean falg = false; while(true) { if(temp.next == null) {//判断链表是否到最后 break; } if(temp.next.no.compareToIgnoreCase(no)==0) { falg = true; break; } temp = temp.next;//temp位移 } if(falg) { temp.next=temp.next.next;//找到temp.next域指向删除的编号让下一个next覆盖 //如果需要删除的编号下一个next域指向的是null则temp.next域则下一个指向为空 System.out.println("删除成功"); }else { System.out.println("没有找到该书籍"); } }}3).查看图书
package com.bookmanagement.function;import com.bookmanagement.book.*;public class ShowBook { public static void showbook() { if(Test.head.next == null) { System.out.println("没有书籍数据"); return; } Book temp = Test.head.next;//输出头节点下一个节点 int sum=0; while(true) { if(temp == null) { break; } System.out.println(temp); sum++; temp = temp.next;//temp位移 } System.out.println("书籍总数为:"+sum); }}4).修改书籍
package com.bookmanagement.function;import java.util.Scanner;import com.bookmanagement.book.*;public class Modify { static Scanner input = new Scanner(System.in); public static void modidy() { System.out.println("请输入需要修改的图书的编号:"); String no = input.next(); Book temp = Test.head; boolean ts = false; while(true) { if(temp.next == null) { break; } if(temp.next.no.compareToIgnoreCase(no)==0) { ts = true; break; } temp = temp.next; } if(ts) { System.out.println("修改:1.名字 2.编号 3.价格 4.类型"); int falg = input.nextInt(); switch (falg) { case 1: System.out.println("请输入需要修改的名字:"); String name = input.next(); temp.next.name = name; break; case 2: System.out.println("请输入需要修改的编号:"); String Mno = input.next(); temp.next.no = Mno; Book change = temp.next; temp.next=temp.next.next; AddBook.add(change); //重新调用add方法 break; case 3: System.out.println("请输入需要修改的价格:"); int prive = input.nextInt(); temp.next.price = prive; break; case 4: System.out.println("请输入需要修改的类型:"); String type= input.next(); temp.next.type = type; break; default:System.out.println("输入有误"); break; } }else{ System.out.println("没有找到该书籍"); } }}5).修改排序方式
package com.bookmanagement.function;import java.util.Scanner;import com.bookmanagement.book.*;public class Flash { static Scanner input = new Scanner(System.in); public static void flashbook() { Book everList = new Book("","",0,""); Book temp = Test.head.next;//把有数据的赋值给辅助类 Book next = null; if(temp.next == null) {//链表只有一个数据不需要排序 System.out.println("链表只有一个数据不需要逆序"); return; } while(temp != null) { next = temp.next; temp.next = everList.next; everList.next = temp; temp = next; } Test.head.next = everList.next; if(Test.stroing%2==1) { System.out.println("修改为降序"); }else { System.out.println("修改为升序"); } }}6).模糊查询
package com.bookmanagement.function;import com.bookmanagement.book.*;import java.util.Scanner;public class Detailed { static Scanner input = new Scanner(System.in); public static void detailed() { System.out.println("功能:模糊查询"); detalied1(); } public static void detalied1() { System.out.println("输入需要查找的数据:1.书名2.编号3.价格4.类型"); int falg = input.nextInt(); switch (falg) { case 1: DetaBookName(); break; case 2: DetaBookNo(); break; case 3: DetaBookPrice(); break; case 4: DetaBookType(); break; default: break; } } public static void DetaBookName() { System.out.println("请输入模糊书名:"); String name = input.next(); Book temp = Test.head; boolean falg = false; if(Test.head.next == null) { System.out.println("没有书籍信息"); return; } while(true) { if(temp.next == null) { break; } if(temp.next.name.indexOf(name)==0) { System.out.println(temp.next); falg = true; } temp = temp.next; } if(!falg) { System.out.println("没有找到该书籍信息"); } } public static void DetaBookNo() { System.out.println("请输入模糊编号:"); String no = input.next(); Book temp = Test.head; boolean falg = false; if(Test.head.next == null) { System.out.println("没有书籍信息"); return; } while(true) { if(temp.next == null) { break; } if(temp.next.no.indexOf(no)==0) { System.out.println(temp.next); falg = true; } temp = temp.next; } if(!falg) { System.out.println("没有找到该书籍信息"); } } static int price; public static void DetaBookPrice() { System.out.print("输入符号:(>,<,=,>=,<=,!=):"); String symbol = input.next(); System.out.print("输入价格:"); price = input.nextInt(); System.out.println(); switch (symbol) { case ">": GreaterPrice(); break; case "<": LessPrice(); break; case "=": EqualPrice(); break; case ">=": GreaterEqualePrice(); break; case "<=": LessEqualePrice(); break; case "!=": NotEquale(); break; default:System.out.println("输入错误"); break; } } public static void GreaterPrice() { Book temp = Test.head; boolean falg = false; if(Test.head.next == null) { System.out.println("没有书籍信息"); } while(true) { if(temp.next == null) { break; } if(temp.next.price>price) { System.out.println(temp.next); falg = true; } temp = temp.next; } if(!falg) { System.out.println("没有书籍符合信息"); } } public static void LessPrice() { Book temp = Test.head; boolean falg = false; if(Test.head.next == null) { System.out.println("没有书籍信息"); } while(true) { if(temp.next == null) { break; } if(temp.next.price=price) { System.out.println(temp.next); falg = true; } temp = temp.next; } if(!falg) { System.out.println("没有书籍符合信息"); } } public static void LessEqualePrice() { Book temp = Test.head; boolean falg = false; if(Test.head.next == null) { System.out.println("没有书籍信息"); } while(true) { if(temp.next == null) { break; } if(temp.next.price<=price) { System.out.println(temp.next); falg = true; } temp = temp.next; } if(!falg) { System.out.println("没有书籍符合信息"); } } public static void NotEquale() { Book temp = Test.head; boolean falg = false; if(Test.head.next == null) { System.out.println("没有书籍信息"); } while(true) { if(temp.next == null) { break; } if(temp.next.price!=price) { System.out.println(temp.next); falg = true; } temp = temp.next; } if(!falg) { System.out.println("没有书籍符合信息"); } } public static void DetaBookType() { System.out.println("请输入模糊类型:"); String type = input.next(); Book temp = Test.head; boolean falg = false; if(Test.head.next == null) { System.out.println("没有书籍信息"); return; } while(true) { if(temp.next == null) { break; } if(temp.next.type.indexOf(type)==0) { System.out.println(temp.next); falg = true; } temp = temp.next; } if(!falg) { System.out.println("没有找到该书籍信息"); } } } 7).测试类
package com.bookmanagement.function;import java.util.Scanner;import com.bookmanagement.book.*;public class Test { static int stroing=0; public static Book head = new Book("","",0,"");//建立链表头 public static void main(String[] args) { Scanner input = new Scanner(System.in); System.out.println("-----欢迎进入图书管理系统-----"); boolean temp = true; while(temp) { 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("7).退出程序"); int choose = input.nextInt(); switch (choose) { case 1: AddBook.addbook();//添加书籍 break; case 2: DropBook.dropbook();//删除书籍 break; case 3: ShowBook.showbook();//查看书籍 break; case 4: Modify.modidy();//修改书籍 break; case 5: stroing++; Flash.flashbook();//修改排序方式 break; case 6: Detailed.detailed();//模糊查询 break; case 7: temp = false;//退出程序 break; default:System.out.println("输入错误"); break; } } System.out.println("程序退出,欢迎下次使用"); input.close(); }}到此,关于"java单链表怎么实现书籍管理系统"的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注网站,小编会继续努力为大家带来更多实用的文章!
书籍
输入
信息
图书
管理系统
系统
管理
数据
节点
类型
排序
查询
价格
方式
程序
学习
名字
指向
方法
书名
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
潮汕商城软件开发价钱
网络电话服务器拒绝
excel另保存筛选数据库
数据怎么放入数据库
披萨连接不上服务器
网络安全自查 2017
实施网络安全保密性的方法是
传输网络技术革新
新装数据库如何还原备份数据
我的世界配合数据库
互联网科技给我们带来的好处
学校国庆70周年网络安全
杭州交友软件开发如何收费
服务器更换主板会有什么影响
网络安全工作年度考核情况
网络安全法境外
张超网络技术有限公司
保定多地开展网络安全大检查
塔式服务器配什么机柜
网吧万兆服务器
警察讲网络安全
ios系统软件开发使用
主要业务软件开发
win7 服务器配置
民宗局网络安全
科技部网络安全重大专项
服务器登录BMC控制台
教育部教育信息化与网络安全
内测服务器 龙啸苍穹 龙门飞甲
怎样让word表格有数据库