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

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

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

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 17.03.2010, 21:06   #1
STIFFmaster_LP
Пользователь
 
Аватар для STIFFmaster_LP
 
Регистрация: 24.10.2009
Сообщений: 24
По умолчанию Масив структур

Нужно чтоб программа вводила и выводила несколько маршрутов.
в моем случае (вроде бы) вводит дважды но выводит одно и то же 2 раза(((
помогите решить эту дилему


laboratorna_1_2
Код:
#include <iostream.h>
#include <string.h>
#include "my_lib.cpp"
void main()
{
StructAVTOVOKZAL avtovokzal[2];
while(1)
{
cout<<"\n AVTOVOKZAL \n \n";
cout<<"1 VVOD DANNIH \n";
cout<<"2 PROSMOTR DANNIH \n \n";
int choise;
cin>>choise; 

switch(choise)
{
case 1 : funVvodDan(avtovokzal[2]); 
cout<<"\n"; getch(); break;
case 2 : funVuvodaNaEkr(avtovokzal[2]); 
cout<<"\n"; getch();  break;
default : cout<<" vu vveli nevernoe simvol \n"; 
getch(); break; 
}
}
getch();
}
my_lib.h
Код:
struct StructAVTOVOKZAL
{
char pynkt_priznachennia [20];
float time_otpr;
float time_pribitia;
bool  SvMest;
};
extern "C" void funVvodDan(StructAVTOVOKZAL &avtovokzal);
extern "C" void funVuvodaNaEkr(StructAVTOVOKZAL avtovokzal);


my_lib.cpp
Код:
#include <iostream.h>
#include <string.h>
#include "my_lib.h"
void funVvodDan(StructAVTOVOKZAL &avtovokzal)
{
	for(int i=0; i<2; i++)
	{
		cout<<"vvedite punkt naznachenia: ";
		cin >>avtovokzal.pynkt_priznachennia;
		cout<<"\n";	
		cout<<"vvedite vremia otpravki: ";
		cin>>avtovokzal.time_otpr; 
		cout<<"\n";
		cout<<"vvedite vriemia pribitia: ";
		cin>>avtovokzal.time_pribitia; 
		cout<<"\n";
		cout<<"ykazhitie nalichie svobodnih mest (TRUE=1/FALSE=0): ";
		cin >>avtovokzal.SvMest;
	}
	getch(); 

	cout<<"tepr\' mozhetie prosmotret\' vvedionnoe\n";
	cout<<"vvedite '2'";
}
void funVuvodaNaEkr(StructAVTOVOKZAL avtovokzal)
{
	for(int i=0; i<2; i++)
	{
		cout<<avtovokzal.pynkt_priznachennia;
		cout<<"\n";
		cout<<avtovokzal.time_otpr; cout<<"\n";
		cout<<avtovokzal.time_pribitia; cout <<"\n";
		cout<<avtovokzal.SvMest; cout<<"\n";
	}
}
STIFFmaster_LP вне форума Ответить с цитированием
Старый 22.03.2010, 23:09   #2
STIFFmaster_LP
Пользователь
 
Аватар для STIFFmaster_LP
 
Регистрация: 24.10.2009
Сообщений: 24
По умолчанию

и никто не знает?
STIFFmaster_LP вне форума Ответить с цитированием
Старый 22.03.2010, 23:20   #3
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Ну вроде как я заметил спящими глазами то
передаёшь в функции массив из двух структур! А в функциях ловишь ссылки!! лучше передавай как указатели. А то просто пишешь в одно и тоже место!
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 22.03.2010, 23:33   #4
STIFFmaster_LP
Пользователь
 
Аватар для STIFFmaster_LP
 
Регистрация: 24.10.2009
Сообщений: 24
По умолчанию

ну это ладно. а как его сделать так чтоб записывало мне не один раз а несколько?
Код:
struct StructAVTOVOKZAL
{
char pynkt_priznachennia [20];
float time_otpr;
float time_pribitia;
bool  SvMest;
};
extern "C" void funVvodDan(StructAVTOVOKZAL &avtovokzal);
extern "C" void funVuvodaNaEkr(StructAVTOVOKZAL avtovokzal);
Код:
#include <iostream.h>
#include <string.h>
#include "my_lib.h"
void funVvodDan(StructAVTOVOKZAL *avtovokzal[2])
{
	for(int i=0; i<2; i++)
	{
		cout<<"vvedite punkt naznachenia: ";
		cin>>avtovokzal[i].pynkt_priznachennia;
		cout<<"\n";	
		cout<<"vvedite vremia otpravki: ";
		cin>>avtovokzal[i].time_otpr; 
		cout<<"\n";
		cout<<"vvedite vriemia pribitia: ";
		cin>>avtovokzal[i].time_pribitia; 
		cout<<"\n";
		cout<<"ykazhitie nalichie svobodnih mest (TRUE=1/FALSE=0): ";
		cin >>avtovokzal[i].SvMest;
	}
	getch(); 

	cout<<"tepr\' mozhetie prosmotret\' vvedionnoe\n";
	cout<<"vvedite '2'";
}
void funVuvodaNaEkr(StructAVTOVOKZAL avtovokzal[2])
{
	for(int j=0; j<2; j++)
	{
		cout<<avtovokzal[j].pynkt_priznachennia;
		cout<<"\n";
		cout<<avtovokzal[j].time_otpr; cout<<"\n";
		cout<<avtovokzal[j].time_pribitia; cout <<"\n";
		cout<<avtovokzal[j].SvMest; cout<<"\n";
	}
}
Код:
#include <iostream.h>
#include <string.h>
#include "my_lib.cpp"
void main()
{
StructAVTOVOKZAL avtovokzal[2];
while(1)
{
cout<<"\n AVTOVOKZAL \n \n";
cout<<"1 VVOD DANNIH \n";
cout<<"2 PROSMOTR DANNIH \n \n";
int choise;
cin>>choise; 

switch(choise)
{
case 1 : funVvodDan(avtovokzal[2]); 
cout<<"\n"; getch(); break;
case 2 : funVuvodaNaEkr(avtovokzal[2]); 
cout<<"\n"; getch();  break;
default : cout<<" vu vveli nevernoe simvol \n"; 
getch(); break; 
}
}
getch();
}
вот так пробовал но мне понавыбивало кучу ошибок... не знаю что делать...
STIFFmaster_LP вне форума Ответить с цитированием
Старый 22.03.2010, 23:43   #5
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Код:
#include <iostream.h>
#include <string.h>
#include "my_lib.h"
void funVvodDan(StructAVTOVOKZAL *avtovokzal)
{
	for(int i=0; i<2; i++)
	{
		cout<<"vvedite punkt naznachenia: ";
		cin>>*avtovokzal.pynkt_priznachennia;
		cout<<"\n";	
		cout<<"vvedite vremia otpravki: ";
		cin>>*avtovokzal.time_otpr; 
		cout<<"\n";
		cout<<"vvedite vriemia pribitia: ";
		cin>>*avtovokzal.time_pribitia; 
		cout<<"\n";
		cout<<"ykazhitie nalichie svobodnih mest (TRUE=1/FALSE=0): ";
		cin >>*avtovokzal.SvMest;
		avtovokzal++;
	}
	getch(); 

	cout<<"tepr\' mozhetie prosmotret\' vvedionnoe\n";
	cout<<"vvedite '2'";
}
void funVuvodaNaEkr(StructAVTOVOKZAL *avtovokzal)
{
	for(int j=0; j<2; j++)
	{
		cout<<*avtovokzal.pynkt_priznachennia;
		cout<<"\n";
		cout<<*avtovokzal.time_otpr; cout<<"\n";
		cout<<*avtovokzal.time_pribitia; cout <<"\n";
		cout<<*avtovokzal.SvMest; cout<<"\n";
                      avtovokzal++;
	}
}

#include <string.h>
#include "my_lib.cpp"
void main()
{
StructAVTOVOKZAL avtovokzal[2], *pavtovokzal = avtovokzal[0];
while(1)
{
cout<<"\n AVTOVOKZAL \n \n";
cout<<"1 VVOD DANNIH \n";
cout<<"2 PROSMOTR DANNIH \n \n";
int choise;
cin>>choise; 

switch(choise)
{
case 1 : funVvodDan(pavtovokzal); 
cout<<"\n"; getch(); break;
case 2 : funVuvodaNaEkr(pavtovokzal; 
cout<<"\n"; getch();  break;
default : cout<<" vu vveli nevernoe simvol \n"; 
getch(); break; 
}
}
getch();
}
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 22.03.2010, 23:59   #6
STIFFmaster_LP
Пользователь
 
Аватар для STIFFmaster_LP
 
Регистрация: 24.10.2009
Сообщений: 24
По умолчанию

ну не знаю... всеравно ошибки... на каждый элемент ввода и вывода
request for member `pynkt_priznachennia' in `avtovokzal', which is of non-aggregate type `StructAVTOVOKZAL *'
STIFFmaster_LP вне форума Ответить с цитированием
Старый 23.03.2010, 00:03   #7
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Если мой код брал, то там структура не описана
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Старый 23.03.2010, 00:07   #8
STIFFmaster_LP
Пользователь
 
Аватар для STIFFmaster_LP
 
Регистрация: 24.10.2009
Сообщений: 24
По умолчанию

в структуре тоже нада что-то изменять? я брал ту что и была... а как нада?
STIFFmaster_LP вне форума Ответить с цитированием
Старый 23.03.2010, 01:24   #9
NikLik
Форумчанин
 
Аватар для NikLik
 
Регистрация: 22.11.2007
Сообщений: 224
По умолчанию

Не уверен, но стоит попробовать следующее:
(Пример):
не
Код:
cin>>*avtovokzal.pynkt_priznachennia;
а
Код:
cin>>(*avtovokzal).pynkt_priznachennia;
или, что лучше(на мой взгляд)
Код:
cin>>avtovokzal->pynkt_priznachennia;
NikLik вне форума Ответить с цитированием
Старый 23.03.2010, 01:30   #10
Hacker19_90
Delphi Warrior
Старожил
 
Аватар для Hacker19_90
 
Регистрация: 15.08.2008
Сообщений: 2,502
По умолчанию

Ну и чем различаются эти 2 кода
Код:

cin>>*avtovokzal.pynkt_priznachennia;
Код:

cin>>(*avtovokzal).pynkt_priznachennia;
Mess with the best, die like the rest. (с) Hackers
Лабораторные, курсовые на Delphi\Pascal\C++
ya.flex-freelance@yandex.ru Icq - 636-954-303
Hacker19_90 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Масив MyST1caL Общие вопросы Delphi 1 20.01.2010 23:06
масив в WHERE memka PHP 4 03.04.2009 07:36
масив HENRY23 Общие вопросы Delphi 0 17.03.2009 22:30
Масив rizii Общие вопросы C/C++ 2 09.01.2009 13:30
маcсив nikleb Паскаль, Turbo Pascal, PascalABC.NET 3 19.04.2007 23:23