Menu

Sunday, 30 November 2014

Chapter 7,Problem 4:Object Oriented Programming by Robert Lafore in C++ Solution Manual

//Ahmad Furqan Attari
//p7.4
#include <iostream>
#include <conio.h>
using namespace std;
const int SIZE = 10;
int maxint(int (&num)[SIZE],int max)
{
 int large=num[0],index=0;
 for (int i = 1; i < max; i++)
 {
  if (num[i]>large)
  {
   large = num[i];
   index = i;
  }
 }
 return index;
}
void main(void)
{
 int num[SIZE];
 char ch;
 int i = 0;
 do
 {
  cout << "Enter a number: ";
  cin >> num[i];
  i++;
  cout << "Enter again?(y/n): ";
  ch = _getche();
  cout << endl;
 } while (ch == 'y' && i < SIZE);
 cout << "Greatest number entered: " << num[maxint(num,i)];
 _getch();
}

Chapter 7,Problem 3:Object Oriented Programming by Robert Lafore in C++ Solution Manual

//Ahmad Furqan Attari
// P7.3
// averages an array of Distance objects input by user
#include <iostream>
#include <conio.h>
using namespace std;
////////////////////////////////////////////////////////////////
class Distance // English Distance class
{
private:
 int feet;
 float inches;
public:
 Distance() //constructor (no args)
 {
  feet = 0; inches = 0;
 }
 Distance(int ft, float in) //constructor (two args)
 {
  feet = ft; inches = in;
 }
 void getdist() //get length from user
 {
  cout << "\nEnter feet : "; cin >> feet;
  cout << "Enter inches : "; cin >> inches;
 }
 void showdist() //display distance
 {
  cout << feet << "\' - " << inches << '\"';
 }
 void add_dist(Distance d2, Distance d3)
 {
  inches = d2.inches + d3.inches; //add the inches
  feet = 0; //(for possible carry)
  if (inches >= 12.0) //if total exceeds 12.0,
  { //then decrease inches
   inches -= 12.0; //by 12.0 and
   feet++; //increase feet
  } //by 1
  feet += d2.feet + d3.feet; //add the feet
 }
 void div_dist(Distance d2, int divisor)
 {
  float fltfeet = d2.feet + d2.inches / 12.0; //convert to float
  fltfeet /= divisor; //do division
  feet = int(fltfeet); //get feet part
  inches = (fltfeet - feet) * 12.0; //get inches part
 }
};
void main(void)
{
 Distance distarr[100]; //array of 100 Distances
 Distance total(0, 0.0), average; //other Distances
 int count = 0; //counts Distances input
 char ch; //user response character
 do {
  cout << "\nEnter a Distance"; //get Distances
  distarr[count++].getdist(); //from user, put
  cout << "\nDo another(y / n) ? "; //in array
  cin >> ch;
 } while (ch != 'n');
 for (int j = 0; j<count; j++) //add all Distances
  total.add_dist(total, distarr[j]); //to total
 average.div_dist(total, count); //divide by number
 cout << "\nThe average is : "; //display average
 average.showdist();
 cout << endl;
 _getch();
}

Chapter 7,Problem 2:Object Oriented Programming by Robert Lafore in C++ Solution Manual

//Ahmad Furqan Attari
// P7.2
// employee object uses a string as data
#include <iostream>
#include <string>
#include <conio.h>
using namespace std;
////////////////////////////////////////////////////////////////
class employee
{
private:
        string name;
        long number;
public:
        void getdata() //get data from user
        {
                cout << "\nEnter name : "; cin >> name;
                cout << "Enter number : "; cin >> number;
        }
        void putdata() //display data
        {
                cout << "\n Name : " << name;
                cout << "\n Number : " << number;
        }
};
void main(void)
{
        employee emparr[100]; //an array of employees
        int n = 0; //how many employees
        char ch; //user response
        do { //get data from user
                cout << "\nEnter data for employee number " << n + 1;
                emparr[n++].getdata();
                cout << "Enter another(y / n) ? "; cin >> ch;
        } while (ch != 'n');
        for (int j = 0; j<n; j++) //display data in array
        {
                cout << "\nEmployee number " << j + 1;
                emparr[j].putdata();
        }
        cout << endl;
        _getch();
}

Chapter 7,Problem 1:Object Oriented Programming by Robert Lafore in C++ Solution Manual

//Ahmad Furqan Attari
// P7.1
// reverses a C-string
#include <iostream>
#include <cstring> //for strlen()
#include <conio.h>
using namespace std;
void reversit(char s[])
{
 int len = strlen(s); //find length of string
 for (int j = 0; j < len / 2; j++) //swap each character
 { // in first half
  char temp = s[j]; // with character
  s[j] = s[len - j - 1]; // in second half
  s[len - j - 1] = temp;
 }
}
void main(void)
{
 const int MAX = 80; //array size
 char str[MAX]; //string
 cout << "\nEnter a string : "; //get string from user
 cin.get(str, MAX);
 reversit(str); //reverse the string
 cout << "Reversed string is : "; //display it
 cout << str << endl;
 _getch();
}

Friday, 28 November 2014

Chapter 6,Problem 12:Object Oriented Programming by Robert Lafore in C++ Solution Manual

//Engr. Ahmad Furqan Attari
//Chapter 6, Problem 11
#include <iostream>
#include <conio.h>
#include <iomanip>
#include <cmath>
using namespace std;
class fraction
{
private:
     int num, den;
public:
     fraction()
     {}
     fraction(int n, int d) :num(n), den(d)
     {
           lowterms();
     }
     void take_frac(void)
     {
          char ch;
          cin >> num >> ch >> den;
     }
     void show_frac(void)
     {
          cout << setw(2)<<num << "/" <<setw(2)<< den;
     }
     void lowterms(void) // change ourself to lowest terms
     {
          long tnum, tden, temp, gcd;
          tnum = labs(num); // use non-negative copies
          tden = labs(den); // (needs cmath)
          if (tden == 0) // check for n/0
          {
               cout << "Illegal fraction : division by 0"; exit(1);
          }
          else if (tnum == 0) // check for 0/n
          {
               num = 0; den = 1; return;
          }
          // this ‘while’ loop finds the gcd of tnum and tden
          while (tnum != 0)
          {
               if (tnum < tden) // ensure numerator larger
               {
                    temp = tnum; tnum = tden; tden = temp;
               } // swap them
               tnum = tnum - tden; // subtract them
          }
          gcd = tden; // this is greatest common divisor
          num = num / gcd; // divide both num and den by gcd
          den = den / gcd; // to reduce frac to lowest terms
         }
     void add_frac(fraction a, fraction b)
     {
          num = a.num*b.den + a.den*b.num;
          den = a.den*b.den;
          lowterms();
     }
     void sub_frac(fraction a, fraction b)
     {
          num = a.num*b.den - a.den*b.num;
          den = a.den*b.den;
          lowterms();
     }
     void mul_frac(fraction a, fraction b)
     {
          num = a.num*b.num;
          den = a.den*b.den;
          lowterms();
     }
     void div_frac(fraction a, fraction b)
     {
          num = a.num*b.den;
          den = a.den*b.num;
          lowterms();
     }
};
void main(void)
{
     int den;
     fraction f[9],res;
     do
     {
          cout << "Enter a denominator(<10): ";
          cin >> den;
     } while (den > 9);
     cout << "          ";
     for (int i = 0; i < den-1; i++)
     {
          f[i] = { i + 1, den };
          f[i].show_frac();
          cout << "    ";
     }
     for (int i = 0; i < den - 1; i++)
     {
          cout << endl;
          f[i].show_frac();
          cout << "     ";
          for (int j = 0; j < den - 1; j++)
          {
               res.mul_frac(f[i], f[j]);
               res.show_frac();
               cout << "    ";
          }
     }
     _getch();
}

Chapter 6,Problem 11:Object Oriented Programming by Robert Lafore in C++ Solution Manual

//Engr. Ahmad Furqan Attari
//Chapter 6, Problem 11
#include <iostream>
#include <conio.h>
#include <cmath>
using namespace std;
class fraction
{
private:
 int num, den;
public:
 fraction()
 {}
 fraction(int n, int d):num(n), den(d)
 {
 }
 void take_frac(void)
 {
  char ch;
  cin >> num >> ch >> den;
 }
 void show_frac(void)
 {
  cout << num << "/" << den;
 }
 void lowterms(void) // change ourself to lowest terms
 {
  long tnum, tden, temp, gcd;
  tnum = labs(num); // use non-negative copies
  tden = labs(den); // (needs cmath)
  if (tden == 0) // check for n/0
  {
   cout << "Illegal fraction : division by 0"; exit(1);
  }
  else if (tnum == 0) // check for 0/n
  {
   num = 0; den = 1; return;
  }
  // this ‘while’ loop finds the gcd of tnum and tden
  while (tnum != 0)
  {
   if (tnum < tden) // ensure numerator larger
   {
    temp = tnum; tnum = tden; tden = temp;
   } // swap them
   tnum = tnum - tden; // subtract them
  }
  gcd = tden; // this is greatest common divisor
  num = num / gcd; // divide both num and den by gcd
  den = den / gcd; // to reduce frac to lowest terms
 }
 void add_frac(fraction a,fraction b)
 {
  num = a.num*b.den + a.den*b.num;
  den = a.den*b.den;
  lowterms();
 }
 void sub_frac(fraction a,fraction b)
 {
  num = a.num*b.den - a.den*b.num;
  den = a.den*b.den;
  lowterms();
 }
 void mul_frac(fraction a,fraction b)
 {
  num = a.num*b.num;
  den = a.den*b.den;
  lowterms();
 }
 void div_frac(fraction a, fraction b)
 {
  num = a.num*b.den;
  den = a.den*b.num;
  lowterms();
 }
};
void main(void)
{
 fraction a, b, c,d,e,f;
 char ch;
 do
 {
  cout << "Enter fraction a: ";
  a.take_frac();
  cout << "Enter fraction b: ";
  b.take_frac();
  c.add_frac(a, b);
  a.show_frac();
  cout << " + ";
  b.show_frac();
  cout << " = ";
  c.show_frac();
  cout << endl;
  d.sub_frac(a, b);
  a.show_frac();
  cout << " - ";
  b.show_frac();
  cout << " = ";
  d.show_frac();
  cout << endl;
  e.mul_frac(a, b);
  a.show_frac();
  cout << " * ";
  b.show_frac();
  cout << " = ";
  e.show_frac();
  cout << endl;
  f.div_frac(a, b);
  a.show_frac();
  cout << " % ";
  b.show_frac();
  cout << " = ";
  f.show_frac();
  cout << endl << "Enter again? (y/n): ";
  ch = _getche();
  cout << endl;
 } while (ch != 'n');
}

Chapter 6,Problem 10:Object Oriented Programming by Robert Lafore in C++ Solution Manual

//28-11-2014
//Engr. Ahmad Furqan Attari
//p6.10
#include <iostream>
#include <conio.h>
using namespace std;
class angle
{
private:
 int deg;
 float min;
 char dir;
public:
 angle()
 {}
 angle(int d, float m, char di) : deg(d), min(m), dir(di)
 {}
 void get(void)
 {
  cout << "Enter degree: ";
  cin >> deg;
  cout << "Enter minute: ";
  cin >> min;
  cout << "Enter direction(E,W,S,N): ";
  cin >> dir;
 }
 void show(void)
 {
  cout << deg << "\xF8" << min << "' " << dir;
 }
};
class ship
{
private:
 angle lati, longi;
 int serial;
 static int count;
public:
 ship()
 {
  count++;
  serial = count;
 }
 void get(void)
 {
  cout << "Enter ship"<<serial<<"'s latitude:" << endl;
  lati.get();
  cout << "Enter ship"<<serial<<"'s longitude:" << endl;
  longi.get();
 }
 void show(void)
 {
  cout << "Ship number: " << serial << endl;
  cout << "Ship position: " << endl;
  cout << "latitude: ";
  lati.show();
  cout << endl << "longitude: ";
  longi.show();
  cout << endl;
 }
};
int ship::count = 0;
void main(void)
{
 ship s1, s2, s3;
 s1.get();
 s2.get();
 s3.get();
 s1.show();
 s2.show();
 s3.show();
 _getch();
}

Chapter 5,Problem 1:Object Oriented Programming by Robert Lafore in C++ Solution Manual

//28-11-2014
//Ahmad Furqan Attari
//p5.1
#include <iostream>
#include <conio.h>
using namespace std;
#define PI 3.14159;
float circarea(float r)
{
 return r*r*PI;
}
void main(void)
{
 float r;
 cout << "Enter Radius: ";
 cin >> r;
 cout << "Area of the circle is: " << circarea(r);
 _getch();
}

Chapter 5,Problem 12:Object Oriented Programming by Robert Lafore in C++ Solution Manual

//27-11-2014
//Ahmad Furqan Attari
//p5.12
#include <iostream>
#include <conio.h>
using namespace std;
struct fraction
{
int num;
int den;
};
fraction fadd(fraction a,fraction b)
{
fraction f;
f.num = a.num*b.den + a.den*b.num;
f.den = a.den*b.den;
return f;
}
fraction fsub(fraction a, fraction b)
{
fraction f;
f.num = a.num*b.den - a.den*b.num;
f.den = a.den*b.den;
return f;
}
fraction fmul(fraction a, fraction b)
{
fraction f;
f.num = a.num*b.num;
f.den = a.den*b.den;
return f;
}
fraction fdiv(fraction a, fraction b)
{
fraction f;
f.num = a.num*b.den;
f.den = a.den*b.num;
return f;
}
fraction take(void)
{
fraction f;
char dummy;
cout << "Enter a fraction (num/den): ";
cin >> f.num >> dummy >> f.den;
return f;
}
void main(void)
{
fraction a, b,add,sub,mul,div;
a = take();
b = take();
add = fadd(a, b);
sub = fsub(a, b);
mul = fmul(a, b);
div = fdiv(a, b);
cout << "Addition: " << add.num << "/" << add.den << endl;
cout << "Subtraction: " << sub.num << "/" << sub.den << endl;
cout << "Multiplication: " << mul.num << "/" << mul.den << endl;
cout << "Division: " << div.num << "/" << div.den << endl;
_getch();
}

Chapter 5,Problem 11:Object Oriented Programming by Robert Lafore in C++ Solution Manual

//27-11-2014
//Ahmad Furqan Attari
//p5.11
#include <iostream>
#include <conio.h>
using namespace std;
struct brit_money
{
int pound;
int shelling;
int pence;
};
brit_money take(void)
{
brit_money m;
char dummy;
cout << "Enter money in old Britin style (5.3.2): ";
cin >> m.pound >> dummy >> m.shelling >> dummy >> m.pence;
return m;
}
brit_money add(brit_money m1, brit_money m2)
{
brit_money m;
m.pence = m1.pence + m2.pence;
m.shelling = m1.shelling + m2.shelling+m.pence/12;
m.pence = m.pence % 12;
m.pound = m1.pound + m2.pound + m.shelling / 20;
m.shelling = m.shelling % 20;
return m;
}
void show(brit_money m3)
{
cout << "\x9c" << m3.pound << "." << m3.shelling << "." << m3.pence;
}
void main(void)
{
brit_money mon1, mon2, mon3;
mon1 = take();
mon2 = take();
mon3 = add(mon1, mon2);
cout << "Sum is ";
show(mon3);
_getch();
}

Chapter 5,Problem 10:Object Oriented Programming by Robert Lafore in C++ Solution Manual

//27-11-2014
//Ahmad Furqan Attari
//p5.10
#include <iostream>
#include <conio.h>
using namespace std;
int times = 0;
void g_fun(void)
{
times++;
cout << "I have been called " << times << " times." << endl;
}
void s_fun(void)
{
static int stimes = 0;
stimes++;
cout << "I have been called " << stimes << " times." << endl;
}
void main(void)
{
cout << "Global variable version!" << endl;
for (int i = 0; i < 10; i++)
{
g_fun();
}
cout << "Static variable version!" << endl;
for (int j = 0; j < 10; j++)
{
s_fun();
}
_getch();
}

Chapter 5,Problem 9:Object Oriented Programming by Robert Lafore in C++ Solution Manual

//27-11-2014
//Ahmad Furqan Attari
//p5.9
#include <iostream>
#include <conio.h>
using namespace std;
struct time
{
int hours;
int mins;
int secs;
};
void swap(time& a, time& b)
{
int temp;
temp = a.hours;
a.hours = b.hours;
b.hours = temp;
temp = a.mins;
a.mins = b.mins;
b.mins = temp;
temp = a.secs;
a.secs = b.secs;
b.secs = temp;
}
void main(void)
{
time t1 = { 5, 42, 34 }, t2 = {6,26,56};
cout << "Befor swap" << endl;
cout<<"t1 = " << t1.hours << " hours " << t1.mins << " minutes " << t1.secs << " sec " << endl;
cout << "t2 = " << t2.hours << " hours " << t2.mins << " minutes " << t2.secs << " sec " << endl;
swap(t1,t2);
cout << "After swap" << endl;
cout << "t1 = " << t1.hours << " hours " << t1.mins << " minutes " << t1.secs << " sec " << endl;
cout << "t2 = " << t2.hours << " hours " << t2.mins << " minutes " << t2.secs << " sec " << endl;
_getch();
}

Chapter 5,Problem 8:Object Oriented Programming by Robert Lafore in C++ Solution Manual

//27-11-2014
//Ahmad Furqan Attari
//p5.8
#include <iostream>
#include <conio.h>
using namespace std;
void swap(int& a, int& b)
{
int temp = a;
a = b;
b = temp;
}
void main(void)
{
int a=5, b=8;
cout << "Befor Swap a=" << a << " , b= " << b << endl;
swap(a, b);
cout << "After Swap a=" << a << " ,b= " << b << endl;
_getch();
}

Chapter 5,Problem 7:Object Oriented Programming by Robert Lafore in C++ Solution Manual

//27-11-2014
//Ahmad Furqan Attari
//P5.7
#include <iostream>
#include "conio.h"
using namespace std;
double power(double num, int p=2)
{
double ans = 1;
for (int i = 0; i<p; i++)
{
ans *= num;
}
return ans;
}
int power(char num, int p = 2)
{
int ans = 1;
for (int i = 0; i<p; i++)
{
ans *= num;
}
return ans;
}
int power(int num, int p = 2)
{
int ans = 1;
for (int i = 0; i<p; i++)
{
ans *= num;
}
return ans;
}
long power(long num, int p = 2)
{
long ans = 1;
for (int i = 0; i<p; i++)
{
ans *= num;
}
return ans;
}
float power(float num, int p = 2)
{
float ans = 1;
for (int i = 0; i<p; i++)
{
ans *= num;
}
return ans;
}
void main(void)
{
char var_char=6;
int var_int=5;
long var_long = 7;
float var_float = 3;
double var_double = 9;
cout << "1 " << power(var_char,5)<<endl;
cout << "2 " << power(var_int, 5) << endl;
cout << "3 " << power(var_long, 5) << endl;
cout << "4 " << power(var_float, 5) << endl;
cout << "5 " << power(var_double, 5) << endl;
_getch();
}

Wednesday, 26 November 2014

Chapter 5,Problem 6:Object Oriented Programming by Robert Lafore in C++ Solution Manual

//P5.6
//Ahmad Furqan
//1-3-2013
#include <iostream>
#include <conio.h>
using namespace std;
struct time
{
int hours;
int mins;
int secs;
};
long time_to_secs(time& );
time secs_to_time(long&);
void main(void)
{
time t;
long secs;
cout<<"Enter time in format (hh:mm:ss)"<<endl;
char ch;
cin>>t.hours>>ch>>t.mins>>ch>>t.secs;
cout<<"Equivalent time in seconds is "<<time_to_secs(t)<<" Seconds"<<endl;
cout<<"Enter time in seconds"<<endl;
cin>>secs;
time t1=secs_to_time(secs);
cout<<"Equivalent time is "<<t1.hours<<" Hours "<<t1.mins<<" Minutes "<<t1.secs<<" Seconds"<<endl;
_getch();
}
//time_to_secs
//converts time to secs
long time_to_secs(time& t)
{
return t.secs+t.mins*60+t.hours*60*60;
}
//secs_to_time
//converts secs to time
time secs_to_time(long& secs)
{
time t;
t.hours=secs/3600;
secs-=t.hours*3600;
t.mins=secs/60;
secs-=t.mins*60;
t.secs=secs;
return t;
}

Chapter 5,Problem 5:Object Oriented Programming by Robert Lafore in C++ Solution Manual

//P5.5
//Ahmad Furqan
//1-3-2013
#include <iostream>
#include <conio.h>
using namespace std;
long hms_to_secs(int& hours,int& mins,int& secs);
void main(void)
{
int h,m,s;
cout<<"Enter time "<<endl
<<"(Format hh:mm:ss)"<<endl;
char dummychar;
cin>>h>>dummychar>>m>>dummychar>>s;
cout<<"The equivalent time in seconds is "<<hms_to_secs(h,m,s)<<" seconds"<<endl;
_getch();
}
//hms_to_secs
//returns the time in secs
long hms_to_secs(int& hours,int& mins,int& secs)
{
return secs+mins*60+hours*60*60;
}

Chapter 5,Problem 4:Object Oriented Programming by Robert Lafore in C++ Solution Manual

//P5.4
//Ahmad Furqan
//1-3-2013
#include <iostream>
#include <conio.h>
using namespace std;
struct Distance
{
int feet;
int inches;
};
Distance larger(Distance&,Distance&);
void main(void)
{
Distance d1={11,11},d2={5,9};
Distance d3=larger(d1,d2);
cout<<"larger is "<<d3.feet<<" feet "<<d3.inches<<" Inches"<<endl;
_getch();
}
//Larger
//Returns the larger distance
Distance larger(Distance& d1,Distance& d2)
{
if(d1.feet==d2.feet)
if(d1.inches>d2.inches)
return d1;
else
return d2;
else
if(d1.feet>d2.feet)
return d1;
else
return d2;
}

Chapter 5,Problem 3:Object Oriented Programming by Robert Lafore in C++ Solution Manual

//zerosmaller
//Ahmad Furqan
//28-2-2013
#include <iostream>
#include <conio.h>
using namespace std;
void zerosmaller(int&,int&);
void main(void)
{
int a,b;
a=25;
b=20;
zerosmaller(a,b);
cout<<"a="<<a<<endl
<<"b="<<b<<endl;
_getch();
}
void zerosmaller(int& a,int& b)
{
if(a<b)
a=0;
else
b=0;
}

Chapter 5,Problem 2:Object Oriented Programming by Robert Lafore in C++ Solution Manual

//P5.2
//Ahmad Furqan
//28-2-2013
#include <iostream>
#include <conio.h>
using namespace std;
double power(double num,int p);
double power(double num);
void main(void)
{
double num=3.154;
int p=4;
cout<<"1 "<<power(num,p)<<endl;
cout<<"2 "<<power(num)<<endl;
_getch();
}
double power(double num,int p)
{
double ans=1;
for(int i=0;i<p;i++)
{
ans*=num;
}
return ans;
}
double power(double num)
{
return num*num;
}

Chapter 6,Problem 9:Object Oriented Programming by Robert Lafore in C++ Solution Manual

//Engr. Ahmad Furqan Attari
//Chapter 6, Problem 9
#include <iostream>
#include <conio.h>
using namespace std;
class fraction
{
private:
int numerator,denomenator;
public:
void take_frac(void)
{
char ch;
cin>>numerator>>ch>>denomenator;
}
void show_frac(void)
{
cout<<numerator<<"/"<<denomenator;
}
void add_frac(fraction a,fraction b)
{
numerator=a.numerator*b.denomenator+a.denomenator*b.numerator;
denomenator=a.denomenator*b.denomenator;
}
};
void main(void)
{
fraction a,b,c;
char ch;
do
{
cout<<"Enter fraction a: ";
a.take_frac();
cout<<"Enter fraction b: ";
b.take_frac();
c.add_frac(a,b);
a.show_frac();
cout<<" + ";
b.show_frac();
cout<<" = ";
c.show_frac();
cout<<endl<<"Enter again? (y/n): ";
ch=getche();
cout<<endl;
}while(ch!='n');
}

Chapter 6,Problem 8:Object Oriented Programming by Robert Lafore in C++ Solution Manual

//Engr. Ahamad Furqan Attari
//Chapter 6, Problem 8
#include <iostream>
#include <conio.h>
using namespace std;
class Furqan
{
private:
 int serial;
 static int count;
public:
 Furqan()
 { 
  count++;
  serial=count;
 }
 void report_serial(void)
 {
  cout<<"I'm object number "<<serial<<endl;
 }
};
int Furqan::count=1;
void main(void)
{
 Furqan f1,f2,f3;
 f1.report_serial();
 f2.report_serial();
 f3.report_serial();
 getch();
}

Chapter 6,Problem 7:Object Oriented Programming by Robert Lafore in C++ Solution Manual

//Engr. Ahmad Furqan Attari
//Chapter 6, Problem 7
#include <iostream>
#include <conio.h>
using namespace std;
class angle
{
private:
 int deg;
 float min;
 char dir;
public:
 angle()
 {}
 angle(int d , float m , char di): deg(d),min(m),dir(di)
 {}
 void get(void)
 {
  cout<<"Enter degree: ";
  cin>>deg;
  cout<<"Enter minute: ";
  cin>>min;
  cout<<"Enter direction: ";
  cin>>dir;
 }
 void show(void)
 {
  cout<<deg<<"\xF8"<<min<<"' "<<dir;
 }
};
void main(void)
{
 angle a(23,57,'E'),b;
 a.show();
 char ch;
 do
 {
  cout<<endl<<"Enter an angle "<<endl;
  b.get();
  cout<<"You entered: ";
  b.show();
  cout<<endl<<"Enter again? ";
  ch=getche();
 }while(ch!='n');
}