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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 12.05.2012, 15:38   #1
PointBreak
Пользователь
 
Регистрация: 12.05.2012
Сообщений: 15
По умолчанию Структуры в С++

Здравствуйте! Подскажите пожалуйста как данные задачи можно реализовать через структуры:

1) Даны названия 26 городов и стран,в которых они находятся. Среди них есть города,находящиеся в Италии.Напечатать их названия.

2)Известны фамилии 25-ти человек,их семейное положение,женат(замужем) или нет,и сведения о наличии детей(есть или нет).Определить фамилии женатых(замужних) людей,имеющих детей

версия: Microsoft Visual C++2008
PointBreak вне форума Ответить с цитированием
Старый 12.05.2012, 18:37   #2
Smitt&Wesson
Старожил
 
Аватар для Smitt&Wesson
 
Регистрация: 31.05.2010
Сообщений: 13,543
По умолчанию

Код:
#include <***>
#include <***>
struct goroda
{
  string Name;
  string gorod;
};

struct sapiens
{
  string last_name;
  boolean sex;
  boolean marital_status;
  int children;
};

int main()
{
// Делаем всё, что нужно
return 0;
}
Пиши пьяным, редактируй трезвым.
Справочник по алгоритмам С++ Builder

Последний раз редактировалось Smitt&Wesson; 12.05.2012 в 19:35.
Smitt&Wesson вне форума Ответить с цитированием
Старый 12.05.2012, 19:19   #3
PinkPink
Пользователь
 
Регистрация: 09.10.2011
Сообщений: 98
По умолчанию

помоему всё очевидно, тебе структуры сделали. просто пишешь условие и ищешь всё, что нужно. если будут вопросы когда будешь делать - пиши, разберёмся. если ещё что-то не понял
PinkPink вне форума Ответить с цитированием
Старый 13.05.2012, 01:07   #4
Rififi
Старожил
 
Регистрация: 19.08.2009
Сообщений: 2,119
По умолчанию

Все равно жду, пока игра скачается, так что пофиг, займу себя баловством... :D

Код:
#include <boost/multi_index_container.hpp>
#include <boost/multi_index/composite_key.hpp>
#include <boost/multi_index/ordered_index.hpp>
#include <boost/multi_index/sequenced_index.hpp>
#include <boost/multi_index/member.hpp>

namespace mi = boost::multi_index;

struct Index_ {};

struct Person
{
	Person(const std::string& name, bool gameOver, bool children) : name_(name), gameOver_(gameOver), children_(children)
	{ }

	std::string name_;
	bool gameOver_;
	bool children_;

	friend std::ostream& operator << (std::ostream& os, const Person& p)
	{
		return os << "{ \"" << p.name_ << "\" : " << std::boolalpha << p.gameOver_ << " : " << p.children_ << " }";
	}
};

typedef mi::multi_index_container<
	Person,
	mi::indexed_by<
		mi::sequenced<>,
		mi::ordered_non_unique<
			mi::tag<Index_>,
			mi::composite_key<
				Person,
				BOOST_MULTI_INDEX_MEMBER(Person, bool, gameOver_),
				BOOST_MULTI_INDEX_MEMBER(Person, bool , children_)
	> > > > storage;

template <typename Iterator>
void print_names(Iterator begin, Iterator end)
{
	typedef typename std::iterator_traits<Iterator>::value_type T;
	typedef std::ostream_iterator<T> O;
	std::copy(begin, end, O(std::cout, "\n"));		
}

template <typename Range>
void print_names(const storage& db, const Range& rng)
{
	typedef storage::index<Index_>::type ByIndex;
		
	ByIndex::const_iterator begin, end;
	boost::tie(begin, end) = db.get<Index_>().equal_range(rng);
	print_names(begin, end);
}

int main()
{
	storage db;
	db.push_back(Person("Mary", true, true));
	db.push_back(Person("Petya", true, false));
	db.push_back(Person("Vasya", false, true));
	db.push_back(Person("Masha", false, false));
	db.push_back(Person("Katya", true, true));

	print_names(db.cbegin(), db.cend());
	
	std::cout << "---------------------------------" << std::endl;
	print_names(db, boost::make_tuple(true, true));

	return 0;
}
Демонстрация работы: http://liveworkspace.org/code/52ed6a...ee86ddde701215
первая распечатка выводит всех людей в базе, вторая - только с указанным в задаче условием
Rififi вне форума Ответить с цитированием
Старый 13.05.2012, 11:12   #5
PointBreak
Пользователь
 
Регистрация: 12.05.2012
Сообщений: 15
По умолчанию

A в struct goroda можно не через строки сделать,а как:
Код:
struct goroda
{
  char Name[26];
  char gorod[26];
};
??

Последний раз редактировалось ACE Valery; 13.05.2012 в 15:33.
PointBreak вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Написание программ (древовидные структуры, структуры неспециального вида и т.д.) Green Gin Фриланс 2 27.04.2012 15:26
Управляющие структуры. Программирование алгоритмов разветвляющейся структуры. Лёнка Компоненты Delphi 1 23.04.2012 15:03
структуры ordinary_smile Общие вопросы C/C++ 7 10.10.2011 00:31
Структуры Ste Общие вопросы C/C++ 2 26.11.2010 00:00
Структуры в Си. Muro Общие вопросы C/C++ 4 16.05.2010 12:31