Upload
nazmi-aziz
View
31
Download
2
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;}