分层:每个代码块实现不同的功能 方法调用明确的分工
新建包 view 视图层 service服务层 dao持久层(主要实现增删改查)Test(测试类)
Test———>调用view
View———>service
service——>Dao
代码如下:仅供参考
Test 测试类(主函数):
package src.lib.test;
import src.lib.view.View; //方法调用视图层
public class Test {
public static void main(String[] args) {
//初始化界面
View view = new View();
view.init();// 初始界面
}
}
Test主要用于测试运行...
View视图层
package src.lib.view;
import java.util.Scanner;
import src.lib.service.BookService;
import src.lib.service.UserService;
/**
* 视图类
* */
public class View {
Scanner sc = new Scanner(System.in);
UserService userService = new UserService();
BookService bookService = new BookService();
/**
* 初始化界面
* */
public void init() {
System.out.println("1.登录\n2.注册\n3.退出系统");
System.out.println("请选择:");
int num = sc.nextInt();
switch (num) {
case 1:
//登录界面
login();
break;
case 2:
//注册界面
reg() ;
break;
case 3:
//退出系统
System.out.println("谢谢,再见");
break;
}
}
/**
* 登录界面
* */
public void login() {
System.out.println("请输入用户名:");
String username = sc.next();
System.out.println("请输入密码:");
String password = sc.next();
//判断用户名是否存在
if(userService.isLogin(username, password)) { //判断是否存在
System.out.println("登录成功");
//主界面
zjm();
}else {//不存在
System.out.println("用户名密码错误!");
//初始界面
init() ;
}
}
/**
* 注册界面
* */
public void reg() {
System.out.println("请输入用户名:");
String username = sc.next();
System.out.println("请输入密码:");
String password = sc.next();
System.out.println("请在输入一次密码:");
String password2 = sc.next();
//判断2次密码是否一致
if(password.equals(password2)) { //一致
//判断用户能不能注册
if(userService.isLoginByUsername(username)) {
//注册
userService.reg(username, password);
System.out.println("注册成功");
}else {
System.out.println("用户已经存在,注册失败");
}
//注册失败
}else { //不一致
System.out.println("两次密码输入不一致,注册失败!");
}
init();
//去初始界面
}
/**
* 主界面
* */
public void zjm() {
System.out.println("1.查询书籍列表\n2.借书\n3.还书\n4.返回上一级");
System.out.println("请选择:");
int num = sc.nextInt();
switch (num) {
case 1:
//查询界面
findbookView();
break;
case 2:
//借界面 0
jhView(0);
break;
case 3:
//还界面 1
jhView(1);
break;
case 4:
//返回上一级
init();
break;
}
}
/**
* 书籍列表界面
* */
public void findbookView() {
books();
zjm();
}
public void books() {
System.out.println("序号\t书籍名称\t库存");
String[][] books= bookService.findBooks();
for(int i = 0;i<books.length;i++) {
System.out.println((i+1)+"\t"+books[i][0]+"\t"+books[i][1]);
}
}
/**
* 借还界面
* */
public void jhView(int cz) {
books();
System.out.println("请输入序号:");
int num = sc.nextInt()-1;
//根据 借还进行更新
if(bookService.jh(num, cz)) {//成功
if(cz==1) {
System.out.println("还书成功");
}else {
System.out.println("借书成功");
}
}else {//不能借
if(cz==1) {
System.out.println("还书失败");
}else {
System.out.println("借书失败");
}
}
//查询书籍然后去主界面
findbookView();
}
}
View视图主要注重于显示
Service服务 实现功能 判断验证
package src.lib.service;
import src.lib.dao.UserDao;
public class UserService {
UserDao userDao = new UserDao();
/**
* 用户是否存在
* */
public boolean isLogin(String username,String password) {
String users [][] =userDao.findUsers();
for(int i = 0;i<users.length;i++) {
if(users[i][0].equals(username)&& users[i][1].equals(password)) {
return true;
}
}
return false;
}
/**
* 用户名是否存在
* false 用户存在不可以注册 true 可以注册
* */
public boolean isLoginByUsername(String username) {
String users [][] =userDao.findUsers();
for(int i = 0;i<users.length;i++) {
if(users[i][0].equals(username)) {
return false;
}
}
return true;
}
/**
* 注册
*
* */
public void reg(String username,String password) {
userDao.addUser(username, password);
}
}
Servive注重于实现功能判断验证 调用Dao层
注重书籍类服务 一一对应
package src.lib.service;
import src.lib.dao.BookDao;
public class BookService {
BookDao bookDao = new BookDao();
/**
* 查询书籍列表
* */
public String[][] findBooks() {
return bookDao.findBooks();
}
/**
* 0 j 1 h
* c t s f
* */
public boolean jh(int no,int cz) {
String[][] books = findBooks() ;
int ck = Integer.parseInt(books[no][1]); //实际库存
if(cz==0) { //借书
//判断是否能借
// 库-1>0
if(ck-1>=0) {
//更新库存
bookDao.updateBooks(no, ck-1);
return true;
}else {
return false;
}
}else {//还书
//判断是否能还
// 库存+1小=总量
int zl = Integer.parseInt(books[no][2]); //总量
if(ck+1<=zl) { //库存+1小于等于总量表示可以还书
//更新库存
bookDao.updateBooks(no, ck+1);
return true;
}else {
return false;
}
}
}
}
BookService 书籍类业务
书籍bookao
package src.lib.dao;
public class BookDao {
/**
* 书名 库存 总量
* */
String[][] books = {{"《甜蜜糖果屋》","3","3"},{"《月光下的对白》","1","1"},{"《炎炎的夏日》","2","2"}};
/**
* 查询所有书籍
* */
public String[][] findBooks() {
return books;
}
/**
* 更新书籍
* 序号 数量
* */
public void updateBooks(int sn,int num){
books[sn][1] = num+"";
}
}
Dao层注重增删改查
用户增删改查
package src.lib.dao;
public class UserDao {
String users[][] = {{"admin","123"}};
/**
* 查询所有用户
* */
public String[][] findUsers() {
return users;
}
/**
* 添加用户
* */
public void addUser(String username,String password) {
String [][] nusers = new String[users.length+1][2];
for(int i= 0;i<users.length;i++) {
nusers[i][0] =users[i][0];
nusers[i][1] =users[i][1];
}
nusers[users.length][0] = username;
nusers[users.length][1] = password;
users = nusers;
}
}