Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Проблема с функцией на С++ 
:(
    Опции темы
lega95
Дата 25.3.2011, 21:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 25.3.2011

Репутация: нет
Всего: нет



Добрый день. Помогите пожалуйста с решением задания для курсовой на Borland c++. Суть такова. Есть текстовый файл такими полями: Фамилия, год установки телефона, номер телефона, адреса. Задание написать программу на с++ чтоб:
За фамилией что вводится, выводился номер телефона, 
За номером что вводится, выводилась фамилия и адрес.
Вычислить количество установленных телефонов с XXXX года, год вводится в поле edit1.
Первые 2 пункта у меня нормально получились, а вот с последним в ступор попал. помогите пожалуйста с возможным решением.
Вот часть кода которий у меня используется для первых двух пунктов:



Код

TStringList *list = new TStringList;
 if(RadioButton1->Checked == true){
 list->LoadFromFile(Edit2->Text) ;
  Memo1->Clear();
  for(int i = 0; i < list->Count; i++)
        {
        if(list->Strings[i].Pos(Edit1->Text))
        {
                 AnsiString txt = list->Strings[i];
             int Pos = 25;
  txt.Delete(Pos,58);
  txt.Insert(" ", Pos);

 Memo1->Lines->Append(txt);}}}

 else {TStringList *list = new TStringList;
 list->LoadFromFile(Edit2->Text);
    Memo1->Clear();
        for(int i = 0; i < list->Count; i++)
        {
                if(list->Strings[i].Pos(Edit1->Text))
                {AnsiString txt = list->Strings[i];
 int Pos = 12;
 txt.Delete(Pos, 19);
 txt.Insert(" ", Pos);
 Memo1->Lines->Append(txt);}
 Спасибо.
PM MAIL   Вверх
borisbn
Дата 26.3.2011, 15:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 18
Всего: 135



Цитата(lega95 @  25.3.2011,  21:04 Найти цитируемый пост)
int Pos = 25;  txt.Delete(Pos,58);

а если в файле фамилия будет меньше или больше 25 символов ?
кто тебя учил так форматировать код ? Ужасно. Почитай где-нибудь о принятых способах форматирования кода.
Лови, допиливай
Код

struct Person
{
    AnsiString name;
    int year;
    AnsiString phone;
    AnsiString address;
};
std::vector< Person > persons;
TStringList *list = new TStringList;
int count = list->Count;
for ( int i = 0; i < count; i++ )
{
    AnsiString s = list[ i ];
    int afterName = s.Pos( " " );
    if ( afterName == 0 )
    {
        continue;
    }
    AnsiString name = s.SubString( 1, afterName - 1 );
    s = s.Delete( 1, afterName );
    int afterYear = s.Pos( " " );
    if ( afterYear == 0 )
    {
        continue;
    }
    int year = s.SubString( 1, afterYear - 1 ).ToInt();
    s = s.Delete( 1, afterYear );
    int afterPhone = s.Pos( " " );
    if ( afterPhone == 0 )
    {
        continue;
    }
    AnsiString phone = s.SubString( 1, afterPhone - 1 );
    s = s.Delete( 1, afterPhone );
    AnsiString address = s;
    Person p;
    p.name = name;
    p.year = year;
    p.phone = phone;
    p.address = address;
    persons.push_back( p );
}

// За фамилией что вводится, выводился номер телефона, 
memo->Clear();
AnsiString name = edit1->Text;
int personsCount = persons.size();
for ( int i = 0; i < personsCount; i++ )
{
    if ( persons[ i ].name == name )
    {
        memo->Add( persons[ i ].phone );
    }
}
// За номером что вводится, выводилась фамилия и адрес.
memo->Clear();
AnsiString phone = edit1->Text;
int personsCount = persons.size();
for ( int i = 0; i < personsCount; i++ )
{
    if ( persons[ i ].phone == phone )
    {
        memo->Add( persons[ i ].name + ": " + persons[ i ].address );
    }
}
// Вычислить количество установленных телефонов с XXXX года, год вводится в поле edit1.
memo->Clear();
int year = edit1->Text.ToInt();
int yearsCount = 0;
int personsCount = persons.size();
for ( int i = 0; i < personsCount; i++ )
{
    if ( persons[ i ].year == year )
    {
        yearsCount++;
    }
}
memo->Add( AnsiString( yearsCount ) );




--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
lega95
Дата 26.3.2011, 20:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 25.3.2011

Репутация: нет
Всего: нет



Спасибо огромное. Обязательно почитаю. Очень выручили.  Буду учиться потихоньку на своих ошибках smile
PM MAIL   Вверх
mrbrooks
Дата 30.3.2011, 08:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


трололомен
****


Профиль
Группа: Завсегдатай
Сообщений: 4259
Регистрация: 4.10.2006
Где: Дол Гулдур

Репутация: 167
Всего: 306



borisbn, я отказываюсь верить, что это ты написал такой чудный код smile
PM MAIL   Вверх
borisbn
Дата 30.3.2011, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 4875
Регистрация: 6.2.2010
Где: Ростов-на-Дону

Репутация: 18
Всего: 135



Цитата(mrbrooks @  30.3.2011,  08:53 Найти цитируемый пост)
borisbn, я отказываюсь верить, что это ты написал такой чудный код

чевойта ?


--------------------
Женщины отличаются от программистов тем, что у них чары состоят из стрингов
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0920 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.