快速业务通道

Java小例子:图书馆课程设计 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-17

Java小例子:图书馆课程设计

时间:2011-04-05

用 Java 模拟一个图书馆。包括创建图书、创建读者、借书、还书、列出所有图书、 列出所有读者、列出已借出的图书、列出过期未还的图书等功能。每个读者最多只能借 3 本书,每个书最多只能借 3 个星期,超过就算过期。

下面是一个命令行下的实现。这个例子的主要目的是向初学者展示内部类的好处。 Command 及其子类都是 LibrarySimulator 的内部类。它们可以无阻碍的访问 LibrarySimulator 的成员。使用内部类,而不是大量的 if-else,让程序更容易扩展。

01.import java.io.BufferedReader;
02.import java.io.IOException;
03.import java.io.InputStreamReader;
04.import java.text.SimpleDateFormat;
05.import java.util.*;
06.
07./**
08. * 一个图书馆的课程设计。主要功能:
09. * 1. 创建图书
10. * 2. 创建读者
11. * 3. 借书
12. * 4. 还书
13. * 5. 列出所有书
14. * 6. 列出已借书
15. * 7. 列出超过日期未还的书
16. */
17.public class LibrarySimulator {
18.
19.    // 主菜单
20.    private static final String MAIN_MENU = "1. 列出所有的书\n" +
21.            "2. 列出已借出的书\n" +
22.            "3. 列出过期未还的书\n" +
23.            "4. 列出所有读者\n" +
24.            "5. 创建图书\n" +
25.            "6. 创建读者\n" +
26.            "7. 借书\n" +
27.            "8. 还书\n" +
28.            "9. 退出\n" +
29.            "请输入序号:";
30.
31.    // 选择图书类型的菜单。在借书和添加图书的时候都会用到
32.    private static final String TYPE_MENU;
33.
34.    // 表示一个数字的正则表达式
35.    private static final String DIGIT_CHOICE_PATTERN = "^\\dcontentquot;;
36.
37.    // 表示非空字符串
38.    private static final String NOT_EMPTY_PATTERN = "\\S.*";
39.
40.    // 日期格式
41.    static final String DATE_PATTERN = "yyyy/MM/dd";
42.
43.    // 验证用户输入日期的正则表达式
44.    static final String DATE_FORMAT_PATTERN = "^\\d{4}/\\d{2}/\\d{2}contentquot;;
45.
46.    // 预定义的图书类型
47.    static HashMap<String, String> TYPES = new LinkedHashMap<String, String>();
48.
49.    static {
50.        TYPES.put("1", "科学类");
51.        TYPES.put("2", "文学类");  // 新的类别可以继续在后面添加
52.        TYPE_MENU = createTypeMenu();
53.    }
54.
55.    // 生成选择类别的菜单
56.    private static String createTypeMenu() {
57.        String str = "";
58.        for (String index : TYPES.keySet()) {
59.            str += index + ". " + TYPES.get(index) + "\n";
60.        }
61.        return str + "请选择书的类型:";
62.    }
63.
64.
65.    private HashMap<Integer, Command> commands = new HashMap<Integer, Command>();
66.
67.    private ArrayList<Book> books = new ArrayList<Book>();
68.
69.    private ArrayList<Reader> readers = new ArrayList<Reader>();
70.
71.    // 程序入口。这里创建一个 LibrarySimulator 用于模拟界面。
72.    public static void main(String[] args) {
73.        new LibrarySimulator().start()

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号