МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РОССИЙСКОЙ ФЕДЕРАЦИИ
Омский государственный технический университет
Кафедра Информатики и вычислительной техники
КУРСОВОЙ ПРОЕКТ
на тему: Компьютерные гороскопы
по дисциплине «Алгоритмические языки и программирование»
Студент Пенькова Татьяна Владимировна группы В-114
Пояснительная записка
Шифр проекта
Руководитель проекта
Шафеева О. П.
(подпись, дата)
Разработал студент
(подпись, дата)
Омск 2005.
Оглавление
-
Анализ задания, формулировка задач и основные характеристики программы
-
Разработка алгоритмов
2.1 Фильтрация входных данных
2.2 Поиск нужного файла
2.3 Сохранение файла
2.4 Печать файла
-
Особенности разработки программы
-
Инструкции пользователя
-
Результаты тестирования
-
Заключение
-
Библиографический список
-
Приложения
Анализ задания, формулировка задач и основные характеристики программы
Программа должна выполнять следующие функции:
-
Производить поиск запрашиваемой информации
-
Обеспечивать сохранение найденных данных в виде текстового файла в формате RTF
Данный формат выбран потому, что он имеет широкие возможности форматирования текста. Информация из такого файла может быть прочитана без потерь содержания и форматирования практически любым текстовым редактором, например Word.
-
Производить печать уже найденной информации
Разработка алгоритмов Фильтрация входных данных
Во избежание ошибок при вводе в программе введен запрет на ввод цифр, символов высшего регистра, букв латинского алфавита, пробелов, точек, запятых и т.д. Также во избежание несанкционированного изменения полученных данных существует ограничение на редактирование. Алгоритм процедуры осуществляющей такой контроль представлен ниже.
Поиск нужного файла
Схема алгоритма осуществляющего поиск запрошенной информации представлен ниже.
Сохранение файла
Для осуществления функции сохранения документа используется метод SaveToFile. При этом имя файла и раздел, в который необходимо сохранять информацию указывается пользователем. Алгоритм реализовывающий сохранение файла представлен ниже.
Печать файла
Для осуществления функции печати документа используется метод Print. При этом используется принтер установленный по умолчанию. Алгоритм реализовывающий печать файла представлен ниже.
Особенности разработки программы
Для программной реализации вышеуказанных алгоритмов выбрана среда программирования Delphi 7. Программа занимает 3324 Кб в оперативной памяти.
Инструкция пользователя.
Для запуска программы необходимо запустить на выполнение файл project1.exe. По запросу программы ввести знак зодиака. Результаты поиска просматриваются в отдельном окне. К программе подключаются дополнительные модули Unit1, Unit2, Unint3.
Результаты тестирования.
Программа протестирована при всех возможных входных данных.
Входные данные |
Ожидаемый результат |
Полученный результат |
1234<пробел> |
Бездействие программы (символ не вводится) |
Бездействие программы (символ не вводится) |
.:;()№» |
Бездействие программы (символ не вводится) |
Бездействие программы (символ не вводится) |
оброп |
Предусмотренное сообщение об ошибке ввода |
Предусмотренное сообщение об ошибке ввода |
FGHGJHG |
Бездействие программы (символ не вводится) |
Бездействие программы (символ не вводится) |
Asdfdf |
Бездействие программы (символ не вводится) |
Бездействие программы (символ не вводится) |
Овен |
Загрузка информации |
Загрузка информации |
Заключение
В результате выполнения курсового проекта была разработана программа – справочник «Гороскоп 2005», позволяющая сохранять и распечатывать найденную информацию.
Библиографический список
-
Основы Delphi. Профессиональный подход. Учебное пособие/ М. В. Сухарев – Наука и техника – 2005 – 596
-
Основы алгоритмизации и программирования: Метод. указания/ сост. О. П. Шафеева – Омск, изд-во ОмПи 2000 – 32
Текст программы
Модуль главной формы.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, jpeg, ExtCtrls, StdCtrls,Unit2,Unit3;
type
TForm1 = class(TForm)
Image1: TImage;
Image2: TImage;
Image3: TImage;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Edit1: TEdit;
Button1: TButton;
procedure Button1Click(Sender: TObject);
procedure Edit1KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procedure TForm1.Button1Click(Sender: TObject);
var s:string;
a:integer;
begin
s:=edit1.Text;
if s='овен' then a:=1
else if s='телец' then a:=2
else if s='близнецы' then a:=3
else if s='рак' then a:=4
else if s='лев' then a:=5
else if s='дева' then a:=6
else if s='весы' then a:=7
else if s='скорпион' then a:=8
else if s='стрелец' then a:=9
else if s='козерог' then a:=10
else if s='водолей' then a:=11
else if s='рыбы' then a:=12
else begin
form3.Label2.Caption:='Ошибка ввода. Попытайтесь еще раз';
form3.Visible:=true;
beep;
end;
if a=1 then
begin
form2.RichEdit1.Lines.LoadFromFile('..\text\oven.rtf');
form2.Image1.Picture.LoadFromFile('..\pic\aries_1024.jpg');
form2.Visible:=true;
end;
if a=2 then
begin
form2.RichEdit1.Lines.LoadFromFile('..\text\telec.rtf');
form2.Image1.Picture.LoadFromFile('..\pic\tauro_1024.jpg');
form2.Visible:=true;
end;
if a=3 then
begin
form2.RichEdit1.Lines.LoadFromFile('..\text\blizneci.rtf');
form2.Image1.Picture.LoadFromFile('..\pic\geminis_1024.jpg');
form2.Visible:=true;
end;
if a=4 then
begin
form2.RichEdit1.Lines.LoadFromFile('..\text\rak.rtf');
form2.Image1.Picture.LoadFromFile('..\pic\cancer_1024.jpg');
form2.Visible:=true;
end;
if a=5 then
begin
form2.RichEdit1.Lines.LoadFromFile('..\text\leo.rtf');
form2.Image1.Picture.LoadFromFile('..\pic\leo_1024.jpg');
form2.Visible:=true;
end;
if a=6 then
begin
form2.RichEdit1.Lines.LoadFromFile('..\text\deva.rtf');
form2.Image1.Picture.LoadFromFile('..\pic\virgo_1024.jpg');
form2.Visible:=true;
end;
if a=7 then
begin
form2.RichEdit1.Lines.LoadFromFile('..\text\vesi.rtf');
form2.Image1.Picture.LoadFromFile('..\pic\libra_1024.jpg');
form2.Visible:=true;
end;
if a=8 then
begin
form2.RichEdit1.Lines.LoadFromFile('..\text\skorpion.rtf');
form2.Image1.Picture.LoadFromFile('..\pic\scorpio_1024.jpg');
form2.Visible:=true;
end;
if a=9 then
begin
form2.RichEdit1.Lines.LoadFromFile('..\text\strelec.rtf');
form2.Image1.Picture.LoadFromFile('..\pic\sagitario_1024.jpg');
form2.Visible:=true;
end;
if a=10 then
begin
form2.RichEdit1.Lines.LoadFromFile('..\text\kozerog.rtf');
form2.Image1.Picture.LoadFromFile('..\pic\capricornio_1024.jpg');
form2.Visible:=true;
end;
if a=11 then
begin
form2.RichEdit1.Lines.LoadFromFile('..\text\vodoley.rtf');
form2.Image1.Picture.LoadFromFile('..\pic\acuario_1024.jpg');
form2.Visible:=true;
end;
if a=12 then
begin
form2.RichEdit1.Lines.LoadFromFile('..\text\ribi.rtf');
form2.Image1.Picture.LoadFromFile('..\pic\piscis_1024.jpg');
form2.Visible:=true;
end;
end;
procedure TForm1.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
case key of
'A'..'Z':key:=#0;
'А'..'Я':key:=#0;
'!'..'/':key:=#0;
'1'..'9':key:=#0;
':'..'?':key:=#0;
'['..'_':key:=#0;
end;
end;
end.