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 . . .