0 / 0 / 1
Регистрация: 16.01.2011
Сообщений: 54
|
|
1 | |
Описать структуру с именем MARSH04.03.2011, 22:35. Показов 10046. Ответов 22
Метки marsh, marsh c++, описать структуру, описать структуру c++, описать структуру marsh c++, описать структуру marsh, описать структуру с именем marsh, описать структуру с именем marsh c++, структура marsh, структура marsh c++, структуры данных, структуры данных c++ (Все метки)
Описать структуру с именем MARSH, содержащую следующие поля:
BEGST — название начального пункта маршрута; TERM — название конечного пункта маршрута; NUMER — номер маршрута. 2. Написать программу, выполняющую следующие действия: ввод с клавиатуры данных в массив TRAFIC, состоящий из восьми элементов типа MARSH; записи должны быть упорядочены по номерам маршрутов; вывод на экран информации о маршрутах, которые начинаются или кончаются в пункте, название которого введено с клавиатуры; если таких маршрутов нет, выдать на дисплей соответствующее сообщение. проверьте пожалуйста код: Код
#include <iostream.h> #include <string.h> using namespace std; struct Marsh{ char begst [80]; char term [80]; int numer; }; int main(int argc, char *argv[]) { Marsh Trafic[8],temp; int find; for(int i=0;i<8;i++){ cout << "begst:"; cin>>Trafic[i].begst; cout << "term:"; cin>>Trafic[i].term; cout << "numer:"; cin>>Trafic[i].numer; } cout << "Numer find:"; cin>>find; for(int i=0;i<8;i++) for(int j=1;j<8;j++) { if(Trafic[j].numer<Trafic[j-1].numer) { strcpy(temp.begst,Trafic[j].begst ); strcpy(temp.term,Trafic[j].term); temp.numer= Trafic[j].numer; strcpy(Trafic[j].begst,Trafic[j-1].begst ); strcpy(Trafic[j].term,Trafic[j-1].term); Trafic[j].numer = Trafic[j-1].numer; strcpy(Trafic[j-1].begst,temp.begst ); strcpy(Trafic[j-1].term,temp.term); Trafic[j-1].numer = temp.numer ; } } int f=0; for(int i=0;i<8;i++) if(find==Trafic[i].numer){ cout<<"begst:"<<Trafic[i].begst<<"\tterm:"<<Trafic[i].term<<"\tnumer:"<<Trafic[i].numer<<"\n"; f=1; } if(f==0) cout<<"Net takogo marshryta\n"; return EXIT_SUCCESS; } Я все правильно сделал или нет??
0
|
04.03.2011, 22:35 | |
Ответы с готовыми решениями:
22
Описать структуру с именем MARSH Описать структуру с именем MARSH Описать структуру с именем MARSH Не получается считать информацию из фаила (описать структуру с именем MARSH) |
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,590
|
||||||
04.03.2011, 22:45 | 2 | |||||
Извращение на тему.
0
|
0 / 0 / 1
Регистрация: 16.01.2011
Сообщений: 54
|
|
05.03.2011, 08:19 [ТС] | 3 |
шо это???
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
05.03.2011, 15:15 | 4 |
j_pavlov, Код на С++ причем очень даже интересный в своем роде. А что такое?
0
|
2 / 2 / 0
Регистрация: 02.03.2011
Сообщений: 6
|
|
05.03.2011, 17:48 | 5 |
Да код интересный, но первый код чуть лучше в понимании...Во втором пришлось долго разбиратся пока добрался до сути=)
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
05.03.2011, 19:50 | 6 |
Fliter, Зная STL, перегрузку - в коде можно разобраться за минуты 3-4
0
|
0 / 0 / 1
Регистрация: 16.01.2011
Сообщений: 54
|
|
18.04.2011, 15:29 [ТС] | 7 |
ап вопрос открыт
Добавлено через 1 минуту а можно как то попроще написать чтобы студент 1 курса понял это?
0
|
В астрале
8049 / 4806 / 655
Регистрация: 24.06.2010
Сообщений: 10,562
|
|
18.04.2011, 17:24 | 8 |
Сообщение было отмечено как решение
Решение
j_pavlov, Конечно. Для этого студенту надо почитать книжки и понять код
3
|
4773 / 2582 / 894
Регистрация: 29.11.2010
Сообщений: 5,590
|
||||||
19.04.2011, 23:32 | 9 | |||||
На мой взгляд, код с использованием STL проще приведенного в первом посту и гораздо проще нижеприведенного.
По просьбам ленящихся, код без STL, на C. Используется односвязный список с сохранением упорядоченности записей при вставке.
2
|
0 / 0 / 1
Регистрация: 16.01.2011
Сообщений: 54
|
|
30.04.2011, 16:26 [ТС] | 10 |
Проверьте плиз
Условие 1. Описать структуру с именем MARSH, содержащую следующие поля: BEGST — название начального пункта маршрута; TERM — название конечного пункта маршрута; NUMER — номер маршрута. 2. Написать программу, выполняющую следующие действия: ввод с клавиатуры данных в массив TRAFIC, состоящий из восьми элементов типа MARSH; записи должны быть упорядочены по номерам маршрутов; вывод на экран информации о маршрутах, которые начинаются или кончаются в пункте, название которого введено с клавиатуры; если таких маршрутов нет, выдать на дисплей соответствующее сообщение. Код
#include<iostream> #include<cstring> using namespace std; struct MARSH { char BEGST[40]; char TERM[40]; int NUMER ; } TRAFIC[8]; void vvod(), vivod(); int main() { cout << "Введите информацию о маршрутах" << endl; vvod(); vivod(); return 0; } void vvod() { for(int u = 0; u < 8 ; u++) { cout << "Маршрут номер : " << u << endl << "Навзвание начального пункта маршрута : "; cin >> TRAFIC[u].BEGST; cout << endl << "Конечного пункта : "; cin >> TRAFIC[u].TERM; cout << endl << "Его номер : "; cin >> TRAFIC[u].NUMER; } cout << endl; } void vivod() { int schet = 0; char poisk[40], tochka[60]; cout << "Конечная или начальная точка? [k/n]" << endl; cin >> tochka; if (tochka[0]=='k') { cout << endl << "Введите точку : "; cin >> poisk ; for(int t = 0; t < 8; t++) { if(!(strcmp(TRAFIC[t].BEGST, poisk))) { cout << "маршрут " << TRAFIC[t].NUMER << endl; schet++; } if(schet==0); cout << "Ненайдено"; } } else if(tochka[0]=='k') { cout << endl << "Введите точку : "; cin >> poisk ; for(int t = 0; t < 8; t++) { if(!(strcmp(TRAFIC[t].TERM, poisk))) { cout << "маршрут " << TRAFIC[t].NUMER << endl; schet++; } if(schet==0); cout << "Ненайдено"; } } else { cout << ""; vivod(); } }
0
|
19 / 19 / 6
Регистрация: 22.03.2011
Сообщений: 84
|
|
30.04.2011, 17:00 | 11 |
У меня работает, но выдаёт что то типа "Не найдено,Ненайдено,Ненайдено,Ненайдено,Ненайдено,Ненайдено"
0
|
0 / 0 / 1
Регистрация: 16.01.2011
Сообщений: 54
|
|
30.04.2011, 17:02 [ТС] | 12 |
хм может от компилятора зависит. У тебя какой?
0
|
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
|
|
30.04.2011, 17:05 | 13 |
1
|
0 / 0 / 1
Регистрация: 16.01.2011
Сообщений: 54
|
|
30.04.2011, 17:14 [ТС] | 14 |
0
|
19 / 19 / 6
Регистрация: 22.03.2011
Сообщений: 84
|
|
30.04.2011, 17:21 | 15 |
0
|
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
|
|
30.04.2011, 17:22 | 16 |
Ладно опишем словами:
если нулевой элемент масива 'точка' не равен букве 'к' (причем английской), то...проверяем еще раз, а равен ли нулевой элемент массива 'точка' букве 'к' (все также английской), если нет, то функция вызывает саму себя и начинается все сначала
0
|
19 / 19 / 6
Регистрация: 22.03.2011
Сообщений: 84
|
|
30.04.2011, 17:25 | 17 |
А ну дык конечно ты же наверное вводишь л вместо англ. K всмысле просто жмёшь на туже клавишу только в русском регистре так и у меня заного спрашивает..
0
|
0 / 0 / 1
Регистрация: 16.01.2011
Сообщений: 54
|
|
30.04.2011, 17:32 [ТС] | 18 |
о, пасибо, заработало тоже выдает ненайдено
0
|
3528 / 2686 / 334
Регистрация: 11.03.2009
Сообщений: 6,168
|
|
30.04.2011, 17:41 | 19 |
0
|
Делаю внезапно и красиво
1313 / 1228 / 72
Регистрация: 22.03.2011
Сообщений: 3,744
|
|
30.04.2011, 20:01 | 20 |
Если условие верно, выполняется оператор ;
Слово "ненайдено" выводится всегда, независимо от if. Добавлено через 30 секунд И, разумеется, проверку нужно вынести из цикла.
1
|
30.04.2011, 20:01 | |
30.04.2011, 20:01 | |
Помогаю со студенческими работами здесь
20
Разработать структуру с именем MARSH Описать структуру с именем NOTE Описать структуру с именем NOTE Описать структуру с именем STUDENT Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |