编写一个简易图书管理系统,有一个用户类User包含属性:用户号:u_id,用户名:username,借阅图书信息:infor.图书类Book包含属性:图书号:book_id,图书名:bookname,馆藏数目:num.测试类中定义一个借阅图书方法:参数为用户号和图书号,返回值为布尔型,根据图书号查找图书,然后在查找馆藏书目,num>1可借阅,并将num-1,书的信息存入到用户的infor中,num=1不可借阅,
2)根据用户号显示该用户已节约的书名和书的数目。
3)归还图书方法,参数:用户号和图书号,返回值类型为布尔型。
高手赐教,小弟刚学java,思路不是很清啊

解决方案 »

  1.   

    1.图书表(所有图书、包含图书数量)
    2.借书证(1个借书证对应一个用户信息)
    3.借书还书表(图书ID,用户ID,借书时间,数量,应还时间,实际还书时间)
      

  2.   

    呵呵,因为快下班才看到,所以写的比较匆忙,没有考虑多线程情况,供楼主参考,采用MVC模式实现
      package com.csdn.library.controller;import com.csdn.library.model.LibraryService;
    import com.csdn.libray.exception.LibraryException;/**
     * 控制器类
     * @author Administrator
     *
     */
    public class LibraryController {
    private LibraryService ls ; public LibraryController(){
    ls = new LibraryService();
    }

    public String controller( String book_id,int user_id ,int type ){
    boolean result = false;
    try {
    result = ls.Service(book_id, user_id, type);
    } catch (LibraryException e) {
    return e.getMessage();
    }

    if( result == true ){
    return "操作成功";
    } else {
    return "操作失败";
    }
    }

    public LibraryService getLs() {
    return ls;
    } public void setLs(LibraryService ls) {
    this.ls = ls;
    }


    }package com.csdn.library.model;import java.util.ArrayList;
    import java.util.List;
    import java.util.Map;import com.csdn.library.vo.BookVO;
    import com.csdn.library.vo.User;
    import com.csdn.libray.exception.LibraryException;
    import com.csdn.libray.util.LibrayUtils;/**
     * 模型类
     * @author Administrator
     *
     */
    public class LibraryService { public static final int BORROW_OPTION = 1;
    public static final int RETURN__OPTION = -1;

    public boolean Service(String book_id ,int user_id ,int type) throws LibraryException{

    User user = searchUserByID( user_id );
    if( user == null ) throw new LibraryException("没有此人");

    BookVO book = searchBookByID(book_id);
    if( book == null ) throw new LibraryException("没有此书");
    if( book.getNum_in_lib() < 1 ) throw new LibraryException("数量不够,暂不借阅");

    if( type == LibraryService.BORROW_OPTION){
    return borrowBook(user,book);
    }else if( type == LibraryService.RETURN__OPTION ){
    return returnBook(user,book);
    }else {
    throw new LibraryException("您输入的操作类型有误");
    }
    }

    private BookVO searchBookByID( String book_id ){
    for( BookVO book : BookVO.getBooklist()){
    if( book.getBook_id().equals(book_id))
    return book;
    }
    return null;
    }


    private User searchUserByID( int user_id ){
    for(User user:User.getUserlist()){
    if( user.getUser_id() == user_id )
    return user;
    }
    return null;
    }

    private  boolean borrowBook( User user,BookVO book ){
    book.setNum_in_lib(book.getNum_in_lib()-1);
    Map<String,List<String>> info_map = user.getInfo();
    List<String > info = info_map.get(book.getBook_id());
    if( info == null ) info = new ArrayList<String>();

    info.add(user.getUser_name()+" "+LibrayUtils.createBorrowInfo());
    info_map.put(book.getBook_id(), info);

    return true;
    }

    private boolean returnBook( User user,BookVO book) throws LibraryException{
    book.setNum_in_lib(book.getNum_in_lib()+1);
    Map<String,List<String>> info_map = user.getInfo();
    List<String > info = info_map.get(book.getBook_id());
    if( info == null ) throw new LibraryException("该人没有借过此书");
    info.add(user.getUser_name()+" "+LibrayUtils.createReturnInfo());

    info_map.put(book.getBook_id(), info);

    return true;
    }


    }
    package com.csdn.library.vo;import java.util.ArrayList;
    import java.util.List;import com.csdn.libray.util.LibrayUtils;public class BookVO {

    private static final List<BookVO> booklist = new ArrayList<BookVO>();

    private String book_id;
    private String book_name;
    private int num_in_lib;


    public static BookVO createBook(){
    BookVO newbook =  new BookVO();
    booklist.add(newbook);
    return newbook;
    }



    public static BookVO createBook(String id,String name,int num){
    BookVO newbook = new BookVO(id,name,num);
    booklist.add(newbook);
    return newbook;
    }

    private BookVO(){
    this(LibrayUtils.createBookID(),"默认",1);
    }

    private BookVO( String book_id,String book_name,int num){
     this.book_id = book_id;
     this.book_name = book_name;
     this.num_in_lib = num;
    }

    public String getBook_id() {
    return book_id;
    } public void setBook_id(String book_id) {
    this.book_id = book_id;
    } public String getBook_name() {
    return book_name;
    } public void setBook_name(String book_name) {
    this.book_name = book_name;
    } public int getNum_in_lib() {
    return num_in_lib;
    } public void setNum_in_lib(int num_in_lib) {
    this.num_in_lib = num_in_lib;
    } public static List<BookVO> getBooklist() {
    return booklist;
    }



    }
    package com.csdn.library.vo;import java.util.ArrayList;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Map;public class User {

    private static final List<User> userlist = new ArrayList<User>();

    private int user_id;
    private String user_name;
    private Map<String,List<String>> info = new HashMap<String,List<String>>();



    private User( int user_id,String user_name ){
    this.user_id = user_id;
    this.user_name = user_name;
    }
    public static User createUser( int id,String name){
    User u = new User(id,name);
    userlist.add(u);
    return u;
    }

    public int getUser_id() {
    return user_id;
    } public void setUser_id(int user_id) {
    this.user_id = user_id;
    } public String getUser_name() {
    return user_name;
    } public void setUser_name(String user_name) {
    this.user_name = user_name;
    } public Map<String, List<String>> getInfo() {
    return info;
    } public void setInfo(Map<String, List<String>> info) {
    this.info = info;
    }
    public static List<User> getUserlist() {
    return userlist;
    }






    }package com.csdn.libray.exception;/**
     * 异常类
     * @author Administrator
     *
     */
    public class LibraryException extends Exception { public LibraryException( String info ){
    super(info);
    }

    }package com.csdn.libray.util;import java.text.DateFormat;
    import java.text.SimpleDateFormat;
    import java.util.Date;import com.csdn.library.vo.User;/**
     * 工具类
     * @author Administrator
     *
     */
    public class LibrayUtils {
    public static String createBookID(){
    Date now = new Date();
    DateFormat format = new SimpleDateFormat("yyyyMMddhhmmss");
    return Thread.currentThread().getId()+format.format(now);
    }

    public static String createBorrowInfo(){
    Date now = new Date();
    DateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    return format.format(now)+" 借书 ";
    }

    public static String createReturnInfo(){
    Date now = new Date();
    DateFormat format = new SimpleDateFormat("yyyy-MM-dd hh:mm:ss");
    return format.format(now)+" 还书 ";
    }}
    package com.csdn.library.test;import com.csdn.library.controller.LibraryController;
    import com.csdn.library.vo.BookVO;
    import com.csdn.library.vo.User;/**
     * 测试类
     * @author Administrator
     *
     */
    public class Test {

    public static void main(String[] args ){
    User.createUser(1, "Jack");
    BookVO.createBook("1", "computer", 10);

    LibraryController lc = new LibraryController();
    String result = lc.controller("1", 1, -1);
    //String result = lc.controller("1", 1, 1);
    System.out.println(result);
    }}
      

  3.   

    包结构是这样的com.csdn.library.controller;
    com.csdn.library.model;
    com.csdn.library.vo;
    com.csdn.library.util;
    com.csdn.library.test;回家了 ,呵呵
      

  4.   

    晕还有个 
    com.csdn.library.exeption;
      

  5.   

    class User1{
    public User1(){}
    public User1(String u_id,String username){
    this.u_id = u_id;
    this.username = username;
    }
    public String u_id;//用户号
    public String username;//用户名
    public String infor;//借阅图书信息
    }
    class Book{
    public Book(){}
    public Book(String book_id,String bookname,int num){
    this.book_id = book_id;
    this.bookname = bookname;
    this.num = num;
    }
    public String book_id;//图书号
    public String bookname;//图书名
    public int num;//馆藏数目
    }
    public class UBTest {
    private User1 u[];
    private Book books[];
        public UBTest(){
         u = new User1[3];
         u[0] = new User1("123","lisi");
         u[1] = new User1("124","liwu");
         u[2] = new User1("125","liliu");
         books = new Book[4];
    books[0] = new Book("234","javass",4);
    books[1] = new Book("235","javase",3);
    books[2] = new Book("236","javasb",5);
    books[3] = new Book("237","javasc",1);
        }
    public boolean borrowBook(String uid,String bookid){
    for(int j=0;j<books.length;j++){
    if(books[j].book_id.equals(bookid)){
    if(books[j].num>1){
    System.out.println("馆藏书目:"+books[j].num);
    System.out.println("可以借阅");
    books[j].num = books[j].num-1;
    }else{
    System.out.println("馆藏不够无法借阅!!");
    return false;
    }
    for(int i=0;i<u.length;i++){
    if(u[i].u_id.equals(uid)){
    u[i].infor = "图书编号:"+books[j].book_id+"书名:"+books[j].bookname;
    System.out.println("借阅成功!!");
    return true;
    }
    }
    }

    }
    System.out.println("无此图书");
    return false;
    }
    public void queryUser(String uid){
    for(int i=0;i<u.length;i++){
    if(u[i].u_id.equals(uid)){
    System.out.println("用户:"+u[i].username+";"+"借阅信息:"+u[i].infor);
    }
    }
    }
    public boolean returnbackBook(String uid,String bookid){
    for(int i=0;i<u.length;i++){
    if(u[i].u_id.equals(uid)){
    for(int j=0;j<books.length;j++){
    if(books[j].book_id.equals(bookid)){
    books[j].num=books[j].num+1;
    System.out.println("图书归还成功!!");
    System.out.println("图书馆藏书目:"+books[j].num+"本");
    return true;
    }
    }
    }
    else{
    System.out.println("用户账号错误!!无法还书");
    return false;
    }
    }
    return true;
    }
    public static void main(String[] args){
    UBTest ut = new UBTest();
    ut.borrowBook("123", "234");
    ut.queryUser("123");
    ut.returnbackBook("123", "234");
    }
    }
     这是我写的代码比较菜见笑了,望大家指点啊,左后那个还书的方法有问题,大家赐教!!