使用集合写图书管理系统(实现登录注册等功能)

项目要求:
//集合建立一个图书管理系统,要求账户分为普通用户和超级用户
//只能注册普通用户,超级用户需要超级用户登录后添加
//超级用户可以管理普通用户
//账户注册第一位需要字母表示,至少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;
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值