Test测试
package LibraryManagement;
import java.util.Scanner;
/
public class Test {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
Users users = new Users();
boolean flag = false;
boolean loop = true;
boolean loop1 = true;
while (loop) {
System.out.println("1:用户注册");
System.out.println("2:用户登录");
System.out.println("3:用户退出");
int key = scanner.nextInt();
scanner.nextLine();
switch (key) {
case 1:
System.out.printf("请输入你想要注册的用户名:\n");
String name = scanner.nextLine();
System.out.printf("请输入你想要注册的用户的密码:\n");
String passward = scanner.nextLine();
InformationNode user = new InformationNode(name, passward);
users.register(user);
break;
case 2:
System.out.printf("请输入你想要登录的用户名:\n");
String Uname = scanner.nextLine();
System.out.printf("请输入你想要登录的用户的密码:\n");
String Upassward = scanner.nextLine();
users.Loogin(Uname, Upassward);
break;
case 3:
scanner.close();
loop = false;
break;
default:
break;
}
}
}
}
用户
package LibraryManagement;
import java.lang.annotation.ElementType;
import java.util.Scanner;
public class Users {
Scanner scanner = new Scanner(System.in);
Library library = new Library();
private InformationNode head = new InformationNode("", "");
public void register(InformationNode users_informationNode) {
InformationNode temp = head;
boolean flag = false;
while (true) {
if (temp.next == null) {
break;
}
if (temp.next.getUser_name().equals(users_informationNode.getUser_name())) {
flag = true;
break;
}
temp = temp.next;
}
if (flag) {
System.out.printf("用户注册失败:%s 已经有该用户存在\n", users_informationNode.getUser_name());
} else {
temp.next = users_informationNode;
System.out.printf("用户注册成功:%s\n", users_informationNode.getUser_name());
}
}
public void Loogin(String name, String passward) {
InformationNode temp = head;
boolean flag = false;
boolean flag1 = false;
while (true) {
if (temp.next == null) {
break;
}
if (temp.next.getUser_name().equals(name)){
flag=true;
}
if (temp.next.getUser_password().equals(passward)) {
flag1 = true;
break;
}
temp = temp.next;
}
if (flag) {
if (flag1) {
System.out.println("登入成功");
boolean loop1=true;
while (loop1) {
System.out.println("s(show):查询所有书籍");
System.out.println("N(show by name):根据图书名称查询书籍");
System.out.println("n(show by numbers):根据图书编号查询书籍");
System.out.println("a(add):添加书籍");
System.out.println("r(revise):修改书籍");
System.out.println("D(Delet by book name):根据图书名删除书籍");
System.out.println("d(delet by book numbers):根据图书编号删除书籍");
System.out.println("e(exit):退出程序");
char keys = scanner.next().charAt(0);
switch (keys) {
case 's':
library.Look_All_Book();
break;
case 'N':
System.out.printf("请输入你想要查询的书籍名称:\n");
String lname = scanner.next();
library.look_book_by_names(lname);
break;
case 'n':
System.out.printf("请输入你想要查询的书的编号:\n");
scanner.nextLine();
if (scanner.hasNextInt()){
int numbers = scanner.nextInt();
library.look_book_by_numbers(numbers);
break;
}else {
System.out.println("编号输入有误,请输入整数");
break;
}
case 'a':
System.out.printf("请输入你想要添加的书籍编号:\n");
scanner.nextLine();
if (scanner.hasNextInt()){
int bnumbers = scanner.nextInt();
System.out.printf("请输入你想要添加的书籍名称:\n");
scanner.nextLine();
String bname = scanner.next();
System.out.println("请输入你想要添加的书籍的作者:");
String author = scanner.next();
System.out.println("请输入你想要添加的书的价格:");
if (scanner.hasNextInt()){
int price = scanner.nextInt();
BookNode book = new BookNode(bnumbers, bname, author, price);
library.add(book);
break;
}
else {
System.out.printf("价格输入有误!,请重新输入\n");
break;
}
}else {
System.out.printf("编号输入有误!,请重新输入\n");
break;
}
case 'r':
System.out.printf("请输入你想要修改的书籍编号:\n");
scanner.nextLine();
if (scanner.hasNextInt()){
int rnumbers = scanner.nextInt();
System.out.printf("请输入你想要修改的书籍名称:\n");
scanner.nextLine();
String rname = scanner.next();
System.out.println("请输入你想要修改的书籍的作者:");
scanner.nextLine();
String rauthor = scanner.next();
System.out.println("请输入你想要修改的书的价格:");
scanner.nextLine();
if (scanner.hasNextInt()){
int rprice = scanner.nextInt();
BookNode rbook = new BookNode(rnumbers, rname, rauthor, rprice);
library.revise(rbook);
break;
}else {
System.out.printf("修改的价格格式有误!,要修改请重新修改!");
break;
}
}else {
System.out.printf("编号输入有误,要修改请重新修改!");
break;
}
case 'D':
System.out.println("请输入你想删除的书籍的名称:");
scanner.nextLine();
String dname = scanner.next();
library.deletebookbyname(dname);
break;
case 'd':
System.out.println("请输入你想要删除的书籍的编号:");
scanner.nextLine();
if (scanner.hasNextInt()){
int dnumbers = scanner.nextInt();
library.deletebookbynumbers(dnumbers);
break;
}else {
System.out.printf("输入的编号格式有误,要删除请重新删除!");
break;
}
case 'e':
loop1 = false;
break;
default:
break;
}
}
} else {
System.out.println("密码输入错误,请重新登录");
}
} else {
System.out.printf("用户名:%s,不存在\n", name);
}
}
}
用户信息
package LibraryManagement;
public class InformationNode {
private String User_name;
private String User_password;
public InformationNode next;
public InformationNode(String user_name, String user_password) {
this.User_name = user_name;
this.User_password = user_password;
}
public String getUser_name() {
return User_name;
}
public void setUser_name(String user_name) {
User_name = user_name;
}
public String getUser_password() {
return User_password;
}
public void setUser_password(String user_password) {
User_password = user_password;
}
@Override
public String toString() {
return "Users{" +
"User_name='" + User_name + '\'' +
", User_password='" + User_password + '\'' +
'}';
}
}
图书信息类
package LibraryManagement;
public class BookNode {
private int numbers;
private String name;
private String author;
private int price;
public BookNode next;
public BookNode(int numbers,String name,String author,int price){
this.numbers=numbers;
this.name=name;
this.author=author;
this.price=price;
}
@Override
public String toString() {
return "BookNode{" +
"numbers=" + numbers +
", name='" + name + '\'' +
", author='" + author + '\'' +
", price=" + price +
'}';
}
public int getNumbers() {
return numbers;
}
public void setNumbers(int numbers) {
this.numbers = numbers;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public int getPrice() {
return price;
}
public void setPrice(int price) {
this.price = price;
}
}
图书类
package LibraryManagement;
public class Library {
private BookNode head = new BookNode(0, "", "", 0);
public void add(BookNode bookNode) {
BookNode temp = head;
boolean flag = false;
boolean flag2 = false;
while (true) {
if (temp.next == null) {
break;
}
if (temp.next.getNumbers() > bookNode.getNumbers()) {
break;
} else if (temp.next.getNumbers() == bookNode.getNumbers()) {
flag = true;
break;
}else if (temp.next.getName().equals(bookNode.getName())) {
flag2 = true;
break;
}
temp = temp.next;
}
if (flag) {
System.out.printf("准备输入的书的编号%d,已经存在不能加入\n", bookNode.getNumbers());
} else if (flag2){
System.out.printf("准备输入的书的书名%s,已经存在不能加入\n", bookNode.getName());
}else {
bookNode.next = temp.next;
temp.next = bookNode;
System.out.printf("添加成功\n");
}
}
public void Look_All_Book() {
if (head.next == null) {
System.out.println("没有书籍");
return;
}
BookNode temp = head.next;
while (true) {
if (temp == null) {
break;
}
System.out.println(temp);
temp = temp.next;
}
}
public void look_book_by_numbers(int numbers){
BookNode temp=head;
boolean flag=false;
while (true){
if (temp.next==null){
break;
}
if (temp.next.getNumbers()==numbers){
flag=true;
break;
}
temp=temp.next;
}
if (flag){
System.out.println(temp.next);
}else {
System.out.printf("查看的书籍编号:%d不存在\n",numbers);
}
}
public void look_book_by_names(String name){
BookNode temp=head;
boolean flag=false;
while (true){
if (temp.next==null){
break;
}
if (temp.next.getName().equals(name)){
flag=true;
break;
}
temp=temp.next;
}
if (flag){
System.out.println(temp.next);
}else {
System.out.printf("要查看的书籍《%s》,不存在\n",name);
}
}
public void deletebookbynumbers(int numbers){
BookNode temp=head;
boolean flag=false;
while (true){
if (temp.next==null){
break;
}
if (temp.next.getNumbers()==numbers){
flag=true;
break;
}
temp=temp.next;
}
if (flag){
temp.next=temp.next.next;
System.out.printf("删除成功\n");
}else {
System.out.printf("删除的书籍编号:%d不存在\n",numbers);
}
}
public void deletebookbyname(String name){
BookNode temp=head;
boolean flag=false;
while (true){
if (temp.next==null){
break;
}
if (temp.next.getName().equals(name)){
flag=true;
break;
}
temp=temp.next;
}
if (flag){
temp.next=temp.next.next;
System.out.printf("删除成功\n");
}else {
System.out.printf("删除的书籍名称:《%s》不存在\n",name);
}
}
public void revise(BookNode newbookNode){
if (head.next==null){
System.out.println("链表为空");
return;
}
BookNode temp=head.next;
boolean flag=false;
while (true){
if (temp==null){
break;
}
if (temp.getNumbers()== newbookNode.getNumbers()){
flag=true;
break;
}
temp=temp.next;
}
if (flag){
temp.setName(newbookNode.getName());
temp.setAuthor(newbookNode.getAuthor());
temp.setPrice(newbookNode.getPrice());
System.out.printf("修改成功\n");
}else {
System.out.printf("没有找到编号%d的节点,不能修改\n",newbookNode.getNumbers());
}
}
}