**
## 图书管理系统
**
一,bean包
package com.shan.open.exec0313.bean;
public class Book {
private int id;
private String name;
private String writer;
private String time;
private double price;
private static int cid=0;
private int num ;
private double sum;
private int buynum;
public int getId() {
return id;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public Book() {
this.id =cid++;
}
public Book(String name, String writer, String time, double price,int cid) {
this();
this.name = name;
this.writer = writer;
this.time = time;
this.price = price;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getWriter() {
return writer;
}
public void setWriter(String writer) {
this.writer = writer;
}
public String getTime() {
return time;
}
public void setTime(String time) {
this.time = time;
}
public double getPrice() {
return price;
}
public void setPrice(double price) {
this.price = price;
}
public double getSum() {
return sum;
}
public void setSum(double sum) {
this.sum = sum;
}
public int getBuynum() {
return buynum;
}
public void setBuynum(int buynum) {
this.buynum = buynum;
}
public Book(int id, String name, double sum, int buynum) {
this.id = id;
this.name = name;
this.sum = sum;
this.buynum = buynum;
}
}
```java
```java
package com.shan.open.exec0313.bean;
public class Root {
private String root;
private String password;
public String getRoot() {
return root;
}
public void setRoot(String root) {
this.root = root;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public Root(String root, String password) {
this.root = root;
this.password = password;
}
}
``
二、dao
接口
package com.shan.open.exec0313.dao;
import com.shan.open.exec0313.bean.Book;
import java.util.Collection;
public interface BookDao {
public void addtype(Book book);
public void addnum(int id, int num);
public Book find(int id);
public void delete(int id);
public Collection<Book> getData();
public boolean deleteById(int id);
public void buy(int id, int num);
public Collection<Book> checkout();
}
package com.shan.open.exec0313.dao;
import com.shan.open.exec0313.bean.Root;
public interface RootDao {
public boolean mode(Root root);
public boolean login(Root root);
}
impl包
package com.shan.open.exec0313.dao.impl;
import com.shan.exec02.bean.Student;
import com.shan.open.exec0313.bean.Book;
import com.shan.open.exec0313.dao.BookDao;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
public class BookDaoimpl implements BookDao {
private static List<Book> list = new ArrayList<>();
private static List<Book> checklist = new ArrayList<>();
static {
Book b1 = new Book("琅琊榜","海晏","2000-01-01",149.5,100);
Book b2 = new Book("甄嬛传","流潋紫","2001-03-01",100.5,80);
Book b3 = new Book("斗破苍穹","天蚕土豆","2000-01-01",120.5,100);
list.add(b1);
list.add(b2);
list.add(b3);
}
@Override
public void addtype(Book book) {
list.add(book);
}
@Override
public void addnum(int id, int num) {
list.get(id).setNum(list.get(id).getNum()+num);
}
@Override
public Book find(int id) {
Book b = null;
for (int i = 0; i < list.size(); i++) {
Book b1 = list.get(i);
if (b1.getId() == id) {
b = b1;
}
}
return b;
}
@Override
public void delete(int id) {
Book b = find(id);
list.remove(b);
}
@Override
public Collection<Book> getData() {
return list;
}
@Override
public boolean deleteById(int id) {
if (find(id)!=null){
delete(id);
return true;
}else {
return false;
}
}
@Override
public void buy(int id, int num) {
Book book = find(id);
book.setNum(book.getNum()-num);
double sum = book.getPrice()*num;
Book book1 = new Book(id,book.getName(),sum,num);
checklist.add(book1);
}
@Override
public Collection<Book> checkout() {
return checklist;
}
}
package com.shan.open.exec0313.dao.impl;
import com.shan.open.exec0313.bean.Book;
import com.shan.open.exec0313.bean.Root;
import com.shan.open.exec0313.dao.RootDao;
import java.util.ArrayList;
import java.util.List;
public class RootDaoimpl implements RootDao {
private static List<Root> list= new ArrayList<>();
static {
Root r1 = new Root("admin","12345");
Root r2 = new Root("guest","54321");
list.add(r1);
list.add(r2);
}
@Override
public boolean mode(Root root) {
if ("guest".equals(root.getRoot())){
return true;
}else {
return false;
}
}
@Override
public boolean login(Root root) {
if (list.contains(root)){
return true;
}else {
return false;
}
}
}
三 view包
package com.shan.open.exec0313.view;
import com.shan.open.exec0313.bean.Book;
import com.shan.open.exec0313.bean.Root;
import com.shan.open.exec0313.dao.BookDao;
import com.shan.open.exec0313.dao.RootDao;
import com.shan.open.exec0313.dao.impl.BookDaoimpl;
import com.shan.open.exec0313.dao.impl.RootDaoimpl;
import java.util.Collection;
import java.util.Scanner;
public class BookView {
Scanner input = new Scanner(System.in);
BookDao dao = new BookDaoimpl();
RootDao rootDao = new RootDaoimpl();
public void run(){
System.out.println("1、登录 2、退出");
int choose = input.nextInt();
switch (choose){
case 1:
System.out.println("请输入用户名:");
String root = input.next();
System.out.println("请输入密码:");
String psd = input.next();
Root root1 = new Root(root,psd);
login(root1);
break;
case 2:
System.out.println("谢谢使用!");
break;
default:
System.out.println("您的选择错误,请重新选择");
break;
}
}
public void login( Root root){
if (rootDao.mode(root)){
System.out.println("1、查看 2、购买 3、结账 4、返回主菜单");
int choose = input.nextInt();
switch (choose){
case 1:
show();
login(root);
break;
case 2:
buy();
login(root);
break;
case 3:
checkout();
login(root);
break;
case 4:
run();
break;
default:
System.out.println("您的选择错误的,请重新选择");
break;
}
}else {
menu();
}
}
public void menu(){
System.out.println("1、查看\t2、删除\t3、进货\t4、新增\t0、主菜单");
int choose = input.nextInt();
switch (choose) {
case 1:
show();
menu();
break;
case 2:
delete();
menu();
break;
case 3:
addnum();
menu();
break;
case 4:
addtype();
menu();
break;
case 0:
run();
break;
default:
System.out.println("您的选择错误的,请重新选择");
menu();
break;
}
}
public void show(){
System.out.println("------------------------------查看书库-------------------------------");
Collection<Book> books = dao.getData();
for (Book book:books
) {
System.out.println(book.getId()+"\t"+book.getName()+"\t"+book.getWriter()+"\t"+book.getTime()+"\t"+book.getPrice()+"\t"+book.getNum());
}
}
public void delete(){
System.out.println("请输入您要删除的编号:");
int sid = input.nextInt();
boolean f = dao.deleteById(sid);
if (f){
System.out.println("删除成功");
}else {
System.out.println("删除失败");
}
}
public void addnum(){
System.out.println("请输入您要添加的书籍编号:");
int sid = input.nextInt();
System.out.println("请输入您要进货的数量:");
int num = input.nextInt();
dao.addnum(sid,num);
}
public void addtype(){
Book book = new Book();
System.out.println("请输入新增的书名:");
book.setName(input.next());
System.out.println("请输入该书的作者:");
book.setWriter(input.next());
System.out.println("请输入出版时间:");
book.setTime(input.next());
System.out.println("请输入单价:");
book.setPrice(input.nextDouble());
System.out.println("请输入数量:");
book.setNum(input.nextInt());
dao.addtype(book);
System.out.println("添加成功!");
}
public void buy(){
System.out.println("请输入购买的编号:");
int sid = input.nextInt();
System.out.println("请输入购买的数量:");
int num = input.nextInt();
dao.buy(sid,num);
}
public void checkout(){
System.out.println("------------------------------查看账单----------------------------------");
Collection<Book> check = dao.checkout();
int snum = 0;
double ssum = 0;
for (Book b:check){
System.out.println(b.getId()+"\t"+b.getName()+"\t"+b.getBuynum()+"\t"+b.getSum());
snum+=b.getBuynum();
ssum+=b.getSum();
}
System.out.println("总计:"+snum);
System.out.println("总金额:"+ssum);
System.out.println("请输入付款金额:");
double pay= input.nextDouble();
double left = pay - ssum;
if (left>=0){
System.out.println("找零:"+left);
}else {
System.out.println("金额不足");
checkout();
}
}
}
四 test包
package com.shan.open.exec0313.test;
import com.shan.open.exec0313.view.BookView;
public class BookTest {
public static void main(String[] args) {
BookView view = new BookView();
view.run();
}
}