项目要求:
//集合建立一个图书管理系统,要求账户分为普通用户和超级用户
//只能注册普通用户,超级用户需要超级用户登录后添加
//超级用户可以管理普通用户
//账户注册第一位需要字母表示,至少4位,最多10位,不允许出现特殊字符
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
public class dome{
static Scanner scanner=new Scanner(System.in);
public static void main(String[] args){
List<Users> list1=new ArrayList<Users>(); //超级用户
list1.add(new Users("root", "root"));
List<Users> list2=new ArrayList<Users>(); //普通用户
list2.add(new Users("admin", "admin"));
List<Books> list3=new ArrayList<Books>(); //书籍
list3.add(new Books("java", "张三", "北邮", 12.5, "20200301", "2020-05-21"));
list3.add(new Books("C++", "李四", "清华", 30.0, "20200302", "2019-07-21"));
Index(list1, list2, list3);
}
//开始显示界面
public static void Index(List<Users> list1,List<Users> list2,List<Books> list3) {
System.out.println("*********************************");
System.out.println("* *");
System.out.println("* *");
System.out.println("* 欢迎使用图书管理系统 *");
System.out.println("* *");
System.out.println("* *");
System.out.println("* *");
System.out.println("* -> A : 用户注册 *");
System.out.println("* -> B : 用户登录 *");
System.out.println("* -> C : 退出系统 *");
System.out.println("* *");
System.out.println("* *");
System.out.println("*********************************");
boolean s=true;
while(s) {
String option=scanner.next();
if(option.equalsIgnoreCase("A")){
s=false;
System.out.println("下面即将进行普通用户的注册...");
Wait();
myAdd(list1, list2, list3, "B");
}else if(option.equalsIgnoreCase("B")){
s=false;
deng(list1, list2, list3);
}else if(option.equalsIgnoreCase("C")){
s=false;
End();
}else {
System.out.println("输入错误,重新输入...");
}
}
}
//结束显示界面
public static void End() {
Wait();
System.out.println("*********************************");
System.out.println("* *");
System.out.println("* *");
System.out.println("* 感谢使用图书管理系统 *");
System.out.println("* *");
System.out.println("* *");
System.out.println("*********************************");
}
//等待程序
public static void Wait(){
System.out.println("*********************************");
System.out.println("* *");
System.out.println("* *");
System.out.println("* 加载中,请稍等... *");
System.out.println("* *");
System.out.println("* *");
System.out.println("*********************************");
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
System.out.println("出错,刷新重试...");
}
}
//登录方法
public static void deng(List<Users> list1,List<Users> list2,List<Books> list3) {
boolean s=true;
System.out.print("请输入账号:");
String name=scanner.next();
Iterator<Users> it1=list1.iterator();
Users user=null;
while(it1.hasNext()) {
user=it1.next();
if(name.equals(user.getName())) {
s=false;
System.out.print("您输入的是超级账户账号,请输入密码:");
String ps=scanner.next();
if(ps.equals(user.getPassword())) {
Wait();
System.out.println("登录成功!加载主页中...");
Wait();
xuan1(list1, list2, list3);
}else {
Wait();
System.out.println("账号或密码错误,请检查后重试...");
Wait();
Index(list1, list2, list3);
}
}
}
Iterator<Users> it2=list2.iterator();
while(it2.hasNext()) {
user=it2.next();
if(name.equals(user.getName())) {
s=false;
System.out.print("您输入的是普通账户账号,请输入密码:");
String ps=scanner.next();
if(ps.equals(user.getPassword())) {
Wait();
System.out.println("登录成功!加载主页中...");
Wait();
xuan2(list1, list2, list3);
}else {
Wait();
System.out.println("账号或密码错误,请检查后重试...");
Wait();
Index(list1, list2, list3);
}
}
}
if(s) {
System.out.println("不存在该账号,请检查后再试...");
Wait();
Index(list1, list2, list3);
}
}
//超级用户图书馆首页
public static void xuan1(List<Users> list1,List<Users> list2,List<Books> list3) {
System.out.println("********************");
System.out.println("* ->A : 增加书籍 *");
System.out.println("* ->B : 删除书籍 *");
System.out.println("* ->C : 修改书籍 *");
System.out.println("* ->D : 查询书籍 *");
System.out.println("* ->E : 增加用户 *");
System.out.println("* ->F : 删除用户 *");
System.out.println("* ->G : 修改用户 *");
System.out.println("* ->H : 查看用户 *");
System.out.println("* ->I : 注销用户 *");
System.out.println("********************");
String option=scanner.next();
if (option.equalsIgnoreCase("A")) {
bookadd(list1, list2, list3);
}else if (option.equalsIgnoreCase("B")) {
Wait();
bookremove(list1, list2, list3);
} else if (option.equalsIgnoreCase("C")) {
Wait();
bookrevise(list1, list2, list3);
} else if (option.equalsIgnoreCase("D")) {
booklook(list1, list2, list3);
} else if (option.equalsIgnoreCase("E")) {
Wait();
userAdd(list1, list2, list3);
} else if (option.equalsIgnoreCase("F")) {
Wait();
userRemove(list1, list2, list3);
} else if (option.equalsIgnoreCase("G")) {
Wait();
userrevise(list1, list2, list3);
} else if (option.equalsIgnoreCase("H")) {
userlook1(list1, list2, list3);
} else if (option.equalsIgnoreCase("I")) {
System.out.println("成功退出登录,即将返回首页...");
Wait();
Index(list1, list2, list3);
} else {
System.out.println("输入错误!!!");
Wait();
xuan1(list1, list2, list3);
}
}
//普通用户图书馆首页
public static void xuan2(List<Users> list1,List<Users> list2,List<Books> list3) {
System.out.println("********************");
System.out.println("* ->A : 增加书籍 *");
System.out.println("* ->B : 删除书籍 *");
System.out.println("* ->C : 修改书籍 *");
System.out.println("* ->D : 查询书籍 *");
System.out.println("* ->E : 增加用户 *");
System.out.println("* ->F : 查看用户 *");
System.out.println("* ->G : 注销用户 *");
System.out.println("********************");
String option=scanner.next();
if (option.equalsIgnoreCase("A")) {
bookadd(list1, list2, list3);
}else if (option.equalsIgnoreCase("B")) {
bookremove(list1, list2, list3);
} else if (option.equalsIgnoreCase("C")) {
bookrevise(list1, list2, list3);
} else if (option.equalsIgnoreCase("D")) {
booklook(list1, list2, list3);
} else if (option.equalsIgnoreCase("E")) {
Wait();
myAdd(list1, list2, list3, "B");
} else if (option.equalsIgnoreCase("F")) {
userlook2(list1, list2, list3);
System.out.println("输入任意字符退出...");
@SuppressWarnings("unused")
String aaa=scanner.next();
xuan2(list1, list2, list3);
} else if (option.equalsIgnoreCase("G")) {
Index(list1, list2, list3);
}else {
System.out.println("输入错误!!!");
xuan2(list1, list2, list3);
}
}
//书籍增加
public static void bookadd(List<Users> list1,List<Users> list2,List<Books> list3) {
Books book=null;
String numb=null;
boolean s=false;
System.out.print("请输入8位书号:");
while(true) {
numb=scanner.next();
if(numb.matches("\\d{8}")) {
Iterator<Books> it=list3.iterator();
while(it.hasNext()) {
book=it.next();
if(!book.getNumb().equals(numb)) {
s=true;
}else {
System.out.println("存在该书号,请重新尝试:");
s=false;
break;
}
}
}else {
System.out.println("输入有误,请重新输入:");
}
if(s) {break;}
}
System.out.print("请输入书名:");
String title=scanner.next();
System.out.print("请输入作者:");
String author=scanner.next();
System.out.print("请输入出版社:");
String press=scanner.next();
System.out.print("请输入书价:");
double money;
try {
money=scanner.nextDouble();
} catch (Exception e) {
System.out.println("书价由数字构成,已默认填写为100...");
money=100.0;
}
String date=null;
while(s) {
System.out.print("请输入日期:");
date=scanner.next();
if(!date.matches("[1-2][0-9][0-9][0-9][-][0-1][0-9][-][0-3][0-9]")) {
System.out.println("日期格式错误,请重新输入...");
}else {break;}
}
list3.add(new Books(title, author, press, money, numb, date));
Wait();
System.out.println("添加成功,去查看一下吧!");
xuan1(list1, list2, list3);
}
//书籍删除
public static void bookremove(List<Users> list1,List<Users> list2,List<Books> list3) {
boolean s=true;
String lon=null;
System.out.println("请输入书号:");
lon=scanner.next();
Books book=null;
Iterator<Books> it=list3.iterator();
while(it.hasNext()) {
book=it.next();
if(book.getNumb().equals(lon)) {
s=false;
System.out.println("将要删除以下书籍:");
System.out.println("|书名| |作者| |出版社| |价格| |书号| |日期|");
System.out.println(book+"\n(回复Y删除,回复其他退出...)");
String sure=scanner.next();
if(sure.equalsIgnoreCase("y")) {
list3.remove(book);
Wait();
System.out.println("删除成功...");
xuan1(list1,list2,list3);
break;
}else {xuan1(list1,list2,list3);}
}
}
if(s) {
Wait();
System.out.println("没有找到该图书,即将跳转到首页...");
Wait();xuan1(list1, list2, list3);
}
}
//书籍修改
public static void bookrevise(List<Users> list1,List<Users> list2,List<Books> list3) {
boolean s=true,s1=true;
System.out.println("请输入书号:");
String lon=scanner.next();
Iterator<Books> it=list3.iterator();
Books book=null;
while(it.hasNext()) {
book=it.next();
if(book.getNumb().equals(lon)) {
s1=false;s=false;
System.out.print("请输入书名:");
book.setTitle(scanner.next());
System.out.print("请输入作者:");
book.setAuthor(scanner.next());
System.out.print("请输入出版社:");
book.setPress(scanner.next());
System.out.print("请输入书价:");
book.setMoney(scanner.nextDouble());;
String date=null;
System.out.print("请输入日期:");
while(true) {
date=scanner.next();
if(!date.matches("[1-2][0-9][0-9][0-9][-][0-1][0-9][-][0-3][0-9]")) {
System.out.print("日期格式错误,请重新输入:");
}else {s=true;}
book.setdate(date);
if(s) {break;}
}
Wait();
System.out.println("修改成功...");
Wait();xuan1(list1, list2, list3);
}
}
if(s1) {
Wait();
System.out.println("没有找到该书籍,即将跳转到首页...");
Wait();xuan1(list1, list2, list3);}
}
//书籍的查询
public static void booklook(List<Users> list1,List<Users> list2,List<Books> list3) {
System.out.println("|书名| |作者| |出版社| |价格| |书号| |日期|");
Iterator<Books> it=list3.iterator();
while(it.hasNext()) {
System.out.println(it.next());
}
System.out.println("输入任意字符退出...");
@SuppressWarnings("unused")
String shu=scanner.next();
xuan1(list1, list2, list3);
}
//用户的增加
public static void userAdd(List<Users> list1,List<Users> list2,List<Books> list3) {
System.out.print("请选择添加账号类型 A:超级用户 B:普通用户");
boolean s=true;
String option=null;
while (s) {
option=scanner.next();
if(!(option.equalsIgnoreCase("a")||option.equalsIgnoreCase("b"))) {
System.out.println("输入错误,重新输入:");
}else {
break;
}
}
myAdd(list1, list2, list3, option);
}
//用户的删除
public static void userRemove(List<Users> list1,List<Users> list2,List<Books> list3) {
boolean s=true;
System.out.print("请输入账号:");
String name=scanner.next();
Users user=null;
Iterator<Users> it=list1.iterator();
while(it.hasNext()) {
user=it.next();
if(user.getName().equals(name)) {
s=false;
System.out.print("您将要删除超级用户,请输入密码:");
String ps=scanner.next();
if(user.getPassword().equals(ps)) {
list1.remove(user);
Wait();
System.out.println("删除成功!!!");
xuan1(list1, list2, list3);
}else {
Wait();
System.out.println("账号或密码错误,请重新尝试...");
xuan1(list1, list2, list3);
}
}
}
it=list2.iterator();
while(it.hasNext()) {
user=it.next();
if(user.getName().equals(name)) {
s=false;
System.out.print("请输入密码:");
String ps=scanner.next();
if(user.getPassword().equals(ps)) {
list1.remove(user);
Wait();
System.out.println("删除成功!!!");
xuan1(list1, list2, list3);
}else {
Wait();
System.out.println("账号或密码错误,请重新尝试...");
xuan1(list1, list2, list3);
}
}
}
if(s) {
System.out.println("不存在该账号,请检查后重试...");
xuan1(list1, list2, list3);
}
}
//用户的更改
public static void userrevise(List<Users> list1,List<Users> list2,List<Books> list3) {
boolean s=true;
System.out.print("请选择修改账号:");
String name=scanner.next();
Users user=null;
Iterator<Users> it=list1.iterator();
while(it.hasNext()) {
user=it.next();
if(name.equals(user.getName())) {
s=false;
System.out.print("请输入超级账户密码:");
String ps=scanner.next();
if(user.getPassword().equals(ps)) {
System.out.println("您需要修改 A:账号 B:密码");
while(true) {
String option=scanner.next();
if(option.equalsIgnoreCase("A")) {
System.out.print("请输入新账号:");
user.setName(scanner.next());
Wait();
System.out.println("更改成功,尝试登录吧...");
Wait();
Index(list1, list2, list3);
break;
}else if(option.equalsIgnoreCase("B")){
System.out.print("请输入新密码:");
user.setPassword(scanner.next());
Wait();
System.out.println("更改成功,尝试登录吧...");
Wait();
Index(list1, list2, list3);
break;
}else {
System.out.print("输入错误,请重新输入:");
}
}
}else {
System.out.println("密码错误,请检查后重试...");
xuan1(list1, list2, list3);
}
}
}
it=list2.iterator();
while(it.hasNext()) {
user=it.next();
if(name.equals(user.getName())) {
s=false;
System.out.print("请输入普通账户密码:");
String ps=scanner.next();
if(user.getPassword().equals(ps)) {
System.out.println("您需要修改 A:账号 B:密码");
while(true) {
String option=scanner.next();
if(option.equalsIgnoreCase("A")) {
System.out.print("请输入新账号:");
user.setName(scanner.next());
Wait();
System.out.println("更改成功,尝试登录吧...");
Wait();
Index(list1, list2, list3);
break;
}else if(option.equalsIgnoreCase("B")){
System.out.print("请输入新密码:");
user.setPassword(scanner.next());
Wait();
System.out.println("更改成功,尝试登录吧...");
Wait();
Index(list1, list2, list3);
break;
}else {
System.out.print("输入错误,请重新输入:");
}
}
}else {
System.out.println("密码错误,请检查后重试...");
xuan1(list1, list2, list3);
}
}
}
if(s) {
System.out.println("该账号不存在,请检查后重试...");
xuan1(list1, list2, list3);
}
}
//超级用户查看
public static void userlook1(List<Users> list1,List<Users> list2,List<Books> list3) {
Iterator<Users> it=list1.iterator();
Users user=null;
System.out.println("********超***级***用***户*********");
while(it.hasNext()){
user=it.next();
System.out.println("* 账号:"+user.getName()+" 密码:"+user.getPassword()+" *");
}
System.out.println("*********************************");
System.out.println("\n");
it=list2.iterator();
System.out.println("********普***通***用***户*********");
while(it.hasNext()){
user=it.next();
System.out.println("* 账号:"+user.getName()+" 密码:"+user.getPassword()+" *");
}
System.out.println("*********************************");
System.out.println("\n输入任意字符返回...");
@SuppressWarnings("unused")
String option=scanner.next();
xuan1(list1, list2, list3);
}
//普通用户查看
public static void userlook2(List<Users> list1,List<Users> list2,List<Books> list3) {
Iterator<Users> it=list2.iterator();
Users user=null;
System.out.println("********普***通***用***户*********");
while(it.hasNext()){
user=it.next();
System.out.println("* 账号:"+user.getName()+" 密码:"+user.getPassword()+" *");
}
System.out.println("*********************************");
}
//用户添加的实现
public static void myAdd(List<Users> list1,List<Users> list2,List<Books> list3,String option) {
System.out.println("注册须知:首位需要字母,不允许出现特殊字符!!!\n");
boolean s=false,s1=true;
Users user=null;
String name=null,ps=null;
if(option.equalsIgnoreCase("A")) {
System.out.print("请输入账号:");
while (true) {
name=scanner.next();
if(name.matches("[a-zA-Z]\\w{3,9}")) {
Iterator<Users> it=list1.iterator();
while(it.hasNext()) {
user=it.next();
if(!name.equals(user.getName())) {
s=true;
}else {
s=false;s1=false;
System.out.print("存在该用户,重新输入:");
break;
}
}
if(s1) {
it=list2.iterator();
while(it.hasNext()) {
user=it.next();
if(!name.equals(user.getName())) {
s=true;
}else {
s=false;
System.out.print("存在该用户,重新输入:");
break;
}
}
}
}else {
System.out.print("格式错误,请重新输入:");
}
if(s) {
System.out.print("请输入密码:");
ps=scanner.next();
list1.add(new Users(name, ps));
System.out.println("添加成功...");
xuan1(list1, list2, list3);
break;}
}
}
if(option.equalsIgnoreCase("B")) {
System.out.print("请输入账号:");
while (true) {
name=scanner.next();
if(name.matches("[a-zA-Z]\\w{3,9}")) {
Iterator<Users> it=list1.iterator();
while(it.hasNext()) {
user=it.next();
if(!name.equals(user.getName())) {
s=true;
}else {
s=false;s1=false;
System.out.print("存在该用户,重新输入:");
break;
}
}
if(s1) {
it=list2.iterator();
while(it.hasNext()) {
user=it.next();
if(!name.equals(user.getName())) {
s=true;
}else {
s=false;
System.out.print("存在该用户,重新输入:");
break;
}
}
}
}else {
System.out.print("格式错误,请重新输入:");
}
if(s) {
System.out.print("请输入密码:");
ps=scanner.next();
list2.add(new Users(name, ps));
System.out.println("添加成功...");
Index(list1, list2, list3);
break;
}
}
}
}
}
class Users{
private String name;
private String password;
public Users(String name, String password) {
this.name = name;
this.password = password;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
}
class Books{
private String title; //书名
private String author; //作者
private String press; //出版社
private double money; //书价
private String numb; //书号
private String date; //日期
public Books(String title, String author, String press, double money, String numb, String date) {
this.title = title;
this.author = author;
this.press = press;
this.money = money;
this.numb = numb;
this.date = date;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public String getPress() {
return press;
}
public void setPress(String press) {
this.press = press;
}
public double getMoney() {
return money;
}
public void setMoney(double money) {
this.money = money;
}
public String getNumb() {
return numb;
}
public void setNumb(String numb) {
this.numb = numb;
}
public String getdate() {
return date;
}
public void setdate(String date) {
this.date = date;
}
public String toString() {
return title + " " + author + " " + press + " " + money + " "
+ numb + " " + date;
}
}