Vleresimi i te dhenave me funksionin set()

Ndonjehere eshte e nevojshme qe te kontrollohet vlefshmeria e te dhenave qe jepen nga tastiera.

Psh per klasen GradeBook duhet te sigurohemi qe emri i kursit eshte i nje formati te vlefshem psh deri ne 25 karaktere i gjate.

Per kete modifikohet funksioni setEmriKursit  qe te testoje nese emri i kursit i kalon 25 karakteret.

Nese po atehere do te lexohen nga programi vetem 25 karakteret e para.

Libraria standarte <string> permban nje funksion length() qe kthen numrin e karaktereve ne nje objekt string.

Libraria standarte <string> permban gjithashtu funksionin substr(a,b) qe kthen  nje objekt te ri string te krijuar nga nje pjese e stringut ekzistues.

Parametri i pare a tregon pozicionin fillestar ne stringun qe do kopjohet.

(Karakteri i pare ka indeks 0)

Parametri i dyte b tregon numrin e karaktereve qe do kopjohen.

GradeBook.h


     /* GradeBook.h
 Deklarimi i klases GradeBook. Ky skedar perfaqeson nderfaqen publike te klases GradeBook 
 pa shfaqur implementimin e  funksioneve anetare, te cilet jane ndertuar ne  GradeBook.cpp.
*/
#include <string> 
using std::string;

// deklarimi i klases GradeBook 
class GradeBook
{
public:
   GradeBook( string ); // konstruktori inicializon emrin e kursit
   void setEmriKursit( string ); // funksioni qe vendos emrin e kursit
   string getEmriKursit(); // funksioni qe merr emrin e kursit
   void afishoMesazh(); // funksioni qe afishon mesazh pershendetje
private:
   string emriKursit; // emri i kursit per klasen GradeBook
};  

 GradeBook.cpp


     // GradeBook.cpp
// Ndertimi i funksioneve te klases GradeBook. 
// Ky skedar mban implementimin e funksioneve anetare prototipet e te cileve u deklaruan ne skedarin GradeBook.h

#include <iostream>
using std::cout; 
using std::endl;

#include "GradeBook.h" // include definition of class GradeBook
// Konstruktori inicializon emriKursit me nje string te kaluar si argument.
GradeBook::GradeBook( string name ) 
{                                                                      
    setEmriKursit( name ); // thirret funksioni set per inicializimin e emriKursit
} //fund konstruktori                                       

void GradeBook::setEmriKursit( string name )
{

if ( name.length() <= 25 ) // nese emri ka 25 ose me pak karaktere
      emriKursit = name; // ruan emrin e kursit ne objekt

   if ( name.length() > 25 ) // nese emri ka me shume se 25 karaktere
   { 
      // vendos 25 karakteret e para per emer kursi
      emriKursit = name.substr( 0, 25 ); // fillon nga 0 , gjithsej 25 karaktere

      cout << "Emri \"" << name 
<< "\" Kalon gjatesine maksimale (25).\n"
"Vendosen vetem 25 karakteret e para"
" ne emrin e kursit.\n" << endl;
   } 

}

string GradeBook::getEmriKursit()
{
 return emriKursit; // kthen emriKursit te objektit
} 
void GradeBook::afishoMesazh()
{
    cout << "Mirsevini ne librin e notave per\n" 
    << getEmriKursit()<< "!" << endl;
} 

TestGradeBook.cpp 


     // TestGradeBook.cpp
// Perfshihet klasa GradeBook nga GradeBook.h per perdorim ne main.
#include <iostream>
#include <string>
using namespace std;

#include "GradeBook.h" // Perfshihet deklarimi i klases GradeBook
int main()
{
string emri;
cout<< "Jepni emrin e kursit:"<<endl;
getline(cin,emri);
GradeBook kursi1(emri);
GradeBook kursi2("Code For Students" );         
   cout << "libri1 u krijua per kursin: " 
        << kursi1.getEmriKursit()
        << "\nlibri2 u krijua per kursin: " 
        << kursi2.getEmriKursit()
        << endl; 
system("pause");
return 0; 
}

Afishon:

Jepni emrin e kursit:

Kursi i programimit java dhe c++ : Code For Students

Emri "Kursi i programimit java dhe c++ : Code For Students" Kalon gjatesine maks

imale (25).

Vendosen vetem 25 karakteret e para ne emrin e kursit.

libri1 u krijua per kursin: Kursi i programimit java

libri2 u krijua per kursin: Code For Students

Press any key to continue . . .