Has to be written in C A community has 7 swimming pools as s
Has to be written in C#!
A community has 7 swimming pools, as shown in the following map.
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 >> ... ....
10 4, 8) (6, 6) (10,5) (13, I) 0 2 3 4 6 7 8 9 10 11 12 13 14Solution
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();
}
}
}


