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 ( ) ) ;
}
}
}