# SOLVED CS304 Assignment 1 Solution and Discussion

• Assignment No. 01 (Graded)
SEMESTER FALL 2019
CS304- Object Oriented Programming Total Marks: 20
Due Date: 15-11-2019
Instructions
Please read the following instructions carefully before solving & submitting assignment:
It should be clear that your assignment will not get any credit if:
o The assignment is submitted after due date.
o The submitted assignment is other than .doc /.docx file.
o The submitted assignment does NOT open or file is corrupted.
o The assignment is copied (from other student or from handouts or internet).
Objective
The objective of this assignment is:
o To give you the idea of practical implementation of some of the OOP concepts like abstraction, encapsulation, inheritance, association, generalization, specialization, and UML class construction.
Problem Statement:
PSL (Pakistan Super League) is played every year. This league contains at least 4-5 franchises and each franchise has a team. There are many sponsors which sponsor each franchise. Each team is composed of 10-15 players. One of the players is the captain of the team. A coach is also allocated to each team. One coach can serve only one team at a time. Coaches, captain and players are common persons each having different characteristics. Different games are played between the teams and each game has its venue and date.

Draw an Object Model (Class Diagram) for the given scenario showing main objects, their attributes, functions and relationships.
The tasks you have to do are:

1. Extract the main objects (entities) of above system.
2. Find the necessary attributes and functions that need to be associated with each object.
3. Identify the relationships among identified objects.
4. Construct a final comprehensive Class diagram showing all objects and their relationships along with their attributes and functions.

Important things to consider:

1. As happens in real world that everyone visualizes a problem in a different way so the solutions of all students may vary based upon their own thinking.
2. You have to use standard UML notations for objects, classes, and their associations.
3. You have to use all concepts studied so far like abstraction, encapsulation, inheritance, association, generalization, and specialization wherever applicable.
Hint:
4. Besides problem statement; objects, properties, and functions of a system can also be extracted from domain knowledge.
Solution Uploading instructions
o For clarity and simplicity, you are required to Upload/Submit only .DOC/.DOCX file
o Copy/Paste your class diagram in your final MS Word (.doc) file if you are using any drawing tool (MS Paint, MS Visio etc.). Images submitted as solution files will not be accepted.

NOTE:
Do not put any query on MDB about this assignment, if you have any query then email at . 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.

Lectures Covered: This assignment covers Lecture # 1-6
Deadline: Your assignment must be uploaded/submitted within due date i.e. 15th November, 2019.

• Solution:

• Solution:

• Extract the main objects (entities) of above system.
Find the necessary attributes and functions that need to be associated with each object.
Identify the relationships among identified objects.
Construct a final comprehensive Class diagram showing all objects and their relationships along with their attributes and functions.

``````#include <iostream>

using namespace std;

class ALLScene{
public:
ALLScene(){
cout << "All Input Scene Feature constructor called" << endl;
}
};
class UserInputScene{
public:
UserInputScene(){
cout << "UserInput Feature constructor called" << endl;
}
};
class CUIScene{
public:
CUIScene(){
cout << "CUI Scene Feature constructor called" << endl;
}
};
class GUIScene{
public:
GUIScene(){
cout << "GUI Scene Feature constructor called" << endl;
}
};
class GameScene{
GUIScene guiScene;
CUIScene cuiScene;
UserInputScene userInputScene;
ALLScene allScene;
public:
GameScene(){
cout << "\n" ;
cout << "Game Scene Constructor Called" << endl;
cout << "\n" ;
}
};
class TitleScene{
public:
TitleScene(){
cout << "Title Scene Constructor Called" << endl;
}
};
class StartScene{
public:
StartScene(){
cout << "Start Scene Constructor Called" << endl;
}
};
class EndScene{
public:
EndScene(){
cout << "End Scene Constructor Called" << endl;
}
};
class Scene{
GameScene gameScene;
TitleScene titleScene;
StartScene startScene;
EndScene endScene;
public:
Scene(){
cout << "\n" ;
cout << "Scene Constructor Called" << endl;
cout << "\n" ;
}
};
int main(){
Scene scene;
}

``````

• Important things to consider:

4

4

2

1

3

1

2

2
| |