diff --git a/file.org b/file.org index 1e8dc7b..3594970 100644 --- a/file.org +++ b/file.org @@ -5,9 +5,9 @@ #+LATEX: \clearpage -|----------------------------------------------------------------| -| Programs are followed by their respective outputs (and inputs) | -|----------------------------------------------------------------| +|------------------------------------------------------------------------------------------------------------| +| Programs are followed by their respective inputs and outputs i.e, both stdin and stdout are shown together | +|------------------------------------------------------------------------------------------------------------| * Lab 1 #+INCLUDE: ./lab1/file.org @@ -40,3 +40,7 @@ * Lab 8 #+INCLUDE: ./lab8/file.org #+LATEX: \clearpage + +* Lab 9 +#+INCLUDE: ./lab9/file.org +#+LATEX: \clearpage diff --git a/file.pdf b/file.pdf index c3ea654..b1f7a7b 100644 Binary files a/file.pdf and b/file.pdf differ diff --git a/lab9/25.cpp b/lab9/25.cpp new file mode 100644 index 0000000..38d422c --- /dev/null +++ b/lab9/25.cpp @@ -0,0 +1,26 @@ +#include +using namespace std; + +template ::value, T>> +class Foo { + T x, y; + +public: + Foo() { + cout << "x: "; + cin >> x; + cout << "y: "; + cin >> y; + } + + T sum() { return x + y; }; +}; + +int main() { + Foo bar; + + cout << bar.sum(); + + return 0; +} diff --git a/lab9/26.cpp b/lab9/26.cpp new file mode 100644 index 0000000..d3389e4 --- /dev/null +++ b/lab9/26.cpp @@ -0,0 +1,28 @@ +#include +using namespace std; + +template ::value, T>> +class Foo { + T x, y; + +public: + Foo() { + cout << "x: "; + cin >> x; + cout << "y: "; + cin >> y; + } + + ~Foo() { cout << "Destructor called, nothing to do here."; } + + T mx() { return (x > y ? x : y); }; +}; + +int main() { + Foo bar; + + cout << bar.mx() << endl; + + return 0; +} diff --git a/lab9/27.cpp b/lab9/27.cpp new file mode 100644 index 0000000..794d345 --- /dev/null +++ b/lab9/27.cpp @@ -0,0 +1,25 @@ +#include +#include + +using namespace std; +const string FILE_PATH = "./27.out"; + +int main() { + string line; + + cout << "Running program till the string \"EOH\" is received via stdin" + << endl; + + ofstream file(FILE_PATH); + + file.close(); + file.open(FILE_PATH, ios_base::app); + + while (getline(cin, line)) { + if (line == "EOH") + break; + file << line << endl; + } + + return 0; +} diff --git a/lab9/file.org b/lab9/file.org new file mode 100644 index 0000000..7d8bb4b --- /dev/null +++ b/lab9/file.org @@ -0,0 +1,122 @@ +* Write a program to illustrate how to define and declare a class template for reading two data items from the keyboard and to find their sum. + +#+ATTR_LATEX: :options frame=single,breaklines=true +#+begin_src cpp :tangle 25.cpp :wrap src text +#include +using namespace std; + +template ::value, T>> +class Foo { + T x, y; + +public: + Foo() { + cout << "x: "; + cin >> x; + cout << "y: "; + cin >> y; + } + + T sum() { return x + y; }; +}; + +int main() { + Foo bar; + + cout << bar.sum(); + + return 0; +} +#+end_src + +#+begin_src text +x: 4.3 +y: 9.1 +13.4 +#+end_src + +#+LATEX: \clearpage + +* Write a program to demonstrate the use of special functions, constructor and destructor in the class template. The program is used to find the biggest of two entered numbers. + +#+ATTR_LATEX: :options frame=single,breaklines=true +#+begin_src cpp :tangle 26.cpp :wrap src text +#include +using namespace std; + +template ::value, T>> +class Foo { + T x, y; + +public: + Foo() { + cout << "x: "; + cin >> x; + cout << "y: "; + cin >> y; + } + + ~Foo() { cout << "Destructor called, nothing to do here."; } + + T mx() { return (x > y ? x : y); }; +}; + +int main() { + Foo bar; + + cout << bar.mx() << endl; + + return 0; +} +#+end_src + +#+begin_src text +x: 3.4 +y: 9.1 +9.1 +Destructor called, nothing to do here. +#+end_src + +#+LATEX: \clearpage + +* Write a program to illustrate how template functions can be overloaded. + +#+ATTR_LATEX: :options frame=single,breaklines=true +#+begin_src cpp :tangle 27.cpp :wrap src text +#include +#include + +using namespace std; +const string FILE_PATH = "./27.out"; + +int main() { + string line; + + cout << "Running program till the string \"EOH\" is received via stdin" + << endl; + + ofstream file(FILE_PATH); + + file.close(); + file.open(FILE_PATH, ios_base::app); + + while (getline(cin, line)) { + if (line == "EOH") + break; + file << line << endl; + } + + return 0; +} +#+end_src + +#+begin_src text +Running program till the string "EOH" is received via stdin +i have a +flayed dismembered +corpse in front of my +lawn +EOH +#+end_src