




























































































Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
Complete instructor’s solutions manual for C. Thomas Wu’s Java OOP textbook. Covers all chapters from basics (classes, objects, inheritance) to advanced topics (GUIs with Swing/AWT, arrays, sorting/searching, recursion, file I/O, collections framework, applets, and event handling). Includes hundreds of fully-solved programming exercises, design documents, state-of-memory diagrams, and complete Java source code files. Ideal for instructors and students seeking verified, A+ grade solutions.
Typology: Exams
1 / 185
This page cannot be seen from the preview
Don't miss anything!





























































































1.1 Graphically represent a Vehicle class and three Vehicle objects named car1, car2, and car3. 1.2 Graphically represent a Person class with the following components:
Note: Value is already an instance variable in Vehicle since all vehicles have some value. Truck Class (subclass of Vehicle) registrationRate class constant loadingCapacity instance variable 1.6 Consider a student registration program used by the registrar’s office. The program keeps track of students who are registered for a given semester. For each student registered, the program maintains the student’s name, address, and phone number; the number of classes in which the student is enrolled and the student’s total credit hours. The program also keeps track of the total number of registered students. Define instance and class variables of a Student class that is suitable for this program. Instance variables name address phoneNumber numClassesThisSemester totalCreditHours Class variables numStudentsRegistered 1.7 Suppose the minimum and maximum number of courses for which a student can register are different depending on whether the student is a graduate, undergraduate, or work-study student. Redo Exercise 6 by defining classes for different types of students. Relate the classes using inheritance. Student See Exercise 1. GraduateStudent (subclass of Student) maximumHours class constant minimumHours class constant UndergraduateStudent (subclass of Student) maximumHours class constant minimumHours class constant WorkStudyStudent (subclass of Student) maximumHours class constant minimumHours class constant
1.8 Imagine you are given a task of designing an airline reservation system that keeps track of flights for a commuter airline. List the classes you think would be necessary for designing such a system. Describe the data values and methods you would associate with each class you identify. Note: For this exercise and Exercises 9 through 12, we are not expecting you to design the system in complete detail. The objective of these exercises is to give you a taste of thinking about a program at a very high level. Try to identify about a half dozen or so classes, and for each class, describe several methods and data members. Database Data Members Collection of clients Collection of flights Methods Accessors (get___()) and Mutators (set___()) for clients and flights^1 Make reservation Add new flight Client Data Members Name Address Phone Collection of reservations BillingInformation Methods Accessors and Mutators for name, address, BillingInformation, and collection of reservations Add reservation Flight Data Members Departure city Arrival city Departure time Arrival time Seats available Aircraft type (^1) Accessors and Mutators (also called gets and sets) allow other people to use your classes data members while allowing you to control just how they access them. This allows you to perform various activities like bounds checking (making sure the value set is not illegal, such as – 6 for an age data member). This is part of the concept of encapsulation and is fundamental to the object-oriented paradigm.
Course Data Members Collection of Sections Title Code College Department Methods Add Section Remove Section Accessors and Mutators for all data members Section Data Members Maximum number of students Current number of students Section ID Methods Add Student Remove Student Accessors and Mutators for all data members 1.10 Repeat Exercise 8, designing the state Department of Motor Vehicles registration system. The system keeps track of all licensed vehicles and drivers. How would you design objects representing different types of vehicles (e.g., motorcycles and trucks) and drivers (e.g., class A for commercial licenses and class B for towing vehicles)? Vehicle Data Members VIN Class type (A, B, etc.) Make Model Year Registration fee Owner Methods Accessors and Mutators for all data members Note: Could also implement with several subclasses of Vehicle, one for each class (car, commercial truck, livery, etc.) especially if each type required some specialized information.
Driver Data Members License number Name Address Collection of Vehicles Collection of Violations Methods Add Vehicle/Violation Remove Vehicle/Violation Accessors and Mutators for all data members Violation Data Members Number Date Location Charge Officer Methods Accessors and Mutators for all data members 1.11 Repeat Exercise 8, designing a sales tracking system for a fast-food restaurant. The system keeps track of all menu items offered by the restaurant and the number of daily sales per menu item. Menu Data Members Collection of menu items Total Sales Methods Get Menu Item Add Menu Item Delete Menu Item MenuItem Data Members Name Price Total Sales Methods Accessors and Mutators for name, price, and total sales
Number of free withdrawals Fee per withdrawal Interest Rate Check writing privileges Debit Card information 1.14 Consider a program that maintains an address book. Design an inheritance hierarchy for the classes such as Person, ProfessionalContact, Friend, and Student that can be used in implementing such a program. Account Savings Account Checking Account Money Market Account Student Checking Classic Checking Business Checking
1.15 Do you think the design phase is more important than the coding phase? Why or why not? The design phase is much more important than the coding phase. Design has a huge impact on not only the ease and speed of implementation during the coding phase but also on the testing and maintenance phases. A proper design allows testing to be done in terms of structural components, which makes bugs easier to trace back to the improper implementation. Furthermore, a good design is far more maintainable. Maintenance is considered the most expensive of all the phases, thus a more easily maintained project is considerably less expensive. It is important to remember that maintenance includes more than just fixing bugs; extension of the original design to meet new requirements is a common and important task. 1.16 How does the quality of design affect the total cost of developing and maintaining software? A low quality design will not only slow implementation, thus increasing expense and delay, but will also force design decisions to be revisited later. Inevitably, the design will have to change. Related implementation will have to be adapted or recoded. Testing will have to be redone. The more patchwork done, the more likely new errors are injected into the code. Not only are the maintenance programmers burdened with what is almost certainly a less coherent design (and documentation that tended to become outdated as more changes to the design were made), but they must also hunt for more bugs.
} }
1. Should be /* _to begin a multi-line comment
Purposes: To describe the program, methods, data values, and other components To explain the meaning of code To provide other helpful information to improve the readability Types: Multi-line comments Single-line comments Javadoc comments In some cases yes (like including // in a multi-line comment), but in other cases no.
myFrame = new JFrame();
c. gram d. Jog e. Ping