This document contains instructions for a 180 minute closed-book exam with multiple choice, short answer, and programming questions worth a total of 100 marks. The exam contains questions on object-oriented programming, data structures like linked lists, and Java programming concepts like threads, I/O, and networking. Students are to write their name, student number, and answers in the provided spaces.
This document contains instructions for a 180 minute closed-book exam with multiple choice, short answer, and programming questions worth a total of 100 marks. The exam contains questions on object-oriented programming, data structures like linked lists, and Java programming concepts like threads, I/O, and networking. Students are to write their name, student number, and answers in the provided spaces.
This document contains instructions for a 180 minute closed-book exam with multiple choice, short answer, and programming questions worth a total of 100 marks. The exam contains questions on object-oriented programming, data structures like linked lists, and Java programming concepts like threads, I/O, and networking. Students are to write their name, student number, and answers in the provided spaces.
This document contains instructions for a 180 minute closed-book exam with multiple choice, short answer, and programming questions worth a total of 100 marks. The exam contains questions on object-oriented programming, data structures like linked lists, and Java programming concepts like threads, I/O, and networking. Students are to write their name, student number, and answers in the provided spaces.
Part A (max.18) ______ Part B (max.12) ________ Part C (max.25) ________
Part D (max.45) ______ TOTAL (max.100) ___________ Part A: Multiple Choice (18 marks) Circle the correct answer. Only one answer is accepted (which you consider the best).
1) The Linked Lists are data structures in which objects are stored in random memory locations. a) TRUE b) FALSE
2) If you redefine an attribute in a subclass class, the new attribute value will not replace the superclass value. a) TRUE b) FALSE
3) The method used to schedule a thread for execution is start(). a) TRUE b) FALSE
4) With datagram sockets, the communication is like the telephone system. a) TRUE b) FALSE
5) Private attributes defined in a superclass can be accessed directly inside a subclass. a) TRUE b) FALSE
6) The method accept() is used for the creation of a Socket on a server application. a) TRUE b) FALSE
7) Multiple inheritance can be implemented in Java using interfaces. a) TRUE b) FALSE
8) In an inheritance situation, a reference of a subclass type can be used to point to an object of the base class type. a) TRUE b) FALSE
9) Polymorphism can be implemented with interfaces or with abstract classes. a) TRUE b) FALSE
2 10) What should you use to position a Button within an application Frame so that the size of the Button is NOT affected by the Frame size? a) FlowLayout b) GridLayout c) the center area of BorderLayout d) the East or West area of a BorderLayout e) the North or South area of a BorderLayout
11) What might cause the current thread to temporarily or permanently stop executing ? a) An InterruptedException is thrown. b) The thread executes a wait() call. c) The thread constructs a new Thread. d) A thread of higher priority becomes ready. e) answers (a) and (b) f) answers (a), (b) and (d) g) None of above
12) Given a TextField that is constructed like this: TextField t =new TextField(30); Which statement is true? a) The displayed width is 30 columns. b) The displayed string can use multiple fonts. c) The displayed string will always show thirty characters. d) The maximum number of characters in a string will be thirty.
13) Where in a constructor, can you place a call to a constructor defined in the super class? a) Anywhere b) The first statement in the constructor c) The last statement in the constructor d) You can't call super in a constructor
14) Which type of file will the following input stream connect to ? FileReader fr =new FileReader("client.dat"); a) Text file b) Sequential file c) Random-access file d) any type of file
15) Images are stored in: a) Text files b) Binary format c) Both (a) and (b) d) None of the above
3 16) The code which creates the synchronization of threads (such as in the Producer/Consumer example) uses a number of techniques. Indicate which of the following techniques does NOT play a role in creating the synchronization. a) method sleep() b) method wait() c) method notify() d) a boolean variable to ensure synchronization e) the use of the reserved word "synchronized" in specifying the synchronized methods
17) Which of the following methods is NOT inherited from the Object class: a) method clone() b) method toString() c) method equals() d) method println()
18) Which of the following JApplet methods is NOT called automatically. a) method start() b) method paint() c) method repaint() d) method init() e) method stop()
Part B (12 marks): Data Structures
B1 (6 marks)
Fill in the code for the method insertAtFront() missing at the end of the Linked Lists code shown below.
class ListNode { // package access data so class List can access it directly Object data; ListNode next;
// Constructor: Create a ListNode that refers to Object o. ListNode( Object o ) { this( o, null ); }
// Constructor: Create a ListNode that refers to Object o and // to the next ListNode in the List. ListNode( Object o, ListNode nextNode ) { data =o; // this node refers to Object o next =nextNode; // set next to refer to next }
// Return a reference to the Object in this node Object getObject() { return data; }
// Return the next node ListNode getNext() { return next; }
4 }
// Class List definition class List { private ListNode firstNode; private ListNode lastNode; private String name;
public List( String s ) { name =s; firstNode =lastNode =null; } public List() { this( "list" ); } public synchronized boolean isEmpty() { return firstNode ==null; }
public synchronized void insertAtFront( Object insertItem ) {
}
B2. (6 marks)
Consider the following binary tree:
44
22 67
89 18 8 21
72 6 14
42 36 55
28 30
5 Write the output of a program that performs an inorder traversal of the tree. Here is the method used by the traversal:
Suppose that a university stores its employee records in the random access file Univ.dat. Each record contains: the employeeID (an integer up to 10000), the telephone number (String of 12 characters), job title (String with 10 characters) and the years of work (an integer).
Write a Java program containing class ReadRandFile which enters the existing records (i.e. records with non-zero employeeID) in an array of records, sorts them in ascending order by the years of work and then displays all records.
Assume that class Record is provided (methods content is missing)
public class Record { private int employeeID; private String phone; private String title; private int years; // i.e. years of work
public Record(int a, String f, String l, double b) {.. } public Record() { .. } public void read( RandomAccessFile file ) throws IOException { .. } public void write( RandomAccessFile file ) throws IOException {.. } public int getID(){..} public String getPhone(){..} public String getTitle(){..} public double getYears(){..} public int size() {.. } public String toString() {..} }
Help: Several useful methods of the RandomAccessFile are length() - returns the length of the file in bytes getFilePointer() - returns the position (in bytes) of the file pointer inside the file
6
7 Part D (45 marks): Programming (Write the missing code)
D1 (23 marks)
Write a J ava server application for a retail company using a chain of stores. The server is installed on a Web server at the address www.kmart.com and uses for communication port 8453. If a client attaches to that port, the server will wait for the client to send a UTF-style string, containing the name of an item sold by a store. Whenever this happens the server does a search in its database and sends back a UTF string containing the cost of the item.
You have to write the code for this server able to simultaneously communicate by socket technology with up to 500 clients. Do not write the database code - assume that the method String database (String item) returns the cost of the item as a string.
8 D2 (22 marks)
Write a Java client applet for the server of point D1, which has the following GUI: - At the top it has the label "Welcome to KMart" - At the center it has a 3 pairs label-textfield and a button. The labels are: "Client Number", "ItemName" and "Number of Items". The button has the label "Send". - At the bottom of the applet there is a text area.
When button "Send" is clicked the Item Name stored in the second textfield is sent to the server and the price returned is used to calculate the cost of all items. Then the information from the textfields plus the cost of all items are appended to a string which is displayed in the textarea and the textfields become blank.
Write this applet such that the communication with the server starts when the user enters the webpage and stops when the user leaves the webpage.
1. What does it mean to inherit a class? Mark for Review (1) Points The subclass (or child class) gains access to any non-private methods and variables of the superclass (or parent class). (*) The access specifier has been set to private. A way of organizing the hierarchy of classes. Extending a method from a superclass. Correct 2. Which is the most accurate description of the code reuse philosophy? Mark for Review (1) Points A programming philosophy that promotes stealing your classmates' code. A programming philosophy that promotes having no concern about the security of code. A programming philosophy that promotes protecting data and hiding implementation in order to preserve the integrity of data and methods. A programming philosophy that promotes simpler, more efficient coding by using existing code for new applications