89.1k views
2 votes
Your project must satisfy the following requirements:

1. Create three classes: Pool, Temperature, and Location.
2. A swimming pool shall have an object of "Temperature" and an object of "Location" as data
members. ("Compositionally" speaking: A pool has-a temperature, and a pool has-a location)
3. A temperature has "degree" and "scale".
4. A location is defined by (x, y); hence a location has an ‘x’ value and a ‘y’ value.
5. Provide ToString method for all three classes.
6. Provide other member methods for each of the classes properly . For example, a FindDistance method to find the distance between pools.
7. All methods shall be public.
8. The Pool class shall have a static data member ‘Count’ The driver program shall print out the static member count before any pool
object is created, and also after each pool is instantiated.
9. A maintenance crew can set the temperature for each pool within the range of 98 oF and
104 oF.
Note: generate a random number between [98, 104].
10. A maintenance person will go through all seven pools and set the temperatures. The person starts from location (0,0), and will go to the nearest pool after she/he finishes the job. The process continues until all the pools are visited. Each pool can only be visited once.
Your driver program determines and displays the route she/he takes to visit all the pools,
such as :
(0,0) >> B with temperature at 99 degree F >> C with temperature at 103 degree F >> ... ....

User Saheed
by
5.8k points

1 Answer

6 votes

Answer:

Check the explanation

Step-by-step explanation:

using System;

using System.Collections;

namespace HelloWorldApplication

{

class Temperature{

public double degrees;

double scale; // use of this field is not specified

public override string ToString(){

return ("degrees:"+degrees+", scale:"+scale);

}

}

class Location{

int x;

int y;

public Location(int x, int y){

this.x = x;

this.y = y;

}

public double getDistance(Location otherLoc){

return Math.Sqrt((x-otherLoc.x)*(x-otherLoc.x) +(y-otherLoc.y)*(y-otherLoc.y) );

}

public override string ToString(){

return ("("+x+", "+y+")");

}

}

class Pool{

public Pool(){

count++;

}

public static int count=0;

public Location location;

public Temperature temperature;

public override string ToString(){

return ("location:"+location+", temperature:"+temperature);

}

}

class Driver

{

static void Main(string[] args)

{

Random r = new Random();

ArrayList list = new ArrayList();

Console.WriteLine("Before adding pool count : "+Pool.count);

Pool pool = new Pool();

pool.location = new Location(4,8);

pool.temperature = new Temperature();

pool. temperature. degrees =r. Next (98,105);

list. Add(pool);

Console. WriteLine("After adding pool count : "+Pool. count);

Console.WriteLine("Before adding pool count : "+Pool.count);

pool = new Pool();

pool.location = new Location(12,9);

pool.temperature = new Temperature();

pool. temperature. degrees =r.Next (98,105);

list.Add(pool);

Console.WriteLine("After adding pool count : "+Pool.count);

Console.WriteLine("Before adding pool count : "+Pool.count);

pool = new Pool();

pool.location = new Location(6,6);

pool.temperature = new Temperature();

pool.temperature. degrees =r.Next (98,105);

list.Add(pool);

Console.WriteLine("After adding pool count : "+Pool.count);

Location location = new Location(0,0);

// You can even use Minimum Spanning Tree algorithm to reduce the time complexity

Console.WriteLine("Path is : ");

while(list.Count > 0){

Pool selectedPool = null;

double dist =double.MaxValue;

foreach (Pool i in list)

{

if(i.location.getDistance(location) < dist){

selectedPool = i;

}

}

Console.Write(selectedPool + " >> " );

location = selectedPool.location;

list.Remove(selectedPool);

}

/* my first program in C# */

Console.WriteLine(" end.");

Console.ReadKey();

}

}

}

User Syntactic Fructose
by
5.8k points