一、梳理功能

1.能够表示书籍信息,针对每本书来说,序号,书名,作者,价格,类型。
2.能够表示用户信息,普通用户,管理员。
3.支持的操作:

  • 对于普通用户:查看书籍列表,查询指定书籍,借书还书。
  • 对于 管理员:查看书籍列表,新增删除书籍。

在这里插入图片描述

二、准备数据库

创建用户表和书籍表

create database if not exists java100_bookmanager;use java100_bookmanager;drop table if exists book;//设置id为自增主键create table book(id int primary  key auto_increment,name varchar(20),author varchar(20),price int,type varchar(20),isBorrowed int);drop table if exists user;//同样设置 userid为自增主键并且用户名字不重复create table user(    userId int primary key auto_increment,    username varchar(20) unique,    password varchar(20),    isAdmin int);-- 插入一些书籍insert into book values(null,'西游记','吴承恩',10000,'古典小说',0);insert into book values(null,'三国演义','罗贯中',10000,'古典小说',0);insert into book values(null,'水浒传','施耐庵',10000,'古典小说',0);insert into book values(null,'金瓶梅','兰陵笑笑生',10000,'古典小说',0);--插入一些用户insert into user values(null,'admin','123',1);insert into user values(null,'zhangsan','123',0);
abstract public class user {    private int userId;    private String userName;    private String passWord;    IOperation[] operations;//方法数组,表示user类所包含的方法    abstract int menu();//子类要重写menu方法,因为两个子类看到的menu不同    public void doOperation(int choice){//此方法来执行一些操作,如借书还书等        operations[choice].work();    }    public int getUserId() {        return userId;    }    public void setUserId(int userId) {        this.userId = userId;    }    public String getUserName() {        return userName;    }    public void setUserName(String userName) {        this.userName = userName;    }    public String getPassWord() {        return passWord;    }    public void setPassWord(String passWord) {        this.passWord = passWord;    }    @Override    public String toString() {        return "user{" +                "userId=" + userId +                ", userName='" + userName + '\'' +                ", passWord='" + passWord + '\'' +                '}';    }}
public class Admin extends user {    public Admin(){        this.operations=new IOperation[]{                new ExitOperation(),//退出系统                new DisplayOperation(),//查看书籍列表                new FindOperation(),//查找书籍                new AddOperation(),//添加书籍                new DelOperation(),//删除书籍        };    }    @Override    public int menu() {        System.out.println("========================");        System.out.println("欢迎您,"+this.getUserName()+"您是管理员!");        System.out.println("1.查看书籍列表");        System.out.println("2.查找指定书籍");        System.out.println("3.新增书籍");        System.out.println("4.删除书籍");        System.out.println("0.退出系统");        System.out.println("========================");        System.out.println("请输入选项");        Scanner sc=new Scanner(System.in);        int choice=sc.nextInt();        return choice;    }}
public interface IOperation {    void work();}

更多相关文章

  1. ES6 变量声明,箭头函数,数组方法,解构赋值,JSON,类与继承,模块化练习
  2. android实践项目一实现简单的验证码和spinner下拉选项效果
  3. Android综合小练习Fragment,解析,Handler,ViewPager
  4. Android简单练习(TableLayout)
  5. android练习一之获取网页源码
  6. 一个打通jni,java framework,application三层的练习
  7. android 调色板小练习
  8. android练习一之简易浏览器
  9. Android的项目练习

随机推荐

  1. 实现浮动广告的代码
  2. OnClick事件只获取第一个动态创建的行/ i
  3. 删除没有\ r \ n的换行符
  4. 为什么我的javascript/jquery代码不能像
  5. 从表的第一行和第一列中删除可选择的jque
  6. 【JavaScript】案例一:使用JS完成注册页面
  7. Javascript实现统一的表单验证
  8. 从特定条件下存储在localStorage中的数组
  9. 停止鼠标用javascript双击某些元素
  10. 在量角器中检索子元素的数组