Проблема в массивах и классах
Создайте класс "Person", который имеет в частном разделе три поля. "Имя" &st-это
строка, представляющая имя человека* Второй "лучший" - это указатель на
тип персона, представляющий человека, который является лучшим другом этого человека. Третий
"популярность" - это целое число, указывающее, насколько популярен этот человек. Другими словами, сколько других людей имеют его в качестве лучшего друга .
Открытый интерфейс должен иметь следующие функции : конструктор по умолчанию с параметром 1 , имя человека по умолчанию равно"", а конструктор установит best равным NULL и popularity равным 0 . Функция "инкремент" , которая увеличивает значение популярности на 1 . функция "getName", функция "setBest", которая принимает в качестве параметра указатель на тип Person .Функция "печать", которая печатает имя человека, за которым следует имя его лучшего друга, а затем значение его популярности .
Напишите основную программу, которая объявляет массив "список" размером 10. Каждый элемент массива является указателем на тип Person.Откройте файл "person.txt-там есть имена людей, каждое в отдельной строке. Прочитайте имена людей и для каждого имени создайте новый объект и установите указатель массива "список", чтобы он указывал на этот объект человека.
Есть и второй файл "friends.txt" где каждая строка содержит имя человека
далее следует название его лучшего &конца. Прочитайте каждую строку и отрегулируйте объекты в "списке"
соответственно. Другими словами, вы должны установить лучшего друга для объекта, и вы должны увеличить популярность соответствующего человека.
Если ...persons.txt" содержит:
Джон
Стив
Марк
Майк
Зиад
Тарек
А если "друзья.:
Джон Стив
Стив Марк
Марк Стив
Майк Джон
Зиад Джон
Тарек Зияд
Затем программа должна вывести в файл "result.txt" следующая информация:
Джон лучший друг: Стив популярность = 2
Стив лучший друг: Марк популярность = 2
Марк лучший друг: Steve Popularity = 1
Майк лучший друг: Джон популярность = 0
Зиад лучший друг: Джон популярность = 1
Тарек лучший друг: Зиад популярность = 0
Что я уже пробовал:
#include <iostream> #include <string> using namespace std; class person { private: string name; person* best; int popularity; public: person(string name) { name = ""; best = NULL; popularity = 0; } void increment() { popularity++; } void getName(string a) { a = name; } void setBest(person *person)// not very sure about this { person = best; } void print() { cout << "name:" << name << endl; cout << "bestfriend" << best << endl; cout << "popularity" << popularity << endl; } }; int main() { int list[10] person; //?? }
Dave Kreskowiak
Итак, был ли вопрос, который вы забыли задать?
Member 13822923
на самом деле я написал в комментариях, что не уверен в функции setBest, и я застрял в основном, я не знал, как сделать массив, который указывает на людей.
Rick York
Замечания в ваших комментариях не означают, что вы задаете вопрос. Вот для чего предназначено верхнее текстовое поле - для вашего вопроса.