Question

please look at below code and respond all the required import Foundation protocol TaksPerformer { func doAThing() } clas...

please look at below code and respond all the required

import Foundation

protocol TaksPerformer {

func doAThing()

}

class Employee: TaksPerformer {

let name: String

var boss: Boss?

init(name: String) {

self.name = name

}

func doAThing() {

print("\(name) is doing a thing")

}

}

class Boss {

var employee: Employee

let name: String

init(name: String, employee: Employee) {

self.name = name

self.employee = employee

employee.boss = self

}

func actLikeABoss() {

employee.doAThing()

}

}

// 1)

// A) What is wrong with the current implementation of Boss and Employee, why is it wrong, and how can we demonstrate that there is an issue?

//

// B) What pattern discussed in class does the Boss - Employee relationship remind you of? Give an example of the discussed pattern.

//

// C) Create a Person class that has the following property:

// let name: String

// Now have Employee and Boss inherit from Person

//

// D) You realize that there are speciffic tasks you would like an employee to perform. All tasks look like this:

// func makeCoffe(_ name: String) {

// print("\(name) made coffe")

// }

//

// func writeReport(_ name: String) {

// print("\(name) wrote a report")

// }

// Modify Boss, Employee and TaskPerformer in a way that a Boss can be instantiated with the following constructor:

// Boss(name: "Bossman", employee: anEmployee, tasks: [makeCoffe, writeReport])

// The employee instance should perform the tasks.

// 2)

// Create a small app that takes user input and performs a useful calculation with that user input

// - Using techniques we learned in class, make sure that absolutely no input crashes the app.

// - Use layout constraints to make sure the app looks good in portraint and landscape mode, as well as on small and large devices.

// - Use MVC

// - Bonus: Write unit tests for your model to make sure no input can crash the app.

// 3) You created a bookshelf.

// A) How could you modify Shelve with a technique discussed in class so that you can create Shelve instances that contain

// Tools, Dishes or any other kind of object?

// B) Create a function that takes in two shelves of the same type and swaps their items

struct Book {

let title: String

}

struct Shelve {

var top: Book

var center: Book

var bottom: Book

}

0 0
Add a comment Improve this question Transcribed image text
Answer #1

1.
A)Without inheriting Employee class, Boss class trying to assign employee details to local variable.

B)

package relationsdemo;

public class Bike

{

    private String color;

    private int maxSpeed;

    public void bikeInfo()

    {

        System.out.println("Bike Color= "+color + " Max Speed= " + maxSpeed);

    }

    public void setColor(String color)

    {

        this.color = color;

    }

    public void setMaxSpeed(int maxSpeed)

    {

        this.maxSpeed = maxSpeed;

    }

}

In the code above the Bike class has a few instance variables and methods.

package relationsdemo;

public class Pulsar extends Bike

{

    public void PulsarStartDemo()

    {

        Engine PulsarEngine = new Engine();

       PulsarEngine.stop();

    }

}

Pulsar is a type of bike that extends the Bike class that shows that Pulsar is a Bike. Pulsar also uses an Engine's method, stop, using composition. So it shows that a Pulsar has an Engine


C)

class Person
{
String name;
   Person(String name)
   {
   this.name=name;
   }
}

class Employee
{
   void showName()
   {
       System.out.println(name);
   }
}

class Boss extends Person
{
   void showName()
   {
       System.out.println(name);
   }
}
class ans
{
   public static void main(String args[])
   {
       Boss b=new Boss("Shri");
       Employee e=new Employee("Watto");
       b.showName();
       e.showName();
   }
}

D)

class Person
{
String name;
   Person(String name)
   {
   this.name=name;
   }
}

class Boss extends Person
{
   void showName()
   {
       System.out.println(name);
   }
}

class Employee extends Boss
{
   void makeCoffee()
   {
       System.out.println("Coffee");
   }
   void writeReport()
   {
       System.out.println("Report done");
   }
}


class ans
{
   public static void main(String args[])
   {
       Employee e=new Employee("Bossman");
       e.showName();
       e.makeCoffee();
       e.writeReport();
   }
}

2)

mport java.util.Scanner;

public class JavaExample {

public static void main(String[] args) {

   double num1, num2;
Scanner scanner = new Scanner(System.in);
System.out.print("Enter first number:");

num1 = scanner.nextDouble();
System.out.print("Enter second number:");
num2 = scanner.nextDouble();

System.out.print("Enter an operator (+, -, *, /): ");
char operator = scanner.next().charAt(0);

scanner.close();
double output;

switch(operator)
{
case '+':
   output = num1 + num2;
break;

case '-':
   output = num1 - num2;
break;

case '*':
   output = num1 * num2;
break;

case '/':
   output = num1 / num2;
break;

default:
System.out.printf("You have entered wrong operator");
return;
}

System.out.println(num1+" "+operator+" "+num2+": "+output);
}
}

Add a comment
Know the answer?
Add Answer to:
please look at below code and respond all the required import Foundation protocol TaksPerformer { func doAThing() } clas...
Your Answer:

Post as a guest

Your Name:

What's your source?

Earn Coins

Coins can be redeemed for fabulous gifts.

Not the answer you're looking for? Ask your own homework help question. Our experts will answer your question WITHIN MINUTES for Free.
Similar Homework Help Questions
ADVERTISEMENT
Free Homework Help App
Download From Google Play
Scan Your Homework
to Get Instant Free Answers
Need Online Homework Help?
Ask a Question
Get Answers For Free
Most questions answered within 3 hours.
ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT