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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2009, 18:13   #11
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Код:
std::string str;
Поправил ваши ошибки.
Код:
#include <iostream>
#include <string>
#include <windows.h>

char bufRus[256];
char*Rus(const char*text)
{
	CharToOem(text, bufRus);
	std::cout<<bufRus;
	return bufRus;
}

struct city
{
	std::string nazv;
	std::string kod;
	float price;
	unsigned int k;
	float h;
} ;
float cost ( city &, city &,  city &, city & );//прототим функции
main()
{
	unsigned short n;
	Rus("Программе известны Москва, Санкт-Петербург, Краснодар, Ростов(4 города).\n\n");;

	city Moscow;
	city Piter, Krasnodar, Rostov;
	Moscow.nazv = "Москва";
	Moscow.kod="495";
	Moscow.price=5;
	Piter.nazv="Санкт-Петербург";
	Piter.kod="862";
	Piter.price=10;
	Krasnodar.nazv="Краснодар";
	Krasnodar.kod="861";
	Krasnodar.price=2;
	Rostov.nazv="Ростов";
	Rostov.kod="555";
	Rostov.price=4;
	cost(Moscow,Piter,Krasnodar,Rostov);


}

float cost (city &Moscow,city &Piter,city &Krasnodar,city & Rostov)
{
	Rus("Введите название города и количество минут:\n");
	std::string b;

	if (b == Moscow.nazv )
	{
		std::cin >> Moscow.k;
		Moscow.h = Moscow.price * Moscow.k;
		return Moscow.h;
	}
	if ( b == Piter.nazv )
	{
		std::cin >> Piter.k;
		Piter.h = Piter.price * Piter.k;
		return Piter.h  ;
	}
	if ( b == Krasnodar.nazv )
	{
		std::cin >> Krasnodar.k;
		Krasnodar.h = Krasnodar.price * Krasnodar.k;
		return Krasnodar.h;
	}    
	if ( b == Rostov.nazv )
	{
		std::cin >> Rostov.k;
		Rostov.h = Rostov.price*Rostov.k;
		return Rostov.h;
	}
}
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....

Последний раз редактировалось ISergeyN; 03.05.2009 в 19:22.
ISergeyN вне форума Ответить с цитированием
Старый 03.05.2009, 19:24   #12
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

Код:
std::string str;
что????? что это такое???? я такого не знаю((((( объясните, плиз
Dimarik вне форума Ответить с цитированием
Старый 03.05.2009, 20:16   #13
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

и ещё вопрос... я использовал имена такие как: Mscow.nazv . точка означает объединение.
непонятно, что означает эта запись city &Moscow
& вроде указывает адрес ячейки, в которой хранится какое-то значение некоторой переменнной.
и что это такое:
std::cin >> Moscow.k; ???
Dimarik вне форума Ответить с цитированием
Старый 03.05.2009, 21:58   #14
MaTBeu
Eclipse Foundation
Старожил
 
Аватар для MaTBeu
 
Регистрация: 19.09.2007
Сообщений: 2,619
По умолчанию

Точка - это операция обращения к полю класса/структуры.
& означает что это ссылка на объект.
Код:
std::cin >> Moscow.k;
это ввод поля структуры.
MaTBeu вне форума Ответить с цитированием
Старый 07.05.2009, 20:35   #15
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

ту же самую прогу решил написать, используя другой алгоритм. проблема с возвратом в функцию значения элемента массива структур. прога пока ещё не дописана.. тут только 1 ошибка.. нужно в min вернуть значение gorod[i]
Код:
#include <iostream.h>
#include <string.h>
        #include <windows.h>
        char bufRus[256];
        char*Rus(const char*text)
        {
        CharToOem(text, bufRus);
        cout<<bufRus;
        return bufRus;
        }     ;

struct stoit
{
string city;
string kod;
float price;
float min;
float cost;
}   ;
vvod( short n,stoit gorod[] );
main()
{
short n;
Rus("Введите число городов, в которые вы звонили:\n");
cin>>n;
stoit * gorod=new stoit[n];
} ;
vvod( short n,stoit gorod[] )
{
Rus("Введите название города, его код, стоипость одной минуты,количество проговорённых минут:\n");
for (short i=0; i<n;i++)
{cin>>gorod[i].city;
cin>>gorod[i].kod;
cin>>gorod[i].price;
cin>>gorod[i].min;
return gorod[i];}//единственная ошибка!!!!!!!!!!!!
Dimarik вне форума Ответить с цитированием
Старый 07.05.2009, 21:01   #16
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

Код:
stoit vvod( short n,stoit gorod[] );
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 07.05.2009, 21:29   #17
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

сделал.. но работать не стало=((
#include <iostream.h>
#include <string.h>
#include <windows.h>
char bufRus[256];
char*Rus(const char*text)
{
CharToOem(text, bufRus);
cout<<bufRus;
return bufRus;
} ;

struct stoit
{
string city;
string kod;
float price;
float min;
float cost;
} ;
stoit vvod( short n,stoit gorod[] );
main()
{
short n;
Rus("Введите число городов, в которые вы звонили:\n");
cin>>n;
stoit * gorod=new stoit[n];
} ;
stoit vvod( short n,stoit gorod[] )
{
Rus("Введите название города, его код, стоипость одной минуты,количество проговорённых минут:\n");
for (short i=0; i<n;i++)
{cin>>gorod[i].city;
cin>>gorod[i].kod;
cin>>gorod[i].price;
cin>>gorod[i].min;
return gorod[i];}
Dimarik вне форума Ответить с цитированием
Старый 07.05.2009, 21:36   #18
ISergeyN
Maniac
Форумчанин
 
Аватар для ISergeyN
 
Регистрация: 03.01.2009
Сообщений: 450
По умолчанию

хм..
Так должно работать.
Код:
void vvod( short n,stoit gorod[] );
int main()
{
	short n;
	Rus("Введите число городов, в которые вы звонили:\n");
	cin>>n;
	stoit * gorod=new stoit[n];
	vvod(n,gorod);

	//testing

	cout<<gorod[0].city<<endl;
	cout<<gorod[1].city<<endl;

} 
void vvod( short n,stoit gorod[] )
{
	
	for (short i=0; i<n;i++)
	{
		Rus("Введите название города, его код, стоипость одной минуты,количество проговорённых минут:\n");
		cin>>gorod[i].city;
		cin>>gorod[i].kod;
		cin>>gorod[i].price;
		cin>>gorod[i].min;
	}
}
Стандартные библиотеки разработаны с учетом многолетнего опыта лучших программистов и они не больны "детскими болезнями крутизны в программизме"....
ISergeyN вне форума Ответить с цитированием
Старый 08.05.2009, 15:12   #19
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

а можно ли сделать функцию, которая возвращает массив, например:
ar[5]=mas(n,z,k)????
или это невозможно?
Dimarik вне форума Ответить с цитированием
Старый 08.05.2009, 15:23   #20
Dimarik
Форумчанин
 
Аватар для Dimarik
 
Регистрация: 18.04.2009
Сообщений: 688
По умолчанию

Код:
#include <iostream.h>
#include <string.h>
        #include <windows.h>
        char bufRus[256];
        char*Rus(const char*text)
        {
        CharToOem(text, bufRus);
        cout<<bufRus;
        return bufRus;
        }     ;

struct stoit
{
string city;
string kod;
float price;
float min;
float cost;
}   ;
        vvod( short n,stoit gorod[] );          //прототип функции ввода
        rass(short n, stoit gorod[]);           //прототип функции рассчёта
        vivod (short n, stoit gorod[]);         //прототип функции вывода
main()
{
short n;
Rus("Введите число городов, в которые вы звонили:\n");
cin>>n;
stoit * gorod=new stoit[n];
vvod(n,gorod);
rass(n,gorod);
vivod(n,gorod);
system ("pause");
} ;

        vvod( short n,stoit gorod[] )//функция ввода
{
for (short i=0; i<n;i++)
{
Rus("Введите название города, его код, стоипость одной минуты,количество проговорённых минут:\n");
cin>>gorod[i].city;
cin>>gorod[i].kod;
cin>>gorod[i].price;
cin>>gorod[i].min;
}
}
        rass(short n, stoit gorod[])//функция раасчёта
{
for(short i=0; i<n; i++)
        {
        gorod[i].cost=gorod[i].price*gorod[i].min;
        }
}
        vivod(short n, stoit gorod[])//вывод
{
short x;
const short m=9;
for (int i=0;i<n;i++) //большой цикл
{x=strlen(gorod[i].city);//ошибка!!!!!!!!! что мне сделать, чтобы работало???? и что не так я делаю?? почему меня компиллятор не понимает??
cout<<gorod[i].city;
        for (int j=0;j<(m-x);j++)
        {
        cout<<" ";
        }
x=strlen(gorod[i].kod);
cout<<gorod[i].kod;
        for (int h=0;h<(m-x);h++)
        {cout<<" ";}
x=strlen(gorod[i].price);
cout<<gorod[i].price;
        for (int k=0;k<(m-x);k++)
        {cout<<" ";}
x=strlen(gorod[i].min);
cout<<gorod[i].min;
        for (int l=0;l<(m-x);l++)
        {cout<<" ";}
x=strlen(gorod[i].cost);
cout<<gorod[i].cost;
        for (int lo=0;lo<(m-x);lo++)
        {cout<<" ";}
cout<<endl;
}
x=strlen(gorod[i].city);//ошибка!!!!!!!!! что мне сделать, чтобы работало???? и что не так я делаю?? почему меня компиллятор не понимает??
Dimarik вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структуры в C++ Wia Помощь студентам 7 18.04.2009 15:51
Структуры в СИ ManInBlack Помощь студентам 3 04.04.2009 19:08
Структуры Centyrion Общие вопросы C/C++ 4 06.05.2008 20:33
Структуры в С++ bloo[d] Помощь студентам 1 30.01.2008 22:27