Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2018, 16:25   #1
с787ан
 
Регистрация: 16.04.2018
Сообщений: 4
По умолчанию Помогите пожалуйста доделать программу. Нужно сделать метод, который выводить информацию об элементе (3-й пункт)

Например, вывести информацию о Петрове. Полностью задание выглядит так:

Создать класс «Список группы», в котором список реализован как циклический. По каждому человеку в группе должна быть следующая информация: фамилия, имя, отчество, год рождения, пол. Методы класса должны позволять
1) создавать список
2) добавлять элемент перед i-тым элементом
3) выводить информацию об i-том члене группы
4) удалять i-тый элемент
5) осуществлять поиск всех членов группы женского пола.

Код:
#include 
#include 
#include 
#include 

using namespace std;

struct Element // структура
{
string name;
string surname;
string twoname;
int god;
string pol;
Element *next; // указатель на следующий элемент
Element *prev; // указатель на предыдущий элемент
};

class SpisokGrup
{
private:
Element *List; // первый элемент списка
public:
SpisokGrup(); // конструктор без параметров
SpisokGrup(string n, string s, string t, int g, string p); // конструктор с параметрами
~SpisokGrup(); // деструктор
void Add(string n, string s, string t, int g, string p, int any); // добавление элемента в список
void WriteList(); // выводим значения всех элементов списка
};

SpisokGrup::~SpisokGrup() // деструктор
{
Element *current = List;
Element *tmp;
if (current)
{
do
{
tmp=current->next;
delete current;
current=tmp;
}
while (current != List);
List = NULL;
}
}

SpisokGrup::SpisokGrup() //конструктор без параметров
{
List=NULL;
}

SpisokGrup::SpisokGrup(string n, string s, string t, int g, string p) //конструктор создания списка
{
Element *tmp = new Element;
tmp->name=n;
tmp->surname=s;
tmp->twoname=t;
tmp->god=g;
tmp->pol=p;
tmp->next=tmp;
tmp->prev=tmp;
List=tmp;
}

void SpisokGrup::Add(string n, string s, string t, int g, string p, int any) // метод добавления элемента
{
Element *current = List;
Element *tmp;
int count = 0; // счетчик
if (current)
{
do
{
if (count==any)
break;
current = current->next;
count++;
}
while (current != List);
if (count == any)
{
Element *tmp = new Element; // tmp - переменная для записи данных
tmp->name=n;
tmp->surname=s;
tmp->twoname=t;
tmp->god=g;
tmp->pol=p;
tmp->next=current; // current - элемент списка на котором я нахожусь
tmp->prev=current->prev;
tmp->prev->next=tmp;
current->prev=tmp;
if (current->next == current)
current->next = tmp;
if (count == 0)
List = tmp;
}
}

}

void SpisokGrup::WriteList() // функция вывода на экран всего списка
{
Element *current = List; // текущий элемент делаем первым
if (current)
{
do
{
cout << current -> name.c_str() << endl; // печатаем данные последнего элемента
cout << current -> surname.c_str() << endl;
cout << current -> twoname.c_str() << endl;
cout << current -> god << endl;
cout << current -> pol.c_str() << endl;
current = current->next;
}
while (current != List);
}
}

int main()
{
setlocale(LC_CTYPE, "rus");
SpisokGrup *objCreat = new SpisokGrup("Иванов","Иван","Иванович",1996,"м");
objCreat -> Add("Петров","Петр","Петрович",1998,"м",1);
objCreat -> Add("Сидоров","Михаил","Алексеевич",1990,"м",2);
objCreat -> Add("Кукушкина","Валентина","Петровна",1991,"ж",3);
objCreat -> WriteList();
//objCreat -> Read(); // здесь должна вызываться функция вывода элемента, например Петрова
getch();
return 0;
}
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 18.04.2018 в 16:35.
с787ан вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите,пожалуйста, доделать программу alenkas Помощь студентам 25 29.10.2014 17:23
Пожалуйста, помогите доделать программу по C++ kmail Помощь студентам 0 22.08.2009 19:26
Помогите доделать программу на delphi - нужно сделать отчеты в Excel. Yoha Помощь студентам 0 15.06.2009 23:15
Пожалуйста помогите доделать программу Kaddafi Паскаль, Turbo Pascal, PascalABC.NET 2 14.05.2009 21:08