Программа "Генератор кроссвордов"

Автор работы: Пользователь скрыл имя, 07 Апреля 2013 в 14:41, курсовая работа

Краткое описание

Кроссворд появился в начале 20 века и быстро завоевал популярность во всем мире. Слово кроссворд образовалось из двух английских слов cross - пересечение и word - слово. Решение кроссвордов тренирует память и расширяет кругозор, некоторые типы кроссвордов способствуют развитию сообразительности и ассоциативного мышления. Медики стали использовать кроссворд как успокаивающее средство. Преподаватели тоже применяют кроссворд в своей работе, это позволяет учащимся усваивать знания в игровой форме. Сфера применения кроссвордов постоянно расширяется, кроссворды применяются для тестирования профессиональных качеств.

Содержимое работы - 1 файл

Записка.docx

— 606.66 Кб (Скачать файл)

        }

      }

    }

}

}

 

void __fastcall TfrmMain::GetHorizontalMask(int yy,int xx)

{

  AnsiString ms;

  AnsiString t = IntToStr(Crossword[yy][xx].Start);

  ms = "";

  AnsiString Col = IntToStr(xx);

  AnsiString Row = IntToStr(yy);

  for (int i=0;i<CrossX;i++)

  {

    if (xx ==CrossX || Crossword[yy][xx].Cell != '2' ) break;

    if (Crossword[yy][xx].Letter == ' ') ms +="_";else ms +=Crossword[yy][xx].Letter;

    xx++;

   }

 

  AnsiString Direction = "'H'";

  AnsiString LL = IntToStr(ms.Length());

  Dm->ADOQuery->SQL->Text = "INSERT INTO mWork (Mask,Ok,Nom,Direction,Row,Col,Length) VALUES ('"+ms+"',0,"+t+","+Direction+","+Row+","+Col+","+LL+");";

  Dm->ADOQuery->ExecSQL();

}

void __fastcall TfrmMain::GetVerticalMask(int yy,int xx)

{

  AnsiString ms;

  AnsiString t = IntToStr(Crossword[yy][xx].Start);

  ms = "";

  AnsiString Col = IntToStr(xx);

  AnsiString Row = IntToStr(yy);

 

  for (int i=0;i<CrossY;i++)

  {

    if (yy ==CrossY || Crossword[yy][xx].Cell != '2'  ) break;

    if (Crossword[yy][xx].Letter == ' ') ms +="_";else ms +=Crossword[yy][xx].Letter;

    yy++;

  }

  AnsiString Direction = "'V'";

  AnsiString LL = IntToStr(ms.Length());

  Dm->ADOQuery->SQL->Text = "INSERT INTO mWork (Mask,Ok,Nom,Direction,Row,Col,Length) VALUES ('"+ms+"',0,"+t+","+Direction+","+Row+","+Col+","+LL+");";

  Dm->ADOQuery->ExecSQL();

 

}

void __fastcall TfrmMain::SetWord(int Nom,String Dir)

{

  Dm->ADOQueryW->SQL->Text = "SELECT DISTINCT * FROM mWork WHERE Nom="+IntToStr(Nom)+" AND Direction='"+Dir+"';";

  Dm->ADOQueryW->Open();

  int x,y;

  AnsiString s = Dm->ADOQueryW->FieldByName("Mask")->AsString;

 

  x = Dm->ADOQueryW->FieldByName("Col")->AsInteger;

  y = Dm->ADOQueryW->FieldByName("Row")->AsInteger;

  for(int i=0;i<Dm->ADOQueryW->FieldByName("Length")->AsInteger;i++)

  {

    Crossword[y][x].Letter = s[i+1];

    Crossword[y][x].Selected = 1;

    if (Dm->ADOQueryW->FieldByName("Direction")->AsString == "H")

      x++;

    else

      y++;

  }

  Grid->Repaint();

}

void __fastcall TfrmMain::WriteWord(int Nom,String Dir)

{

  Dm->ADOQueryW->SQL->Text = "SELECT DISTINCT * FROM mWork WHERE Nom="+IntToStr(Nom)+" AND Direction='"+Dir+"';";

  Dm->ADOQueryW->Open();

  int x,y;

  AnsiString s = Dm->ADOQueryWrd->FieldByName("Word")->AsString;

 

  x = Dm->ADOQueryW->FieldByName("Col")->AsInteger;

  y = Dm->ADOQueryW->FieldByName("Row")->AsInteger;

  for(int i=0;i<Dm->ADOQueryW->FieldByName("Length")->AsInteger;i++)

  {

    Crossword[y][x].Letter = s[i+1];

    Crossword[y][x].Selected = 1;

    if (Dm->ADOQueryW->FieldByName("Direction")->AsString == "H")

      x++;

    else

      y++;

  }

  Grid->Repaint();

}

 

 

void __fastcall TfrmMain::GetWord(int Nom,String Dir)

{

  Dm->ADOQueryW->SQL->Text = "SELECT DISTINCT * FROM mWork WHERE Nom="+IntToStr(Nom)+" AND Direction='"+Dir+"';";

  Dm->ADOQueryW->Open();

  int x,y;

  AnsiString s;

  x = Dm->ADOQueryW->FieldByName("Col")->AsInteger;

  y = Dm->ADOQueryW->FieldByName("Row")->AsInteger;

  for(int i=0;i<Dm->ADOQueryW->FieldByName("Length")->AsInteger;i++)

  {

    s+= Crossword[y][x].Letter;

    Crossword[y][x].Selected = 0;

    if (Dm->ADOQueryW->FieldByName("Direction")->AsString == "H")

      x++;

    else

      y++;

  }

  Grid->Repaint();

  Dm->ADOQueryWrd->SQL->Text = "SELECT Word FROM Words WHERE Word LIKE'"+s+"' ORDER BY Word;";

  Dm->ADOQueryWrd->Open();

}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

void __fastcall TfrmMain::btn3Click(TObject *Sender)

{

   Form2->ShowModal(); 

}

//---------------------------------------------------------------------------

 

 

void __fastcall TfrmMain::Label1Click(TObject *Sender)

{

  SetWord(1,"V"); 

}

//---------------------------------------------------------------------------

 

void __fastcall TfrmMain::sLabelFX1Click(TObject *Sender)

{

  GetWord(1,'V');  

}

//---------------------------------------------------------------------------

 

void __fastcall TfrmMain::DbGridWorkCellClick(TColumn *Column)

{

  int a = Dm->ADOQuery->FieldByName("Nom")->AsInteger;

  String b = Dm->ADOQuery->FieldByName("Direction")->AsString;

  SetWord(a,b);

  GetWord(a,b);

}

//---------------------------------------------------------------------------

 

void __fastcall TfrmMain::DbGridWordsCellClick(TColumn *Column)

{

  int a = Dm->ADOQuery->FieldByName("Nom")->AsInteger;

  String b = Dm->ADOQuery->FieldByName("Direction")->AsString;

  WriteWord(a,b);

  GetMasks();

  Dm->ADOQuery->SQL->Text = "SELECT * FROM mWork";

  Dm->ADOQuery->Open();

}

//---------------------------------------------------------------------------

Words

//---------------------------------------------------------------------------

 

#ifndef uWordsH

#define uWordsH

//---------------------------------------------------------------------------

#include <Classes.hpp>

#include <Controls.hpp>

#include <StdCtrls.hpp>

#include <Forms.hpp>

#include <DBCtrls.hpp>

#include <DBGrids.hpp>

#include <ExtCtrls.hpp>

#include <Grids.hpp>

//---------------------------------------------------------------------------

class TForm2 : public TForm

{

__published: // IDE-managed Components

  TDBGrid *DbGrid;

  void __fastcall FormShow(TObject *Sender);

private: // User declarations

public:  // User declarations

  __fastcall TForm2(TComponent* Owner);

};

//---------------------------------------------------------------------------

extern PACKAGE TForm2 *Form2;

//---------------------------------------------------------------------------

#endif

 

//---------------------------------------------------------------------------

 

#include <vcl.h>

#pragma hdrstop

 

#include "uWords.h"

#include "uMain.h"

#include "uDm.h"

//---------------------------------------------------------------------------

#pragma package(smart_init)

#pragma resource "*.dfm"

TForm2 *Form2;

//---------------------------------------------------------------------------

__fastcall TForm2::TForm2(TComponent* Owner)

  : TForm(Owner)

{

}

//---------------------------------------------------------------------------

void __fastcall TForm2::FormShow(TObject *Sender)

{

  DbGrid->DataSource = Dm->DataSource;

  //Navigator->DataSource = Dm->DataSource;

  Dm->ADOQuery->SQL->Text ="SELECT L,Word  from (SELECT *,LEN(Word) AS L  FROM Words) AS a ORDER BY L,Word ;";

  Dm->ADOQuery->Open();

}

//---------------------------------------------------------------------------


Информация о работе Программа "Генератор кроссвордов"