




已阅读5页,还剩34页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大作业二 图书馆系统重要提示:学生中一切抄袭、复制,剽窃行为,将会给以严厉处置。一、总任务书 在开始编程之前,请仔细阅读以下说明:该作业只允许你创建一个项目,且项目名只能为:asn2,否则我们不会批改你的作业,你的成绩为0分。跟该项目有关的类都必须存放在项目文件夹中,确保项目中包括表1-1所示的所有文件:表1-1 图书馆系统中的类列表类测试类Assignment2.javaBook.javaBookCatalog.javaConfirm.javaInputValidator.javaLibrary.javaPatron.java PatronCatalog.javaTransactions.javaBookTest.javaBookCatalogTest.javaConfirmTest.javaInputValidatorTest.javaPatronTest.javaPatronCatalogTest.java TransactionsTest.java每写完一个类,请编写一个测试程序来测试它。也就是说,你的测试程序中得包含一个main方法来调用类中的各个方法,要用不同的对象、参数调用若干次。你递交完作业后,我们会用我们的main方法来测试它们。你必须递交以上表中所列出的所有的测试类。 在这个作业中,要求你编写一个应用程序,来实现简单的图书馆系统。当运行这个应用程序时,该程序将从磁盘上访问两个文本文件并把文件中的数据读入到程序中。(我们会给你提供这两个文本文件及实现文件输入输出的方法)。其中一个文件中包含有图书馆借书人的信息,另一个包含图书资料信息。要求程序从文件中读完数据后,能显示包含以下选项的主菜单:l 图书(允许用户进入“图书菜单”来进行跟馆中的图书有关的操作)l 借书人(允许用户进入“借书人菜单”来进行跟已注册到图书馆中的借书人有关的操作)l 查询(允许用户进入“查询菜单”来实现对图书馆中的图书或赞助人的查询操作)l 退出(退出图书系统,终止该应用程序)你的输出窗口应如图1-1所示:欢迎进入Java图书系统主菜单-1.图书(允许用户进入“图书菜单”来进行跟馆中的图书有关的操作)2.借书人(允许用户进入“借书人菜单”来进行跟已注册到图书馆中的借书人有关的操作)3.查询(允许用户进入“查询菜单”来实现对图书馆中的图书或赞助人的查询操作)4.退出(退出图书系统,终止该应用程序)请选择一项:图1-1 主菜单界面下面将讨论前3个菜单:1. Book Menu(图书菜单)l 给图书馆添加一本新书(给图书目录添加一本新书)l 删除一本书(从图书目录中删除一本书)l 图书统计(显示图书中的图书数目)l 打印图书目录(打印目前图书目录中所包含的所有图书的清单)l 借书(允许借书人借书)l 还书(允许借书人归还图书)l 返回(返回主菜单)你的输出窗口应如图1-2所示:图书菜单-1. 添加一本新书(给图书目录添加一本新书)2. 删除一本书(从图书目录中删除一本书)3. 图书统计(显示图书中的图书数目)4. 打印图书目录(打印目前图书目录中所包含的所有图书的清单)5. 借书(允许借书人借书)6. 还书(允许借书人归还图书)7. 返回(返回主菜单)请选择一项:图1-2 图书菜单界面2. Patron Menu(借书菜单)l 添加一个新的借书人(往图书馆的借书人目录中注册一个新的借书人)l 删除一个借书人(从图书馆的借书人目录中现有的借书人)l 借书人数统计(显示图书系统中借书的总人数)l 打印借书人目录(打印目前已注册的借书人目录及他们的图书证号码的清单)l 打印某个借书人的借书信息(打印某个借书人所借的所有图书的基本信息。如:书号,书名和作者)l 打印所有人的借书信息(打印所有借书人所借的所有图书的基本信息。如:书号,书名和作者,及借书人名称)l 返回(返回主菜单)界面如图1-3所示:请选择一项:2借书人菜单-1. 添加一个新的借书人(往图书馆的借书人目录中注册一个新的借书人)2. 删除一个借书人(从图书馆的借书人目录中删除一位现有的借书人)3. 借书人数统计(显示图书系统中借书的总人数)4. 打印借书人目录(打印目前已注册的借书人目录及他们的图书证号码的清单)5. 打印某个借书人的借书信息(打印某个借书人所借的所有图书的基本信息。如:书号,书名和作者)6. 打印所有人的借书信息(打印所有借书人所借的所有图书的基本信息。如:书号,书名和作者,及借书人名称)7. 返回(返回主菜单)图1-3 借书人管理界面3. Book and Patron Search Menu(图书和借书人检索菜单)图书和借书人检索菜单提供以下菜单项:l 按书号检索一本书(提示用户输入书号,若能找到,显示该书的书号、书名和作者)l 按作者检索一本书(提示用户输入作者,若能找到,显示该书的、书号和书名)l 按借书证号检索一借书人(提示用户输入借书证,若能找到,显示该借书证号与借书人的姓名)l 按借书人的全名检索(提示用户输入全名,若能找到,显示该借书人的借书证号与姓名)l 返回(返回主菜单)界面如图1-4所示:请选择一项:3图书和借书人检索菜单:-1. 按书号检索一本书(提示用户输入书号,若能找到,显示该书的书号、书名和作者)2. 按作者检索一本书(提示用户输入作者,若能找到,显示该书的、书号和书名)3. 按借书证号检索一借书人(提示用户输入借书证,若能找到,显示该借书证号与借书人的姓名)4. 按借书人的全名检索(提示用户输入全名,若能找到,显示该借书人的借书证号与姓名)5. 返回(返回主菜单)请选择一项:图1-4 图书和借书人检索请注意:你的图书系统应该能够处理输入的无效数据和非正常终止的情况。如:如果用户输入了无效的菜单选项,或在该输入书号的地方输入了“Hello”,你的程序应该能够等到输入有效数据为止,不能中断程序的执行。4. 文本文件你可以从指导老师哪里获取以下两个文本文件: books.txt,patrons.txt这两个文件里包含一些数据。我们已经给你们提供了能够将这些文件中的数据读入到你程序中的代码(祥见:PatronCatalog.java 和 BookCatalog.java类)。在这个作业中你不必考虑将数据写回文件中的问题,但是你提交完作业后,可以试着实现一下文件的输入输出操作,对你将会是个很有用的训练。类的框架代码:以下的类不需要你了解循环与Vector,你在实验8中才会接触到他们。因此你在完成实验8之前就可以着手做这个作业。5. 第一部分应包含的类Assignment2.java(写好的类,没有分)Book.java (12 分)InputValidator.java (9分) Confirm.java (10 分)Library.java (14 分)在完成实验8之前你可以开始写Library.java类,但是你在完成以下列类之前,你还不能结束对Library.java的编码。作为开始,你的Library应该能够显示菜单就可以了。当你完成剩余的类之后,再返回Library类,在其中添加通过调用其他类中的方法实现各菜单项功能的代码。记住:每在你的类中增加代码,你都得测试你的类。以下的类需要你了解循环与Vector,所以你在完成实验8之后,才可以开始对它们进行编码。以下列列出的顺序进行编码将会对你有所帮助:6. 第二部分应包含的类Patron.java (11 分)PatronCatalog.java (17分) BookCatalog.java (14 分) Transactions.java (13 分)二、 完成作业的步骤为了完成作业,你需要编写若干个类以以上所列的类的顺序进行编写。因为对列在后面的类进行编码时,会用到前面的类。开始对一个类进行编码时,请把该类的框架代码复制到Visual J+中。写完一个类以后,请编写一个测试应用程序来对其进行测试。你的测试程序应该包含能够调用你的类中的各个方法的main方法,你可以用不同的对象作为参数,多调用几次。你递交作业后,我们会用我们的main程序测试你的类。在开始下一个类的编码之前,切记测试你已经写好了的类。以下是对Book.java举的一个例子(如果你喜欢,你也可以这么起名)BookTest.java InputValidatorTest.javaBookTest.javaInputValidatorTest.java三、第一部分要编写的类及其框架1. Assignment2.java /* * 图书馆系统(Library system)的驱动类(drive class) */public class Assignment2 /*主程序 Main program */ public static void main(String args ) Library library = new Library(); library.browseLibrary(); 2. Book.java /*该类的每个实例代表图书馆中的一本书。*每本书都有一个唯一的书号,即:ID号(int),作者(String),书名(String).*该书被借出与否,整型变量loanedTo将会代表借书人的借书证号。若该书没有被借出,loanedTo的值为-1*/public class Book /实例变量:尽可能少使用实例变量/构造方法public Book (String title, String author, int number) /*用给定的书名、作者和书号对我(实例变量)进行初始化,并设置我的借出状态为未借出状态,将书名和作者转换为大写字母*/公共实例方法public int loanedTo() /*返回当前借书人的借书证号*/public boolean onLoan() /* * 如果我被借出返回true,否则返回false.*/public int number() /* * 返回我的号码(书号)return my number */ public String author() /*返回我的作者 */public String title() /* 返回我的标题(书名)*/public void returnMe() /* 如果我被归还,设置我的状态为可获得状态,否则什么都别做。*/public void borrowMe(int patronNum) /* 标记我被借给给定的借书证号。*/public String toString() /*返回代表我的字符串,该字符串中应包含我的书号,书名和我的作者(如:0 ON TO JAVA 作者: Winston )。因为这个类定义了toString()方法,可以用PrintStream类中的print(Object) 和println(Object) 打印实例变量的值。也就是说我们可以用System.out.print(aBook)语句。*/3. InputValidator.java /*该类允许用户问一个问题并得到有效的整数和字符串*/public class InputValidator /*公共的静态方法*/ public static int getInt(String promptMsg) /* * 输出所给定的提示信息并返回一个有效的整型值* 例如:输出”输入一个书号”,直到输入一个有效的整数*/ public static String getStr(String promptMsg) /* 输出一个给定的提示信息并返回一个有效字符串,空字符串无效* 例如:输出”输入书名”,直到输入有效的字符串* 返回的字符串应该被压缩首尾空格 * / 4. Confirm.java public class Confirm /*该类的一个实例能够向用户提出yes或no的问题*/常量/实例变量/构造方法public Confirm(String question)/* 用给定的问题初始化我。如:问题字符串可能是:“你想要退出吗?” */*公共实例方法*/public boolean ask() /*向用户提问我的问题,如果回答为yes返回true,若回答为no返回false。显示我的问题的时候,输出的字符串后面要跟字符串 es或 o?。例如:如果我的字符串是“你想要退出吗”,我应该显示以下的字符串:“你想要退出吗es或 o?”。如果用户输入任何一个“y”或“Y”开头的字符串,我会返回true。如果用户输入任何一个“n”或“N”开头的字符串,我会返回false。如果用户不输入任何一个“y”,“Y”,“n”或“N”开头的字符串,我会一直提问,直到用户输入“y”,“Y”,“n”或“N”中的一个。*/ 5. Library.javaLibrary模拟图书馆本身。一个图书馆有一系列书的清单(保存在一个书的目录里)和借书人清单(保存在一个借书人目录里)。为了使得用户能够跟该系统交互,该类有以下的功能:(1)显示各种的菜单(主菜单,图书菜单,借书人菜单,查询菜单)(2)进行数据的有效性检验(如:如果不能把用户的输入确认为有效的菜单项,那么程序就等下去,直到一个有效的输入,而不会中断程序)(3)对用户的输入作出适当的反应(如:当用户输入一个有效的菜单项,将会作出适当的反应)在完成实验8之前,你可以开始编写该类。在实验8,你将会学会如何用循环和Vectors。虽然你在Library类中用不到这些知识点,你在该作业的其它类中会用到它们,所以你必须得掌握它们,你编写完其它的类之后,才能够实现所有的菜单项的功能。开始,你在写Library类时,只写一些简单的用于显示菜单的代码。当你完成其它的类之后,你可以回到Library类,实现更多的菜单项功能。/* 该类的一个实例是一个图书馆。这个图书馆允许你借书,还书,查找图书和查找借书人。 它*还允许你添加图书,删除图书,添加借书人和删除借书人。借书人和图书的详细资料要从磁盘*文件中读取。该类处理所有用户和图书馆系统之间的交互。例如:获得用户的输入,打印输出*操作结果等*/public class Library /常量/实例变量private PatronCatalog patronCatalog;private BookCatalog bookCatalog;. /构造方法public Library()/*初始化图书馆系统,以便于它准备处理各种事务 。在这里可能有更多的代码。*/this.patronCatalog =new PatronCatalog();this.bookCatalog =new BookCatalog(); this.bookCatalog.readBookFile();this.patronCatalog.readPatronFile(); /公共的实例方法public void browseLibrary() /* 浏览图书馆,该方法提供用户界面,用于用户访问图书馆系统的各个功能(如:*主菜单,图书菜单)*/ 提示:你应该至少编写4个私有方法,每个都得实现一个菜单。 如:图书菜单6. Book.txt文件的内容Java StructuresBaileyJava ProgrammingKingJavaPatterson HumeOn to JavaWinstonJava, How To ProgramDeitel and DeitelAN INTRODUCTION TO COMPUTER SCIENCE USING JAVAKamin7.Patrons.txt文件的内容Bill ArmstrongAnup BasuJoe CulbersonRenee ElioEhab ElmallahPawel Gburzynski四、第二部分要编写类的及其框架1. Patron.java/* 该类的一个实例代表图书馆里的一个借书人。 *每个借书人有唯一的借书证号码ID(int),姓名(String)和所借书的清单(Vector)。 */import java.util.Vector; public class Patron /常量/实例变量/构造方法public Patron(String name, int number)/* 把我用给定的姓名与号码初始化,姓名转为大写字母。* 我被初始化了,所以我还没有借任何书。*/公共实例方法public String name() /* 返回我的姓名*/public int number() /*返回我的号码 */public int countLoans() /* 返回我借的书的总数*/public String allLoans() /* 返回一个字符串,其代表所有我在图书馆系统所借的书,如果没有借任何书,*返回None * (例如:#0号借书人所借的书为:* #: 0 JAVA STRUCTURES By: BAILE */)public void borrowBook(Book aBook) /* 将给定的书填加到我的借书清单中*/public void returnBook(int bookNum) /* 从我的借书清单中删除给定的书 */public String toString() /*返回代表我的一个字符串,该字符串中包含我的借书证号和我的姓名 * (例如: #: 0 BILL ARMSTRONG) *由于该类定义了方法toString(),可以用PrintStream类中的 print(Object) *和 println(Object)打印该类的实例 。也就是说:我们可以用语句*System.out.print(aPatron)。*/ 2. PatronCatalog.javaPatronCatalog类模拟了已注册到图书馆中的借书人清单(或“目录”)。借书人的详细信息保存在一个磁盘文件中。这个数据将会从磁盘文件读入到程序中。我们将会提供读入这些数据的方法。import java.util.Vector;import java.io.*; /*该类的一个实例代表已注册到图书馆中的所有借书人清单。*/public class PatronCatalog /常量/ 实例变量 private Vector patrons; private int lastPatronNum; / 填加你的实例变量 / 构造方法public PatronCatalog() /* 把我初始化为0个借书人* 把借书人的借书证号初始化为0*/ /公共实例方法public void readPatronFile() /* 该方法会从patrons.txt文件中读取数据,然后用它们填充vector *this.patrons。*/String patronFile = patrons.txt;BufferedReader bfreader;String str;try bfreader = new BufferedReader(new FileReader(patronFile);while (str=bfreader.readLine() !=null) this.patrons.addElement(new Patron(str.trim().toUpperCase(), this.lastPatronNum+); catch (IOException e) public int patronCount() /* *返回借书人总数 */public void addPatron(String name) /* * 用给定的姓名创建一个借书人实例,将他填加到借书人目录中,增加借书人 *号码。借书人号码代表借书人的证件号,而不是Vector的下标。 *如果你删除了#4借书人,然后又填加了一个借书人,那么该人的号码会为5,*而不是4。 */public String deletePatron(int patronNum) /* 从借书人目录中删除给定的借书人并返回结果* 删除借书人,如果1)借书人在目录中并且2)此人没有在借的书* 如果是无效证件号码,返回 无效证件号* 如果有效,删除并返回代表借书人的字符串后接结果说明id, * 如果有在接的书,返回 (例如: #: 0 BILL ARMSTRONG 有在借的书,不能删除)*并且在删除之前让用户确认 (例如: 你确信要删除#0借书人吗 es o? * 如果有效并为 yes删除然后返回(例如: #: 0 BILL ARMSTRONG被删除了)* 如果有效,但没有被删除,返回 (例如: #: 0 BILL ARMSTRONG 没有被删除)*/)public String listLoans(int patronNum) /* *找出给定借书证号所借的所有图书,当借书人存在时返回结果 * 如果是无效的借书证号,返回无此借书证号码*/public String printAllLoans() /* * 返回图书馆系统中的所有借书人所借的所有图书的清单,若没有任何借书人,* 则什么都不返回。*/public String searchPatronByNum(int patronNum) /* * 按借书证号查找借书人并返回查找结果* 如果找到返回代表借书人的字符串 (如 #: 0 BILL ARMSTRONG)*若找不到返回查无此人;*/public String searchPatronByFullName(String name) /* * 查找给定的姓名的所有借书人并返回查找结果* 如果找到返回代表借书人的字符串 (如 #: 0 BILL ARMSTRONG)*若找不到返回查无此人;*/public Patron findPatron(int patronNum) /* * 返回一个给定借书证号所代表的借书人对象(patron),若找不到返回NULL */public String toString() /*返回代表我(PatronCatalog)的字符串,该字符串中应包含所有借书人的 证件号码和姓名。因为这个类定义了toString()方法,可以用PrintStream类中的print(Object) 和println(Object) 打印实例变量的值。也就是说我们可以用System.out.print(aPatronCatalog)语句。*/3. BookCatalog.java图书馆里包含书的清单(例如:图书馆中的“书的目录”)。最新的图书清单也保存在图书目录BookCatalog中。当运行图书应用程序时,会从一个文本文件中读去图书数据(执行此操作的代码已在以下提供)并且用这些数据来初始化BookCatalog对象。由于每本书是从文件里读出来的,所以每本书都分配有唯一的书号。第一本书的ID号为0,下一本的ID号为1,等等。读完图书文件后,你不必担心检查书的ID号。import java.util.*;import java.io.*;/* 该类的一个实例代表图书馆里的所有图书*/public class BookCatalog /常量/实例变量private Vector books; private int lastBookNum; /填加你的实例变量/构造方法public BookCatalog() /* 将我初始化为0本书* 初始化书的编号为0*/公共实例方法public void readBookFile() /*每一个图书的最新书号-你不必理解这个代码是怎么工作的* 只是简单的把它用在你的程序中*/String bookFile = books.txt;BufferedReader bfreader;String title;String author;try bfreader = new BufferedReader(new FileReader(bookFile);while (title=bfreader.readLine() !=null) author = bfreader.readLine();this.books.addElement(new Book(title.trim().toUpperCase(), author.trim().toUpperCase(), this.lastBookNum+); catch (IOException e) public int bookCount() /* * 返回图书馆中藏书总数 */public void addBook(String title, String author) /* * 用给定的书名和作者创建一本书,并把它添加到图书目录中 *增加书号* 书号代表书的号码,而不是Vector的下标* 如果你删除了4号书并且又增加了另一本书,最后增加的书的号码应该是5而不是4 */ public String deleteBook(int bookNum) /* *从图书目录中删除给定的书并返回结果* 删除书如果1)图书清单中有这本书 2)目前该书没有被借出去。如果是无效的书号,返回没有这样的书号*如果有效,删除并返回代表书的后接结果说明的字符串* (例如: #: 0 ON TO JAVA By: Winston 被删除)* 如果该书被借,返回( #: 0 ON TO JAVA By: Winston 被借,不能被删除)* 并在删除之前要用户确认 (例如: 你确实想要删除 #0 es o? * 如果有效并且用户的回答为yes 删除并返回 (例如: #: 0 ON TO JAVA By: Winston 被删除了)*如果有效并且用户的回答为no,则返回(例如 #: 0 ON TO JAVA By: Winston 没有被删除)*/public String searchBookByNum(int bookNum) /* *查找给定书号的图书,并返回查找结果* 如果找到,返回代表书的字符串(例如: #: 0 ON TO JAVA By: Winston) * 若没找到,则返回查无此书;*/public String searchBookByAuthor(String author) /* *查找给定作者的所有图书,并返回查找结果* 如果找到,返回代表书的字符串(例如: #: 0 ON TO JAVA By: Winston) * 若没找到,则返回查无此书;*/public Book findBook(int bookNum) /* * 返回给定书号的图书对象(book),若没有找到返回NULL*/public String toString()/*返回代表我(BookCatalog)的字符串,该字符串中应包含所有书的(书号,书名和作者。因为这个类定义了toString()方法,可以用PrintStream类中的print(Object) 和println(Object) 打印实例变量的值。也就是说我们可以用System.out.print(aBookCatalog)语句。*/) 4. Transactions.java/* * 该类的一个实例,允许借书人从图书馆借书并向图书馆还书 。 */ public class Transactions / 常量/ 实例变量/ 构造方法public Transactions(PatronCatalog patronCatalog, BookCatalog bookCatalog) /* * 将我初始化,使我为借书还书事务做准备*/公共实例方法public String borrowBook(int patronNum, int bookNum) /* *校验给定的借书证号与书号 * 如果有效,图书馆里有此藏书,结束交易并且不返回任何结果* 如果该书已被借出去,返回: #: 0: ON TO JAVA By WINSTON 被借出。 * 如果借书证号无效,返回: 没有此证件号 * 如果书号无效,返回:没有此书号*/public String returnBook(int patronNum, int bookNum) /* *校验给定的借书证号与书号 * 如果有效,并且书是借给此人的,结束交易并返回#: 0: ON TO JAVA By WINSTON 被还* 如果该书没有借给此人,则返回:书没有被借出。 * 如果借书证号无效,返回: 没有此证件号 * 如果书号无效,返回:没有此书号*/ 五、运行时例外及其说明 表5-1 普遍存在于程序中的例外与错误列表例外原 因 修改提示ArrayIndexOutOfBoundsException数组下标越界例外当数组下标小于0或大于数组的实际长度时发生。需要注意的是数组的下标从0开始,而不是从1。最后的下标值比数组的长度少1ClassNotFoundException类没有找到例外不能够装载被请求的类确保java文件的名字与在此文件中定义的类名匹配。IndexOutOfBoundsException下标越界例外下标越界见以上的ArrayIndexOutOfBoundsExceptionNoSuchMethodException没有这样的方法例外不能够解决的方法也许方法名的拼写有误或者方法不在那个类中NullPointerException空指针例外试图访问一个空的对象成员通常,是因为使用了一个没有被初始化的接受者对象,例如:没有给值。确保你的构造方法的定义是准确的。构造方法没有返回值类型,不像普通方法。如果像给普通方法一样,也给构造方法定义了一个返回值类型并且在其中定义了初始化代码,那么对该类进行对象初始化时,初始化代码就不能被调用。NumberFormatException数字格式例外不能够把字符串转换成数字类型可能会在使用键盘类中的readInt()方法时发生。StringIndexOutOfBoundsException字符串下标越界例外下标值为负数或大于字符串的长度可能会在使用 subString()得到子串时发生。表5-2 普遍存在的错误提示及其原因( java.lang errors)错误原因修改提示NoClassDefFoundError没有找到类定义的错误没有找到类定义时发生在项目文件夹下没有该类文件时发生,确认有没有该类或类名是否有拼写错误。NoSuchMethodError没有这样的方法错误当找不到被请求的方法时发生确认被请求调用的方法存在,并检查方法名是否有拼写错误.表5-3 程序中普遍存在的输入输出类例外 例外原因修改提示FileNotFoundException文件没找到例外文件找不到时发生确保文件存在,并且其路径正确表5-4 Applet例外例外原因修改提示java.io.FileNotFoundException输入输出文件没找到例外java.lang.ClassNotFoundException类没有找到1. HTML文件中的类名可能与java文件名不一致。HTML文件不在项目文件夹里面。确保文件存在,并且其路径正确例外举例:import java.util.*;public class Test/ 保存一些值private Vector storage;/初始化 Vector的构造方法public void Test()this.storage = new Vector();/ 往 Vector里添加一个整型类public void add(Integer value)this.storage.add(value);/ 测试输出public static void main(String args)Test aTest = new Test();aTest.add(new Integer(1);以上的代码将会发生以下的错误,你知道为什么吗?Exception in thread main java.lang.NullPointerException(main线程例外java.lang.NullPointerException,即:空指针例外) at Test.add(Test.java) at Test.main(Test.java)六、大作业二测试代码1. BookTest.java/* *用于单独测试Book类 * 测试每个方法是基本功能* *类方法的结果 所期望的结果*/public class BookTest public static void main(String argv) Book aBook;String title=Java programming;String author=Deitel;int bookNum = 1;int patronNum = 10;System.out.println(=Book Test=);aBook = new Book (title, author, bookNum);System.out.print(aBook.title();System.out.println(+title.toUpperCase();System.out.print(aBook.author();System.out.println(+author.toUpperCase();System.out.print(aBook.number();System.out.println(+bookNum);System.out.print(aBook.onLoan();System.out.println(false);System.out.print(aBook.loanedTo();System.out.println(-1);aBook.returnMe();System.out.print(aBook.onLoan();System.out.println(false);System.out.println();System.out.print(aBook);System.out.println(#1 CMPUT 114 By: UOFA);aBook.borrowMe(10);System.out.print(aBook.onLoan();System.out.println(true);System.out.print(aBook.loanedTo();System.out.println(+patronNum);System.out.println();aBook.returnMe();System.out.print(aBook.onLoan();System.out.println(false);System.out.print(aBook.loanedTo();System.out.println(-1);2.InputValidatorTest.javapublic class InputValidatorTest public static void main(String arg) String promptMsgInt=Enter a integer: ;String promptMsgStr=Enter a String: ;System.out.println(1) Enter abc); /你的输入System.out.println(2) Enter 1);System.out.println(InputValidator.getInt(promptMsgInt)+ 1);System.out.println(n1)Enter abc ); /输入时前面留空格System.out.println(InputValidator.getStr(promptMsgStr)+ abc);System.out.println(2)Enter ); /空格无效,你的程序应该重新提示,直到输入一个字符串为止 System.out.println(InputValidator.getStr(promptMsgStr); 七、编程风格要求以下说明了对实验5,大作业一,大作业二中编码风格的要求。 你应该对所有的变量或方法起描述性的名字。(用x,y表示坐标时例外。) 在你定义的每个类和方法的开头加上好的注释说明。 你应该使你的方法尽量的短,以至于每个方法只做一件事情。如果你认为一个方法太长了,你可以建立私有的实例方法并把一些代码写在它们当中。程序里有许多私有实例方法不会丢分,但太少会被扣分。 你应该对缩进,空格和空行使用一致的、易阅读的方案。 如果一个变量只被一个方法使用中,你应该把它定义为局部变量而非实例变量。 你应该尽量少使用实例变
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年花画工艺品行业研究报告及未来发展趋势预测
- 2025年急救设备行业研究报告及未来发展趋势预测
- 2025年机场旅客服务行业研究报告及未来发展趋势预测
- 2025年机房环境工程行业研究报告及未来发展趋势预测
- 物业服务质量提升方案及管理体系
- 石油石化职业技能鉴定考试模拟题库(夺冠系列)附答案详解
- 前沿职业教育方案研究
- 纺织服饰文化节活动方案
- 企业财务管理中的绩效考核与激励
- 第八课 我的QQ账号说课稿-2025-2026学年小学信息技术陕教版四年级下册-陕教版
- 小学英语词汇量小学英语词汇大全(约1000词)(按字母顺序)修改版
- 2024年道路交通(驾驶员交通法规及安全)知识考试题库与答案
- 2024年全国职业院校技能大赛中职(数字产品检测与维护赛项)考试题库(含答案)
- 【乡村旅游探究的文献综述4200字】
- 2025年上半年教师资格考试高中历史学科知识与教学能力试卷与参考答案
- 城市供热管网抢修与维护工程技术规程
- DB2104∕T 0011-2022 地理标志产品 清原龙胆
- 《电动汽车双向无线电能传输系统技术规范》
- 医院护理培训课件:《安全注射》
- JBT 7361-2023 滚动轴承 零件硬度试验方法 (正式版)
- 读懂诗家语省公开课金奖全国赛课一等奖微课获奖课件
评论
0/150
提交评论