labs 1-6: init

Signed-off-by: Amneesh Singh <natto@weirdnatto.in>
This commit is contained in:
2022-12-24 14:03:08 +05:30
commit ad185c994e
26 changed files with 2250 additions and 0 deletions

295
lab6/file.org Normal file
View File

@@ -0,0 +1,295 @@
* Create class first with data members book no, book name and member function getdata and putdata. Create a class second with data members author name ,publisher and members getdata and showdata. Derive a class third from first and second with data member no of pages and year of publication. Display all these information using an array of objects of third class.
#+ATTR_LATEX: :options frame=single,breaklines=true
#+begin_src cpp :tangle 16.cpp :wrap src text
#include <iostream>
using namespace std;
class Book {
private:
char name[50];
uint id;
public:
void getData();
void putData();
};
void Book::getData() {
cout << "Name of book: ";
cin >> name;
cout << "ID of book: ";
cin >> id;
}
void Book::putData() {
cout << "Name of book: " << name << endl << "ID of book: " << id << endl;
}
class Authorities : public Book {
private:
char author[50];
char publisher[50];
public:
void getData();
void putData();
};
void Authorities::getData() {
cout << "Name of author: ";
cin >> author;
cout << "Name of publisher: ";
cin >> publisher;
}
void Authorities::putData() {
cout << "Name of author: " << author << endl
<< "Name of publisher: " << publisher << endl;
}
class Publication : public Authorities {
private:
uint pageCount;
uint year;
public:
void getData();
void putData();
};
void Publication::getData() {
cout << "Number of pages: ";
cin >> pageCount;
cout << "Year (YYYY): ";
cin >> year;
}
void Publication::putData() {
cout << "Number of pages: " << pageCount << endl << "Year: " << year << endl;
}
int main() {
Publication p[3];
for (auto &x: p) {
x.Book::getData();
x.Authorities::getData();
x.getData();
}
for (auto &x: p) {
x.Book::putData();
x.Authorities::putData();
x.putData();
}
}
#+end_src
#+begin_src
ID of book: 4
Name of author: a.
Name of publisher: a.
Number of pages: 4
Year (YYYY): 4044
Name of book: sahi
ID of book: 5
Name of author: baat
Name of publisher: hai
Number of pages: 555555
Year (YYYY): 192
Name of book: how
ID of book: 349234
Name of author: ok
Name of publisher: test
Number of pages: 99991293
Year (YYYY): 2022
Name of book: Allu
ID of book: 4
Name of author: a.
Name of publisher: a.
Number of pages: 4
Year: 4044
Name of book: sahi
ID of book: 5
Name of author: baat
Name of publisher: hai
Number of pages: 555555
Year: 192
Name of book: how
ID of book: 349234
Name of author: ok
Name of publisher: test
Number of pages: 99991293
Year: 2022
#+end_src
#+LATEX: \clearpage
* Create a base class called SHAPE. Use this class to store two double type values. Derive two specific classes called TRIANGLE and RECTANGLE from the base class. Add to the base class, a member function getdata to initialize base class data members and another member function display to compute and display the area of figures. Make display a virtual function and redefine this function in the derived classes to suit their requirements. Using these three classes design a program that will accept driven of a TRIANGLE or RECTANGLE interactively and display the area.
#+ATTR_LATEX: :options frame=single,breaklines=true
#+begin_src cpp :tangle 17.cpp :results output :wrap src text
#include <iostream>
#include <math.h>
using namespace std;
class Shape {
int stub;
public:
virtual void getData() { cout << "stub"; }
virtual double area() {
cout << "stub";
return 0;
}
};
class Triangle : public Shape {
private:
double sides[3];
public:
void getData();
double area();
};
void Triangle::getData() {
cout << "Enter 3 integers for the sides of triangle: \n";
for (int i = 0; i < 3; i++)
cin >> sides[i];
}
double Triangle::area() {
double s = (sides[0] + sides[1] + sides[2]) / 2;
return sqrt(s * (s - sides[0]) * (s - sides[1]) * (s - sides[2]));
}
class Rectangle : public Shape {
private:
double l;
double b;
public:
void getData();
double area();
};
void Rectangle::getData() {
cout << "Enter length of rectangle: ";
cin >> l;
cout << "Enter breadh of rectangle: ";
cin >> b;
}
double Rectangle::area() { return l * b; }
int main() {
Shape *s;
Triangle t;
Rectangle r;
s = &t;
s->getData();
cout << "Area of the Shape: " << s->area() << endl;
s = &r;
s->getData();
cout << "Area of the Shape: " << s->area() << endl;
}
#+end_src
#+begin_src
Enter 3 integers for the sides of triangle:
4
4
4
Area of the Shape: 6.9282
Enter length of rectangle: 4
Enter breadh of rectangle: 4
Area of the Shape: 16
#+end_src
#+LATEX: \clearpage
* Create a base class basic_info with data members name ,roll no, gender and two member functions getdata and display. Derive a class physical_fit from basic_info which has data members height and weight and member functions getdata and display. Display all the information using object of derived class.
#+ATTR_LATEX: :options frame=single,breaklines=true
#+begin_src cpp :tangle 18.cpp :results output :wrap src text
#include <iostream>
using namespace std;
class BasicInfo {
private:
char name[30];
uint enrollment;
char gender;
public:
void getData();
void putData();
};
void BasicInfo::getData() {
cout << "Name: ";
cin >> name;
cout << "Enrollment: ";
cin >> enrollment;
cout << "Gender: ";
cin >> gender;
}
void BasicInfo::putData() {
cout << "Name: " << name << endl
<< "Enrollment: " << enrollment << endl
<< "Gender: " << gender << endl;
}
class PhysicalFit : public BasicInfo {
uint height;
uint weight;
public:
void getData();
void putData();
};
void PhysicalFit::getData() {
cout << "Weight (in kg): ";
cin >> weight;
cout << "Height (in cm): ";
cin >> height;
}
void PhysicalFit::putData() {
cout << "Weight (in kg): " << weight << endl
<< "Height (in cm): " << height << endl;
}
int main() {
PhysicalFit x;
x.BasicInfo::getData();
x.getData();
x.BasicInfo::putData();
x.putData();
return 0;
}
#+end_src
#+begin_src
Name: acha
Enrollment: 4
Gender: f
Weight (in kg): 999
Height (in cm): 2
Name: acha
Enrollment: 4
Gender: f
Weight (in kg): 999
Height (in cm): 2
#+end_src