Программирование структуры Train

Всем привет:)

Может кто нибудь подсказать, что можно сделать:

Есть проект, он работает, но есть одно но.. (нужно  не использовать встроенные списки list + использовать глобальный цикл)Сам проект:

#include "stdafx.h"

#include <iostream>

#include <string>

#include <list>

using namespace std;

struct Train

{

char punkt_naznachenia[30];

char vremy_otprav[6]; //vremy_otprav

char nomer_poezd[10]; //nomer_poezd

};

int main(void) {

setlocale(LC_ALL, "Russian");

list<Train> as;

int i, j, kol = 2;

for (i = 0; i < kol; i++) {

Train temp;

cout << "Введите пункт назначения поезда: ";

cin >> temp.punkt_naznachenia;

cout << "Введите время отправления ";

cin >> temp.vremy_otprav;

cout << "Введите номер поезда ";

cin >> temp.nomer_poezd;

as.push_back(temp);

}

char poisk_reisa[20];

cout << "Введите время отправления: " << endl;

cin >> poisk_reisa;

bool f = false;

for (auto i = as.begin(); i != as.end(); i++)

if (strcmp(i->vremy_otprav, poisk_reisa) == 0)

{

setlocale(LC_ALL, "Russian");

cout << "Пункт прибытия поезда: ";

cout << i->punkt_naznachenia << endl;

cout << "Время отправления: ";

cout << i->vremy_otprav << endl;

cout << "Номер поезда: ";

cout << i->nomer_poezd << endl;

f = true;

}

if (!f) {

cout << "На данное время нету таких поездов. " << endl;

}

system("pause");

return 0;

}

Кто нибудь может подсказать, как это реализовать? 
Автор поста оценил этот комментарий

Как говорится, "фу таким быть".


Разверни здесь, на пикабу, ветку комментариев, И посмотри сколько на тебя было просрано времени, пока ты просил "а пожалуйста сделайте за меня домашку, мне только один раз". Чем дело кончилось? Правильно, ты пришёл назад, и решил плюнуть в людей, которые на тебя время тратили. Поздравляю. Какой теперь резон помогать тебе с чем-нибудь когда-нибудь? Правильно, никакого.


Товарищ с киберфорума просрал на тебя часа три (как я и говорил), и труды его ты не оценил. Ты ему на пиво хоть кинул? Пару тысяч, например? Конечно же нет.


Вот поэтому в начинающих не вкладываются. Они слишком часто думают, что им кто-то что-то "обязан" и ещё претензии предъявляют.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Мало того, что написал чушь - так еще и Коментарии скрыл)

Автор поста оценил этот комментарий

А теперь прямым текстом и без цензуры.


Чтобы у меня был смысл просирать своё время и разжёвывать тебе по полочкам, ты должен показать, что пытаешься учиться, а не ишешь дурачка, который сделает твою домашку нахаляву. Хотя бы для того, чтобы уже у меня не было впечатление, что я тупо спускаю время в унитаз или делаю кому-то незаслуженный халявный диплом да ещё и забесплатно.


Возможность показать желание обучаться у тебя была, ты её просрал. Тебе давали ссылки, примеры, даже пару видео кинули, и слова для поиска. Ты НИ ОДНО из них не посмотрел. Вместо этого попытки давить на жалость и сочувствие. "Ой да мне это не нужно, только один раз!". Ну, раз тебе это не нужно, провали предмет и вылети из универа, чо. Что имеем? Человека, который просит другого сделать работу вместо него за бесплатно. Соответственно, поводов помочь - ноль.


А "доброму человеку с киберфорума" можно только посочувствовать. Он просрал время. На обучение тебя у него ушло как раз пару часов, как я и сказал. Однако не всё потеряно - для него. Со временем желание помогать в таких случаях отпадает. Что есть хорошо.


Разверни ветку, и посмотри, сколько народа уделило тебе внимание. Я тебе сам примеры писал. Чем дело кончилось? Правильно, ты пришёл назад и решил на всех этих людей демонстративно плюнуть. Поздравляю.


Теперь какой резон тебе вообще когда-нибудь с чем-нибудь помогать? Правильно. Никакого.


Хоть на пиво доброму человеку с киберфорума кинь, одноразовый ты наш. Тысяч пять хотя бы. Покажи свою благодарность людям... Если она вообще у тебя есть, и ты не думаешь, что тебе все чего-то "должны".

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

НАсколько же ты смешон со своими высказываниями)

0
Автор поста оценил этот комментарий

Вам лучше б на тематический форум. Если они ещё не вымерли. Пикабу не в  тематике. А на форуме раньше - лет 10 назад - новичку обычно скучающий старожил мог разжевать основы.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Так то же Киберфорум раньше так же мог помочь, сейчас - надежды больше на Пикабу)

показать ответы
0
Автор поста оценил этот комментарий
Пусть сразу умным указателям

На массив, с лямбдой для освобождения блока? Человеку, который не понял, как использовать string?


New затем, что им, судя по всему вдалбливают основы основ и хотят, чтобы они по бодались с низкоуровневыми основами. И поэтому запретили стандартные контейнеры. Из которых объяснили только один.


Потом, если он голый указатель не понимает, с умным намного проще не станет. Всё равно останется таинственность.


Хотя если вам охота, можете выделить несколько часов и разжевать ему/начинающему RAII и правило трёх. Останавливать не буду.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

У меня специальность - вообще не связанна с программированием, собственно поэтому и решил попросить помощи)

показать ответы
0
Автор поста оценил этот комментарий

std::string blah;

std::cin >> blah;

std::cout << blah << std::endl;

std::cout << (blah + blah) << std::endl;

blah = "abracadabra";

std::cout << blah << std::endl;

std::cout << blah.substr(4, 4) << std::endl;


Ну и дальше....


#include <string>

#include <iostream>

struct Blah{

std::string a;

std::string b;

};

int main(){

Blah blah{"hello", "world"};//<--C++17?

std::cout << blah.a << " " << blah.b << std::endl;

}

Но это уже C++17й стандарт. Фиг его знает какой в вашей домашке используется. А так в старых версиях принцип тот же.


Если "не знаю" речь шла про свои списки, то вам придётся учиться пользоваться указателями и new. и new[] тоже.

раскрыть ветку (1)
0
Автор поста оценил этот комментарий

Речь шла про списки)

показать ответы
0
Автор поста оценил этот комментарий
А по сути то дела - это разовая акция.

Знаешь почему домашку тебе не делают по доброте душевной? Потому что в прошлом уже так "помогали" другим людям и уже просто надоело. Программисты не любят лентяев. Поскольку каждый программист доходил до всего сам своей головой. Поэтому хотя бы тщетно пытаются вбить хотя бы умение искать. Кроме того, бесплатную помощь просто никогда не ценят, а воспринимают чуть ли не как должное. Это отбивает желание пытаться помочь напрочь.


Не можешь сам - плати кому-нибудь, чтобы сделали за тебя. Нанимай фрилансера. Или учись. Нету никаких нормальных причин забесплатно делать работу за человека, который разобраться сам, даже после того как ему сказали в какую сторону искать.

раскрыть ветку (1)
Автор поста оценил этот комментарий

На всем известном ресурсе - Киберфорум, очень добрый человек все помог и обьяснил так, что я это понял, почему как и зачем. В этом все и отличие от Пикабу) Но и тут встречаются разные люди. Кому то я помог, кто то помог мне. А не такие, которые только много разговаривать умеют)

показать ответы
0
Автор поста оценил этот комментарий

Ну да, почему-то людям трудно понять. Вот если человек начинал с ассемблера, то можно сказать "указатель - это адрес в памяти в красивой обёртке", и на этом всё заканчивается. Но кто сейчас с ассемблера начинает?

раскрыть ветку (1)
Автор поста оценил этот комментарий

Иногда мне и интересно и смешно смотреть на вас, ребят. Честно. Попадете в абсолютно незнакомую сферу - с просьбой помощь - а вам будут говорить - иди туда, учи то, потом делай - так. А по сути то дела - это разовая акция. Делаете вроде с одной стороны хорошее дело (показываете где и как) - а с другой стороны, человеку - который не будет это использовать от слова "Совсем" - зачем это? И ладно, это была бы какая то информация - которая нет нет - да и потребуется где то и как то. Но нет.
В общем - смысл ваш мне понятен, спасибо.

показать ответы
1
Автор поста оценил этот комментарий
Зачем лямбда о_О? Шаредптр прекрасно умеет работать с массивами, я в смысле, удалять их

По теме: здесь дело не в методах решения задачи. ТС не умеет искать инфу - вот корень зла. Если не научится сам - не быть ему программером
раскрыть ветку (1)
Автор поста оценил этот комментарий

Да мне и НЕ НУЖНО им быть, понимаете? У меня программирование закончится в этом семестре - вместе с этой задачей)

показать ответы
0
Автор поста оценил этот комментарий

Вам лучше б на тематический форум. Если они ещё не вымерли. Пикабу не в  тематике. А на форуме раньше - лет 10 назад - новичку обычно скучающий старожил мог разжевать основы.

раскрыть ветку (1)
Автор поста оценил этот комментарий

И как сказал @fsmoke - делов на 3 минуты, которые никто не может уделить - на помощь новичку)

показать ответы
1
Автор поста оценил этот комментарий
Ну если нужно оставь - кстати цикл можно заменить на range based for.

Реализацию показать...где ж я её тебе найду? Я конечно могу, и даже могу сам написать это минуты за 3, но не буду из принципа ! Иначе ты ничему не научишься. Я тебе и так дохрена подсказок дал
раскрыть ветку (1)
Автор поста оценил этот комментарий

Минуты за 3 убрать из кода встроенный list, написать свой + сделать глобальный цикл? Если так - то ты просто крутой) без сарказма)

показать ответы
0
Автор поста оценил этот комментарий
Тогда мы тебе не поможем - тут максимум дают совет, никто не будет писать код за тебя. Тебя что в Гугле забанили? Что с тобой не так? На Пикабу пишешь а в Гугл рука не поднимается? Хорош уже учится по разжеванным лекциям преподов - учись искать инфу сам!
раскрыть ветку (1)
Автор поста оценил этот комментарий

Я бы с радостью, я уже второй день с этим заданием мучаюсь. Искал абсолютно все, что может помочь. Программа собрана по кусочкам отовсюду, искал все - что может помочь. Но к сожалению - тема глобальных циклов и тема создания списков - для меня сложные темы. КиберФорум - больше всего информации дал, но и то - недостаточно

показать ответы
0
Автор поста оценил этот комментарий

У вас стринг включён. Зачем с ума сходить с массивами char?

Если встроенные списки нельзя, реализуйте свои.

раскрыть ветку (1)
Автор поста оценил этот комментарий

В этом то и вопрос, я еще не понимаю, как это делать.

показать ответы
2
сын маминой подруги
Автор поста оценил этот комментарий

Ну возьми внутренности и напиши свой код. Простейшая же задача с указателями, или ты не понимаешь как они работают?

Курс хоть какой?

раскрыть ветку (1)
Автор поста оценил этот комментарий

1 курс 2 семестр

показать ответы
2
сын маминой подруги
Автор поста оценил этот комментарий

Ну вот первая же ссылка в гугле:

https://prog-cpp.ru/data-dls/

Там нетипизированный список, можешь сделать типизированный под Train...

раскрыть ветку (1)
Автор поста оценил этот комментарий

Открывал большое количество раз, большинство функций в данном случае не требуются (типа удаления, смены мест и пр.) - но напрямую добавление элементов там не рассматривается (можно завести список из 10 элементов - но дать инициализацую для каждого из 10 - там нету)

показать ответы
3
сын маминой подруги
Автор поста оценил этот комментарий

Проще массив создавай под количество рейсов

Train* as = new Train[kol];

и дальше обращайся по индексу as[0], as[1]...

В конце не забудь delete as;

раскрыть ветку (1)
Автор поста оценил этот комментарий

Требуется выполнить с помощью списков, я изначально делал массивами - и это действительно проще, но требуется не таким способом)

показать ответы
0
Автор поста оценил этот комментарий
Char массивы заменить на стринг, strcmp это каменный век сишечки. Если препод требует написать свой список - напиши, это обычный односвязный список типа std::forward_list, напиши его с поддержкой итераторов и пробегись алгоритмом std::find_if с лямбдой - так избавишься от цикла
раскрыть ветку (1)
Автор поста оценил этот комментарий

Так смысл как раз таки в том, что бы был Глобальный цикл!) А сможете показать в реализации?

показать ответы
1
сын маминой подруги
Автор поста оценил этот комментарий

Напиши свой класс одно/двухсвязного списка. Ну или если количество рейсов известно заранее, то просто создавай массив нужной длины.

А с циклом вообще никакой не использовать? Можно рекурсивной функцией, со счётчиком, например...

раскрыть ветку (1)
Автор поста оценил этот комментарий

Легко сказать - если умеешь создавать списки). Для меня вопросы со списком и циклом - вообще непонятные, преподаватель попросил таким образом (с глобальным циклом + со своим списком) - я не понимаю, что делать нужно.

показать ответы

Темы

Политика

Теги

Популярные авторы

Сообщества

18+

Теги

Популярные авторы

Сообщества

Игры

Теги

Популярные авторы

Сообщества

Юмор

Теги

Популярные авторы

Сообщества

Отношения

Теги

Популярные авторы

Сообщества

Здоровье

Теги

Популярные авторы

Сообщества

Путешествия

Теги

Популярные авторы

Сообщества

Спорт

Теги

Популярные авторы

Сообщества

Хобби

Теги

Популярные авторы

Сообщества

Сервис

Теги

Популярные авторы

Сообщества

Природа

Теги

Популярные авторы

Сообщества

Бизнес

Теги

Популярные авторы

Сообщества

Транспорт

Теги

Популярные авторы

Сообщества

Общение

Теги

Популярные авторы

Сообщества

Юриспруденция

Теги

Популярные авторы

Сообщества

Наука

Теги

Популярные авторы

Сообщества

IT

Теги

Популярные авторы

Сообщества

Животные

Теги

Популярные авторы

Сообщества

Кино и сериалы

Теги

Популярные авторы

Сообщества

Экономика

Теги

Популярные авторы

Сообщества

Кулинария

Теги

Популярные авторы

Сообщества

История

Теги

Популярные авторы

Сообщества

Недвижимость и ремонт

Теги

Популярные авторы

Сообщества