首页 > > 详细

CPI 221作业代做、代写Java语言作业、program课程作业代做、Java程序设计作业调试 代写Python编程|帮做C/C++编程

CPI 221 – Midterm Exam – Spring 2020
Name:
Complete all 7 Pages. Each page is worth 8 points.
Extra +4:
1) Object Oriented Principles
A) List and describe the Four Pillars of Object Orientation:
B) Explain the principle of “proper isolation of responsibility” and construct an example of how it would be used in developing software:
C) Compare and contrast the ideas of Loose and Tight coupling:

2) OOP and Java
A) What is an Abstract Base Class in OOP?
B) How does an Interface such as Comparable differ from an Abstract Base Class in Java?
C) Explain a Static method and give an example from Java’s own libraries:
D) What is a Design Pattern and why should we use them?
E) Describe the Factory Design Pattern and explain the advantages that Factory Patterns offers the programmer:
3) Thinking about OOP
In homework we created a Procedural Generation in two different approaches. First we created an inheritance & polymorphism chain (building a city); second we used a single Terrain class and a static factory to build our simulation.
Assess and defend each approach in terms of which approach was better for:
Extensibility – which software could be expanded easily and safely? IE what if I want to add new features to the simulation?

Maintainability – which could be understood and repaired easily by another team?

4) Applied OOP Design
Kinda Real Wrestling (KRW) has approached your software company to create a new product to interact with their fans. KRW tracks each wrestler’s wins and losses during each season. Winning matches and special stipulations in different match-types give the wrestler points. These points raise their standing in their division. The top point carrier can challenge the champion once a month but loses 10 points if they fail. KRW wans fans to be able to create an account and play a fantasy wrestling league. Fans with an account can create 4 groups/stables of wrestlers: three, 3-wrestler stables (one for each division) and a single 6-wrestler stable for company-wide performance (which takes into consideration non-division matches and so on). Fans’ stables are scored based on their wrestler’s performances similar to Fantasy Football. Fans’ stables are shown in the rankings and a history of their wrestlers’ performance.
Design the Object Oriented infrastructure to fulfill this customer’s needs. Describe/Illustrate the classes, inheritance and polymorphism.

5) File I/O
A) Compare and contrast InputStream/OutputStream based file I/O to Scanner/Printwriter based file I/O:

B) Discuss Serialization, what is it? What are the processes and features? What is the function of the keyword Transient?

6) Using a Doubly Linked List that only stores integers
With the following interface: addToFront(int), addToEnd(int), boolean contains(int), removeFromFront(), removeFromEnd(), boolean isEmpty(), int size() and head, tail and current.
Write the following algorithms:
A) void InsertBeforeCurrent(int value)

B) boolean LeastToGreatest_SortedInsert(int value) – return false if the operation can’t be done
C) void ThereCanBeOnlyOne(int value) – If value doesn’t exist in the list, add it. If it does exist, delete any duplicates in the list leaving only one copy.

7) Data Structures - Stack, Queue, etc.
A) If we are implementing a Stack and Queue from a Linked List, identify the standard Linked List methods that we would rename as the stack/queue methods:
void Push(T value)
void Pop()
void Enqueue(T value)
void Dequeue()

B) Suppose that we have a Stack s and Queue t. Show the contents of both stacks after each of the following statements: (draw the stacks left to right, bottoms on left)
Top Front
s.push(5); s: t:
t.enqueue(7); s: t:
s.push(9); s: t:
t.enqueue(0); s: t:
t.enqueue(s.pop()); s: t:
s.push(s.peek()); s: t:
s.push(t.dequeue()); s: t:
s.push(t.dequeue()); s: t:
t.enqueue(s.peek()); s: t:

Extra Credit) The Problem with Pizza and Starbucks
After spring break we will be looking at an OOP Design Pattern called a Decorator Pattern. One of its goals is to deal with problematic data sets.
You do not need to read ahead to answer this question. This is an ‘evaluation and reasoning’ question.
Think about this problem:
“You are a software developer and a local Pizza company has approached you to develop an application that allows its customers to order custom pizzas. The company offers 14-inch and 18-inch pizzas and the customer is allowed up to 10 toppings on the pizza in any combination (but no partial toppings). Yes that can mean 10xPeperoni. The chain offers 10 toppings. Cheese and sauce come as default ingredients, but extra can be added as a topping.”

What makes this software challenging to write? Explain why basic Object Orientation falters with this kind of software. Put yourself into the mindset of the developer and ask yourself questions like “could I maintain this software? What if the client adds another topping? Etc.”

联系我们 - QQ: 99515681 微信:codinghelp2
© 2014 www.7daixie.com
程序代写网!