Java小例子:图书馆课程设计 - 编程入门网
作者 佚名技术
来源 NET编程
浏览
发布时间 2012-06-17
; 74. } 75. 76. /** 77. * 构造函数 78. */ 79. public LibrarySimulator() { 80. commands.put(1, new Command1()); 81. commands.put(2, new Command2()); 82. commands.put(3, new Command3()); 83. commands.put(4, new Command4()); 84. commands.put(5, new Command5()); 85. commands.put(6, new Command6()); 86. commands.put(7, new Command7()); 87. commands.put(8, new Command8()); 88. } 89. 90. /** 91. * 这里接受用户输入,执行操作,然后再等待用户输入,这样不停的循环。 92. */ 93. private void start() { 94. String index = prompt(MAIN_MENU, DIGIT_CHOICE_PATTERN); 95. 96. while (!index.equals("9")) { 97. executeCommand(index); 98. index = prompt(MAIN_MENU, DIGIT_CHOICE_PATTERN); 99. } 100. } 101. 102. // 根据序号执行命令 103. private void executeCommand(String index) { 104. Command command = commands.get(Integer.parseInt(index)); 105. if (command != null) { 106. String result = command.execute(); 107. System.out.println(result + "\n"); 108. } 109. } 110. 111. // 打印一条提示信息,然后读取并返回用户输入 112. private String prompt(String message, String pattern) { 113. System.out.print(message); 114. if (pattern == null) { 115. return readInput(); 116. } else { 117. String result = ""; 118. while (!result.matches(pattern)) { 119. result = readInput(); 120. } 121. return result; 122. } 123. } 124. 125. // 读取用户输入 126. private String readInput() { 127. try { 128. BufferedReader reader = new BufferedReader(new InputStreamReader(System.in)); 129. return reader.readLine(); 130. } catch (IOException e) { 131. e.printStackTrace(); 132. return ""; 133. } 134. } 135. 136. // 根据名字查找读者。找不到则返回 null。 137. private Reader getReaderByName(String readerName) { 138. for (Reader reader : readers) { 139. if (reader.getName().equals(readerName)) { 140. return reader; 141. } 142. } 143. return null; 144. } 145. 146. // 根据名字查找图书。找不到则返回 null。 147. private Book getBookByName(String bookName) { 148. for (Book book : books) { 149. if (book.getName().equals(bookName)) { 150. return book; 151. } 152. } 153. return null; 154. } 155. 156. /*===================================================================*/ 157. 158. /** 159. * 代表命令的抽象类 160. */ 161. private abstract class Command { 162. 163. protected abstract String execute(); 164. } 165. 166. /////////////////////////////////////////////////// 列出所有图书 167. private class Command1 extends Command { 168. 169. protected String e |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |
你可能对下面的文章感兴趣
关于Java小例子:图书馆课程设计 - 编程入门网的所有评论