36
char Character or small integer. 1byte signed: -128 to 127 unsigned: 0 to 255 short int (short) Short Integer. 2bytes signed: -32768 to 32767 unsigned: 0 to 65535 int Integer. 4bytes signed: -2147483648 to 2147483647 unsigned: 0 to 4294967295 long int (long) Long integer. 4bytes signed: -2147483648 to 2147483647 unsigned: 0 to 4294967295 bool Boolean value. It can take one of two values: true or false. 1byte true or false float Floating point number. 4bytes +/- 3.4e +/- 38 (~7 digits) double Double precision floating point number. 8bytes +/- 1.7e +/- 308 (~15 digits) long double Long double precision floating point number. 8bytes +/- 1.7e +/- 308 (~15 digits) wchar_t Wide character. 2 or 4 bytes 1 wide character

All c++ Tutorials

Embed Size (px)

DESCRIPTION

c++

Citation preview

char Character or small integer. 1bytesigned: -128 to 127unsigned: 0 to 255

short int (short) Short Integer. 2bytes

signed: -32768 to 32767unsigned: 0 to 65535

int Integer. 4bytessigned: -2147483648 to 2147483647unsigned: 0 to 4294967295

long int (long) Long integer. 4bytes

signed: -2147483648 to 2147483647unsigned: 0 to 4294967295

bool Boolean value. It can take one of two values: true or false.

1byte true or false

float Floating point number. 4bytes +/- 3.4e +/- 38 (~7 digits)double Double precision floating point number. 8bytes +/- 1.7e +/- 308 (~15 digits)

long double Long double precision floating point number.

8bytes +/- 1.7e +/- 308 (~15 digits)

wchar_t Wide character.2 or 4 bytes

1 wide character

Tutorial 1

#include "stdafx.h"#include <stdio.h>#include <iostream>using namespace std;

int main(){int x = 2;

switch(x) {case 2:printf("Two\n"); // break ;case 3:printf("Three\n");// break;}

------------------------int x = 4;if ( x = 6 ) // if( x == 6) printf("x equals 6\n");----------------------------for (int i=100; i!=0;i-=3){ // the loop is infinite (100, 97, 94 ... , 1, -2, ..... infinte)printf("i equals %d\n", i);}-----------------------------double halfval=1/2; // halfval will equal 0.0 because of integer division, correction => double halfval = (double) 1/2 ;------------------------char st1[] = "abc";char st2[] = "abc";if ( st1 == st2 ) // if(str.comp(st1, st2)) printf("Yes");elseprintf("No");---------------------int x = 0;while( 1 )x++;------------------

int a, intArray[5];for (a=0 ; a <= 10 ; a++) // for (a=0;a<5;a++) incorrect access to unavailable array positionintArray[a] = a * 2;------------------int x;char st[31];printf("Enter an integer: ");scanf(%d, &d); // cin.ignore() must clean buffer for /nprintf("Enter a line of text: ");fgets(st, 31, stdin);

--------------------------------int myFunction(){int x;

if (x) {// return x; int function require a return type}}--------------------------int inP = 5;switch (inP){int test = inP * 2;case 10:* ...... */break;default:* ...... */}// redundant quesion-----------------------------int intVal1 = 8;int intVal2 = 010;if (intVal1 == intVal2)printf (“Both variables are equal!?”);// 010 is 8 in octal system--------------------------------------

/*************************//ID: 1081107325//Name: Ehsan Elbadery//Tutorial 01 section B*************************/

#include "stdafx.h"#include <iostream>using namespace std;

void findMin(int array[], int &minVal);void findMax(int array[], int &maxVal);void findAvg(int array[], double &avg);void findSum(int array[], double &sum);

int _tmain(int argc, _TCHAR* argv[]){int i, ltZero=0, gtZero=0, minVal=0, maxVal=0;int arrayNum[10];double avg =0, sum=0;

cout <<"Please enter 10 numbers : " ;for (i = 0 ; i<10; i++)

{cin >> arrayNum[i];if(arrayNum[i] < 0)

ltZero++;else if(arrayNum[i])

gtZero++;}

findMin(arrayNum,minVal);

findMax(arrayNum,maxVal);findAvg(arrayNum,avg);findSum(arrayNum,sum);

cout << "Minimum value = " << minVal <<endl;cout << "Maximum value = " << maxVal <<endl;cout << "average of the ten numbers is = " << avg <<endl;cout << "Total sum of the ten numbers = " << sum <<endl;cout << "Total numbers less than zero is = " << ltZero <<endl;cout << "Total numbers greater than zero is = " << gtZero <<endl;

return 0;}

void findMin(int array[], int &minVal){int min = array[0];int i;for (i=1; i<10; i++)

{if(array[i]<min){min = array[i];}

}minVal = min;}void findMax(int array[], int &maxVal){int max = array[0];int i;for (i=1; i<10; i++)

{if(array[i]>max){max = array[i];}

}maxVal = max;}void findAvg(int array[], double &avg){int i;double total =0;for(i=0; i<10 ; i++)

{total += array[i];}

avg = (double)total/10;}void findSum(int array[], double &sum){int i;double total =0;for(i=0; i<10 ; i++)

{total += array[i];}sum = total; }

Tutorial 2

/**********************************// ID: 1081107325// Name: Ehsan Elbadery// Tutorial 02 section b**********************************/

#include "stdafx.h"#include <iostream>using namespace std;

int _tmain(int argc, _TCHAR* argv[]){

char grade;int aCount=0, bCount=0, cCount=0;

cout << "please enter a grade <f> to exit ";cin >> grade;while(grade != 'f'){switch (grade) {

case 'A':case 'a':++aCount;break;case 'B':case 'b':++bCount;break;case 'C':case 'c':++cCount;break;default:cout<<"Incorrect grade entered"<<endl;

}

/*if (grade == 'a' || grade == 'A')aCount++;

else if(grade == 'b' || grade == 'B')bCount++;

else if(grade == 'c' || grade == 'C')cCount++;

else cout << "Incorrect grade entered"<<endl;*/

cout << "please enter a grade <f> to exit ";cin >> grade;

}

cout << "aCoutn " << aCount << "\nbCount " << bCount << "\ncCount " << cCount << endl;

return 0;}

/*------------------------------------

//questionint sum = 0;for (int i=0 ; i <= 1000 ; i++)sum = sum + 1;

// solutionint i = 0, sum=0;while(i<= 1000)

{sum = sum + 1;i++;}

int i = 0, sum=0;do {sum = sum + 1 ;

i++; }while(i <= 1000);-------------------------------------------*//*------------------------------------------//questionint counter = 1000;while (1) {if (counter<9)break;counter -= 9;}cout << "Counter is " << counter << endl;

//solutionint counter = 1000;while (1) {counter -= 9;if(counter < 9)

{counter += 9;break;}}cout << "Counter is " << counter << endl;

//questionint counter = 1000;while(true){if (counter<9)continue;counter-=9;}cout << "Counter is " << counter << endl;

//solution

--------------------------------------------*//*--------------------------------------------question testVal = (x < y) ? x : y;

solutionint testVal;

if(x<y)testVal = x;

else

testVal = y;

questionaVal = ( var3 < (var1<var2?var1:var2) ? var3:(var1<var2?var1:var2) );

solitionint aVal;

if (Var1 < Var2){ if(Var3 < Var1)

aVal = Var3;else

aVal = Var1;}

else { if(Var3 < Var2)

aVal = Val3;else

aVal = Val2;}

-------------------------------------*/

/**************************

Tutorial 2 part c

*****************************/

#include "stdafx.h"#include <iostream>using namespace std;

#include "MinMax.h"

int _tmain(int argc, _TCHAR* argv[]){

float Array[10], MinVal=0, MaxVal=0;int size = 10;cout<< "pleaseenter 10 floating numbers " ;for(int i=0; i< 10; i++)

cin>>Array[i];

FindMinMax(Array, size,&MinVal ,&MaxVal);

cout <<"the minimum value is " << MinVal <<"\nthe maximum value is " << MaxVal << endl;

return 0;}

#include "stdafx.h"#include <iostream>#include <iomanip>using namespace std;

int _tmain(int argc, _TCHAR* argv[]){

int input;

cout<<"please enter the value between 0 and 50 : ";cin >> input;

while (input < 50 && input >0){

for(int i = 1; i <=input; i++){ for(int y=1; y<= input; y++)

{cout<< "*";}cout << "\n";

}

for(int i = 1; i <=input; i++){ for(int y=1; y<= input; y++)

{ if(i == 1 || i == input)cout<<"*";

else if(y == 1 || y == input)cout<< "*";

else cout<<" "; }

cout << "\n";}

int update=1;// to prevent reinitialisation of counter y in the inner y loop

for(int i=1; i<=input ; i++){

for(int y=update; y <= (input * i); y++){cout << left << setw(3) << y;update = y+1;}

cout << "\n";}

cout<<"please enter the value between 0 and 50 : ";cin >> input;

}cout <<"U have EXITED" <<endl;

return 0;}

Tutorial 3#include "stdafx.h"#include<iostream>#include <string>using namespace std;int _tmain(int argc, _TCHAR* argv[]){

/*float pr, num, total;int x, cent;cout<< "please enter the price of the item:";cin>> pr;cout<<"please enter the number of items bought:";cin>> num;x=pr;cent = (int)((pr - x)*100);total= pr*num;cout<< "price of the item is \t" << x << " rigget(s) and " << cent << "

cent \n" << endl;cout<<"Number of items boaught is "<< num << "\n"<<endl;cout<<"Total amount to be paid is "<< total<<"\n"<<endl;*/string name;float pr, total=0;int num, totnum=0, ring, cent;

do{cout<<"Enter name of the item (-1 to terminate): ";getline(cin,name);if(name=="-1") continue;cout<<"Enter price of the item:";cin >> pr;cout<<"Enter number of items bought:";cin>> num;total = total + (pr*num);totnum = totnum + num;

cin.ignore();

}while(name!="-1");ring=total;cent=(total-ring)*100;cout <<"------------------------------------------" <<endl;cout <<"Total number of Items bought is " << totnum <<endl;cout <<"Total cost of items bought is " << ring<< " Ringgit(s) and "

<< cent<<" cent(s)" << endl;

return 0;}

Tutorial 4

/*****************************//ID:1081107325//Name: Ehsan Elbadery//Tutorial 04 section B modified*****************************/

#include "stdafx.h"#include <string>#include <iostream>using namespace std;

class Purchase {int qty, totqty;string itemName;float price,total, grandtotal;

public:Purchase(){grandtotal=0;totqty=0;}void set_data(int x, float y, string i);void calculate();void print();void printgrandtotal();

};

void Purchase::set_data(int x, float y, string i){

qty=x;itemName=i;price=y;

}void Purchase::calculate()

{total=price*qty;grandtotal += total;totqty += qty;

}

void Purchase::print(){

cout<< "===============================\nSubtotal:"<<total<< "\n==============================="<<endl;

}void Purchase::printgrandtotal( )

{cout << "===============================\n\t Grand

Toatal\n=============================== " << endl;cout << "Total number of items : " <<

totqty<<endl;cout <<"Total amount to be paid :

"<<grandtotal<<endl;cout <<"===============================\n\t End\

n==============================="<<endl;

}

int _tmain(int argc, _TCHAR* argv[]){

Purchase a;string itemNamemain;int qtymain;float pricemain;cout << "===============================\n\tWelcome\

n==============================="<<endl;do {cout << "Enter item <'Q' to quit>: ";getline(cin, itemNamemain);if(itemNamemain == "Q") continue;cout << "Enter Quantitiy : ";cin >> qtymain;cout <<"Enter price : ";cin>> pricemain;

a.set_data(qtymain,pricemain,itemNamemain);a.calculate();a.print();

cin.ignore();} while(itemNamemain != "Q");

a.printgrandtotal();return 0;

}

Tutorial 5

#include "stdafx.h"#include <iostream>using namespace std;

class Temp{private:

double tempCel, tempFeh;

public:Temp(){tempCel = 0;tempFeh= 32;}

Temp(char type, double in_temp){switch (type)

{case 'C':tempCel = in_temp;tempFeh =( (double)9/5 * in_temp )+ 32;break;

case 'F' :tempFeh = in_temp;tempCel = ((double)5/9 * (in_temp - 32)); //convertbreak;

}}

double getCel(){return tempCel;}

double getFeh(){return tempFeh;}

};

int main(){Temp t1('C',100),t2('F',100);cout<<"t1 = "<<t1.getCel()<<" C\n";cout<<"t1 = "<<t1.getFeh()<<" F\n";cout<<"t2 = "<<t2.getCel()<<" C\n";cout<<"t2 = "<<t2.getFeh()<<" F\n";t1 = t2;cout<<"After assigning t2 to t1"<<endl;cout<<"t1 = "<<t1.getCel()<<" C\n";cout<<"t1 = "<<t1.getFeh()<<" F\n";return 0;}

Tutorial 6

#include "stdafx.h"#include <iostream>using namespace std;

class Time{private:

int minutes, hours;public:

Time(){minutes = 0;hours = 0;}Time (int in_hours, int in_minutes){hours = (in_hours <= 23 || in_hours >=0)? in_hours: 0;minutes = (in_minutes <=59 || in_minutes>=0)? in_minutes : 0;}

void setTime (int in_hours, int in_minutes){hours = (in_hours <= 23 || in_hours >=0)? in_hours: hours;minutes = (in_minutes <=59 || in_minutes>=0)? in_minutes : minutes;}

void showTime(){

(hours < 10)? cout << "0" << hours <<":" : cout<<hours <<":";(minutes < 10) ? cout << "0" << minutes <<endl : cout << minutes <<

endl;

}

void copyTime (Time &input){hours = input.hours;minutes = input.minutes;}

void addTime(int in_hours, int in_minutes){int temp_hr, temp_min, addHr1, addHr2;temp_hr = in_hours + hours;temp_min = in_minutes + minutes;

if (temp_hr > 23){addHr1 = temp_hr / 24;hours = temp_hr - (addHr1 * 24);}

if (temp_min > 59){addHr2 = temp_min / 60 ;hours += addHr2;minutes = (temp_min) - (addHr2 * 60);}

}

};

int main(){

Time time1, time2(18,30) ;time1.showTime();time2.showTime();

time1.setTime(8,47);time1.showTime();

Time time3;time3.copyTime(time1);time3.addTime(18,15);time3.showTime();

time2.addTime(36,11);time2.showTime();

return 0;}

#include "stdafx.h"#include <iostream>using namespace std;

class Imperial{int iYard, iFoot, iInch;

public:

Imperial (int aYard = 0, int aFoot=0, int anInch =0){iYard = aYard;iFoot = aFoot;iInch = anInch;}

int getYard (){return iYard;}int getFoot (){return iFoot;}int getInch (){return iInch;}

void add(Imperial &input){int tempFoot, tempInch, addYard, addFoot;

iYard += input.iYard;

tempFoot = iFoot + input.iFoot;tempInch = iInch + input.iInch;

if(tempInch>=12){addFoot = tempInch / 12 ;tempFoot += addFoot;iInch = tempInch - (addFoot * 12); }

if(tempFoot >= 3){addYard = tempFoot / 3;iYard += addYard;iFoot = tempFoot - (addYard*3);}

}

void mul(int factor){

int tempFoot, tempInch, addYard, addFoot;iYard = iYard * factor;tempFoot = iFoot * factor;tempInch = iInch *factor;

if(tempInch>=12){addFoot = tempInch / 12 ;tempFoot += addFoot;iInch = tempInch - (addFoot * 12); }

if(tempFoot >= 3){addYard = tempFoot / 3;iYard += addYard;iFoot = tempFoot - (addYard*3);}

}

};

int main(){

Imperial opj1(15, 2, 6);Imperial opj2(10,1,11);

opj1.add(opj2);

opj2.mul(4);

cout << "the imperial object 1 member variable after addition is \n " << opj1.getYard()<<"Yard and\n" << opj1.getFoot() << "feet and\n "<<opj1.getInch() << "inches" <<endl;

cout << "the imperial object 2 member variable after multiplication by factor of 4 is \n " << opj2.getYard()<<"Yard and\n" << opj2.getFoot() << "feet and\n "<<opj2.getInch() << "inches" <<endl;

return 0;}

Tutorial 7

#include <iostream>using namespace std;

class Distance{int m_Kilometre;int m_Metre;int m_Centimetre;public:Distance(double input)

{ m_Kilometre = input;m_Metre = ((input-m_Kilometre)*1000);m_Centimetre = ((((input - m_Kilometre)*1000) - m_Metre) * 100);

}Distance operator+(const Distance &in){int temp_kilo, temp_metre, temp_centi;double distance;temp_kilo= m_Kilometre + in.m_Kilometre;temp_metre = m_Metre + in.m_Metre;temp_centi = m_Centimetre + in.m_Centimetre;

if(temp_centi > 99) // handle the carry of one only{temp_metre ++;

temp_centi = (temp_centi - 100);}if(temp_metre > 999)

{temp_kilo++;temp_metre = (temp_metre - 1000);}

distance = temp_kilo + ((double)temp_metre/1000) + ((double)temp_centi/100000);

return Distance(distance);}

friend ostream &operator<<(ostream &out, Distance &input);};

ostream &operator<<(ostream &out, Distance &input){out << input.m_Kilometre << "km "<< input.m_Metre<<"m and "<<

input.m_Centimetre<<"cm"<<endl;return out;}

int main(){Distance val1(2.5359);Distance val2(3.7769);cout<< "Value 1 is: " << val1 << endl;cout<< "Value 2 is: " << val2 << endl << endl;cout<< val1 << " + " << val2 << " = " << val1 +val2 << endl;cout << endl << endl;return 0;

}

include "stdafx.h"#include <iostream>#include <math.h>using namespace std;

class RM{int ringgit, sen;

public:RM(){ringgit = 0;sen = 0;}

RM operator+(RM &input){int temp_rm=0, temp_sen=0;float temp_amount;temp_rm = ringgit + input.ringgit;temp_sen = sen + input.sen;

if (temp_sen > 99){temp_rm ++;temp_sen = temp_sen - 100;}

temp_amount = temp_rm + ((float)temp_sen / 100);return RM() = temp_amount;}

RM operator-(RM &input){int temp_rm=0, temp_sen=0;float temp_amount;temp_rm = ringgit - input.ringgit;if(temp_rm>0 && (sen - input.sen) < 0)

{ringgit --;sen += 100;temp_sen = sen - input.sen;}

else temp_sen = sen - input.sen;

temp_amount = temp_rm + ((float)temp_sen / 100);return RM() = temp_amount;}

RM &operator=(const float amount){

this->ringgit = amount;this->sen =((float)(amount - ringgit) * 100);return *this;

}

friend ostream &operator<<(ostream &out, RM &input);};

ostream &operator<<(ostream &out, RM &input) {

(input.ringgit < 0)? out << "- RM"<<abs(input.ringgit)<<"."<<abs(input.sen)<<endl : out << "RM"<<abs(input.ringgit)<<"."<<abs(input.sen)<<endl;

return out; }

int main (){RM acc1, acc2;acc1 = 50.99;acc2 = 25.50;cout << "Amount in account 1 = " << acc1;cout <<"Amount in account 2 = " << acc2;cout <<"acc1 + acc2 = " << acc1 + acc2;cout <<"acc1 - acc2 = " << acc1 - acc2;cout << "acc2 - acc1 = "<< acc2-acc1;return 0;}

Tutorial 8

#include <iostream>#include <string>using namespace std;

class Employee{char employeeName[256];char companyName[256];char departmentName[256];int unsigned ID;double annualSalary;

public: Employee(char *in_employeeName, int unsigned in_ID, double in_annualSalary)

{ strcpy(employeeName, in_employeeName); ID = in_ID; annualSalary = in_annualSalary;

}void setCompanyName(char *in_companyName)

{strcpy(companyName, in_companyName);

}void setDeprtmentName(char *in_departmentName)

{strcpy(departmentName, in_departmentName);

}void getEmployeeName(char *out_employeeName, unsigned int bufferSize)

{out_employeeName = (bufferSize > sizeof employeeName ) ?

strcpy(out_employeeName,employeeName) : strcpy(out_employeeName,"0");}

unsigned int getEmployeeID(){

return ID;}

void getAnnualSalary(double &out_annualSalary){

out_annualSalary = annualSalary;}

};

class Manager : public Employee{unsigned int executives;double bounus;

public:Manager(char *in_employeeName , int unsigned in_ID, double

in_annualSalary);

void setNoExecutives (unsigned int in_executives){

executives = in_executives;}

double calcBonus (){

double temp_salary;getAnnualSalary(temp_salary);bounus = temp_salary*(executives*0.1);return bounus; } };

Manager::Manager(char *in_employeeName, int unsigned in_ID, double in_annualSalary)

:Employee( in_employeeName,in_ID,in_annualSalary){

executives = 0;bounus = 0; }

class Engineer : public Employee{int unsigned tech;double bounus;

public:Engineer(char *in_employeeName, int unsigned in_ID, double

in_annualSalary);void setNoTechnicians(unsigned int in_tech)

{tech = in_tech;

}double clacBounus()

{double temp_salary;getAnnualSalary(temp_salary);bounus = temp_salary * (tech*0.1);return bounus; } };

Engineer::Engineer(char *in_employeeName, int unsigned in_ID, double in_annualSalary)

:Employee(in_employeeName,in_ID,in_annualSalary){

tech =0;bounus =0; }

int main(){char name[265];int ID;double salary, getsalary;char getname[256];

cout << "pease enter the name of the Manager: ";cin >> name;cout << "enter ID and salary :";cin >> ID >> salary;

Manager man1(name, ID, salary);man1.getEmployeeName(getname,266);man1.getAnnualSalary(getsalary);

cout << "the manager name is " << getname << endl;

cout << "the manager ID is " << man1.getEmployeeID() << endl; cout << "the manager salary is " << getsalary << endl;

return 0;}

Tutorial 9

// Tutorial 9 question 1.cpp : Defines the entry point for the console application.//

#include "stdafx.h"#include <iostream>#include <math.h>using namespace std;

class IGeometricCalc {public:

virtual void SetGeometricAttributes (float side1, float side2, float radius) =0;

virtual float CalculateSurfaceArea() =0;virtual float CalculateVolume() =0;

};

class CubeGeometricCalc : public IGeometricCalc{float m_side1, m_side2, m_radius;public:

CubeGeometricCalc(){};~CubeGeometricCalc(){};

virtual void SetGeometricAttributes(float side1, float side2, float radius)

{m_side1 = side1;m_side2 = side2;m_radius = radius;}

virtual float CalculateSurfaceArea(){

return (6*(m_side1 * m_side1)); }

virtual float CalculateVolume(){

return (m_side1*m_side1*m_side1);}

};

class SphereGeometricCalc : public IGeometricCalc{float m_side1, m_side2, m_radius;public:

SphereGeometricCalc(){};~SphereGeometricCalc(){};

virtual void SetGeometricAttributes(float side1, float side2, float radius)

{m_side1 = side1;m_side2 = side2;m_radius = radius;}

virtual float CalculateSurfaceArea(){

return (4*3.14*m_radius * m_radius); }

virtual float CalculateVolume(){

return ((4.00/3.00)* 3.14 *pow(m_radius,3));}

};

class CylinderGeometricCalc : public IGeometricCalc{float m_side1, m_side2, m_radius;public:

CylinderGeometricCalc(){};~CylinderGeometricCalc(){};

virtual void SetGeometricAttributes(float side1, float side2, float radius)

{m_side1 = side1;m_side2 = side2;m_radius = radius;}

virtual float CalculateSurfaceArea(){

return ((2* 3.14 *m_radius*m_side1) + (2*3.14*pow(m_radius,2)));

}virtual float CalculateVolume()

{return (3.14 * pow(m_radius,2)*m_side1);

}};

int main(){

IGeometricCalc *pPointer = new CubeGeometricCalc();pPointer->SetGeometricAttributes(10,0,0);cout << "the surface area of cube is " << pPointer->CalculateSurfaceArea()

<< "\nthe volume of cube is "<< pPointer->CalculateVolume() <<"\n----------------"<< endl;

delete pPointer;

pPointer = new SphereGeometricCalc();pPointer->SetGeometricAttributes(0,0,25);cout << "the surface area of Sphere is " << pPointer-

>CalculateSurfaceArea() << "\nthe volume of Sphere is "<< pPointer->CalculateVolume() <<"\n----------------"<< endl;

delete pPointer;

pPointer = new CylinderGeometricCalc();pPointer->SetGeometricAttributes(10,0,25);cout << "the surface area of Cylender is " << pPointer-

>CalculateSurfaceArea() << "\nthe volume of Cylender is "<< pPointer->CalculateVolume() <<"\n----------------"<< endl;

delete pPointer;

return 0;}

#include "stdafx.h"#include <iostream>#include <string>using namespace std;

class IStudent {public:

virtual void SetName(string &studentName)=0;virtual void SetId(unsigned long studentId)=0;virtual void SetMajor(string &studentMajor)=0;virtual void PrintDetails()=0;

};class Undergraduate : public IStudent{string m_name, m_major;unsigned long m_ID;

public:Undergraduate(){};

~Undergraduate(){};

virtual void SetName(string &studentName){

m_name = studentName;}

virtual void SetId(unsigned long studentId){

m_ID = studentId;}

virtual void SetMajor(string &studentMajor){

m_major = studentMajor;}

virtual void PrintDetails(){

cout << "Udergraduate Details: \n-------------------\nName: " << m_name << "\nMajor: "<< m_major <<"\nID: " << m_ID <<endl;

}};int _tmain(int argc, _TCHAR* argv[])

{string nm = "Ehsan";string mj = "Telecomunication";unsigned long id = 1081107325;IStudent *pStudent = new Undergraduate ();pStudent->SetName(nm);pStudent->SetId(id);pStudent->SetMajor(mj);pStudent->PrintDetails();

delete pStudent;return 0; }

#ifndef EMPLOYEE_H#define EMPLOYEE_H// Symbolic constant to represnt size of// employee's name, company's name & dept.#define NAME_LEN 256// Symbolic constant for income tax calculation#define INCOME_TAX_PERCENT 15class Employee{// Attributesprivate:// Dynamic buffer to store employee's namechar *m_pEmpName;// Employee's Idunsigned int m_EmpId;// Employee's annual salarydouble m_AnnualSalary;// Employee's rank (values between 1 & 3)int m_Rank;// Dynamic buffer to store company's namechar *m_pCompanyName;// Dynamic buffer to store department's namechar *m_pDeptName;// Operationspublic:// Default constructor & destructor// Hint: You can initialize your buffers in the constructorEmployee();~Employee();// Concrete functionsvoid SetCompanyName(char companyName[]);void SetDepartmentName(char departmentName[]);void SetEmployeeDetails(char empName[], unsigned int empId,double annualSalary, int rank);void GetCompanyName(char *pBuffer, unsigned int bufferSize);void GetDepartmentName(char *pBuffer, unsigned int bufferSize);void GetEmployeeName(char *pBuffer, unsigned int bufferSize);void GetEmployeeId(int *pId) const;4void GetRankAndAnnualSalary(int *pRank, double *pSalary);

// Virtual function// Prints out the name of the employee and positionvirtual void DisplayNameAndPosition();// Pure virtual functionsvirtual void CalculateBonus(int *pBonusMonths, double*pBonusSum) = 0;virtual void CalculateSalaryIncrement(double*pPercentageIncrement, double *pIncrementSum) = 0;};#endif

Tutorial 10include "stdafx.h"#include <iostream>using namespace std;

class ICalculate{

public :virtual int Calculate(int num1, int num2) =0;

};class Adder : public ICalculate{public:

Adder(){}; ~Adder(){};

virtual int Calculate(int num1, int num2){

return (num1 + num2);}

};

class Mult : public ICalculate{public:

Mult(){};~Mult(){};

virtual int Calculate(int num1, int num2){

return (num1*num2);}

};class Problem {int m_x, m_y;ICalculate *m_pICalculate;public:

void SetCalculate(ICalculate * in_pointer){m_pICalculate = in_pointer;}

void SetX(int in_x){

m_x = in_x;}void setY(int in_y){

m_y = in_y;}int Calculate(){int temp;temp = m_pICalculate->Calculate(m_x,m_y);return temp;}

};

int main(){

int xValue, yValue;Problem prob_obj;ICalculate *pICalculate;

cout << "please enter x and y value: ";cin >> xValue >> yValue;

prob_obj.SetX(xValue);prob_obj.setY(yValue);

pICalculate = new Adder();prob_obj.SetCalculate(pICalculate);cout << "Addition Result : " << prob_obj.Calculate() << endl;delete pICalculate;

pICalculate = new Mult();prob_obj.SetCalculate(pICalculate);cout << "Multiplication Result is : " << prob_obj.Calculate() << endl;delete pICalculate;

return 0;}

Tutorial 11

#include "stdafx.h"#include <iostream>using namespace std;

template<class T>class ArrayCalc {public:

ArrayCalc(){}~ArrayCalc(){}

void FindMin(T inArrayData[],int inArraySize,T &outMinVal){outMinVal = inArrayData[0];for (int i=1; i< inArraySize ; i++)

outMinVal = (inArrayData[i]<minVal)? inArrayData[i]:outMinVal;

}void FindMax(T inArrayData[],int inArraySize,T &outMaxVal){outMaxVal = inArrayData[0];for (int i=1; i< inArraySize ; i++)

outMaxVal = (inArrayData[i]>outMaxVal)? inArrayData[i]:outMaxVal;

}void CalcSum(T inArrayData[],int inArraySize,T &outSumVal){outSumVal = 0;for (int i=0; i< inArraySize ; i++)

outSumVal += inArrayData[i];

}void CalcAvg(T inArrayData[],int inArraySize,T &outAvgVal){outAvgVal = 0;for (int i=0; i< inArraySize ; i++)

{outAvgVal += inArrayData[i];}

outAvgVal /=2;}

};

int main(){

float rand[3] = {1.256,25.698,125.69};const int MAX = 3;float res;ArrayCalc <float> object;object.FindMax(rand, MAX, res);

cout << "the maximum value is " << res <<endl;

return 0;}

#include "stdafx.h"#include <iostream>using namespace std;

template<class T, class U>

class MathCalc {public:

MathCalc (){}

T Sum(T in_X, U in_Y){

return(in_X + in_Y);}

T Subtract(T in_X, U in_Y){

return (in_X - in_Y);}

T Multiply (T in_X, U in_Y){

return (in_X * in_Y);}

T Divide (T in_X, U in_Y){

return (in_X / in_Y);}

};

int _tmain(int argc, _TCHAR* argv[]){

float inputX;int inputY;MathCalc <float, int> objMathCalc;

cout << "Enter tow numbers : " ;cin >> inputX >> inputY ;

cout << "Sum :" <<objMathCalc.Sum(inputX, inputY) << endl;

cout << "Subtract :" << objMathCalc.Subtract(inputX, inputY) << endl;cout << "Multiply :" <<objMathCalc.Multiply(inputX, inputY)<< endl;cout << "Divide :" <<objMathCalc.Divide(inputX, inputY)<< endl;

return 0;}

#include "stdafx.h"#include <stdexcept>#include <iostream>#include<string>using namespace std;

class NonDigitOption : public runtime_error{public:

NonDigitOption(): runtime_error("Attempted to return a non digit character"){}

};int DigiOption (char gimmedigit){

int digit_choice = -1;

if (gimmedigit == '0'){gimmedigit = 0;}

else{

digit_choice= atoi(& gimmedigit);if (digit_choice ==0){throw NonDigitOption();}

}return digit_choice;

}

int_tmain(int argc, _TCHAR* argv[]){char input;int option;

cout<< "Enter one printable keyboard button (end-of-file key to end) :" ;

cin>> input; while (input != '^Z'){

option = DigiOption(input);cout<< "The selected digit option is : " << option <<

endl;

cout<< "Enter one printable keyboard button :" ;cin>> input;

}cout << "Program Exited." ;

return 0;}

#include "stdafx.h"#include <math.h>#include <iostream>using namespace std;

template<class T, class U, class M>class EqOfMotion{private:

T velocity;U desplacement;M velocitySquared;

public:EqOfMotion(){

velocity = 0;desplacement = 0;velocitySquared = 0;

}T CalculateVelocity(T initialVelocity, T accelaration, T timeInterval)

{ velocity = initialVelocity + (accelaration*timeInterval);return (velocity);

}U CalculateDisplacement(U initialDisplacement, U initialVelocity, U

accelaration, U timeInterval){ desplacement = initialDisplacement +

(initialVelocity*timeInterval) + ((0.5) * accelaration* timeInterval*timeInterval);

return (desplacement);}

M CalculateVelocitySquared(M initialDisplacement, M initialVelocity, M accelaration, M timeInterval)

{ velocitySquared = ((initialVelocity*initialVelocity) + (2*accelaration*(desplacement-initialDisplacement)));

return (velocitySquared);}

};int main(){

float velocity;int desplacement;double velocitySquared;

EqOfMotion <float, int, double> object;

velocity = object.CalculateVelocity(110.2, 20.25, 6.25);desplacement = object.CalculateDisplacement(20, 110.2, 25.25, 6.25);velocitySquared = object.CalculateVelocitySquared(20, 110.2, 25.25, 6.25);

cout<< "The Velocity is: "<<velocity <<endl;cout<< "The desplacement is :"<<desplacement<<endl;cout<< "The velocity squared is :"<<velocitySquared<<endl;

return 0;}