CS304 Assignment 3 Solution and Discussion
-
Assignment No. 03
Semester: Fall 2019
CS304- Object Oriented ProgrammingTotal Marks: 20
Due Date: 16/01/2020
Objective
The objective of this assignment is:
To give you the idea of practical implementation of C++ Inheritance and Polymorphism.Uploading instructions:
• Your assignment should be in .CPP format (Any other formats like scan images, PDF, zip, doc, rar and bmp etc. will not be accepted).
• Save your assignment with your ID (e.g. bc000000000.CPP).
• No assignment will be accepted through email.Rules for Marking:
It should be clear that your assignment will not get any credit if:
• The assignment is submitted after due date.
• The submitted assignment does not open, execute or file is corrupted.
• Your assignment is copied from internet, handouts or from any other student.
(Strict disciplinary action will be taken in this case).Lectures Covered:
This assignment covers Lecture # 22-29.
Assignment No. 03
In continuation of scenario of PSL (Pakistan Super League) given in Assignment 1, you are required to write a C++ program that should contain three classes: Player, Batsman and Bowler, where Player should be base class and Batsman and Bowler should be its derived classes. The detail of data members and member functions for each class is provided in the given table.
Class Data Members Member Functions Player • Name of Player, • Code of Player• Age of Player • Default Constructor • Setter functions to set values of data members of this class. • Getter functions to get the values of data members of this class. • A function to set data of a player. •A function to display data of a player. Batsman • Innings played • Runs Scored • Batting Average • Default Constructor • A function to set data of batsman. • A function to calculate batting average of a batsman. • A function to display data of a batsman. Bowler • Runs Conceded • Total Overs • Bowling Average • Default Constructor • A function to set data of bowler. • A function to calculate bowling average of a bowler. • A function to display data of bowler. Solution Guidelines:
• You have to use concept of Polymorphism to generate the sample output.
• Use following formulas to calculate Batting and Bowling average of batsman and bowler, where Total Innings and Total Overs should be non-zero.
Batting Average = Runs Scored / Total Innings
Bowling Average = Total number of runs conceded / Total OversSample Output:
Best of luck!
NOTE: Do not put any query on MDB about this assignment, if you have any query then email at [email protected]. Furthermore, if any student found cheating from any other student or from online forums then he/she will be awarded ZERO right away and strict disciplinary action will be taken against the student.
Deadline: Your assignment must be uploaded/submitted on or before 16th Jan, 2020.
-
-
Solution Idea:
#include <iostream> #include <string> using namespace std; class Player{ private: string name; string code; int Age; public: Player() { //…………. } void setname() { cout"\nEnter Name: "; cin>>name; } void setcode() { cout" Enter PlayerCode: "; cin>> code; } void setAge() { cout" Enter Age: "; cin>> Age; } string getname() { return name; } string getcode() { return code; } int getAge() { return Age; } void display() { // Display function for Player Class…. } }; class Batsman:public Player{ private: int Inning; int Scored; double B_Average; public: Batsman() { //…………. } void setInning() { cout"Enter Inning: "; cin>>Inning; } void setScored() { cout"Enter Runs: "; cin>>Scored; } double cal_Average() { return B_Average = Scored/Inning; } virtual void display() { cout"\nDisplaying Batsman Information:\n..........................\n"; cout"Batsman name: "getname()endl; cout"Batsman code: "getcode()endl; cout"Batsman age: "getAge()endl; cout"Batsman Average: "cal_Average()endl; } }; class Bowler:public Player{ private: int Run, Over; double L_Average; public: Bowler() { //....... } void setRun() { cout"Enter Runs Conceded: "; cin>>Run; } void setOver() { cout"Enter Total Overs: "; cin>>Over; } double cal_Average() { return L_Average = Run/Over; } virtual void display() { cout"\nDisplaying Bowler information:\n.........................."; cout"Bowler name: "getname()endl; cout"Bowler code: "getcode()endl; cout"Bowler age: "getAge()endl; cout"Bowler Average: "cal_Average()endl; } }; int main() { int size, i; char arr[size], check; Batsman batsman; Bowler bowler; cout" How many Bowlers and Batsman data you want to enter? "; cin>>size; while(i<size) { cout"\nEnter choice: B for batsman, L for Bowler: "endl; cin>>arr[i]; if(arr[i] == 'b' || arr[i] == 'B') { cout"\nEnter following data for Batsman: "endl; batsman.setname(); batsman.setcode(); batsman.setAge(); batsman.setInning(); batsman.setScored(); } if(arr[i]=='l' || arr[i]== 'L' ) { cout"\nEnter following data for bowler: "endl; bowler.setname(); bowler.setcode(); bowler.setAge(); bowler.setOver(); bowler.setRun(); } cout"\nDo you want to enter more data (Y for yes, N for No): "; cin>>check; if(check=='n' || check =='N' || i==size-1) { for (i=0; i<size; i++) { if(arr[i] =='B' || arr[i] == 'b') { batsman.display(); } if(arr[i] == 'L' || arr[i] == 'l') { bowler.display(); } } } i++; } }
-