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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 03.10.2009, 22:22   #1
Serror
Пользователь
 
Регистрация: 03.10.2009
Сообщений: 19
Печаль Помогите найти ошибку в коде.

Задание: Реализовать функцию драйвера."Вывести на экран все препараты в указанной аптеке".В С++.
Я особо не силён в программировании но вроде бы программу написал.Загвоздка в том что есть ошибка при чём преподаватель говорит что совсем незначительная.

Код:
struct apteka
{
 char name[100];
 char adress[100];
 int id;
};
struct preparat
{
 char name[100];
 int id,Aid;
};
apteka apteki[10];
preparat preparati[100];
int print_preparat(int Aid)
{
 int i=0,id=0;
 for(i=0;i<100;i++)
 {
   if(Aid==preparati[i].Aid)
   {
   printf("Препарат: %s Номер: %d",preparati[i].name,preparati[i].id);
   }
 }
 returne 0;
}
Ошибка в выделенной жирным шрифтом области.И не могли бы вы проверить есть ли тут ещё ошибки.Заранее благодарен.
Serror вне форума Ответить с цитированием
Старый 03.10.2009, 23:50   #2
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

может быть ошибка кроится ниже?...

Код:
returne 0;
или же (если это не опечатка) если не С++, а чистый Си, то нужно указывать ключевое слово struct

Код:
struct apteka apteki[10];
struct preparat preparati[100];

Последний раз редактировалось counter; 03.10.2009 в 23:53.
counter вне форума Ответить с цитированием
Старый 03.10.2009, 23:57   #3
pproger
C++ hater
СтарожилДжуниор
 
Аватар для pproger
 
Регистрация: 19.07.2009
Сообщений: 3,333
По умолчанию

ну у тебя что-то совсем печально. если на плюсах, так надо на плюсах) накидал тут слегка...

Код:
#include <iostream>
#include <string>
#include <vector>
#include <algorithm>

using namespace std;

//класс лекарства
//----------------------------------------------------------------------------
class CMedicine{ 
public:
	CMedicine(int id, string name) :
		m_Id(id), m_Name(name) {}

	inline int getId() {
		return m_Id;
	}

	inline string getName() {
		return m_Name;
	}

private:
	int m_Id;
	string m_Name;
};

//класс аптеки
//----------------------------------------------------------------------------
class CDrugStore {
public:
	CDrugStore(string name, string address) : 
		m_Name(name), m_Address(address) {}

	void addMedicine(CMedicine m_Medicine) {
		m_Medicines.push_back(m_Medicine);	
	}

	void printMedicines() {
		vector<CMedicine>::iterator It;
		cout << "Medicines in drugstore " << m_Name << " :" << endl;
		for (It = m_Medicines.begin(); It != m_Medicines.end(); It++){
			cout << "Id- " << It->getId() << "   " << 
					"Name - " << It->getName() << endl;
		}
	}

	inline string getName() {
		return m_Name;
	}

private:
	string m_Name;
	string m_Address;
	vector<CMedicine> m_Medicines;
};

//предикат для поиска аптеки по имени
//----------------------------------------------------------------------------
class CDrugStoreEq : public unary_function<CDrugStore, bool> {
public:
	explicit CDrugStoreEq(string n) : name(n) {}
	bool operator () (CDrugStore ds) const {
		return ds.getName() == name;
	}

private:
	string name;
};

//главная функция
//----------------------------------------------------------------------------
int main() {
	vector<CDrugStore>::iterator It;
	vector<CDrugStore> m_DrugStores;

	//создаем аптеки
	CDrugStore m_DrugStore1("Аптека 1", "Улица Аптечная");
	CDrugStore m_DrugStore2("Аптека 2", "Переулок переломов");
	CDrugStore m_DrugStore3("Аптека 3", "Тупик Кровавый");

	//заполняем аптеки лекарствами
	m_DrugStore1.addMedicine(CMedicine(1, "Аспирин"));
	m_DrugStore1.addMedicine(CMedicine(2, "Супрадин"));
	m_DrugStore2.addMedicine(CMedicine(3, "Парацетомол"));
	m_DrugStore2.addMedicine(CMedicine(4, "Упсарин"));
	m_DrugStore3.addMedicine(CMedicine(5, "Contex"));

	//сохраняем аптеки в векторе
	m_DrugStores.push_back(m_DrugStore1);
	m_DrugStores.push_back(m_DrugStore2);
	m_DrugStores.push_back(m_DrugStore3);

	//ищем нашу аптеку
	It = find_if(m_DrugStores.begin(), m_DrugStores.end(), CDrugStoreEq("Аптека 2"));
	if (It != m_DrugStores.end()) {
		It->printMedicines();
	}
	else {
		cout << "No drugstores found" << endl;
	}

	return 0;
}
I invented the term Object-Oriented, and I can tell you I did not have C++ in mind. (c)Alan Kay

My other car is cdr.

Q: Whats the object-oriented way to become wealthy?
A: Inheritance
pproger вне форума Ответить с цитированием
Старый 04.10.2009, 00:06   #4
Serror
Пользователь
 
Регистрация: 03.10.2009
Сообщений: 19
По умолчанию

counter Да это там я очапятался.Я хотел написать не returne 0 а return 0 просто отвлёкся.)))
pproger Я благодарен но преподаватель сказал что в принципе моя программа правильная да и то что ты написал я не смогу объяснить.Он поймёт что не я делал.Я по этому и не стал через классы делать.
Serror вне форума Ответить с цитированием
Старый 04.10.2009, 00:28   #5
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

Цитата:
counter Да это там я очапятался.Я хотел написать не returne 0 а return 0 просто отвлёкся.)))
я так и предполагал...

Цитата:
преподаватель сказал что в принципе моя программа правильная
так может и покажи свою программу (если она не сверх секретная)...
и расскажи , в чем проблема, а то тут тебе напредлагают
counter вне форума Ответить с цитированием
Старый 04.10.2009, 00:32   #6
Serror
Пользователь
 
Регистрация: 03.10.2009
Сообщений: 19
По умолчанию

counter Дак это она и есть.А преподаватель сказал мол всё правильна но есть ошибки здесь:

apteka apteki[10];
preparat preparati[100];


Ну если здесь нет ошибки на С++ может преподаватель забыл и проверял как С.Надо будет ещё раз попробовать сдать работу.
Serror вне форума Ответить с цитированием
Старый 04.10.2009, 00:39   #7
counter
Участник клуба
 
Регистрация: 18.10.2008
Сообщений: 1,409
По умолчанию

а компилер, что говорит? преподаватель может и поглумиться маленько...
counter вне форума Ответить с цитированием
Старый 04.10.2009, 00:44   #8
Serror
Пользователь
 
Регистрация: 03.10.2009
Сообщений: 19
По умолчанию

Кхм,ну как бы смешно это не звучало я писал на простом листе бумаге.У меня на ПК ни чего не стоит.Я вообще не очень программист вот и приходиться мне так тяжело.А преподаватель вряд ли глумился он честный что ли ну у него короче есть рамки за которые он не выходит.Ну спасибо что помогли хоть в принципе проблема и не найдена так как её вроде нет.Буду тогда спорить с преподом.Но еси кто чё заметит пишите. )))
Serror вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
помогите найти ошибку в коде xaero93 Помощь студентам 4 20.04.2009 16:05
Помогите найти ошибку в коде Jora_Kornev Общие вопросы Delphi 10 10.01.2009 17:00
Помогите найти ошибку в коде! alex2008ean Паскаль, Turbo Pascal, PascalABC.NET 1 27.12.2008 18:31
Помогите найти ошибку в коде C++ Жека:) Помощь студентам 15 29.10.2008 11:32
помогите найти ошибку в коде Joker88 Помощь студентам 1 04.03.2008 12:43