Лекция: Пример создания и использования простого класса
В качестве примера создания и использования простого класса в листинге 1 представлена программа, в которой создан класс Student, формируется динамический массив объектов. При тестировании выводятся: сформированный список студентов заданного факультета, список студентов для заданного факультета и курса (рис. 1).
Листинг 1. Простой класс
// файл stud.h
#ifndef STUD_H_
#define STUD_H_
struct date // дата рождения
{ char daymon[6];
int year;
};
//======= class Student =================
class Student
{
private:
char name[30];
date t;
char adr[30], fac[20];
int kurs;
public:
Student();
char *getfac();
int getkurs();
void show();
};
#endif
// файл stud.cpp
#include «stud.h»
#include <iostream>
using namespace std;
Student::Student()
{ cout<<«Input name:»; cin>>name;
cout<<«Input date of born\n»;
cout<<" Day.mon:"; cin>>t.daymon;
cout<<" Year:"; cin >> t.year;
cout<<«Input adr:»; cin>>adr;
cout<<«Input fac:»; cin>>fac;
cout<<«Input kurs:»; cin >> kurs;
}
void Student::show()
{
cout << «Name :» <<name << endl;
cout << «Was born :» << t.daymon << '.' << t.year << endl;
cout << «Address :» << adr << endl;
cout << «Fac :» << fac <<endl;
cout << «Kurs :»<<kurs<<endl;
}
char *Student::getfac() { return fac; }
int Student::getkurs() { return kurs; }
// файл main.cpp
#include «stud.h»
#include <string.h>
#include <iostream>
using namespace std;
void spisfac(Student spis[],int n)//список студентов заданного факультетата
{ char fac[20];
cout<<«Input faculty:»; cin>>fac;
for(int i=0;i<n;i++)
if(strcmp(spis[i].getfac(),fac)==0)
spis[i].show();
}
void spisfackurs(Student spis[],int n)
//список студентов заданных факультета и курса
{ int i,k;
char fac[20];
cout<<«Input faculty:»; cin>>fac;
cout<<«Input the course:»; cin>>k;
for(i=0;i<n;i++)
if ((strcmp(spis[i].getfac(),fac)==0)&&(spis[i].getkurs()==k))
spis[i].show();
}
//========= main ================
int main()
{ Student *spis;
int n;
cout<<«Input a number of students: »; cin>>n;
spis=new Student [n];
for(int i=0;i<n;i++)
{ cout<<"\n=============================="<<endl;
spis[i].show();
}
cout<<"\n=============================="<<endl;
spisfac(spis,n);
cout<<"\n=============================="<<endl;
spisfackurs(spis,n);
delete [] spis;
}
Рисунок 1 – Окно с результатом работы программы