/** proj1.h @author elliot@wpi.edu Elliot Pennington */ #include #include #include #include #include #include #define PI 3.14159265358979323846 typedef struct town { char ID[10]; //unique identifier: a string of up to 8 digits char Name[45]; // as known to the USPS. None is quite as long char state[3]; // the usual two letters (+ string end) double lat, longit; // Short for latitude and longitude, in degrees int Elev; // in meters, above sea-level (some are below...) } Town; /** Dynamically allocates a new town @param char* id @param char* nam @param char* stat @param double lati @param double longi @param int ele @return a freshly allocated town */ Town* dynAlloc(char* id, char* nam, char* stat, double lati, double longi, int ele); /** Get's the information about a town from a single line of a file, and allocates it @param File* inf @param Town* t @return a new town */ Town* getStuff(FILE* inf, Town* t); /** Used to copy one town fully into a different town @param Town* dest @param Town* src @return the destination town */ Town* copyTown(Town* dest, Town* src); /** Used for testing purposes. prints attributes of a town @param Town* t */ void outTown(Town* t); /** counts line in a text file @param FILE* stream @return the number of lines */ int nlcount(FILE* stream); /** Chuck norris roundhouse kicks target town, deleting it instantly @param Town* t */ void chucknorris(Town* t); /** Gets the distance between towns using long and lat from each @param double l1 @param double g1 @param double l2 @param double g2 @return the distance */ double getDistance(double l1, double g1, double l2, double g2);