Bsee21036 Lab11
Bsee21036 Lab11
Bsee21036 Lab11
Session: Batch:
Obtained Marks/100
Name Roll number
Signature: ____________________________
Objective
The objective of this lab is to observe the basic knowledge of programming in C++.
Equipment and Component
Component Description Value Quantity
Computer Available in lab 1
Conduct of Lab
• Students are required to perform this experiment individually.
• In case the lab experiment is not understood, the students are advised to seek help from
the course instructor, lab engineers, assigned teaching assistants (TA) and lab
attendants.
A 2D array in C++ is essentially an array of arrays. It is declared by specifying the data type of
the elements, followed by the array name and the size of the rows and columns in square
brackets. For example, int matrix[3][4]; declares a 2D integer array named matrix with 3 rows
and 4 columns. Elements in a 2D array can be accessed using two indices, one for the row and
one for the column. For instance, matrix[1][2] refers to the element in the second row and third
column of the array.
In C++, a char array is used to represent a sequence of characters, typically used for strings. It
is declared by specifying the data type char, followed by the array name and the size of the array
in square brackets. For example, char name[10]; declares a char array named name with a size of
10 characters. Char arrays are terminated by a null character ('\0') placed at the end, indicating
the end of the string. Functions from the <cstring> library, such as strcpy, strlen, can be used to
manipulate char arrays.
In C++, a pointer is declared by specifying the data type followed by an asterisk () and the
pointer name. Pointers hold the memory address of another variable. For example, int* ptr;
declares a pointer named ptr that can hold the memory address of an integer variable. Pointers
are used to indirectly access variables and their values using the dereference operator (). Pointers
are particularly useful in dynamic memory allocation, accessing elements in arrays, and passing
arguments to functions by reference.
Structures in C++ provide a convenient way to group related variables together into a single
entity. By defining a structure, you can create a custom data type that represents a specific
concept or object in your program. The member variables within a structure can have different
data types, allowing you to store and organize diverse information. Structures are commonly
used to represent real-world entities such as people, products, or coordinates.
Lab Task
Part A [Marks: 5]
SetProductDetails: Set the details of the product (name, price, and quantity).
DisplayProductDetails: Display the details of the product (name, price, and quantity).
In a program, create an array of Product objects with a fixed size. Prompt the user to
enter the details for each product in the array and display their details using the
DisplayProductDetails function.
template<typename A>
void displayProductdetails(const Product<A>& product) {
cout << "Name: " << product.name << endl;
cout << "Price: " << product.price << endl;
cout << "Quantity: " << product.quantity << endl;
}
#endif
//main.cpp
#include"Functions.h"
#include<iostream>
using namespace std;//cout library
int main() {// start of main function
int x;
cout<<"OPTINS:-\n 1)Task 01\n 2)Task02\n";
cout<<"Enter a number = ";
cin>>x;
switch(x)
{
case 1:
{
// start of main function
// Create two Employee objects dynamically
Employee < int >*employee1 = createEmployee ("Sami Ullah", 1, "Sales");
Employee < int >*employee2 = createEmployee ("Abdul Rahman", 2, "Marketing");
cout << "Enter details for 1st Employee :" << endl; // displaying the output and moving
to next line
cout << "Name: "; // displaying the output
cin>>name;
cout << "Employee ID: "; // displaying the output
cin >> employeeID; // input from user
cin.ignore ();
cout << "Department: "; // displaying the output
cin>>department;
cout << endl; // displaying the output
cout << "Enter Details for 2nd Employee :" << endl; // displaying the output
cout << "Name:= "; // displaying the output
cin>>name;
cout << "Employee ID:= "; // displaying the output
cin >> employeeID;
cout << "Department:= "; // displaying the output
cin>>department;
cout << endl; // displaying the output
// Update the details of employee2
employee2->name = name;
employee2->employeeID = employeeID;
employee2->department = department;
break;
}
case 2:
{
cout << "Enter details for Product " << i + 1 << ":" << endl;
cout << "Name: ";
cin>>name;
cout << "Price: ";
cin >> price;
cout << "Quantity: ";
cin >> quantity;
cin.ignore(); // Ignore the newline character in the input buffer
cout << endl;
break;
}
default:
{
cout<<"You eneterd a wrong number !!";
}
}
return 0;
}
// Paste your output here
Performance Max
Task CLO Description Exceeds expectation Meets expectation Does not meet expe
metric marks
Executes without errors Executes without errors, user
Does not execute du
excellent user prompts, prompts are understandable,
errors, runtime error
1. Realization good use of symbols, minimum use of symbols or
1 1 Functionality 40 prompts are mislead
of experiment spacing in output. Through spacing in output. Some
existent. No testing h
testing has been completed testing has been completed
completed (0-19)
(35-40) (20-34)
Actively engages and Cooperates with other group
Distracts or discoura
Group cooperates with other member(s) in a reasonable
2. Teamwork 1 3 5 group members from
Performance group member(s) in manner but conduct can be
the experiment (0-1)
effective manner (4-5) improved (2-3)
On Spot Able to make changes (8- Partially able to make
1 1 10 Unable to make chan
3. Conducting Changes 10) changes (5-7)
experiment Answered all questions (8- Unable to answer all
1 1 Viva/Quiz 10 Few incorrect answers (5-7)
10) (0-4)
4. Laboratory 1 3 Code 5 Comments are added and Comments are added and Comments are not ad
safety and commenting does help the reader to does not help the reader to
disciplinary understand the code (4-5) understand the code (2-3)
rules
Excellent use of white
space, creatively organized Includes name, and
Poor use of white sp
work, excellent use of assignment, white space
5. Data (indentation, blank l
1 3 Code Structure 5 variables and constants, makes the program fairly easy
collection code hard to read, di
correct identifiers for to read. Title, organized work,
and messy (0-1)
constants, No line-wrap (4- good use of variables (2-3)
5)
Solution is efficient, easy A logical solution that is easy
6. Data A difficult and ineffi
1 4 Algorithm 20 to understand, and maintain to follow but it is not the most
analysis solution (0-5)
(15-20) efficient (6-14)
Documentation
7. Computer
1 2 & GitHub 5 Timely (4-5) Late (2-3) Not done (0-1)
use
Submissions
Max Marks (total): 100 Obtained M