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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.12.2013, 18:38   #1
dkii
Пользователь
 
Регистрация: 11.12.2013
Сообщений: 54
Стрелка КАК наладить поиск по ключевому слову

Вообщем засел за написание курсовой, помогите пожалуйста.
Одна из задач состоит в том что бы искать фамилию человека из текстового файла.
Код:
#include <iostream>
#include <cmath>
#include <fstream> 
#include <stdio.h> 
#include <conio.h> 
 
using namespace std;
int main()
 
{
    setlocale(LC_ALL,"Russian");
    cout << "    *******************************************"<<"\n";
    cout << "    ***** БАЗА ДАННЫХ <<БАНКОВСКОЕ ДЕЛО>> *****"<<"\n";
    cout << "    *******************************************     "
<<"\n";
    cout <<"Выберите один из вариантов:     "
<<"\n";
    cout <<"      1 - Создание/дополнение базы данных"<<"\n";
    cout <<"      2 - Просмотр содержимого базы данных"<<"\n";
    cout <<"      3 - Поиск банков с максимальным годовым процентом"<<"\n";
    cout <<"      4 - Выход с программы"<<"\n";
    {
        int familia;
        int adres;
        int suma;
        ifstream f2("klienti.txt");
            while (! f2.eof())
            {
Содержимое текстового файла



Цитата:
***** ПРОСМОТР СОДЕРЖИМОГО БАЗЫ ДАННЫХ *****
*********************************** *******************

------------------------------------------------
:Фамилия : Адрес :Сума вложений :
------------------------------------------------
:Иванов С.А. :Львов :15000
:Петров М.П. :Киев :16020
:Гресь К.О. :Сумы :1000
:Сирык Л.М. :Одесса :12333
:Бондаренко Г.О. :Луганск :12520
:Кузьменко И.В. :Полтава :9855
:Васильев Ю.В. :Харьков :12000

Последний раз редактировалось Stilet; 15.12.2013 в 15:57.
dkii вне форума Ответить с цитированием
Старый 15.12.2013, 15:47   #2
dkii
Пользователь
 
Регистрация: 11.12.2013
Сообщений: 54
По умолчанию

помогите пожалуйста.
dkii вне форума Ответить с цитированием
Старый 15.12.2013, 15:59   #3
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,792
По умолчанию

Цитата:
int familia;
Ты это серьйозно?
Код:
char s[255]={0};
        ifstream f2("klienti.txt");
            while (! f2.eof())
            {
 fs>>s;
 if(strstr(s,"Иванов")){ в строке s есть такая фамилия}
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 15.12.2013, 17:10   #4
dkii
Пользователь
 
Регистрация: 11.12.2013
Сообщений: 54
По умолчанию

немножко изменил код, погуглил инфу на тему структуры, вообщем подскажите что не так
Код:
#include <iostream>
#include <cmath>
#include <fstream> 
#include <stdio.h> 
#include <conio.h> 
#include <string.h>
using namespace std;
struct klienti {
        char lastname[256]; 
        char adres[256];
        int  suma;
    };
int nain()
{
	setlocale(LC_ALL,"Russian");
	cout << "    *******************************************"<<"\n";
	cout << "    ***** БАЗА ДАННЫХ <<БАНКОВСКОЕ ДЕЛО>> *****"<<"\n";
	cout << "    *******************************************                                                                                                                                                                        "<<"\n";
	cout <<"Выберите один из вариантов:                                                                              "<<"\n";
	cout <<"      1 - Создание/дополнение базы данных"<<"\n";
	cout <<"      2 - Просмотр содержимого базы данных"<<"\n";
	cout <<"      3 - Поиск банков с максимальным годовым процентом"<<"\n";
	cout <<"      4 - Выход с программы"<<"\n";
	cout <<"      5 - Поиск по фамилии"<<"\n";
	
	struct klieni lib;
    char a[20];
    int n,count=0;
    cout<<"Сколько нужно занести людей в базу данных?\n";
        cin >>n;
    for(int i = 0; i < n;i++){
    cout<<"Введите фамилию человека\n";
    cin>>lib.lastname;
        cout<<"Введите адрес человека\n";
    cin>>lib.adres;
        cout<<"Введите суму вклада\n";
    cin>>lib.suma;
    }
    cout <<"Введите фамилию человека для поиска\n";
    cin >>a;
    if (strcmp(a, lib.lastname)==0)
	{
        count++;
        cout<<"Фамилия "<<lib.lastname<<"\n";
        cout<<"Адрес "<<lib.adres<<"\n";
		cout<<"Сума "<<lib.suma<<"\n";
    
    }
    else
        cout<<"Пользователя не найденно\n";
    ofstream myfile;
    myfile.open ("struct.txt");
    for( int k = 0; k < count; k++ )
	{
 
        myfile << "Фамилия "<<lib.lastname<<"\n"  << endl;
        myfile << "Адрес "<<lib.adres<<"\n"  << endl;
		myfile << "сума "<<lib.suma<<"\n"  << endl;
 
    }
    myfile.close();
    system("pause");
    return 0;
}
Код:
#include <iostream>
#include <cmath>
#include <fstream> 
#include <stdio.h> 
#include <conio.h> 
#include <string.h>
using namespace std;
struct klienti {
        char lastname[256]; 
        char adres[256];
        int  suma;
    };
int main()
{
    setlocale(LC_ALL,"Russian");
    cout << "    *******************************************"<<"\n";
    cout << "    ***** БАЗА ДАННЫХ <<БАНКОВСКОЕ ДЕЛО>> *****"<<"\n";
    cout << "    *******************************************                                                                                                                                                                        "<<"\n";
    cout <<"Выберите один из вариантов:                                                                              "<<"\n";
    cout <<"      1 - Создание/дополнение базы данных"<<"\n";
    cout <<"      2 - Просмотр содержимого базы данных"<<"\n";
    cout <<"      3 - Поиск банков с максимальным годовым процентом"<<"\n";
    cout <<"      4 - Выход с программы"<<"\n";
    cout <<"      5 - Поиск по фамилии"<<"\n";
    
    struct klieni;
    char a[20];
    int n,count=0;
    cout<<"Сколько нужно занести людей в базу данных?\n";
        cin >>n;
    for(int i = 0; i < n;i++){
    cout<<"Введите фамилию человека\n";
    cin>>lib.lastname;
        cout<<"Введите адрес человека\n";
    cin>>lib.adres;
        cout<<"Введите суму вклада\n";
    cin>>lib.suma;
    }
    cout <<"Введите фамилию человека для поиска\n";
    cin >>a;
    if (strcmp(a, lib.lastname)==0)
    {
        count++;
        cout<<"Фамилия "<<lib.lastname<<"\n";
        cout<<"Адрес "<<lib.adres<<"\n";
        cout<<"Сума "<<lib.suma<<"\n";
    
    }
    else
        cout<<"Пользователя не найденно\n";
    ofstream myfile;
    myfile.open ("struct.txt");
    for( int k = 0; k < count; k++ )
    {
 
        myfile << "Фамилия "<<lib.lastname<<"\n"  << endl;
        myfile << "Адрес "<<lib.adres<<"\n"  << endl;
        myfile << "сума "<<lib.suma<<"\n"  << endl;
 
    }
    myfile.close();
    system("pause");
    return 0;
}

Последний раз редактировалось Stilet; 15.12.2013 в 18:57.
dkii вне форума Ответить с цитированием
Старый 15.12.2013, 18:32   #5
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,152
По умолчанию

1) Вместо "Введите суму вклада\n" по правилам грамматики должно быть "Внесите суму клада\n"
2) а по делу - что такое lib.lastname;?
3) меню должно быть сделано как
Код:
char chMnu = 0;
do{
//выводим меню приглашения
cin >> chMnu;
switch(chMnu)
{case '1':
// do something
break;
case '2':
// do some next something
break;
default:
break;
}
while (chMnu != '5');
Ps: если чо, писал на коленке
Smogg вне форума Ответить с цитированием
Старый 15.12.2013, 18:51   #6
dkii
Пользователь
 
Регистрация: 11.12.2013
Сообщений: 54
По умолчанию

спасибо, насчет lib переделал (убрал все lib), работает, но не совсем правильно, при вводе нескольких клиентов, и их поиске находит только последнего.

Последний раз редактировалось dkii; 15.12.2013 в 19:12.
dkii вне форума Ответить с цитированием
Старый 15.12.2013, 19:12   #7
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,152
По умолчанию

Цитата:
Сообщение от dkii Посмотреть сообщение
при вводе нескольких клиентов, и их поиске находит только последнего.
Все зависит от способа поиска

Последний раз редактировалось Smogg; 15.12.2013 в 19:15.
Smogg вне форума Ответить с цитированием
Старый 15.12.2013, 19:14   #8
dkii
Пользователь
 
Регистрация: 11.12.2013
Сообщений: 54
По умолчанию

lib здесь случайно оказалось, здесь оно лишнее.
dkii вне форума Ответить с цитированием
Старый 15.12.2013, 19:47   #9
Smogg
Участник клуба
 
Регистрация: 14.06.2011
Сообщений: 1,152
По умолчанию

Цитата:
Сообщение от dkii Посмотреть сообщение
lib здесь случайно оказалось, здесь оно лишнее.
НУ да, это не принципиально, как назвать временную структуру-переменную при добавлении новой записи в базу)
Smogg вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск по ключевому полю IraPr Microsoft Office Access 1 31.07.2012 06:57
не могу наладить поиск с хешированием lexflax C++ Builder 1 22.01.2012 15:06
Как в ListBox реализовать поиск по ключевому слову Applod Компоненты Delphi 0 23.11.2011 15:03
Поиск по Ключевому слову Applod Компоненты Delphi 0 22.11.2011 21:21