Concept explainers
Reread the code in Display 10.9. Then, write a class TwoD that implements the two-dimensional dynamic array of doubles using ideas from this display in its constructors. You should have a private member of type pointer to double to point to the dynamic array, and two int (or unsigned int) values that are MaxRows and MaxColS.
You should supply a default constructor for which you are to choose a default maximum row and column sizes and a parameterized constructor that allows the programmer to set maximum row and column sizes.
Further, you should provide a void member function that allows setting a particular row and column entry and a member function that returns a particular row and column entry as a value of type double.
Remark: It is difficult or impossible (depending on the details) to overload ( ) so it works as you would like for two-dimensional arrays. So simply use accessor and mutator functions using ordinary function notation.
Overload the + operator as a friend function to add two two-dimensional arrays. This function should return the TwoD object whose ith row, jth column element is the sum of the ith row, jth column element of the left-hand operand TWOD object and the ith row, jth column element of the right-hand operand TwoD object.
Provide a copy constructor, an overloaded operator z, and a destructor.
Declare class member functions that do not change the data as const members.
Program Plan:
- Define class named as TwoD and declare the variables for rows and columns.
- Declare a variable of pointer to double to point to the dynamic array.
- Define the default constructor and parameterized constructor to initialise rows and columns.
- Define the copy constructor that copies the values of one object array to another object array.
- Define operator + function declared as friend that add two dimensional arrays and return the sum.
- Use the setValue () function to set the values in the matrices m1 and m2 of double type.
- Finally write the main function to test the class TwoD.
Program Description:The purpose of the program is to set the values of two matrices of double type and add them to print the third matrix using the class TwoD and its constructors.
Explanation of Solution
Program:
//header files #include <iostream> usingnamespacestd; //Create Class TwoD classTwoD { //Private Data members private: intMaxRows; intMaxCols; //Declare array double&Twoarr; //Access Specifier public: //Create Default Constructor TwoD() { //chooses default rows and columns MaxRows=10; MaxCols=10; Twoarr=newdouble*[MaxRows]; for(int it =0; it <MaxRows;++it) { Twoarr[it]=newdouble[MaxCols]; } } //Create parameterised Constructor for setting the rows and columns TwoD(int rows,int cols) { //chooses Default rows and columns MaxRows= rows; MaxCols= cols; Twoarr=newdouble*[MaxRows]; for(int it =0; it <MaxRows;++it) { Twoarr[it]=newdouble[MaxCols]; } } //included the copy constructor TwoD(constTwoD&matrix) { //rows and columns assigned to the constructor object MaxRows=matrix.MaxRows; MaxCols=matrix.MaxCols; Twoarr=newdouble*[MaxRows]; for(int it =0; it <MaxRows;++it) { Twoarr[it]=newdouble[MaxCols]; for(intjt=0;jt<MaxCols;++jt) { Twoarr[it][jt]=matrix.Twoarr[it][jt]; } } } //Destructor ~TwoD() { for(int it =0; it <MaxRows;++it) { delete[]Twoarr[it]; } deleteTwoarr; } //member function for setting the values voidsetValue(int row,int col,doubleval) { Twoarr[row][col]=val; } //Friend function which overloads the "+" Operator friendTwoDoperator+(TwoD&m1,TwoD&m2) { TwoD*m3 =newTwoD(m1.MaxRows, m1.MaxCols); for(int it =0; it < m3->MaxRows;++it) { for(intjt=0;jt< m3->MaxCols;++jt) { //Performs addition m3->Twoarr[it][jt]= m1.Twoarr[it][jt]+ m2.Twoarr[it][jt]; } } return*m3; } //Void function to print the values void print() { for(int it =0; it <MaxRows;++it) { for(intjt=0;jt<MaxCols;++jt) { cout<<Twoarr[it][jt]<<""; } cout<<endl; } } }; intmain() { //declare variables intmaxRows; intmaxColumns; //Getting inputs from the user cout<<"Enter row Dimensions of the array:"<<endl; cin>>maxRows; cout<<"Enter Column Dimensions of the array:"<<endl; cin>>maxColumns; cout<<"&********************************"**lt;<endl; cout<<"Echoing the two-dimensional Array"<<endl; cout<<"&********************************"**lt;<endl; //passing parameters to the class objects TwoDm1(maxRows,maxColumns); TwoDm2(maxRows,maxColumns); for(int it =0; it <maxRows;++it) { for(intjt=0;jt<maxColumns;++jt) { m1.setValue(it,jt,0.2*(it +jt)); m2.setValue(it,jt,0.3*(it -jt)); } } //printing the results cout<<"&***********"**lt;<endl; cout<<"Matrix 1 "<<endl; cout<<"&***********"**lt;<endl; m1.print(); cout<<"&***********"**lt;<endl; cout<<"Matrix 2"<<endl; cout<<"&***********"**lt;<endl; m2.print(); //performs the addition operation TwoD m3 = m1 + m2; cout<<"&***********"**lt;<endl; cout<<"Addition "<<endl; cout<<"&***********"**lt;<endl; m3.print(); return0; }
Explanation:
First, TwoD class is defined along with all the required variables and constructors. Then, from the main ()function, the instances of the class is called, the rows of the array and the column of the array are entered by the user.
The two dimensional array is echoed randomly. Two matrices of given order are generated. The sum of these two matrices are obtained and displayed on the output screen.
Output Screenshot:
Want to see more full solutions like this?
Chapter 10 Solutions
Absolute C++
Additional Engineering Textbook Solutions
Management Information Systems: Managing The Digital Firm (16th Edition)
Starting Out with Java: From Control Structures through Objects (7th Edition) (What's New in Computer Science)
Electric Circuits. (11th Edition)
Thinking Like an Engineer: An Active Learning Approach (4th Edition)
SURVEY OF OPERATING SYSTEMS
Computer Science: An Overview (13th Edition) (What's New in Computer Science)
- Create a class Department with attributes DName, DID, a dynamic listDTeachers of type string.Write accessors and mutators for all data membersand show function to show all data members.Create nullaryand parameterized constructors to initialize the data members.Also write a copy constructor for Department class.In main() create a dynamic array of departments, Use loop to create four objects in the dynamic array. All the even indexed objects should be created with nullary constructors and thencall the accessors and mutators to initializethe objects while, all the odd indexed objects should be initialized using parameterized constructors. Create four copy objects from array using copy constructors.Call the show function to show the four objects.arrow_forwardWrite the definition for a class named Vector2D that stores information about a two-dimensional vector. The class should have functions to get and set the x and y components, where x and y are integers.Next, overload the * operator so that it returns the dot product of two vectors. The dot product of two-dimensional vectors A and B is equal to(Ax * Bx) + (Ay * By).Finally, write a main subroutine that tests the * operation.arrow_forwardWrite a Program to define a Mobile class, with member variables String brand; double price String OS (make it Final). Float memory Make a default constructor, Make a parameterized constructor. Overload the above Constructor. Provide getters and setters for data members. Inside main, create an array of mobiles. Take data from user and set the values for the mobiles in array (check for array out of bound exception). At the end Print data of array using Loop.arrow_forward
- IN C++ In your previous class, move the member variables (student name and grades) as private. Create the proper functions to fill data in them. In main, create an instance of that array and fill that instance with data. Call the DisplayInfo() function from main so it prints the content of the object. A screenshot showing the code in Visual Studio and the output (on the console screen). previous activity class code:- #include <iostream>using namespace std;class student{ public: string Name; string grade[3]; void DisplayInfo() { cout<<"Student Name:"<<Name; cout<<"\nGrade:"<<grade[1]; }};int main(){ cout << "Welcome to my world..." << endl; system("pause"); student obj; obj.Name="Rahul"; obj.grade[1]="A++"; obj.DisplayInfo(); return 0;}arrow_forwardWhat would be the missing linearrow_forwardCreate a class Employee with following data members, name, id, and salary as private datamember. Create array of objects for four employees, compare their salary using operatoroverloading, and display the records of the student who is getting less salary. by c++arrow_forward
- Write in C++ a class Restaurants to manage a vector of Restaurant objects. The class Restaurants should have: • A private vector to store Restaurant objects • A public add method to add a Restaurant to the Restaurants • A public average_max_rating method that returns the average of max ratings of the restaurants. • A public get_max method that returns the Restaurant that has highest max rating.arrow_forwardWrite a class with name intlist. This class will have an integer array arr (for simplicity define it with 100 locations) and an integer ent as member data in private section. cnt variable will be used to keep the number of elements in integer array (arr). In public section of this class there will be following member functions with explained tasks: (i) (ii) (iii) (iv) (v) :returns the number of elements in arr array listcount() addfirst(x) : locates integer x to the first position of arr. All current elements in array will move to the next location. addlast(x) : locates integer x to the last free location. removeall(): remove all elements of array removefirst(): remove first element of array. All current elemets in array will move to the preceding location (vi) removelast(): remove last element of array. (vii) remove(i) : remove element in index i. Notice: While adding if maximum exceeds will give an error message. While removing if there is no element or if there is no elements in…arrow_forwardCreate a class Department with attributes DName, DID, a dynamic list DTeachers of type string.Write accessors and mutators for all data members and show function to show all data members.Create nullary and parameterized constructors to initialize the data members.Also write a copy constructor for Department class.In main() create a dynamic array of departments, Use loop to create four objects in the dynamic array. All the even indexed objects should be created with nullary constructors and then call the accessors and mutators to initialize the objects while, all the odd indexed objects should be initialized using parameterized constructors. Create four copy objects from array using copy constructors.Call the show function to show the four objects.arrow_forward
- 3.25 Fixed Sized Deque Your task is to create an implementation of the Java Deque interface that can only hold N items where N is a number passed into the constructor. Note that most (if not all) of the unit tests rely on the method object[] toArray() inherited from Collection. Therefore, you must make sure you implement that method correctly in order to get most of the points. 301664.1524810.gpazay7 LAB АCTIVITY 3.25.1: Fixed Sized Deque 0/ 70 Submission Instructions Compile command javac FixedsizedDeque.java -xlint:all -encoding utf-8 We will use this command to compile your code Upload your files below by dragging and dropping into the area or choosing a file on your hard drive. FixedSizedDeque.java Drag file here or Choose on hard drive.arrow_forwardTHIS QUESTION IS RELATED TO SUBJECT OBJECT ORIENTED PROGRAMMING IN C++ . SOLVE this question in dev c++. please send it in 30 minutes and solve step by step. THANKS Q#5 Start with the safearay class from the ARROVER3 program in Chapter 8 of Object Orient programming by Rober Lafore. Make this class into a template, so the safe array can store any kind of data. Include following member functions in Safe array class. The minimum function finds the minimum value in array. The maximum function find the maximum value in array. The average function find average of all the elements of an array. The total function finds the running total of all elements of an array. In main(), create safe arrays of at least two different types int and double and store some data in them. Then display minimum, maximum, average and total of array elements. Note: use subscript ([]) operator in sasfearay class.arrow_forwardPlease explainarrow_forward
- Database System ConceptsComputer ScienceISBN:9780078022159Author:Abraham Silberschatz Professor, Henry F. Korth, S. SudarshanPublisher:McGraw-Hill EducationStarting Out with Python (4th Edition)Computer ScienceISBN:9780134444321Author:Tony GaddisPublisher:PEARSONDigital Fundamentals (11th Edition)Computer ScienceISBN:9780132737968Author:Thomas L. FloydPublisher:PEARSON
- C How to Program (8th Edition)Computer ScienceISBN:9780133976892Author:Paul J. Deitel, Harvey DeitelPublisher:PEARSONDatabase Systems: Design, Implementation, & Manag...Computer ScienceISBN:9781337627900Author:Carlos Coronel, Steven MorrisPublisher:Cengage LearningProgrammable Logic ControllersComputer ScienceISBN:9780073373843Author:Frank D. PetruzellaPublisher:McGraw-Hill Education