Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код |
302198 |
Дата создания |
20 октября 2013 |
Страниц |
27
|
Покупка готовых работ временно недоступна.
|
Описание
Работа описывает разработку и написание программы "Магический квадрат" в Delphi. Приложение Б содержит саму программу и исходники, в работе находятся скриншоты результатов обработки запросов программой при различных вариантах введенных данных.
Работа получила оценку "Отлично" осенью 2011-го года в СГА. ...
Содержание
Содержание
Введение 3
1. Разработка эскизного и технического проектов программы 5
1.1 Технические характеристики 5
1.2 Описание алгоритма 5
1.3 Организация входных и выходных данных 8
1.4 Выбор состава технических и программных средств 9
2. Разработка рабочего проекта 10
2.1 Разработка программы 10
2.2 Спецификация программы 13
2.3 Текст программы 14
2.4 Описание программы 18
2.5 Тестирование программы 21
2.6 Внедрение 22
Заключение 23
Глоссарий 25
Список использованных источников 26
Приложение А. Блок-схема алгоритма 27
Приложение Б. Программа «Magic Square» 27
Введение
Цель курсовой работы – написание программы, определяющей, является ли введенный двумерный массив магическим квадратом.
Исходя из поставленной цели, будут решаться следующие задачи:
Описание алгоритма, анализ требований к программе;
• Характеристика используемых средств;
• Описание входных (исходных) и выходных данных программы;
• Собственно, написание программы;
• Тестирование;
• Внедрение.
Представленная курсовая работа была выполнена в интегрированной среде программирования Delphi 7 с базовым языком программирования Object Pascal. Delphi — результат развития языка Turbo Pascal, который, в свою очередь, развился из языка Pascal.
Предназначение курсовой работы – закрепить и продемонстрировать умения, полученные при изучении курса.
Задача проекта заключена в верном составлении алгоритма поставленной задачи по обработке числовой информации. Нужно разработать и отладить программу, реализующую полученный алгоритм.
Согласно заданию дан массив целых чисел размером n на n. Необходимо определить, является ли он магическим квадратом, которым называется квадратная матрица, составленная из целых положительных чисел так, что суммы по каждой строке, каждому столбцу и двум диагоналям равны между собой.
Теоретическая и практическая значимость заключается в закреплении навыков составления алгоритмов поставленных задач и программирования на языке Object Pascal.
Программа «Магический квадрат» является развлекательной и представляет собой математическую головоломку. Возможно ее использование в математических кружках в школах или в вузах в качестве дополнительного средства изучения математических дисциплин.
Фрагмент работы для ознакомления
Свойства:
AutoSelect: True;
AutoSize: True;
BorderStyle: bsSingle;
CharCase: ecNormal;
DragMode: dmManual;
Enabled: True;
LabelPosition: lpAbove;
LabelSpacing: 3;
MaxLength: 3;
Данный компонент представляет собой комбинацию обычного текстового поля (edit) и метки-заголовка (label). В нашем случае отображает регулируемую величину и при необходимости может редактировать ее.
6 – компонент TUpDown
Свойства:
Wrap: False;
Thousands: False;
Position: 5;
Orientation: udVertical;
Min: 3;
Max: 255;
Increment: 1;
Associate: LabeledEdit1
AlignButton: udRight.
События:
Associate: LabeledEdit1;
OnClick: UpDown1Click.
Компонент TUpDown предназначен для регулирования числовой величины. Он имеет пару кнопок, с помощью которых величина наращивается или уменьшается. В данном случае связан с компонентом TLabeledEdit.
2.2 Спецификация программы
Исполняемый файл1 программы «Магический Квадрат» имеет название Magics.exe. Состав проекта представлен в таблице 1.
Таблица 1 – Состав проекта
Наименование
Обозначение
Примечание
Magics.Dpr
Файл проекта
Связывает все файлы, из которых состоит приложение
Magics.Res
Файл ресурсов
Содержит пиктограммы, графические изображения
Unit1.Pas
Файл программного модуля для формы № 1
Определяет функциональность формы № 1
Unit1.Dfm
Файл формы № 1
Содержит список свойств всех компонентов, включенных в форму № 1
Unit1.Dcu
Объектный файл для Unit1.Pas
Откомпилированная версия Unit1.Pas
2.3 Текст программы
Листинг программы:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls, XPMan, ComCtrls, ExtCtrls;
type
TForm1 = class(TForm)
StringGrid1: TStringGrid;
Button1: TButton;
Label1: TLabel;
XPManifest1: TXPManifest;
LabeledEdit1: TLabeledEdit;
UpDown1: TUpDown;
procedure Button1Click(Sender: TObject);
procedure UpDown1Click(Sender: TObject; Button: TUDBtnType);
procedure LabeledEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
end;
Type X2Array = Array[0..255, 0..255] of LongInt;
Function IsSquareMagic(Square: X2Array; SqSize: Byte) : Boolean;
var
Form1: TForm1;
MainSquare : X2Array;
implementation
{$R *.dfm}
Function IsSquareMagic(Square: X2Array; SqSize: Byte) : Boolean;
Var Test, Temp: Int64;
i,j : Byte;
Begin
Result := true;
Test := 0;
For i:=0 to sqSize-1 do
Test := Test + Square[i,i]; {Сумма всех элементов главной диагонали}
Temp := 0;
For i:=0 to sqSize-1 do
Temp := Temp + Square[i,SqSize-i-1]; {Сумма элементов диагонали из правого верхнего угла в левый нижний}
If Temp <> Test then begin Result := false; exit; end;
For i:=0 to SqSize-1 do
begin
Temp := 0;
For j:=0 to SqSize-1 do
Temp := Temp + Square[i,j]; {Вычисление сумм элементов по строкам}
If Temp <> Test then begin Result := false; exit; end;
end;
For j:=0 to SqSize-1 do
begin
Temp := 0;
For i:=0 to SqSize-1 do
Temp := Temp + Square[i,j]; {Вычисление сумм элементов по столбцам}
If Temp <> Test then begin Result := false; exit; end;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
Var i, j : Byte;
begin
Try
For j:=0 to StringGrid1.RowCount-1 do
For i:=0 to StringGrid1.ColCount-1 do
MainSquare[i,j] := StrToInt(StringGrid1.Cells[i,j]);
except
MessageBeep(25); {Звуковой сигнал }
MessageDlg('У вас ошибка в данных.',mtError,[mbOk],0); {Сообщение об ошибке}
Abort; {Возврат к заполнению массива}
end;
If IsSquareMagic(MainSquare,StringGrid1.RowCount) then Label1.Caption := 'Квадрат магический.'
Else Label1.Caption := 'Квадрат не магический.';
end;
Procedure ChangeSqSize(NewSize : Byte);
begin
Form1.StringGrid1.RowCount := NewSize;
Form1.StringGrid1.ColCount := NewSize;
Form1.Label1.Caption := 'Здесь будет результат.';
end;
procedure TForm1.UpDown1Click(Sender: TObject; Button: TUDBtnType);
begin
ChangeSqSize(StrToInt(LabeledEdit1.Text));
end;
procedure TForm1.LabeledEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
Var i: Word;
begin
If key = VK_RETURN then
begin
i:=5;
Try
i:=StrToInt(LabeledEdit1.Text);
Except
MessageBeep(25); {Звуковой сигнал}
MessageDlg('Невозможно задать размер. Число криво. Или не число вовсе.',MtError,[mbOk],0); {Сообщение об ошибке}
Abort; {Возврат к заданию размерности массива}
end;
If (i < 3) or (i > 255) then
begin
MessageBeep(25); {Звуковой сигнал}
MessageDlg('Вы вышли за рамки диапазона. Размер будет 5х5.',MtError,[mbOk],0); {Сообщение об ошибке}
i := 5;
end;
ChangeSqSize(i);
end;
end;
end.
2.4 Описание программы
Программа Magics.exe написана на языке программирования Object Pascal и работает на ПК с процессором семейства Intel или Celeron и операционной системы Windows XP SP3.
Функциональные назначения: программа предназначена для использования в математических кружках.
Используемые технические средства: процессор типа Pentium Celeron (от Pentium II) и выше, объем оперативной памяти - 128 Мб, жесткий диск объемом не менее 100 Мб.
Вызов и загрузка программы выполняется как все exe- программы. Программа запускается без дополнительных параметров.
2.5 Тестирование программы
Delphi 7 обладает встроенным в редактор отладчиком, что помогает находить ошибки в коде и устранять их. При запуске компилятора в случае, если код неверен, появляется сообщение об ошибке и указывается, в какой именно строке она допущена. Кстати говоря, программирование в Delphi не требует отдельного компилятора. Равно как и других дополнительных программ. Delphi – самодостаточная система разработки программ, способная создать исполняемый файл -ехе. из того кода, который вы введёте. Как показывает практика, не многие знают даже об этом.
После подготовки кода программы (листинга) нужно попробовать выполнить ее, т.е. откомпилировать программу.
Для предотвращения ошибок в работе программы были предусмотрены ситуации, при которых пользователь мог бы ввести неправильное число в таблицу с элементами массива, либо не число вовсе. Чтобы не произошел выброс, были использованы механизм защищенного блока Try… Except, и процедура Abort. Abort вызывает скрытую исключительную ситуацию. Создается исключительная ситуация, но на экран компьютера не выводятся никакие сообщения об ошибке и выполнение текущего блока программы завершается.
А вот для того, чтобы на экран выводилось сообщение, в коде присутствуют MessageDlg и MessageBeep1. MessageDlg выводит на экран сообщение, MessageBeep сопровождает это сообщение звуковым сигналом.
Пример сообщения об ошибке приведен на рисунке три.
Рисунок 3 - Сообщение об ошибке при вводе данных.
В ходе дальнейшего тестирования были так же проверены результаты работы программы при введении правильного магического квадрата и при введении случайного набора чисел, не являющихся магическим квадратом. Снимки результатов представлены на рисунках 4 и 5.
Список литературы
1 Архангельский, А.Я. Программирование в Delphi [Текст]: учеб. пособие / А. Я. Архангельский. - М.: Бином, 2008. – 816 с. – ISBN 5-7989-0206-4
2 Голованов М. Создание компонентов в среде Delphi. Руководство разработчика [Текст] / М. Голованов, Е. Веселов. – С.-Пб.: BHV, 2004. – 420 с. – ISBN 5-94157-465-7
3 Иванова, Г.С. Объектно-ориентированное программирование [Текст]: Учеб. для вузов / Г.С. Иванова, Т.Н. Ничушкина, Е.К. Пугачев. - М.: Изд-во МГТУ им. Н.Э. Баумана, 2001. - 320 с. - ISBN 5-7038-1525-8
4 Климова Л.М. Delphi 7. Основы программирования. Решение типовых задач [Текст]: самоучитель / Л.М. Климова. – Кудиц-образ, 2006. – 480 с. – ISBN 5-9579-0034-6
5 Культин Н.Б. Основы программирования в Delphi [Текст] самоучитель/ Н.Б. Культин. С.-Пб.: BHV, 2010.-.- 448 с. – ISBN 5-9775-0519-2
6 Мельников, С.В. Delphi и Turbo Pascal на занимательных примерах [Текст] / С.В. Мельников. – С.-Пб.: BHV, 2006. – 448 с. – ISBN 5-94157-886-5
7 Рубенкинг, Нил Дж. Язык программирования Delphi для «чайников». Введение в Borland Delphi [Текст] / Нил .Дж. Рубенкинг. - М.: Диалектика, 2007. - 336 с. - ISBN 0-7645-0179-8
8 Хомоненко А.Д. В подлиннике. Delphi 7. 2-е изд. [Текст] / А.Д. Хомоненко. С.-Пб.: BHV, 2010. – 1136 с. – ISBN 5-9775-0425-6
9 Чеснокова, О.В. Учимся программировать на Delphi [Текст]: самоучитель / О. В. Чеснокова. - М.: НТ Пресс, 2008. – 368 с. – ISBN 5-477-01130-8
10 Чиртик А.А. Программирование в Delphi. Трюки и эффекты [Текст]: самоучитель / А.А. Чиртик. С.-Пб.: Питер, 2010. – 400 с. – ISBN 5-49807-118-3
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00493