marketkonekt
0 0
1
 
Ushtrime te ndryshme ne C++
Per ata qe dine anglisht dhe jane te dhene pas C++

class Name

{
public:
        Name(void) { myName = 0; }
        ~Name(void) { delete[] myName; }
 
        void SetName(char* n)
        {
                myName = new char[strlen(n)+1];
                strcpy(myName,n);
        }
 
        void Print(void) { cout << myName << endl; }
 
private:
        char* myName;
};
 
class Contact: public Name
{
public:
        Contact(void) { myAddress = 0; }
 
        ~Contact(void) { delete[] myAddress; }
 
        void SetAddress(char* c)
        {
                myAddress = new char[strlen(c)+1];
                strcpy(myAddress,c);
        }
 
        void Print(void)
        {
                Name::Print();
                cout << myAddress << endl;
        }
 
private:
        char* myAddress;
};
 
int main(void)
{
        Contact c;
 
        c.SetName("John McClane");
        c.SetAddress("137th floor, Nakatome Towers");
 
        c.Print();
}

 

 

 

 

 

 

***************************************************

* Example 2 showing the use of string functions                      *                                                           

***************************************************

#include

#include

#include

 

const int MAXLENGTH = 500;  // define maximum string length

 

void main()

{

   char FirstName[20] = "Donald";

   char LastName[20]  = "Duck";

   char FullName[MAXLENGTH+1];

 

   // function strlen gives the length of a string

   if (strlen(FirstName) + strlen(LastName) > MAXLENGTH)

   {

      cout << "\nName too long";

      return 1;

   }

   strcpy (FullName, FirstName);  // copy string

   strcat (FullName, " ");        // add space to end of string

   strcat (FullName, LastName);   // add last name

   cout << "\nThe full name is " << FullName;

 

   // compare strings. The function stricmp returns 0 if the strings are equal

   if (stricmp(FirstName,LastName) == 0)

   {

      cout << "\nFirst and last name are identical";

   }

   getch();

}

 

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

Example 3

* The hospital in Software City has three departments: heart clinic, lung     *

* clinic, and plastic surgery. The head nurse keeps three lists of patients   *

* waiting for an operation, one for each department. Each new patient         *

* normally comes last in the queue, but critically ill patients and patients  *

* who bribe the chief surgeon come first in the queue. Some patients die      *

* while waiting for an operation. This program keeps track of the three       *

* patient queues.                                                             *

*                                                                             *

* A structure called patient holds all information for one patient.           *

* A class called queue encapsulates a patient queue for one department,       *

* implemented as a linked list. Patient records are created dynamically.      *

******************************************************************

#include   

#include

#include

#include

 

// define maximum number of patients in a queue

#define MAXPATIENTS 100

 

// define structure for patient data

struct patient {

   patient * next;

   char FirstName[50];

   char LastName[50];

   char ID[20];

};

 

// define class for queue

class queue {

   public:

   queue (void);

   ~queue (void);

   int AddPatientAtEnd (patient * p);

   int AddPatientAtBeginning (patient * p);

   patient * GetNextPatient (void);

   patient * RemoveDeadPatient (patient * p);

   void OutputList (void);

   char DepartmentName[50];

   private:

   patient * List[MAXPATIENTS];

   patient * first, * last;

};

 

// declare member functions for queue

 

queue::queue () {

   // constructor

   first = last = NULL;}

 

queue::~queue () {

   // destructor

   patient * p1, * p2;

   for (p1=first; p1; ) {

      p2 = p1;

      p1 = p1->next;

      delete p2;}}

 

int queue::AddPatientAtEnd (patient * p) {

   // adds a normal patient to the end of the queue.

   // returns 1 if successful, 0 if queue is full.

   if (p == NULL) {

      // memory is full

      return 0;}

   // put in new patient

   if (first) {

      last->next = p;  last = p;}

   else {

      // queue is empty

      first = last = p;}

   p->next = NULL;

   return 1;}

 

int queue::AddPatientAtBeginning (patient * p) {

   // adds a critically ill patient to the beginning of the queue.

   // returns 1 if successful, 0 if queue is full.

   if (p == NULL) {

      // memory is full

      return 0;}

   // put in new patient

   if (first) {

      p->next = first;

      first = p;}

   else {

      // queue is empty

      first = last = p;

      p->next = NULL;}

   return 1;}

 

 

patient * queue::GetNextPatient (void) {

   // gets the patient that is first in the queue.

   // returns NULL if queue is empty

   patient * p;

   if (first) {

      p = first;

      first = first->next;}

   else {

      // queue is empty

      p = NULL;}

   return p;}

 

 

patient * queue::RemoveDeadPatient (patient * p) {

   // removes a patient from queue.

   // returns patient if found or NULL if not found

   patient * p1, * p2 = NULL;

   // search for patient

   for (p1=first; p1; p1 = p1->next) {

      if (stricmp(p1->ID, p->ID) == 0) {

         // patient found in queue

         // remove from queue

         if (p1 == first) {

            // adjust first

            first = first->next;}

         if (p1 == last) {

            // adjust last

            last = p2;}

         if (p2) {

            // adjust pointer in previous record

            p2->next = p1->next;}

         return p1;}

      // remember previous record

      p2 = p1;}

   // not found

   return NULL;}

 

 

void queue::OutputList (void) {

   // lists entire queue on screen

   patient * temp;

   if (first) {

      for (temp=first; temp; temp = temp->next) {

         cout << "\n" << temp->FirstName;

         cout << " " << temp->LastName;

         cout << " " << temp->ID;}}

   else {

     // queue empty

     cout << "\n\nQueue is empty";}}

 

 

// declare functions used by main:

 

patient * InputPatient (void) {

   // this function asks user for patient data.

   // create new patient record

   patient * p = new patient;

   // enter data into record

   cout << "\n\nPlease enter data for new patient\nFirst name: ";

   cin.getline(p->FirstName, sizeof(p->FirstName));

   cout << "\nLast name: ";

   cin.getline(p->LastName, sizeof(p->LastName));

   cout << "\nSocial security number: ";

   cin.getline(p->ID, sizeof(p->ID));

   // check if data valid

   if (p->FirstName[0]==0 || p->LastName[0]==0 || p->ID[0]==0) {

      // rejected

      delete p;  p = NULL;

      cout << "\n\nError: Data not valid. Operation cancelled.";

      getch();}

   return p;}

 

 

void OutputPatient (patient * p) {

   // this function outputs patient data to the screen

   if (p == NULL) {

      cout << "\nNo patient";

      return;}

   cout << "\n\nPatient data:";

   cout << "\n\nFirst name: " << p->FirstName;

   cout << "\n\nLast name: " << p->LastName;

   cout << "\n\nSocial security number: " << p->ID;}

 

int ReadNumber() {

   // this function reads an integer number from the keyboard.

   // it is used because input with cin >> doesn't work properly!

   char buffer[20];

   cin.getline(buffer, sizeof(buffer));

   return atoi(buffer);}      

 

 

void DepartmentMenu (queue * q) {

   // this function defines the user interface with menu for one department

   int choise = 0, success;  patient * p, * p1;

   while (choise != 6) {

      // clear screen

      clrscr();

      // print menu

      cout << "\n\n\nWelcome to department: " << q->DepartmentName;

      cout << "\n\nPlease enter your choise:";

      cout << "\n\n1:  Add normal patient";

      cout << "\n2:  Add critically ill patient";

      cout << "\n3:  Take out patient for operation";

      cout << "\n4:  Remove dead patient from queue";

      cout << "\n5:  List queue";

      cout << "\n6:  Change department or exit\n";

      // get user choise

      choise = ReadNumber();

      // do indicated action

      switch (choise) {

      case 1:   // Add normal patient

         p = InputPatient();

         if (p) {

            success = q->AddPatientAtEnd(p);

            clrscr();

            if (success) {

               cout << "\nPatient added:\n\n";

               OutputPatient(p);}

            else {

               // error

               cout << "\n\nError: The queue is full. Cannot add patient:";

               OutputPatient(p);

               delete p;}

            cout << "\n\nPress any key";

            getch();}

         break;

 

      case 2:   // Add critically ill patient

         p = InputPatient();

         if (p) {

            success = q->AddPatientAtBeginning(p);

            clrscr();

            if (success) {

               cout << "\nPatient added:\n\n";

               OutputPatient(p);}

            else {

               // error

               cout << "\n\nError: The queue is full. Cannot add patient:";

               OutputPatient(p);

               delete p;}

            cout << "\n\nPress any key";

            getch();}

         break;

 

      case 3:   // Take out patient for operation

         p = q->GetNextPatient();

         clrscr();

         if (p) {

            cout << "\nPatient to operate:\n\n";

            OutputPatient(p);

            // delete patient record

            delete p;}

         else {

            cout << "\nThere is no patient to operate.";}

         cout << "\n\nPress any key";

         getch();

         break;

 

      case 4:   // Remove dead patient from queue

         p = InputPatient();

         if (p) {

            p1 = q->RemoveDeadPatient(p);

            clrscr();

            if (p1) {

               cout << "\nPatient removed:\n\n";

               delete p;}

            else {

               // error

               cout << "\n\nError: Cannot find patient:\n\n";

               p1 = p;}

            OutputPatient(p1);  delete p1;

            cout << "\n\nPress any key";

            getch();}

         break;

 

      case 5:   // List queue

         clrscr();

         q->OutputList();

         cout << "\n\nPress any key";

         getch();  break;

         }}}

 

// main function defining queues and main menu

void main () {

   int i, MenuChoise = 0;

   // define three queues

   queue departments[3];

   // set department names

   strcpy (departments[0].DepartmentName, "Heart clinic");

   strcpy (departments[1].DepartmentName, "Lung clinic");

   strcpy (departments[2].DepartmentName, "Plastic surgery");

 

   while (MenuChoise != 4) {

      // clear screen

      clrscr();

      // print menu

      cout << "\n\n\nWelcome to Software City Hospital";

      cout << "\n\nPlease enter your choise:\n";

      for (i = 0; i < 3; i++) {

         // write menu item for department i

         cout << "\n" << (i+1) << ":  " << departments[i].DepartmentName;}

      cout << "\n4:  Exit\n";

      // get user choise    

      MenuChoise = ReadNumber();

      // is it a department name?

      if (MenuChoise >= 1 && MenuChoise <= 3) {

         // call submenu for department

         // (using pointer arithmetics here:)

         DepartmentMenu (departments + (MenuChoise-1));}}}

 

 
 Example 4 Array
 
 
//   * runtime memory allocation for an array with new
//   * amount of memory allocated depends on program state
 
#include 
using namespace std;
 
int main()
{
  int *a ; // declares that a[0]...a[something] will be array, 
  //          but doesn't allocate any memory for it
  int N  ;
do { 
    cout << "enter vector length: " ;
    cin >> N ;
  }    while ( N < 1 ) ;
  
  a = new int[N] ; // allocates the memory for a[0]..a[N-1]
 
  if(!a) {
    cout << "Memory allocation failed\n" ;
    return -1 ;
  }
  
  // Read in the vector from stdin
  for ( int n = 0 ; n < N ; n ++ ) {
    cout << "a[" << n << "]: " ;
    cin >> a[n] ;
  }
 
  // print out the vector 
  for ( int n = 0 ; n < N ; n ++ ) {
    cout << "a[" << n << "] = " ;
    cout << a[n] ;
    cout << endl; 

  }       

// free the memory 
  delete [] a ; // The '[]' indicate that
  //               what's being freed is an array
  return 0;
}
 

Example 5

// DateClass
// Program to demonstrate the definition of a simple class
// and member functions
 
#include 
using namespace std;
 
 
// Declaration of Date class
class Date {
 
public:  
  Date(int, int, int);
  void set(int, int, int);
  void print();
 
private:
  int year;
  int month;
  int day;
};
 
 
int main()
{
   // Declare today to be object of class Date
   // Values are automatically intialised by calling constructor function
   Date today(1,9,1999);
 
   cout << "This program was written on ";
   today.print(); 
 
   cout << "This program was modified on ";
   today.set(5,10,1999);
   today.print();
 
   return 0;
}
 
// Date constructor function definition
Date::Date(int d, int m, int y)
{
  if(d>0 && d<31) day = d;
  if(m>0 && m<13) month = m;
  if(y>0) year =y;
}
 
// Date member function definitions
void Date::set(int d, int m, int y)
{
  if(d>0 && d<31) day = d;
  if(m>0 && m<13) month = m;
  if(y>0) year =y;
}
 
void Date::print()
{
  cout << day << "-" << month << "-" << year << endl;

}                                 

Class Inheritance

class Circle
{
public:
      Circle();
      void setRadius(double r);
      double getRadius();
      double Diameter();
      double Circumference();
      double Area();
      void Display();
protected:
      double Radius;
private:
};
const double PI = 3.14159;
Circle::Circle()
{     Radius = 0;}
 
void Circle::setRadius(double r)
{     Radius = r <= 0 ? 1 : r;}
double Circle::getRadius()
{     return Radius;}
double Circle::Diameter()
{return Radius * 2;}
double Circle::Circumference()
{     return Diameter() * PI;}
double Circle::Area()
{
      return Radius * Radius * PI;
}
void Circle::Display()
{     cout << "\nCircle Properties";
      cout << "\nRadius        = " << getRadius();
      cout << "\nDiameter      = " << Diameter();
      cout << "\nCircumference = " << Circumference();
      cout << "\nArea          = " << Area() << "\n";
}
struct Sphere : public Circle
{public:
      double Volume();
      void Show();
private:
};
double Sphere::Volume()
{ return Radius * Radius * Radius * PI * 4 / 3; }
void Sphere::Show()
{
      cout << "\nCircle Properties";
      cout << "\nRadius        = " << getRadius();
      cout << "\nDiameter      = " << Diameter();
      cout << "\nCircumference = " << Circumference();
      cout << "\nArea          = " << Area();
      cout << "\nVolume        = " << Volume() << "\n\n";
}
void main()
{     Circle circle;   // Displaying a circle using the default value of the radius 
      circle.Display();
 
      Circle circ;           // A circle with a value supplied for the radius
      circ.setRadius(12.50);
      circ.Display();
 
      Sphere sphere;          // A sphere that has its own radius, using the functions
      sphere.setRadius(8.95); // of the base class
      sphere.Show();
}

***************************************

* Example 5 showing how to use 2-dimensional arrays with functions  

* This program multiplies all elements in a matrix with a factor (scalar).    *

*                                                                             *

* The program has the following sub-functions:                                *

* ReadMatrix: reads matrix from keyboard input,                               *

* WriteMatrix: writes matrix to screen,                                       *

* MultiplyByScalar: multiplies matrix by scalar.                              *

*                                                                             *

* Note that when a function parameter is declared as an array, you actually   *

* get a pointer, not a copy of the array. This means that you can modify      *

* the array inside the function and the change has effect on the original     *

* array outside the function.                                                 *

*                                                                             *

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

#include

#include

#include

 

const int rows = 3;     // number of rows in matrix (must be constant)

const int columns = 3;  // number of columns in matrix (must be constant)

 

void ReadMatrix (float ma[rows][columns])

// this function reads matrix from keyboard

{

   int r, c;

   cout << "\nPlease enter matrix";

   for (r=0; r

   {

      for (c=0; c

      {

         cout << "\nElement A(" << (r+1) << "," << (c+1) << ") ";

         cin >> ma[r][c];

      }

   }

}

 

void WriteMatrix (float ma[rows][columns])

// this function writes matrix on screen

{

   int r, c;

   cout << "\nMatrix is:";

   for (r=0; r

   {

      cout << "\n";

      for (c=0; c

      {  // setw(10) adds space to make all numbers 10 characters wide

         cout << setw(10) << ma[r][c] << "  ";

      }

   }

}

 

void MultiplyByScalar (float sq[rows][columns], float fac)

// this function multiplies a matrix by a scalar

{

   int i, j;

   for (i=0; i

   {

      for (j=0; j

      {

         sq[i][j] = sq[i][j] * fac;

      }

   }

}              

 

void main ()

{

   // declare matrix and scalar

   float A[rows][columns], f;

   // get matrix from user

   ReadMatrix(A);

   // get scalar from user

   cout << "\n\nEnter factor ";

   cin >> f;

   // multiply matrix by scalar

   MultiplyByScalar (A, f);

   // output result matrix on screen

   WriteMatrix(A);

   // wait for user to press a key

   getch();

}

 

                                                            Derived Classes

1

 

// Using base pointers on derived class objects.

#include

#include // for older compilers, use

using namespace std;

 

class B_class {

  char author[80];

public:

  void put_author(char *s) { strcpy(author, s); }

  void show_author() { cout << author << "\n"; }

} ;

 

class d_class : public B_class {

  char title[80];

public:

  void put_title(char *num) {

    strcpy(title, num);

  }

  void show_title() {

    cout << "Title: ";

    cout <<  title << "\n";

  }

};

 

int main()

{

  B_class *p;

  B_class B_ob;

 

  d_class *dp;

  d_class d_ob;

 

  p = &B_ob;  // address of base

 

  // Access B_class via pointer.

  p->put_author("Tom Clancy");

 

  // Access d_class via base pointer.

  p = &d_ob;

  p->put_author("William Shakespeare");

 

  // Show that each author went into proper object.

  B_ob.show_author();

  d_ob.show_author();

  cout << "\n";

 

  /* Since put_title() and show_title() are not part

     of the base class, they are not accessible via

     the base pointer p and must be accessed either

     directly, or, as shown here, through a pointer to the

     derived type.

  */

  dp = &d_ob;

  dp->put_title("The Tempest");

  p->show_author(); // either p or dp can be used here.

  dp->show_title( );

 

  return 0;}

 

2

 

#include

using namespace std;

 

class road_vehicle {

  int wheels;

  int passengers;

public:

  void set_wheels(int num) { wheels = num; }

  int get_wheels() { return wheels; }

  void set_pass(int num) { passengers = num; }

  int get_pass() { return passengers; }

};

 

class truck : public road_vehicle {

  int cargo;

public:

  void set_cargo(int size) { cargo = size; }

  int get_cargo() { return cargo; }

  void show();

};

 

enum type {car, van, wagon};

 

class automobile : public road_vehicle {

  enum type car_type;

public:

  void set_type(type t) { car_type = t; }

  enum type get_type() { return car_type; }

  void show();

};

 

void truck::show()

{

  cout << "wheels: " << get_wheels() << "\n";

  cout << "passengers: " << get_pass() << "\n";

  cout << "cargo capacity in cubic feet: " << cargo << "\n";

}

 

void automobile::show()

{

  cout << "wheels: " << get_wheels() << "\n";

  cout << "passengers: " << get_pass() << "\n";

  cout << "type: ";

  switch(get_type()) {

    case van: cout << "van\n";

      break;

    case car: cout << "car\n";

      break;

    case wagon: cout << "wagon\n";

  }

}

 

int main()

{

  truck t1, t2;

  automobile c;

 

  t1.set_wheels(18);

  t1.set_pass(2);

  t1.set_cargo(3200);

 

  t2.set_wheels(6);

  t2.set_pass(3);

  t2.set_cargo(1200);

 

  t1.show();

  t2.show();

 

  c.set_wheels(4);

  c.set_pass(6);

  c.set_type(van);

 

  c.show();

 

  return 0;

}

3

 

#include

class base {

  int i;

protected:

  int j;

public:

  int k;

  void seti(int a) { i = a; }

  int geti() { return i; }

};

 

// Inherit base as protected.

class derived : protected base {

public:

  void setj(int a) { j = a; } // j is protected here

  void setk(int a) { k = a; } // k is also protected

  int getj() { return j; }

  int getk() { return k; }

};

 

int main()

{

  derived ob;

 

  /* This next line is illegal because seti() is

     a protected member of derived, which makes it

     inaccessible outside of derived. */

//  ob.seti(10);

 

//  cout << ob.geti(); // illegal -- geti() is protected

//  ob.k = 10; // also illegal because k is protected

 

  // these next statements are OK

  ob.setk(10);

  cout << ob.getk() << ' ';

  ob.setj(12);

  cout << ob.getj() << ' ';

 

  return 0;

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

            Exercises

Matrix operations
Write a program that can do the following:

  • addition of two matrices
  • subtraction of two matrices
  • multiplication of a matrix by a scalar
  • multiplication of a matrix by a matrix
  • transpose a matrix

The order of the matrices could be 3 x 3, or variable if you want.

 

Telephone directory

Make a program that can sort a list of names and telephone numbers alphabetically. Persons are sorted alphabetically by their last names. Persons with the same last name are sorted by their first names.

Input: names and telephone numbers,

Output: list of names and telephone numbers ordered alphabetically.

Define a structure named person that contains a person's first name, last name, and telephone number.

Define a function that compares two structures of type person according to the following prototype:

int compare(person * a, person * b);

This function should return a negative value if person a comes before b, and a positive value if b comes before a. (You may use the function stricmp(name1,name2) to compare two strings).

Define a function that swaps the contents of two structures of type person:

void swap(person * x, person * y);

Use the following function to sort an array of structures of type person:

void sort(person * list, int NumberOfPersons)

 

Parabola as object

Make a class defining a polynomial of second degree y = A× x2 + B× x + C

The coefficients A, B, C should be private. The class should contain the following member functions:

  • a function that sets the coefficients to desired values
  • a function that calculates y for a given value of x
  • a function that tells how many roots there are and returns the roots (if any)
  • a function that tells whether the polynomial has a maximum, a minimum, or no extremum, and gives x and y for the extremum (if any)

Make a program to test an object of this class.

In case you've forgotten everything you've learned in math, here are the formulae:

Discriminant        

 

Animal insurance

 

Write a program that prints the insurance fee to pay for a pet according to the following rules:

  • A dog that has been neutered costs $50.
  • A dog that has not been neutered costs $80.
  • A cat that has been neutered costs $40.
  • A cat that has not been neutered costs $60.
  • A bird or reptile costs nothing.
  • Any other animal generates an error message.

The program should prompt the user for the appropriate information, using a code to determine the kind of animal (i.e. d or d represents a dog, C or c represents a cat, B or b represents a bird, R or r represents a reptile, and anything else represents some other kind of animal).

After printing the insurance fee, the program should ask the user if he wants to insure another animaI.

 

itkalbania shkollarrezedrite >


umb










Komente: Shfleto artikuj te tjere per:
Postuar nga: mili
ikub #:
 1
C++
910230013





   
 
  *Nese nuk e lexoni kodin atehere ringarkoni faqen per nje kod te ri.
emi
Para 44 muajsh  
  
ooooooooooooooo sa mire ktuuuuuuuuuuuuuuuuuu!!!!!!!!!!!!! ca pyetjeee
     

Pergjigjet

Jep pergjigjen tende
 
Username:
Fjalekalimi:
ose
Emri:
Email:
Web:
 

| Shto tek te Preferuarat
Argetohu Gjej
Jeta e perditshme Te nevojshme


alpet

as
spitaliamerikan