Форум программистов, компьютерный форум CyberForum.ru

русско-английский словарь с помощью лин. списка - C++

Восстановить пароль Регистрация
 
BukTOP_10
1 / 1 / 0
Регистрация: 05.10.2011
Сообщений: 13
16.11.2011, 22:10     русско-английский словарь с помощью лин. списка #1
Здравствуйте,помогите пожалуйста с программой,требуется написать программу для русско-английского словаря,читать слова из текстового файла и хранить с помощью лин. списка,написал примерный код,не могу исправить ошибки,помоги пожалуйста!
Код
#include<iostream>
#include<fstream>
#include <windows.h>

struct LE
{
  char text[30];
  struct LE *next;
};

using namespace std;

char bufRus[256];
 
char* rus(const char* text)
{
      CharToOem(text,bufRus);
      return bufRus;
}

int InputLinSpis(LE &dictionary)
{
     ifstream fileIn;
	 fileIn.open("database.txt");
	 if(!fileIn.is_open()){   cout << "Error opening file"<< endl;
                              fileIn.close();
                              return 0;
                          } 
     while(!fileIn.eof()) getline(dictionary.text,30); //извлекаем слова построчно
     fileIn.close();
     return 1;
}  

LE& CreateLinSpisok()
{
    LE *top,*p;
    top=NULL;
    while(1)
    {
            p=new LE[sizeof(LE)];
            if(!InputLinSpisok(p)) 
            {
              delete []p;
              return *top;
            }
            p->next=top; top=p;
   } 
} 

void DestructLinSpis(LE *p)
{
	LE *next;
	while(p)
	{
		next=p->next;
		delete []p;
		p=next;
	}
} 



int Find(LE &p)
{
    char word[30],*buf1=NULL,*buf2 = NULL;
    bool find=false;
    
    cout<<"Enter word to translate:";
    cin.getline(word,30); 
    
    while(!p)
    {
      buf1=strtok(p.text,"-");
      buf2=strtok(NULL," ");
      buf1=rus(buf1);
      if (*buf1==*word && strlen(buf1)==strlen(word))
      {
 
         cout << word << " = " << rus(buf2) << endl;
         find = true;
         return 1;
      }
      if (*buf2 == *word && strlen(buf2) == strlen(word))
      {
         cout << word << " = " << buf1 << endl;
         find = true;
         return 1;
      }
      p=p->next;
   }
   if (!find) cout<<"No match"<<endl; //если совпадений не найдено
   return 0;
} 

main()
{
LE *p;

p=CreateLinSpisok();
Find(p);
system("pause");
DestructLinSpis(p);
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.11.2011, 22:10     русско-английский словарь с помощью лин. списка
Посмотрите здесь:

C++ Русско-английский и англо-русский словарь
C++ реализ. сортировку массива лин. выбором с обменом
реализация списка с помощью стандартной библиотеки C++
Разобраться в некоректности программы!(англо-русский словарь лин. списком) C++
C++ Поиск в лин. списке
Английский и C++ C++
Реализовать русско-английский и англо-русский словарь C++
Алфавитно-частотный словарь на основе односвязного списка с применением токенов C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 13:40. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru