CIS*2750 Assignment 1 Deadline: Thursday, October 3, 9:00pm Weight: 14.5% Module 2: accessor and summary functions The purpose of the parser we are building in A1 is to extract some information about...

Hello, I was wondering if I could get the attached assignment completed. I have attached a test harness to test the code, to run the harness, the libgpxparse.so library created should be placed into the same directory as the executable test1pre, and then run the executable. Please let me know if any additional information is needed. Thank you!


CIS*2750 Assignment 1 Deadline: Thursday, October 3, 9:00pm Weight: 14.5% 
 Module 2: accessor and summary functions 
 The purpose of the parser we are building in A1 is to extract some information about our GPX data. This information will be used in later assignments. Make sure that, in addition to the GPX specification, you also carefully read the comments in GPXParser.h - each data structure includes detailed comments indicating the constraints for various components. The functions below will allow us to examine the internal state of the GPXdoc struct and its components, and report them in later assignments. Required Functions This set of five functions will provide summaries of the GPXdoc's contents. You will be provided with the corresponding counts for the files posted in the assignment description. int getNumWaypoints(const GPXdoc* doc) Returns the number of waypoints in the document. This corresponds to the number of wpt elements in the corresponding GPX file. Return 0 if doc is NULL. int getNumRoutes(const GPXdoc* doc) Returns the number of routes in the document. Return 0 if doc is NULL. int getNumTracks(const GPXdoc* doc); Returns the number of tracks in the document. Return 0 if doc is NULL. int getNumSegments(const GPXdoc* doc); Returns the total number of track segments in all tracks in the document. For example, if the doc has 2 tracks - one with 1 segment, and the other with 3 segments - the segment count should be 4. Return 0 if doc is NULL. int getNumAttributes(const GPXdoc* doc); Returns the total number of all attributes in all objects in the document that can have attributes. Note: see the definition of "attribute" on Module 1 - we do not mean XML attributes here. Include the total number of non-NULL name attributes in this count, even though names are not stored in the Attribute structs. For example, if the doc has - a named route (name element) - description for that route (desc element) - 4 route points, each of which also has the elevation (ele element) then the attribute count should return 6 (1 name + 1 description + 4 elevations). Return 0 if doc is NULL. This set of three functions returns pointers to elements with the specified name. Make sure you return pointers to the structs that exist in the doc (do not allocate new ones or return a pointer to a copy). This will allow us to display or modify document elements later on. Waypoint* getWaypoint(const GPXdoc* doc, char* name);
 Returns a pointer to a waypoint with the given name. If more than one exists, return the first one. Return NULL if the waypoint is not found, or any of the arguments are NULL. Track* getTrack(const GPXdoc* doc, char* name); Function that returns a pointer to a track with the given name. If more than one exists, return the first one. Return NULL if the track is not found, or any of the arguments are NULL. �1 Route* getRoute(const GPXdoc* doc, char* name); Function that returns a pointer to a route with the given name. If more than one exists, return the first one. Return NULL if the route is not found, or any of the arguments are NULL. �2 Assignment 1 grading scheme
 
 Functions (graded using an automated test harness): 96% - Approximately 45 tests, worth 1.5-3% each - As stated in Assignment 1 description, all functions listed in GPXParser.h must be implemented - even if the implementation is incomplete or buggy. Failure to do so may crash the test harness, and result in an automatic grade of zero. - The preliminary harness will contain approximately 30 of these test cases
 Correct makefile (has all two rules, creates correctly named files): 4% - make parser creates a shared library libgpxparse.so in assign1/bin - make clean removes all .o and .so files Total: 100%
 
 You will lose marks for run-time errors and incorrect functionality. Additional deductions include: - Any compiler warnings: -15% - Any memory leaks: -15% - Any memory errors other than leaks, e.g. under-allocating memory, using 
 uninitialized pointers, etc.: -15% - Incorrect directory structure: -10% - Incorrect output filenames created by makefile: -10% - Any additional failures to follow submission instructions: -10% Any compiler errors: automatic grade of zero (0) on the assignment. Your assignment will be graded on linux.socs.uoguelph.ca. The only flags used to compile it will be: -Wall -g 
 -std=c11. Your code must compile with these flags with no errors or warnings. Submission structure As stated in Module 1, the submission must have the following directory structure: The submission must have the following directory structure: assign1/ - contains the Makefile file. assign1/bin - should be empty, but this is where the Makefile will place libgpxparse.so. assign1/src - contains GPXParser.c , LinkedListAPI.c, and your additional source files. assign1/include - contains your additional headers. Do not submit GPXParser.h and LinkedListAPI.h. You must not modify GPXParser.h and LinkedListAPI.h. If you submit them, they will be replaced by the files that were provided in the Assignment 1 description. If you modify them, your code may fail to compile or to run with the automated test harness.
 
 Note: There will be no marks given for a correct list implementation, since the list is already provided for you.
Oct 02, 2021
SOLUTION.PDF

Get Answer To This Question

Related Questions & Answers

More Questions »

Submit New Assignment

Copy and Paste Your Assignment Here