Автор: Пользователь скрыл имя, 08 Апреля 2012 в 11:29, курсовая работа
Данная программа предназначена для шифрования файлов наложением кода ключа по методу XOR(исключающего или).
1.Программа шифрования текста методом наложения кода ключа…..стр.3
2.Графическое приложение: игра PacMan……………………………..стр.13
3.Клиент базы данных Microsoft Access……………………………….стр.26
}
CheckStartPlace();
}
//----------------------------
void LevelCreate()
{
Form1->TimersRun(false);
PrimGenerateMaze();
//постобработка сгенерированного лабиринта
//разбиваем рэндомные стены чтоб были проходы
Sleep(200);
for (int x = 1; x < Width; x++)
for (int y = 1; y < Height; y++)
{
//если путь из данной локации в соседнюю больше constMaxWay,
//то разбиваем стену между этими локациями
WaveTracingSolve(x,y);
for (int i = 0; i < 4; i++)
if (Maze[x + dx[i]][y + dy[i]].mark > constMaxWay)
{
BreakWall( x, y, dx[i], dy[i]);
ShowMaze();
Sleep(100);
}
}
p_Life=3;
CreateMap();
ShowMap();
MediaPlayer[sNextLevel]->Play(
Form1->TimersRun(true);
}
//----------------------------
void CheckStartPlace()
{
Pacman.X = Pacman.StartX;
Pacman.Y = Pacman.StartY;
Pacman.Dir = 3;
Pacman.NewDir = 3;
for (int i=0; i<4; i++)
Pacman.DirFlag[i] = false;
Pacman.Active = false;
Pacman.ActiveTime = 0;
for (int a = 0; a < 4; a++)
{
Ghost[a].X = a * CellSize;
Ghost[a].Y = a * CellSize;
Ghost[a].Dir = 3;
for (int i = 0; i < 4; i++)
Ghost[a].DirFlag[i] = false;
Ghost[a].Shy = false;
Ghost[a].ShyTime = 0;
}
Bonus.Kind = 0;
Bonus.Life = 0;
}
//----------------------------
void LevelRenewSeed()
{
ImageBack->Canvas->Brush->
ImageBack->Canvas->FillRect(
}
//----------------------------
bool CanGo(int x, int y, int dx, int dy)
{
byte f = '0';
if (dx == -1) f = Maze[x][y].left_wall;
if (dx == 1) f = Maze[x + 1][y].left_wall;
if (dy == -1) f = Maze[x][y].up_wall;
if (dy == 1) f = Maze[x][y + 1].up_wall;
if (f == '0')
return true;
return false;
}
//----------------------------
void Solve()
{
bool FindNull;
//{ начинаем с итерации номер 1 }
do
{
FindNull = false; //положим нулей нет -> волну построили -> конец алгоритма
for ( int x = 0; x < Width; x++)
for ( int y = 0; y < Height; y++)
{
if (Maze[x][y].mark == N)
//найти локации, помеченные числом N
for (int i = 0; i < 4; i++)
//просмотр соседних локаций
if ((CanGo(x, y, dx[i], dy[i])) && (Maze[x + dx[i]][y + dy[i]].mark == 0))
//локация доступна и помечена нулем -> помечаем ее числом N + 1
Maze[x + dx[i]][y + dy[i]].mark = N + 1;
if (Maze[x][y].mark == 0)
FindNull = true; //нашли локации помеченные нулем => продолжаем строить волну
}
N++;
}
while (FindNull == true); //повторять, если есть непройденные локации
}
//----------------------------
void WaveTracingSolve(int xs, int ys)
{
int x, y, xc, yc;
for (int x = 0; x < Width; x++)
for (int y = 0; y < Height; y++)
Maze[x][y].mark = 0;
Maze[xs][ys].mark = 1; //стартовой локации соответствует единица
N = 1;
Solve();
Form1->Label1->Caption = "Алгоритм сработал";
}
//----------------------------
void __fastcall TForm1::N2Click(TObject *Sender)
{
MessageBox(Form1->Handle,"Игра PacMan.\nРазработчик:Бутеев Илья Сергеевич.\nГруппа:АУ-20Д","Иг
}
//----------------------------
База данных, которая содержит записи о книгах по Photoshop:
Интерфейс программы
Поля, которые содержит данная база:
записей и при добавлении новой записи в базу увеличивается на 1;
поле «Название» - указывает название книги;
поле «Страниц»- указывает число страниц в книге;
поле «Год» (обязательно к заполнению) - год выпуска книги;
поле «Издатель» - указывает издательство данной книги;
поле «ISBN»-уникальный код книги
поле «Тираж» - кол-во напечатанных книг
поле «Стоимость»-цена книги.
Клиент может выполнять в базе данных следующие операции, реализованные при помощи запросов SQL: выполнение переходов к первой, предыдущей, следующей, последней записи; добавление, изменение и удаление записей; быстрый поиск по конкретному полю; сортировка по 2 полям. Также клиент базы данных в любой момент времени отображает текущее количество записей в базе и видит развёрнутый комментарий к любой записи.
Основные компоненты:
1. Набор кнопок перемещения по базе и её изменения
(«Первая», «Предыдущая», «Добавить», …)
2. Два списка для выбора полей сортировки и вида сортировки (по возрастанию, по убыванию)
3. Основная таблица, содержащая все записи и дополнительное поле Memo, содержащее комментарии.
Текст программы
//----------------------------
void __fastcall TForm1::buttonFirstClick(
{
ADOQuery1->First();
}
//----------------------------
void __fastcall TForm1::buttonPrevClick(
{
ADOQuery1->Prior();
}
//----------------------------
void __fastcall TForm1::buttonNextClick(
{
ADOQuery1->Next();
}
//----------------------------
void __fastcall TForm1::buttonEndClick(TObject *Sender)
{
ADOQuery1->Last();
}
//----------------------------
void __fastcall TForm1::radioSortFieldClick(
{
switch (radioSortField->ItemIndex) {
case 1:
sortField = "book_name";
break;
case 2:
sortField = "pages";
break;
case 3:
sortField = "pub_year";
break;
case 4:
sortField = "publisher";
break;
case 5:
sortField = "isbn";
break;
case 6:
sortField = "pub_count";
break;
case 7:
sortField = "cost";
break;
default:
sortField = "id";
}
updateData();
}
//----------------------------
void __fastcall TForm1::radioSearchFieldClick(
{
switch (radioSearchField->ItemIndex) {
case 0:
searchField = "book_name";
break;
case 1:
searchField = "pages";
break;
case 2:
searchField = "pub_year";
break;
case 3:
searchField = "publisher";
break;
case 4:
searchField = "isbn";
break;
case 5:
searchField = "pub_count";
break;
case 6:
searchField = "cost";
break;
}
updateData();
}
//----------------------------
void __fastcall TForm1::
{
searchString = editSearchString->Text;
updateData();
}
//----------------------------
void TForm1::updateData()
{
AnsiString sql = "";
sql += "SELECT * FROM books ";
if (!searchString.IsEmpty()) {
sql += " WHERE ";
sql += searchField;
sql += " LIKE '%";
sql += searchString;
sql += "%' ";
}
sql += "ORDER BY ";
sql += sortField;
sql += " ";
sql += sortWay;
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(sql);
ADOQuery1->Active=true;
editCount->Text = ADOQuery1->RecordCount;
}
//----------------------------
void __fastcall TForm1::radioWayClick(TObject *Sender)
{
switch (radioWay->ItemIndex) {
case 0:
sortWay = "ASC";
break;
default:
sortWay = "DESC";
break;
}
updateData();
}
//----------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
sortField = "id";
searchField = "book_name";
searchString = "";
sortWay = "ASC";
updateData();
}
//----------------------------
void __fastcall TForm1::buttonAddClick(TObject *Sender)
{
Form2->Edit1->Text = "";
Form2->Edit2->Text = "100";
Form2->Edit3->Text = "2009";
Form2->Edit4->Text = "";
Form2->Edit5->Text = "";
Form2->Edit6->Text = "10";
Form2->Edit7->Text = "0";
Form2->buttonAdd->Show();
Form2->buttonEdit->Hide();
Form2->ShowModal();
}
//----------------------------
void __fastcall TForm1::buttonEditClick(
{
Form2->Edit1->Text = ADOQuery1->Fields->
Form2->Edit2->Text = ADOQuery1->Fields->
Form2->Edit3->Text = ADOQuery1->Fields->
Form2->Edit4->Text = ADOQuery1->Fields->
Form2->Edit5->Text = ADOQuery1->Fields->
Form2->Edit6->Text = ADOQuery1->Fields->
Form2->Edit7->Text = ADOQuery1->Fields->
Form2->buttonAdd->Hide();
Form2->buttonEdit->Show();
Form2->ShowModal();
}
//----------------------------
void __fastcall TForm1::buttonDeleteClick(
{
AnsiString sql;
sql += "DELETE FROM books WHERE ";
sql += "id = ";
sql += ADOQuery1->Fields->
int Res = MessageBox(NULL,"Вы хотите удалить запись?", "Удаление", MB_YESNO|MB_ICONWARNING);
if(Res == IDYES) {
ADOQuery1->SQL->Clear();
ADOQuery1->SQL->Add(sql);
ADOQuery1->ExecSQL();
updateData();
}
}
//----------------------------
30