Java核心编程考试题目
一、 完成简易书籍管理系统
Book类: 定义了书的一些属性(书名,作者,价格,分类,状态)并且写了属性的get、set方法
Library类: 写了登录函数(1、普通用户,2、管理员,3、退出系统),
Person类:定义的人的属性(姓名,性别,年龄)并且写了属性的get、set方法,定义了一些书。
operate接口:操作的接口,操作方法:查询/查阅,删除/借阅,增加/还书,显示书籍列表
Root类:继承了Person类,实现operate(查阅,删除,增加,显示书籍列表)接口
实现功能:
1.整理书籍 2.查阅书籍 3.增加书籍 4.删除书籍 5.显示书籍列表 6.退出
User类:继承了Person类,实现operate(查询,借阅,还书,显示书籍列表)接口
实现功能:
1.查询书籍 2.借阅书籍 3.归还书籍 4.显示书籍列表 5.退出
Main类:Main中的主函数开启整个项目。
异常:完成异常处理机制
注释:要包含每个类的Javadoc注释,方法位置添加注释
序列化/反序列化:可将内容数据存储到硬盘上同时,还可将内容数据重新输入到程序中
二、 项目结构图

三、 运行结果示意图
1. 菜单选项
黄色区域为总菜单,选择权限 分普通用户,管理员 最后一个为退出程序




每个用户都有个退出功能,退出的是当前账户角色,也就是返回总菜单处

选择 2进入管理员界面
有五个操作 除了整理书籍,增加书籍和删除书籍外,其他和普通用户相同

添加书籍,删除书籍的操作。

实现整理书籍功能

Java代码实现:
1 package com.king.test.eneity; 2 3 public class Main { 4 5 public static void main(String[] args) { 6 // TODO Auto-generated method stub 7 Library.login(); 8 return; 9 } 10 }
1 package com.king.test.eneity; 2 3 public class Book { 4 //定义图书类 5 /* 6 * 书名,作者,价格,分类,状态 7 */ 8 private String bName; 9 private String bWriter; 10 private String bPrace; 11 private String bClass; 12 private String bStatus; 13 14 public String getbName() { 15 return bName; 16 } 17 public void setbName(String bName) { 18 this.bName = bName; 19 } 20 public String getbWriter() { 21 return bWriter; 22 } 23 public void setbWriter(String bWriter) { 24 this.bWriter = bWriter; 25 } 26 public String getbPrace() { 27 return bPrace; 28 } 29 public void setbPrace(String bPrace) { 30 this.bPrace = bPrace; 31 } 32 public String getbClass() { 33 return bClass; 34 } 35 public void setbClass(String bClass) { 36 this.bClass = bClass; 37 } 38 public String getbStatus() { 39 return bStatus; 40 } 41 public void setbStatus(String bStatus) { 42 this.bStatus = bStatus; 43 } 44 }
1 package com.king.test.eneity; 2 3 import java.util.Scanner; 4 5 public class Library { 6 //登录函数 7 public static void login(){ 8 Person p = new Person(); 9 Object[][] books = p.getBooks(); 10 Scanner sc = new Scanner(System.in); 11 while(true){ 12 System.out.println("=============简易图书管理系统==============="); 13 System.out.println("请登录:1.普通用户 2.管理员 3.退出系统"); 14 int select = sc.nextInt(); 15 if(select == 1){ 16 User u = new User(); 17 System.out.println("请输入姓名:"); 18 u.setName(sc.next()); 19 System.out.println("请输入性别:"); 20 u.setSex(sc.next()); 21 System.out.println("请输入年龄:"); 22 u.setAge(sc.nextInt()); 23 System.out.print("当前为普通用户:"+"姓名:"+u.getName()+" 性别:"+u.getSex()+" 年龄:"+u.getAge()); 24 System.out.println(); 25 while(true){ 26 System.out.println("请输入你的操作:1.查询书籍 2.借阅书籍 3.归还书籍 4.显示书籍列表 5.退出"); 27 int select2 = sc.nextInt(); 28 if(select2 == 1){ 29 u.Read(books); 30 } 31 if(select2 == 2){ 32 u.Borrow(books); 33 } 34 if(select2 == 3){ 35 u.Back(books); 36 } 37 if(select2 == 4){ 38 u.Show(books); 39 } 40 if(select2 == 5){ 41 System.out.println("退出成功!!!"); 42 break; 43 } 44 if(select2 > 5 || select2 < 1){ 45 System.out.println("请输入1~5进行选择!!!"); 46 } 47 } 48 } 49 if(select == 2){ 50 Root r = new Root(); 51 System.out.println("请输入姓名:"); 52 r.setName(sc.next()); 53 System.out.println("请输入性别:"); 54 r.setSex(sc.next()); 55 System.out.println("请输入年龄:"); 56 r.setAge(sc.nextInt()); 57 System.out.print("当前为管理员:"+"姓名:"+r.getName()+" 性别:"+r.getSex()+" 年龄:"+r.getAge()); 58 System.out.println(); 59 while(true){ 60 System.out.println("请输入你的操作:1.查询书籍 2.借阅书籍 3.归还书籍 4.显示书籍列表 5.整理书籍 6.增加书籍 7.删除书籍 8.退出"); 61 int select2 = sc.nextInt(); 62 if(select2 == 1){ 63 r.Read(books); 64 } 65 if(select2 == 2){ 66 r.Borrow(books); 67 } 68 if(select2 == 3){ 69 r.Back(books); 70 } 71 if(select2 == 4){ 72 r.Show(books); 73 } 74 if(select2 == 5){ 75 r.Clear(books); 76 } 77 if(select2 == 6){ 78 books = r.Create(books); 79 } 80 if(select2 == 7){ 81 r.Delete(books); 82 } 83 if(select2 == 8){ 84 System.out.println("退出成功!!!"); 85 break; 86 } 87 if(select2 > 8 || select2 < 1){ 88 System.out.println("请输入1~8进行选择!!!"); 89 } 90 } 91 } 92 if(select == 3){ 93 System.out.println("退出图书馆系统成功!!!"); 94 break; 95 } 96 if(select > 3 || select < 1){ 97 System.out.println("请输入1~5进行选择!!!"); 98 } 99 } 100 sc.close(); 101 } 102 }
1 package com.king.test.eneity; 2 3 public class Person { 4 /* 5 * 定义的人的属性(姓名,性别,年龄) 6 */ 7 private String name; 8 private String sex; 9 private int age; 10 private Object[][] books = new Object[][]{ 11 {"西游记","吴承恩",10.0,"名著",true}, 12 {"红楼梦","曹雪芹",20.0,"名著",true}, 13 {"三国演义","罗贯中",15.0,"名著",true}, 14 {"水浒传","施耐庵",25.0,"名著",true}, 15 {"故事会","佚名",6.0,"杂志",true}, 16 {"知音漫客","佚名",12.0,"杂志",true}, 17 }; 18 public Object[][] getBooks() { 19 return books; 20 } 21 public void setBooks(Object[][] books) { 22 this.books = books; 23 } 24 public String getName() { 25 return name; 26 } 27 public void setName(String name) { 28 this.name = name; 29 } 30 public String getSex() { 31 return sex; 32 } 33 public void setSex(String sex) { 34 this.sex = sex; 35 } 36 public int getAge() { 37 return age; 38 } 39 public void setAge(int age) { 40 this.age = age; 41 } 42 43 }
1 package com.king.test.eneity; 2 3 import java.util.Scanner; 4 5 public class Root extends Person implements Operate { 6 Scanner sc = new Scanner(System.in); 7 @Override 8 public void Read(Object[][] books) { 9 // TODO Auto-generated method stub 10 System.out.println("请输入书名进行查询:"); 11 int t = -1; 12 String book = sc.next(); 13 for(int i=0;i<books.length;i++){ 14 if(books[i][0].equals(book)){ 15 t = i; 16 break; 17 } 18 } 19 if(t != -1){ 20 System.out.println("有此书籍..."); 21 System.out.println(books[t][0]+" "+books[t][1]+" "+books[t][2]+" "+books[t][3]+" "+books[t][4]); 22 }else{ 23 System.out.println("本书馆没有此书籍..."); 24 } 25 } 26 27 @Override 28 public void Delete(Object[][] books) { 29 // TODO Auto-generated method stub 30 System.out.println("请输入要删除的书名:"); 31 String book = sc.next(); 32 int t = -1; 33 for(int i=0;i<books.length;i++){ 34 if(books[i][0].equals(book)){ 35 books[i][0] = "Null"; 36 books[i][1] = "Null"; 37 books[i][2] = 0.0; 38 books[i][3] = "Null"; 39 books[i][4] = false; 40 t = 1; 41 break; 42 } 43 } 44 if(t == 1){ 45 System.out.println("删除书籍成功!!!"); 46 } 47 else{ 48 System.out.println("删除失败!没有该书籍..."); 49 } 50 } 51 52 @Override 53 public void Borrow(Object[][] books) { 54 // TODO Auto-generated method stub 55 System.out.println("请输入需要借阅的书籍:"); 56 String book = sc.next(); 57 int t = -1; 58 for(int i=0;i<books.length;i++){ 59 if(books[i][0].equals(book)){ 60 if((boolean)(books[i][4])){ 61 books[i][4] = false; 62 t = i; 63 break; 64 } 65 else{ 66 t = -2; 67 break; 68 } 69 } 70 else{ 71 t = -3; 72 } 73 } 74 if(t > -1){ 75 System.out.println("成功借阅!"); 76 } 77 if(t == -2){ 78 System.out.println("借阅失败!该书籍已被借阅..."); 79 } 80 if(t == -3){ 81 System.out.println("本书馆没有该书籍..."); 82 } 83 } 84 85 @Override 86 public Object[][] Create(Object[][] books) { 87 // TODO Auto-generated method stub 88 System.out.println("请输入要增加的书籍信息:"); 89 int k = books.length; 90 Object[][] newBooks = new Object[k+1][5]; 91 for(int i=0;i<books.length;i++){ 92 newBooks[i][0] = books[i][0]; 93 newBooks[i][1] = books[i][1]; 94 newBooks[i][2] = books[i][2]; 95 newBooks[i][3] = books[i][3]; 96 newBooks[i][4] = books[i][4]; 97 } 98 try { 99 System.out.println("请输入书名:"); 100 newBooks[k][0] = sc.next(); 101 System.out.println("请输入作者:"); 102 newBooks[k][1] = sc.next(); 103 System.out.println("请输入价格:"); 104 newBooks[k][2] = sc.nextDouble(); 105 System.out.println("请输入分类:"); 106 newBooks[k][3] = sc.next(); 107 System.out.println("请输入书籍状态(true or false)"); 108 newBooks[k][4] = sc.nextBoolean(); 109 System.out.println("添加成功!!!"); 110 } catch (Exception e) { 111 System.out.println("添加中断,数据输入异常!!!"); 112 e.printStackTrace(); 113 } 114 return newBooks; 115 } 116 117 @Override 118 public void Back(Object[][] books) { 119 // TODO Auto-generated method stub 120 System.out.println("请输入要归还的书名:"); 121 String book = sc.next(); 122 int t = -1; //用于判断是否查询到书籍,负数为否 123 for(int i=0;i<books.length;i++){ 124 if(books[i][0].equals(book)){ 125 if((boolean)books[i][4]){ 126 t = -3; 127 break; 128 } 129 else{ 130 t = i; 131 books[i][4] = true; 132 break; 133 } 134 } 135 else{ 136 t = -2; 137 } 138 } 139 if(t > -1){ 140 System.out.println("归还成功!!!"); 141 } 142 if(t == -2){ 143 System.out.println("本书馆没有该书籍..."); 144 } 145 if(t == -3){ 146 System.out.println("该书籍还没有被借阅..."); 147 } 148 } 149 150 @Override 151 public void Show(Object[][] books) { 152 // TODO Auto-generated method stub 153 System.out.println("图书列表如下:(书名-作者-价格-分类-状态"); 154 for(int i=0;i<books.length;i++){ 155 System.out.println(books[i][0]+"\t"+books[i][1]+"\t"+books[i][2]+"\t"+books[i][3]+"\t"+books[i][4]); 156 } 157 } 158 159 @Override 160 public void Clear(Object[][] books) { 161 // TODO Auto-generated method stub 162 System.out.println("书籍按价格整理如下:"); 163 for(int j=0;j<books.length-1;j++){ 164 for(int i=0;i<books.length-1-j;i++){ 165 if((Double)books[i][2] > (Double)books[i+1][2]){ 166 Object[] t = new Object[5]; 167 t[0] = books[i][0]; 168 t[1] = books[i][1]; 169 t[2] = books[i][2]; 170 t[3] = books[i][3]; 171 t[4] = books[i][4]; 172 books[i][0] = books[i+1][0]; 173 books[i][1] = books[i+1][1]; 174 books[i][2] = books[i+1][2]; 175 books[i][3] = books[i+1][3]; 176 books[i][4] = books[i+1][4]; 177 books[i+1][0] = t[0]; 178 books[i+1][1] = t[1]; 179 books[i+1][2] = t[2]; 180 books[i+1][3] = t[3]; 181 books[i+1][4] = t[4]; 182 } 183 } 184 } 185 186 for(int i=0;i<books.length;i++){ 187 System.out.println(books[i][0]+"\t"+books[i][1]+"\t"+books[i][2]+"\t"+books[i][3]+"\t"+books[i][4]); 188 } 189 } 190 }
1 package com.king.test.eneity; 2 3 import java.util.Scanner; 4 5 public class User extends Person implements Operate { 6 Scanner sc = new Scanner(System.in); 7 @Override 8 public void Read(Object[][] books) { 9 // TODO Auto-generated method stub 10 System.out.println("请输入书名进行查询:"); 11 int t = -1; 12 String book = sc.next(); 13 for(int i=0;i<books.length;i++){ 14 if(books[i][0].equals(book)){ 15 t = i; 16 break; 17 } 18 } 19 if(t != -1){ 20 System.out.println("有此书籍..."); 21 System.out.println(books[t][0]+" "+books[t][1]+" "+books[t][2]+" "+books[t][3]+" "+books[t][4]); 22 }else{ 23 System.out.println("本书馆没有此书籍..."); 24 } 25 } 26 27 @Override 28 public void Borrow(Object[][] books) { 29 System.out.println("请输入需要借阅的书籍:"); 30 String book = sc.next(); 31 int t = -1; 32 for(int i=0;i<books.length;i++){ 33 if(books[i][0].equals(book)){ 34 if((boolean)(books[i][4])){ 35 books[i][4] = false; 36 t = i; 37 break; 38 } 39 else{ 40 t = -2; 41 break; 42 } 43 } 44 else{ 45 t = -3; 46 } 47 } 48 if(t > -1){ 49 System.out.println("成功借阅!"); 50 } 51 if(t == -2){ 52 System.out.println("借阅失败!该书籍已被借阅..."); 53 } 54 if(t == -3){ 55 System.out.println("本书馆没有该书籍..."); 56 } 57 } 58 59 @Override 60 public Object[][] Create(Object[][] books) { 61 return books; 62 // TODO Auto-generated method stub 63 64 } 65 66 @Override 67 public void Show(Object[][] books) { 68 // TODO Auto-generated method stub 69 System.out.println("图书列表如下:(书名-作者-价格-分类-状态"); 70 for(int i=0;i<books.length;i++){ 71 System.out.println(books[i][0]+"\t"+books[i][1]+"\t"+books[i][2]+"\t"+books[i][3]+"\t"+books[i][4]); 72 } 73 } 74 75 @Override 76 public void Delete(Object[][] books) { 77 // TODO Auto-generated method stub 78 79 } 80 81 @Override 82 public void Back(Object[][] books) { 83 // TODO Auto-generated method stub 84 System.out.println("请输入要归还的书名:"); 85 String book = sc.next(); 86 int t = -1; //用于判断是否查询到书籍,负数为否 87 for(int i=0;i<books.length;i++){ 88 if(books[i][0].equals(book)){ 89 if((boolean)books[i][4]){ 90 t = -3; 91 break; 92 } 93 else{ 94 t = i; 95 books[i][4] = true; 96 break; 97 } 98 } 99 if(!books[i][0].equals(book)){ 100 t = -2; 101 } 102 } 103 if(t > -1){ 104 System.out.println("归还成功!!!"); 105 } 106 if(t == -2){ 107 System.out.println("本书馆没有该书籍..."); 108 } 109 if(t == -3){ 110 System.out.println("该书籍还没有被借阅..."); 111 } 112 } 113 114 @Override 115 public void Clear(Object[][] books) { 116 // TODO Auto-generated method stub 117 118 } 119 }
package com.king.test.eneity; public interface Operate { /* * 操作方法:查询/查阅,删除/借阅,增加/还书,显示书籍列表 */ //查询、查阅方法 public void Read(Object[][] books); //删除/借阅 public void Delete(Object[][] books); public void Borrow(Object[][] books); //增加/还书 public Object[][] Create(Object[][] books); public void Back(Object[][] books); //显示 public void Show(Object[][] books); //整理 public void Clear(Object[][] books); }
完成于2020.07.08

浙公网安备 33010602011771号