Программирование структуры 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;

}

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

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

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

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

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

раскрыть ветку (35)
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[] тоже.

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

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

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

C++17 - стандарт языка C++.

Указатель - ГЫ. Ну грубо говоря адресация переменной по адресу. Возможность одной переменной "указывать" на другую (а потом на ещё какую-нибудь).

new - оператор динамического создания объекта в памяти.

new[] - то же, для создания массивов.


Если непонятно, и это домашка, то, пардон, ты влип. Ищи какие-нибудь уроки вроде "основы C++" и читай с самого начала

раскрыть ветку (10)
1
Автор поста оценил этот комментарий
Я помню как преподавал указатели - вот та тема которую студенты не понимают никогда(в 99%) :))) в результате я начал рассказывать как для детского сада - что указатель это такая коробочка, в которой хранится число - число это адрес :)))

ПС
10 лет назад было
раскрыть ветку (9)
0
Автор поста оценил этот комментарий

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

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

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

раскрыть ветку (7)
1
Автор поста оценил этот комментарий
Я сейчас буду жесток немного...но всё просто в этом мире - скажи спасибо, что тебе совет дели БЕСПЛАТНО! Если ты хочешь, чтоб за тебя сделали - пожалуйста...хозяин барин... фрилансеров никто не отменял...заплати кому нибудь и он за тебя всё напишет, а если заплатишь чуть больше ещё и с комментариями к каждой строке напишет. Вот когда у тебя зонтик сломался ты ж когда в металлоремонт приходишь не говоришь "ну почините - это ж разово" ..тут можно ещё искренне удивиться почему бесплатно никто ремонтить не хочет - ну как похоже
0
Автор поста оценил этот комментарий
А по сути то дела - это разовая акция.

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


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

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

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

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

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


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


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


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

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

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


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


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


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


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


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


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

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

Ты б ему дал слова чтоб гуглить, чувак.

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

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

раскрыть ветку (18)
0
Автор поста оценил этот комментарий
Даа лааааадно. Ты что смеёшься - ты сейчас мне примерно сказал, что 2+2 это великая тайна и решение этого сакрального примера знают только избранные а в инете про это вообще говорить запрещёно

Вот я даж на Ютубе нашел по 3 й ссылке в Яндексе - я правда не знаю на сколько там хорошо рассказано, но инфы полно
Предпросмотр
YouTube35:10
0
Автор поста оценил этот комментарий

Блок выдели чрез new[]. И запиши сколько в нём элементов задано. Когда слишком маленький станет - сделай новый. Это меньше телодвижений, чем бодаться с двусвязными списками.


В гугле см "C++ реализовать динамический массив"

раскрыть ветку (16)
0
Автор поста оценил этот комментарий
Зачем new ? Пусть сразу умным указателям учится, а то сейчас утечек наделает или удалит не там

Да и для него список проще будет, чем разрабатывать capacity стратегии
раскрыть ветку (15)
0
Автор поста оценил этот комментарий
Пусть сразу умным указателям

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


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


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


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

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

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

Умеет только в 17й редакции. В предыдущих нада лямбду.

https://kezunlin.me/post/b82753fc/

https://stackoverflow.com/questions/13061979/shared-ptr-to-a...

раскрыть ветку (3)
1
Автор поста оценил этот комментарий
Ну да запамятовал я что раньше такое было :)...с 17го даже оператор скобки вроде ввели для массивов прям в класс указателя :) - я прост уже год на 17м сижу ...уже из 20го фичи юзаю, правда пока с реализацией в компилях туго
раскрыть ветку (2)
0
Автор поста оценил этот комментарий

Мне самому догонять надо. Я очень хорошо знал C++03й стандарт, а потом пришлось долго возиться с C# в юнити. Такими темпами просто отстану. Например, про специализацию под массивы был не в курсе (вам + за наводку).

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

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

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

Ну вот пока оно не закончилось, учитесь искать информацию. Навык полезный и он у вас останется.

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

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

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

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

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

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

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

Гуглите введения в язык. У вас азы хромают. Слова чтоб загуглить вам уже дали "C++ динамический массив реализовать" "C++ список реализовать". И т.д.

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

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

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

Не три минуты, а несколько часов, в течении которых вас надо будет заставлять грызть гранит C++ и заполнять пробелы в знаниях.


А вот если вы хотите, чтобы за вас сделали, то это уж извините, но нет. Обучайтесь.

Вы смотрите срез комментариев. Чтобы написать комментарий, перейдите к общему списку

Темы

Политика

Теги

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

Сообщества

18+

Теги

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

Сообщества

Игры

Теги

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

Сообщества

Юмор

Теги

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

Сообщества

Отношения

Теги

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

Сообщества

Здоровье

Теги

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

Сообщества

Путешествия

Теги

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

Сообщества

Спорт

Теги

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

Сообщества

Хобби

Теги

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

Сообщества

Сервис

Теги

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

Сообщества

Природа

Теги

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

Сообщества

Бизнес

Теги

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

Сообщества

Транспорт

Теги

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

Сообщества

Общение

Теги

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

Сообщества

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

Теги

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

Сообщества

Наука

Теги

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

Сообщества

IT

Теги

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

Сообщества

Животные

Теги

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

Сообщества

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

Теги

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

Сообщества

Экономика

Теги

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

Сообщества

Кулинария

Теги

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

Сообщества

История

Теги

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

Сообщества

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

Теги

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

Сообщества