Answered step by step
Verified Expert Solution
Question
1 Approved Answer
UML Diagram Specification for Weatherinfo class WeatherInfo - weekDay : string - high Temp: int - lowTemp: int - rainfall : double + WeatherInfo() +
UML Diagram Specification for Weatherinfo class WeatherInfo - weekDay : string - high Temp: int - lowTemp: int - rainfall : double + WeatherInfo() + Weather Info (day:string, hi:int, lo:int, rain: double). + getWeekDay() : string + getHighTemp() : int + get LowTemp () : int + getRainfall() : double + setWeekDay (day:string) : void + setHigh Temp (degrees:int) : void + setLowTemp (degrees:int) : void + setRainfall (inches: double) : void + toString(): string Implementation Details Constructors: Initialize a Weatherinfo object to default values using zero for numeric types and empty string for string type, or Initialize a Weatherinfo object using constructor parameter values Observers (getxxx accessor functions): Return requested data member value Transformers (setxxx mutator functions): Assign parameter value to requested data member Additional observer function members: Return formatted string representation of weather data members including week day, high temp, low temp, and rain fall o Include decimal formatting for rain fall (e.g. fixed decimal point, always show decimal point, 1-digit precision this assignment is to demonstrate how to design a class when given a diagram of the Tiles, and he and implementation details, how to split the specification and implementation into different use objects as array elements and pass the array to a function. Along with these stions you should find a UML diagram outlining the class members, and a presentation os needed to add the implementation and specification (.h and .cpp) files where the class The purpose of this assignment specification and implementati files, and how to use objects as assignment instructions you shoul outlining the steps needed to a will be declared and defined. 2 Demonstrate the separation Objectives write a class according to UML Diagram specifications. rate the separation of class specification and implementation into separate files. | 3 Demon onstrate how to define and use an array with objects as array elements. now to declare, call, and define a function with an array of objects as a function 4. Demonstrate how to declare, call, and dem parameter. based on the UML diagram I have provie function members. Included is a list of im members. Once you have written, compiled, and (client code) that will define and use an array of these objects. I recommend starting with new empty pro requirements along with a temporary test progr this assignment, you will need to define a class that encapsulates a single day's weather information UML diagram I have provided. The diagram specifies data members, constructors, and is. Included is a list of implementation details for defining the constructors and function you have written, compiled, and tested your class, you begin writing the main program lend starting with new empty project to focus first on completing the Weatherlnfo class s along with a temporary test program to make sure the constructors and function members all correctly. For example, create one object using the constructor with no arguments and use it to test transformer (setXxx) member functions and print it with the toString member function. Then create another object using the constructor with arguments and use that one to print its values by calling all the observer (getXXX) member functions. Once you are satisfied the class is implemented properly, exclude the test program from Solution Explorer keeping only the WeatherInfo.h and Weatherinfo.cpp Tiles, and then add a new .cpp file to the project for completing the assignment (Add New). 1 Requirements Follow the UML diagram specifications and implementation details. The specifications for the Weather Info class should be placed in a header (WeatherInfo.h) file where you define that class with data and function member declarations only. The constructor and function member definitions for the Weather Info class should be placed in an implementation (Weather Info.cpp) file. In the program's main() function, define a single 1-dimensional array of size 7 defined using type WeatherInfo to hold data for at most 7 days of weather information. Use a DO-WHILE loop to input data for creating objects and storing them in the array. Demonstrate how to declare, call, and define a function where you pass the array and day counter to that function, and that uses a FOR loop to print the list of weather information. Declare, call, and define 3 value-returning functions in your main program named indexOfHightest Temp, indexOfLowest Temp, and totalRainfall. The first one should find and return the array location (index) of the highest temperature, and the second one should find and return the array location for the lowest temperature. The last one should find and return the total rainfall. The main program calls these functions to get those values and then print the reading and day for the highest and lowest temperatures, and the total rain fall. Declare, call, and define 2 more value returning functions in your main program named averageHigh and averageLow. The first one should find and return the average high temperature, and the second one should find and return the average low temperature. The main program calls these functions to get those values and then print them at the bottom of the list under those columns of output. Also, calculate and print the average rain fall since you already should have that total handy. Declare, call, and define a function named userInput. Modify the program as necessary to move the input DO-WHILE loop into that function. This will need to be a value-returning function and should return the day count incremented by the loop back to main since other functions (and loops) will need to know that counter value. This function also will need the array and size passed in as parameters since it will be getting filled with objects created from user input. Run your program twice testing that it works with a partially-filled array (only 5 days input) 10 and also with a completely filled array (all 7 days input). Considerations: You may need to include string and using namespace std; in your Weather Info.h file. You will need to include sstream and possibly iomanip in your WeatherInfo.cpp file. Because the string header and namespace are already included in Weather Info.h, you should not need to add them in this file, but you can if you want to. You will need to add include "WeatherInfo.h" in any file that uses the Weather Info class declarations, for example in the source code (.cpp) file where you define the main() function. You can use a temporary Weather Info object in the input loop while storing objects in the array. For example, define and use variables to read the week day, high temperature, low temperature and rain fall from the user, you then use those variables to declare a temporary Weather Info object and assign it to the next array element: Weather Info temp (weekDay, highTemp, lowTemp, rainfall); week [dayCount] = temp; Or you can simply use the constructor by itself to assign an object directly to the array elements: week [dayCount] = Weather Info (weekDay, highTemp, lowTemp, rainfall); When defining the toString() function member, refer to the Employee.cpp example (lab exercise) demonstrating how to do this with numeric types using an ostringstream output object, which is an "output string stream" that formats an output string "in memory." You will need to include the sstream library header in order to declare one of these objects in a function, and include iomanip if you want to use setw() and precision () manipulators. Then you can use basically the same formatting including setw(), precision (), fixed, and showpoint that we've used elsewhere to format a line of output for the weather information list. You even can insert endl manipulators into the string but always should use one last ends manipulator (meaning "end string") to mark the end of the string that is being formatted in memory, otherwise your output could print garbage at the end of the string. Defining a function like this will allow you to simplify the code in the rest of the program by just calling the toString() function for each array element, and if the formatted string prints on one line (no endl inserted into the string by the function, then you can adjust the overall width as necessary: cout
Step by Step Solution
There are 3 Steps involved in it
Step: 1
Get Instant Access to Expert-Tailored Solutions
See step-by-step solutions with expert insights and AI powered tools for academic success
Step: 2
Step: 3
Ace Your Homework with AI
Get the answers you need in no time with our AI-driven, step-by-step assistance
Get Started