C/C++

Разработать консольную программу на языке С++ Вот есть только 3 пункта не хватает как это сделать не знаете?

Student: Фамилия, Имя, Отчество, Дата рождения, Адрес, Телефон, Факультет, Курс.
Вывести:
а) список студентов заданного факультета;
б) списки студентов для каждого факультета и курса;
в) список студентов, родившихся после заданного года.
#include
#include
#include
using namespace std;

struct date // дата рождения
{ char daymon[6];
int year;
};
//======= class Student =================
class Student
{
char name[30]; //private
date t;
char adr[30], fac[20];
int kurs;
public:
Student();
char *getfac();
int getkurs();
void show();
};
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; }
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;
cout<<"press any key!";
getch();
}
#include <iostream>
#include <iomanip>
#include <string>
using namespace std;
void flush(istream& inp = cin) {
inp.ignore(numeric_limits<streamsize>::max(), '\n');
}
struct Date {
int day;
int month;
int yaer;
Date() : day(9), month(5), yaer(1945) {}
friend ostream& operator<<(ostream& out, const Date& d) {
string str;
if (d.day < 10) str += "0";
str += to_string(d.day) + ".";
if (d.month < 10) str += "0";
str += to_string(d.month) + "." + to_string(d.yaer);
return out << str;
}
friend istream& operator>>(istream& inp, Date& d) {
cout << "Число: ";
inp >> d.day; flush(inp);
cout << "Месяц: ";
inp >> d.month; flush(inp);
cout << "Год : ";
inp >> d.yaer; flush(inp);
return inp;
}
};
struct Person {
string name;
string surname;
string patrinymic;
Date birthday;
friend ostream& operator<<(ostream& out, const Person& p) {
return out << p.patrinymic << ' ' << p.name << ' ' << p.surname << ' ' << p.birthday;
}
friend istream& operator>>(istream& inp, Person& p) {
cout << "Фамилия: ";
getline(inp, p.patrinymic);
cout << "Имя: ";
getline(inp, p.name);
cout << "Отчество: ";
getline(inp, p.surname);
puts("Дата рождения:");
inp >> p.birthday;
return inp;
}
};
struct Contact {
string address;
string phone;
friend ostream& operator<<(ostream& out, const Contact& c) {
return out << c.address << ' ' << c.phone;
}
friend istream& operator>>(istream& inp, Contact& c) {
cout << "Адрес: ";
getline(inp, c.address);
cout << "Номер телефона: ";
getline(inp, c.phone);
return inp;
}
};
struct University {
string faculty;
int course;
friend ostream& operator<<(ostream& out, const University& u) {
return out << u.faculty << ' ' << u.course;
}
friend istream& operator>>(istream& inp, University& u) {
cout << "Факультет: ";
getline(inp, u.faculty);
cout << "Курс: ";
inp >> u.course;
flush(inp);
return inp;
}
};
class Student {
public:
string faculty()const {
return u.faculty;
}
int course()const {
return u.course;
}
int year()const {
return p.birthday.yaer;
}
private:
Contact c;
University u;
Person p;
friend ostream& operator<<(ostream& out, Student& s) {
return out << s.p << "\n\t" << s.c << "\n\t" << s.u;
}
friend istream& operator>>(istream& inp, Student& s) {
return inp >> s.p >> s.c >> s.u;
}
};
int main() {
system("chcp 1251 > nul");
cout << "Введите количество студентов в списке: ";
size_t n;
cin >> n;
flush();
auto list = new Student[n];
for (auto i = 0U; i < n; ++i) cin >> list[i];
cout << "Задайте факультет: ";
string faculty;
getline(cin, faculty);
for (auto i = 0U; i < n; ++i) {
if (list[i].faculty() == faculty) {
cout << list[i] << '\n';
}
}
puts("Список студентов для каждого факультета и курса");
for (auto c = 1; c <= 7; ++c) {
bool flag = false;
for (auto i = 0U; i < n; ++i) {
if (list[i].course() == c) {
cout << list[i] << '\n';
if (!flag) flag = !flag;
}
}
if (flag) puts("");
}
cout << "Задайте год рождения: ";
int year;
cin >> year;
flush();
for (auto i = 0U; i < n; ++i) {
if (list[i].year() > year) {
cout << list[i] << '\n';
}
}
delete[] list;
system("pause > nul");
}
Галымжан Факирдинов
Галымжан Факирдинов
56 099
Лучший ответ
И для кого весь этот геморрой?