java控制台输出图书馆管理系统(只用java代码不用数据库和GUI等)

java控制台输出图书馆管理系统(只用java代码不用数据库和GUI,java入门的新手秒懂)

在个项目中,我只用数组保存数据,和只用for循环和if条件语句来完成,连数组工具类都没用,所以导致要用到很多的条件语句,虽然比较局限,但可以让新手快速体验一下做小项目的乐趣,也可以练练for和if这些语句,练练一下它们之间嵌套的逻辑关系等,因为时间有限所以没有去优化了,主要还是让新手们体验下做java项目的面向对象编程思想(OOP),给新手们体验一下做项目的乐趣,嘿嘿!

话不多说了,直接切入正题。

设计思路如下图:


首先用eclipse建立包和类(为了简单明了我的项目结构设计如下):

//在UserData.java里边输入以下代码

package com.jiaxun.library.data;

public class UserData {
	private String username = "小询";//用户名
	private String password = "zengjiaxun";//密码
	public String getUser() {
		return username;
	}
	public String getPassword() {
		return password;
	}
	
}
//在BookData.java中输入以下代码

package com.jiaxun.library.data;


public class BookData {
	//书库
	public BookData() {
		{
			String noreaders= "无";
			for (int i = 0; i < borrowreaders.length; i++) {
				borrowreaders[i]=noreaders;
			}
			for (int i = 0; i < 5; i++) {
				switch (i) {
				case 0:
					booknames[i]="神级强者在都市";
					authors[i]="日当午";
					pubdates[i]="2016-03-31";
					sumpaginations[i]="1320";
					break;
				case 1:
					booknames[i]="都市修仙高手";
					authors[i]="雪无泪";
					pubdates[i]="2017-07-25";
					sumpaginations[i]="656";
					break;
				case 2:
					booknames[i]="护花神兵";
					authors[i]="鸡飞蛋打";
					pubdates[i]="2016-01-31";
					sumpaginations[i]="1120";
					break;
				case 3:
					booknames[i]="七界仙尊 ";
					authors[i]="无良书生";
					pubdates[i]="2017-04-04";
					sumpaginations[i]="1310";
					break;
				case 4:
					booknames[i]="恋上调皮公主";
					authors[i]="残落筱筱";
					pubdates[i]="2012-08-20";
					sumpaginations[i]="954";
					break;
				}
			}
													
		}
	}

	public String[] booknames = new String[10];// 书名
	public String[] authors = new String[10];// 作者
	public String[] pubdates = new String[10];// 出版日期
	public String[] sumpaginations = new String[10];// 总页数
	public String[] borrowreaders = new String[10];// 借阅人

}
//在Bo.java中输入以下代码

package com.jiaxun.library.bo;

import java.util.Scanner;

import com.jiaxun.library.data.BookData;
import com.jiaxun.library.data.UserData;

public class Bo {
	public static BookData book = new BookData();
	UserData user = new UserData();
	// 管理员登录验证
	public int login(String username, String password) {
		if (username.equals(user.getUser())) {
			if (password.equals(user.getPassword())) {
				return 1;// 账号和密码验证通过
			} else {
				return 0;// 密码错误
			}
		} else {
			return -1;// 账号不存在
		}
	}
	/*
	 * 菜单功能展示列表
	 * 
	 * 图书信息展示功能
	 */
	public void showBook() {
		System.out.println("本图书馆共有" + (book.booknames.length - remainSpace()) + "本书");
		int a = bookinfo();
		if (a == 0) {
			// 展示所有图书信息
			showAll();
		} else if (a > 0 && a <= book.booknames.length) {
			// 展示相关图书信息
			showPart(a);
		} else {
			System.out.println("输入的编号不合法!");
			showBook();
		}
	}
	// 展示所有图书信息
	public void showAll() {
		for (int i = 0; i < book.booknames.length; i++) {
			if (book.booknames[i] != null) {
				System.out.println("---------------------------------------编号" + (i + 1)
						+ "--------------------------------------------------------------");
				System.out.println("书籍编号为" + (i + 1) + "的详细信息为:");
				System.out.print("书名:" + book.booknames[i] + " ");
				System.out.print("作者:" + book.authors[i] + " ");
				System.out.print("出版日期:" + book.pubdates[i] + " ");
				System.out.print("总页数:" + book.sumpaginations[i] + " ");
				System.out.println("借阅者:" + book.borrowreaders[i]);
			}
		}
		System.out.println(
				"---------------------------------------------------------------------------------------------------------");
	}
	// 展示相关图书信息
	public void showPart(int a) {
		int i = a;
		System.out.println(
				"---------------分界线---------------------------------------------------------------------------------------------------");
		System.out.println("书籍编号" + (i) + "的详细信息为:");
		System.out.print("书名:" + book.booknames[i - 1] + " ");
		System.out.println("作者:" + book.authors[i - 1] + " ");
		System.out.print("出版日期:" + book.pubdates[i - 1] + " ");
		System.out.print("总页数:" + book.sumpaginations[i - 1] + " ");
		System.out.println("借阅者:" + book.borrowreaders[i - 1]);
		System.out.println(
				"---------------------------------------------------------------分界线---------------------------------------------------");
	}
	//根据编号判断要全局展示还是部分展示
	public int bookinfo() {
		for (int i = 0; i < book.booknames.length; i++) {
			if (book.booknames[i] != null) {
				System.out.println("书名编号" + (i + 1) + ":" + book.booknames[i] + " ");
			}
		}
		System.out.print("输入相应编号即可查看相应书籍的详细信息(输入0则查看所有信息):");
		Scanner scanner = new Scanner(System.in);
		int i = scanner.nextInt();
		return i;
	}
	// 录入新书籍判断
	public int addBook(String bookname, String author, String pubdate, String sumpagination) {
		int flag = 0;// 1为成功,0为图书馆已经存在该新书,-1为仓库爆满
		if (book.booknames[book.booknames.length - 1] != null) {
			flag = -1;// 爆满
		}
		if (book.booknames[book.booknames.length - 1] == null) {

			for (int i = 0; i < book.booknames.length; i++) {

				if (bookname.equals(book.booknames[i])) {
					flag = 0;// 已存在book.booknames[i]
					break;
				}
				if (!(bookname.equals(book.booknames[i]))) {
					// 添加书籍
					add(bookname, author, pubdate, sumpagination);
					flag = 1;// 成功
					break;
				}
			}
		}
		return flag;
	}
	// 录入新书籍
	public void add(String bookname, String author, String pubdate, String sumpagination) {
		for (int i = 0; i < book.booknames.length; i++) {
			if (book.booknames[i] == null) {
				book.booknames[i] = bookname;
				book.authors[i] = author;
				book.pubdates[i] = pubdate;
				book.sumpaginations[i] = sumpagination;
				break;
			}
		}
	}
	// 存放书本的剩余容量
	public int remainSpace() {
		int count = 0;
		try {
			for (int i = 0; i < book.booknames.length; i++) {
				if (book.booknames[i] == null) {
					++count;
				}
			}
		} catch (Exception e) {
			// TODO: handle exception
		}
		return count;
	}
	// 修改时根据书名查找相关的书籍信息
	public int selectBook(String bookname) {
		int flag = 0;
		for (int i = 0; i < book.booknames.length; i++) {
			if (bookname.equals("")) {
				flag = -1;// -1为未输入书名
				break;
			}
			// 其他情况下为匹配馆里的图书
			if (bookname.equals(book.booknames[i])) {
				flag = 1;// 1找到相关书名
				showPart(i + 1);
				break;
			}
			if (!bookname.equals(book.booknames[i])) {
				if (i == book.booknames.length - 1) {
					flag = 0;// 0为未找到
				}
			}
		}
		return flag;
	}
	// 根据书名查找索引,有此书返其索引,无返-1
	public int selectIndex(String bookname) {
		int flag = -1;
		for (int i = 0; i < book.booknames.length; i++) {
			if (bookname.equals(book.booknames[i])) {
				flag = i;
			}
		}
		return flag;// 找不到此书
	}
	// 修改书籍信息 1书名 2作者 3出版日期 4总页数 5借阅者
	public void modinfo(int a, String value, int index) {

		switch (a) {
		case 1:
			book.booknames[index] = value;
			break;

		case 2:
			book.authors[index] = value;
			break;
		case 3:
			book.pubdates[index] = value;
			break;
		case 4:
			book.sumpaginations[index] = value;
			break;
		case 5:
			book.borrowreaders[index] = value;
			break;
		}

	}
	// 删除书籍功能
	public void deleteBook(String bookname) {
		int a = selectIndex(bookname);
		book.booknames[a] = null;
		book.authors[a] = null;
		book.pubdates[a] = null;
		book.sumpaginations[a] = null;
		book.booknames[a] = null;

	}
	// 检查书是否存在馆里和是否已借出
	public int testReader(String bookname) {

		// 馆里有此书,查找此书的索引,有此书a>=0,无返-1
		int a = selectIndex(bookname);
		// 馆里有此书
		if (a >= 0) {
			if ((book.borrowreaders[a].equals("无") || book.borrowreaders[a].equals("")))// 无人借此书,""为扫描器的直接回车值
				return 0;//未借
			else
				return 1;//已借
		} else {
			return -1;// 馆里没有此书
		}

	}
	//将借阅者设置为无或者为空
	public void setBorrowReader(String bookname){
		int a = selectIndex(bookname);
		book.borrowreaders[a]="无";
	}
	//查询指定书的借阅者
	public String getBorrowReader(String bookname){
		int a = selectIndex(bookname);
		return book.borrowreaders[a];
	}

	//书籍借阅功能
	public void borrow(String bookname,String readername){
		int a = selectBook(bookname);
		book.borrowreaders[a]=readername;
	}
}
//在LibraryUI.java中输入以下代码
package com.jiaxun.library.ui;

import java.util.Scanner;

import com.jiaxun.library.bo.Bo;

public class LibraryUI {

	Bo bo = new Bo();

	public static void main(String[] args) {
		LibraryUI ui = new LibraryUI();
		ui.welcome();// 欢迎界面

	}

	// 欢迎界面
	public void welcome() {
		System.out.println("*********************************");
		System.out.println("********小☆询图书馆管理系统********");
		System.out.println("*********************************");
		loginBoundary();// 登录界面
	}

	// 管理员登录界面
	public void loginBoundary() {
		System.out.print("管理员账号:");
		Scanner scanner = new Scanner(System.in);
		String username = scanner.nextLine();
		System.out.print("登 录 密 码 :");
		Scanner scanner1 = new Scanner(System.in);
		String password = scanner1.nextLine();
		int flag = bo.login(username, password);// 登录验证
		switch (flag) {
		case 0:// 密码错误
			System.out.println("密码错误,请重新输入。");
			loginBoundary();
			break;

		case 1:// 验证通过
			System.out.println("登录成功!");
			showMenu();// 登录成功后跳转至菜单功能管理
			break;
		case -1:// 账户不存在
			System.out.println("您输入的管理员账号不存在,请确认后再输入。");
			loginBoundary();
			break;
		}
	}

	// 菜单功能展示列表
	public void showMenu() {
		System.out.println("请输入功能编号进入相应的功能:");
		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");
		System.out.print("请输入功能编号:");
		Scanner scanner = new Scanner(System.in);
		int a = scanner.nextInt();//
		switch (a) {
		case 1:// 图书信息
			showBook();
			returnMethod();// 返回主菜单
			break;
		case 2:// 录入新书籍
			addBook();
			break;
		case 3:// 修改书籍基本信息
			modBookInfo();
			break;
		case 4:// 删除书籍
			delete();
			break;
		case 5:// 还书
			returnBook();
			break;
		case 6:// 借阅
			borrowBook();
			break;
		case 7:// 退出登录
			welcome();
			scanner.close();
			break;
		}
	}

	// 返回主菜单功能
	public void returnMethod() {
		System.out.print("按下ENTER键返回到功能主菜单:");
		Scanner scanner = new Scanner(System.in);
		String i = scanner.nextLine();
		showMenu();
	}

	// 图书信息展示功能
	public void showBook() {
		bo.showBook();
	}

	// 录入新书籍功能
	public void addBook() {
		System.out.print("请输入要增加的书籍名称:");// 书名
		Scanner scanner = new Scanner(System.in);
		String bookname = scanner.nextLine();
		System.out.print("请输入" + bookname + "的作者:");// 作者
		Scanner scanner1 = new Scanner(System.in);
		String author = scanner1.nextLine();
		System.out.print("请输入" + bookname + "的出版日期(格式如2000-01-01):");// 出版日期
		Scanner scanner2 = new Scanner(System.in);
		String pubdate = scanner2.nextLine();
		System.out.print("请输入" + bookname + "的总页数(页):");// 总页数
		Scanner scanner3 = new Scanner(System.in);
		String sumpagination = scanner3.nextLine();
		int flag = bo.addBook(bookname, author, pubdate, sumpagination);
		// 1为成功,0为图书馆已经存在该新书,-1为仓库爆满
		switch (flag) {
		case 1:
			System.out.println("新书籍" + bookname + "添加成功,目前图书馆还有" + bo.remainSpace() + "个位置可以存放新书籍。");
			returnMethod();// 书籍添加界面中的返回功能,可选择继续添加或者回到主菜单
			break;
		case 0:
			System.out.println("添加书籍失败," + bookname + "已存在该图书馆中!");
			returnMethod();// 书籍添加界面中的返回功能,可选择继续添加或者回到主菜单
			break;
		case -1:
			System.out.println("添加失败,图书馆已经存储量已经爆满了,请删除部分书籍后再进行添加。");
			showMenu();
			break;
		}
	}

	// 修改书籍信息
	public void modBookInfo() {
		System.out.print("请输入您要操作的书名:");
		Scanner scanner = new Scanner(System.in);
		String bookname = scanner.nextLine();
		// 根据书名查找相关的书籍信息
		int flag = bo.selectBook(bookname);
		switch (flag) {
		case 0:
			System.out.print("未找到相关书籍,输入0回车进入该层功能,输入1回车返回到功能主菜单。");
			int a = scanner.nextInt();
			if (a == 0) {
				modBookInfo();
			} else if (a == 1) {

				showMenu();
			}
			break;

		case -1:
			System.out.println("书名为空,输入0回车进入该层功能,输入1回车返回到功能主菜单。");
			int a1 = scanner.nextInt();
			if (a1 == 0) {
				modBookInfo();
			} else {
				showMenu();
			}
			break;

		case 1:
			System.out.print("以上信息为相关书名查找的结果,其中(数字“1”代表书名,数字“2”代表作者,数字“3”代表出版日期,数字“4”代表总页数,数字“5”代表借阅者)输入相关数字可以修改相关信息:");
			int a2 = scanner.nextInt();// 1书名 2作者 3出版日期 4总页数 5借阅者
			if (a2 > 0 && a2 < 6) {
				System.out.print("请输入您想修改的" + sortName(a2) + ":");
				Scanner scanner2 = new Scanner(System.in);
				String value = scanner2.nextLine();
				int index = bo.selectIndex(bookname);
				bo.modinfo(a2, value, index);
				System.out.println(bookname + "这本书的相关信息修改成功!");
				returnMethod();
			} else {
				System.out.println("您输入的数字不合法。请重试!");
				modBookInfo();
			}

			break;

		}
	}

	// 修改的分类名称
	public String sortName(int flag) {
		if (flag == 1)
			return "书名";
		if (flag == 2)
			return "作者";
		if (flag == 3)
			return "出版日期";
		if (flag == 4)
			return "总页数";
		else
			return "借阅者";
	}

	// 删除书籍功能
	public void delete() {
		System.out.print("请输入要被删除的书名:");
		Scanner scanner = new Scanner(System.in);
		String bookname = scanner.nextLine();
		int flag = bo.testReader(bookname);
		// 存在此书并无人借
		if (flag == 0) {
			bo.deleteBook(bookname);
			System.out.println(bookname + "已从图书馆成功移除!输入0回到主菜单,输入1则继续删除");
			delReturn();
		} else if (flag == 1) {// 有人借
			System.out.println("此书已借出,请等待归还后再删除。输入0回到主菜单,输入1则继续删除");
			delReturn();
		} else {// 不存在此书
			System.out.println("本馆不存在此书,请仔细较对。输入0回到主菜单,输入1则继续删除");
			delReturn();
		}

	}

	// 删除的返回操作
	public void delReturn() {

		Scanner scanner1 = new Scanner(System.in);
		int i = scanner1.nextInt();
		if (i == 0) {
			showMenu();
		} else if (i == 1) {
			delete();
		}
	}

	// 还书功能
	public void returnBook() {
		System.out.print("请输入要还的书籍名称:");
		Scanner scanner = new Scanner(System.in);
		String bookname = scanner.nextLine();
		int flag = bo.testReader(bookname);
		if (flag == 0) {
			System.out.println(bookname + "暂未借出。");
			System.out.print("输入0回车返回至主菜单,输入其他键则继续还书");
			String a = scanner.nextLine();
			if(a.equals("0")){
				showMenu();
			}else {
				returnBook();
			}
		} else if (flag == -1) {
			System.out.println(bookname + "不存在该图书馆中。");
			System.out.print("输入0回车返回至主菜单,输入其他键则继续还书");
			String a = scanner.nextLine();
			if(a.equals("0")){
				showMenu();
			}else {
				returnBook();
			}
		} else if (flag == 1) {

			System.out.println(bo.getBorrowReader(bookname) + "已经还书成功!");
			bo.setBorrowReader(bookname);
			System.out.print("输入0回车返回至主菜单,输入其他键则继续还书");
			String a = scanner.nextLine();
			if(a.equals("0")){
				showMenu();
			}else {
				returnBook();
			}
		}
	}

	// 书籍借阅功能
	public void borrowBook() {
		System.out.print("请输入要借的书名:");
		Scanner scanner = new Scanner(System.in);
		String bookname = scanner.nextLine();
		int flag = bo.testReader(bookname);
		switch (flag) {
		case 0://存在此书并无人借的情况

			System.out.println("请输入借阅者的名字:");
			String readername = scanner.nextLine();
			bo.borrow(bookname,readername);
			System.out.println(readername+"从该图书馆里借出了以"+bookname+"为名的书籍。");
			System.out.print("输入0回车返回至主菜单,输入1回车则继续借书:");
			int a0 = scanner.nextInt();
				if(a0==0)
					showMenu();
				if(a0==1)
					borrowBook();
			break;

		case 1://存在此书被借的情况
			System.out.println("借书失败," + bookname + "已被借!");
			System.out.print("输入0回车返回至主菜单,输入1回车则继续借书:");
			int a = scanner.nextInt();
			switch (a) {
			case 0:
				showMenu();
				break;

			case 1:
				borrowBook();
				break;
				
				}
		case -1://不存在此书的情况
			System.out.println("借书失败," + bookname + "不存在该图书馆中。");
			System.out.print("输入0回车返回至主菜单,输入1回车则继续借书:");
			int a1 = scanner.nextInt();
			switch (a1) {
			case 0:
				showMenu();
				break;

			case 1:
				borrowBook();
				break;

			}
		}
	}
}



 

  • 38
    点赞
  • 188
    收藏
    觉得还不错? 一键收藏
  • 12
    评论
系统介绍 图书馆管理系统主要的目的是实现图书馆的信息化管理图书馆的主要业务就是新书的借阅和归还,因此系统最核心的功能便是实现图书的借阅和归还。此外,还需要提供图书的信息查询、读者图书借阅情况的查询等功能。项目实施后,能够提高图书馆的图书借阅、归还流程,提高工作效率。整个项目需要在两个月的时间内交付用户使用。 操作注意事项 (1)本系统的用户名为:tsoft,密码为:111 (2)读者类型不同,可借图书的本数也有所区别。 操作流程 (1)用户登录图书馆管理系统后,可看到图书借阅排行榜,通过排行榜可以看出借阅图书的名称、图书类型、借阅次数等相关信息。 (2)单击“系统设置”/“图书馆信息”命令,对图书馆信息进行设置操作。 (3)单击“系统设置”/“管理员设置”命令,对管理员信息进行添加、权限设置、查询及删除操作。 (4)单击“系统设置”/“参数设置”命令,对办证费用及有效期限信息进行添加操作。 (5)单击“系统设置”/“书架设置”命令,对书架信息进行添加、修改及删除操作。 (6)单击“读者管理”/“读者类型管理”命令,对读者类型信息进行添加、修改及删除操作。 (7)单击“读者管理”/“读者档案管理”命令,对读者信息进行添加、修改及删除操作。 (8)单击“
好的,以下是一个简单的Java控制台实现图书馆系统代码,您可以根据自己的需求进行修改和完善: ```java import java.util.Scanner; public class LibrarySystem { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); Library library = new Library(); boolean flag = true; while (flag) { System.out.println("欢迎使用图书馆系统,请选择您需要的操作:"); System.out.println("1. 添加书籍"); System.out.println("2. 借阅书籍"); System.out.println("3. 归还书籍"); System.out.println("4. 查询书籍"); System.out.println("5. 退出系统"); int choice = scanner.nextInt(); switch (choice) { case 1: System.out.print("请输入书籍名称:"); String bookName = scanner.next(); library.addBook(bookName); break; case 2: System.out.print("请输入书籍名称:"); bookName = scanner.next(); if (library.borrowBook(bookName)) { System.out.println("借阅成功!"); } else { System.out.println("借阅失败,该书籍已被借出!"); } break; case 3: System.out.print("请输入书籍名称:"); bookName = scanner.next(); if (library.returnBook(bookName)) { System.out.println("归还成功!"); } else { System.out.println("归还失败,该书籍未被借出或不存在!"); } break; case 4: library.showBooks(); break; case 5: flag = false; System.out.println("感谢使用本系统!"); break; default: System.out.println("非法操作!"); break; } } } } class Library { private String[] books = new String[100]; private int count = 0; public void addBook(String bookName) { books[count++] = bookName; System.out.println("添加成功!"); } public boolean borrowBook(String bookName) { for (int i = 0; i < count; i++) { if (books[i].equals(bookName)) { books[i] = null; return true; } } return false; } public boolean returnBook(String bookName) { for (int i = 0; i < count; i++) { if (books[i] != null && books[i].equals(bookName)) { return false; } } books[count++] = bookName; return true; } public void showBooks() { System.out.println("图书馆里有以下书籍:"); for (int i = 0; i < count; i++) { System.out.println(books[i]); } } } ``` 以上代码实现了一个简单的图书馆系统,用户可以通过控制台实现添加书籍、借阅书籍、归还书籍、查询书籍等功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 12
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值