Hallgatók adatainak nyilvántartása

Írjunk osztályt, amely hallgatókat tart nyilván! Az osztály megírása közben használjuk a C++ beépített std::string osztályát vagy egy saját magunk által írt sztring osztályt!

Ha még nem írtunk sztring osztályt, az std::string osztály alapműveleteinek a bemutatását megtaláljuk a SzC++Ny könyv 12.5 fejezetének első alfejezeteiben.


A megoldásért kattints ide!
A Student.h állomány tartalma:

#include <string>

#include <cstring>

 

 

class Student

{

      static const unsigned neptun_size = 7;

      char neptun[neptun_size]; // Ehelyett is jobb lenne a string, de ez is szóba jöhet

      unsigned mark; // Érdemjegy: az unsigned charral több baj van, mint így (minden I/O karakterként kezeli)

 

public:

      std::string name; // Ezt nem akarjuk korlátozni     

      Student(std::string name = "", char neptun[] ="xxxxxx", unsigned mark=1):name(name)

      {

            setNeptun(neptun);

            setMark(mark);

      }

 

 

      void setNeptun(char neptun[]);

      const char * getNeptun()const {return neptun;}

      void setMark(unsigned mark);

      unsigned char getMark()const{return mark;}

 

};



A Student.cpp állomány tartalma:

#include "Student.h"

#include <stdexcept>

#include <iostream>

 

using namespace std;

 

 

void Student::setNeptun(char neptun[])

{

      if(strlen(neptun) == neptun_size-1)

      {

            strcpy(this->neptun, neptun);

      }

      else

      {

            // cerr << "Bad neptun format." << endl;

            throw domain_error("Bad neptun format."); // Ezt csak a félév vége felé kell tudni, addig elég a felső sor

      }

}

 

void Student::setMark(unsigned mark)

{

      if(mark > 0 && mark <=5)

      {

            this->mark = mark;

      }

      else

      {

            // cerr << "Bad mark format." << endl;

            throw domain_error("Bad mark format.");// Ezt csak a félév vége felé kell tudni, addig elég a felső sor

      }

}




2008.01.17. 23:32:19 |  Permalink  |  Hozzászólások száma: 0  |  Tárgyszavak: Osztályok


Írja meg Ön is véleményét!


Hozzászólásokat csak regisztrált, bejelentkezett felhasználóktól tudunk elfogadni!

Hozzászólások