6. Если символ – разделитель то перейдем к алгоритму поиска заглавного символа в слове, иначе поместим этот символ в строковую переменную, которая будет хранить слово и вернемся к пункту 5.
7. Конец проверки по строкам
Алгоритм поверки слова:
1.Становимся на первый символ слова и проверяем его на сходство с множеством заглавных символов.
2.Если символ заглавный, то выдаем сообщение пользователю о нахождении заглавного символа и переходим к пункту 3, иначе переходим на следующий символ и заново выполняем пункт 2.
3.Если пользователь пожелает изменить данный заглавный символ то выполняем процедуру исправления заглавного символа на малый и переходим на следующий символ и к пункту 2, иначе просто переходим на следующий символ и к пункту 2.
4.Если проверенный символ является последним в слове то заканчиваем проверять слово и возвращаемся в предыдущую процедуру.
В конце следует проанализировать проверен файл полностью или нет и если полностью, то выдать сообщение об окончании проверки и о количестве исправленных символов.
Детальное описание разработанной программы, алгоритмов и их программной реализации приведено в последующих разделах.
3. ОПИСАНИЕ СТРУКТУРЫ ПРОГРАММЫ
В разделе описаний переменных описаны переменные, назначение которых приведено в таблице 3.1.
Таблица 3.1– Описание переменных программы
Наименование | Тип | Назначение |
FO,FS | TextFile | Переменная текстового файла исходного и результирующего |
tmpstr,str,strslovo | String | Строковые переменные для чтения из файла |
i,j | integer | Переменные счетчики для циклов |
count | integer | Переменная хранит количество исправленных символов |
answ | Word | Используется для определения ответа пользователя на вопрос об исправлении символа |
UpCh | set of char | Множество заглавных символов |
ZnCh | set of char | Множество символов разделителей слов |
OFName | String | Строка, в которой хранится путь к исходному файлу |
SFName | String | Строка, в которой хранится путь к результирующему файлу |
В программе приведено описание одной вспомогательной процедуры.
Процедура FormCreateвывода исходных значений в компоненты формы для корректного отображения формы в начале работы программы.
Процедура Button1Click для отрытия исходного файла и сохранения пути к нему.
Процедура Button2Click для отрытия результирующего файла и сохранения пути к нему.
Алгоритм выполнения основного тела программы приведен на рисунке А.1 в приложении А. Так в процедуре в первую очередь осуществляется привязка файла к файловой переменной и открытие текстового файла для чтения текстовой информации.
Затем производится чтение информации из файла построчно.
Затем в каждой строке выделяются слова.
Затем осуществляется поиск в выделенных словах заглавных символов.
Далее происходит запрос к пользователю об исправлении найденных символов.
Затем происходит запись в результирующий текстовый файл изменений.
В ходе выполнения работы использовались следующие операции работы с текстовыми файлами:
AssignFile (<Имя файловой переменной>,<Имя файла>);
Имя файла задается либо строковой константой, либо через переменную типа Sting. Имя файла должно соответствовать правилам работающей в данный момент операционной системы. Если строка имени пустая, то связь файловой переменной осуществляется со стандартным устройством ввода-вывода.
Reset (<Имя файловой переменной>);
Открывается файл для чтения из него информации, ему присваивается имя, заданное процедурой Assign.
После работы с файлом он, как правило, должен быть закрыт процедурой CloseFile (<Имя файловой переменной>). Вывод информации производит оператор WRITELN(f: TextFile;S: String). После его выполнения строка S заносится в конец файла, связанного с переменной f.
4. ОПИСАНИЕ ВХОДНЫХ ДАННЫХ
Исходными данными для выполнения является файл, который содержит заглавные символы.
Выходными данными являются:
- сообщение о завершении проверки файла на наличие в нем заглавных символов;
- сообщение о количестве исправленных символов;
- заполненный результирующий текстовый файл.
Разработанная программа представляет собой исполняемый файл Luchshev.exe размером 405 Кбайт. В программе реализован алгоритм проверки текстового файла на наличие в нем заглавных символов.
После запуска программы появляется окно, изображенное на рисунке 4.1.
Рисунок 4.1 – Главное окно программы
После этого пользователь должен задать путь к файлу. На рисунке 4.2 показан пример диалогового окна для открытия файла.
Рисунок 4.2 – Пример отскрытия исходного файла
Пример сообщения о нахождении заглавного символа приведен на рисунке 4.3.
Рисунок 4.3– Сообщение о нахождении заглавного символа
Пример окна с результатом проверки текстового файла приведен на рисунке 4.4.
Рисунок 4.4- Результирующее окно.
Результат проверки записывается в выбранный результирующий файл находящийся в выбранной директории.
Функционирование программы полностью соответствует заданию.
ВЫВОДЫ
Данная курсовая работа была выполнена в полном соответствии поставленному заданию и отлажена в среде Delphi 7.0. В ходе выполнения курсовой работы была разработана программа для проверки текстового файла.
В ходе выполнения курсового проекта были проведен - анализ технического задания и постановка задачи проектирования.
Были выделены функции, которыми должна обладать разрабатываемая программа.
Был разработан алгоритм программы, предназначенной для выполнения сформированных функций.
Согласно разработанному алгоритму была составлена и отлажена программа алгоритмическом языке программирования Delphi. В ходе разработки программы проводилось ее тестирование и отладка на тестовых наборах. Для написанной программы разработана инструкция оператора с указанием порядка выполняемых действий .
Результаты работы оформлены в виде пояснительной записки.
В ходе разработки программы были закреплены навыки работы:
- командами ввода-вывода как на экран, так и в текстовые файлы,
- использования процедур,
- команды обработки массивов,
- команды для реализации циклов с заданным числом повторений;
- команды проверки условий и реализации ветвлений.
В результате выполнения данной курсовой работы, мы убедились в широких возможностях языка программирования Delphi, закрепили практические навыки программирования в cреде Delphi.
Перечень ссылок
1. Зуев Е.А. Программирование на языке Delphi6.0,7.0. – М.: Радио и связь, Веста, 1993.
2. Фаронов В.В. Delphi7.0. Начальный курс. - М.: Нолидж, 2000.
ПРИЛОЖЕНИЕ ААлгоритм программы
Рисунок А.1 – Алгоритм программы
Рисунок А.2 – Алгоритм основной процедуры программы
ПРИЛОЖЕНИЕ Б
Листингпрограммы
1.unit Unit1;
2.interface
3.uses
4.Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
5.Dialogs, StdCtrls;
6.type
7.TForm1 = class(TForm)
8.Button1: TButton;
9.Button2: TButton;
10. OpenDialog1: TOpenDialog;
11. SaveDialog1: TSaveDialog;
12. Button3: TButton;
13. Label1: TLabel;
14. Label2: TLabel;
15. Label3: TLabel;
16. Label4: TLabel;
17. Button4: TButton;
18. procedure Button1Click(Sender: TObject);
19. procedure Button2Click(Sender: TObject);
20. procedure FormCreate(Sender: TObject);
21. procedure Button3Click(Sender: TObject);
22. procedure Button4Click(Sender: TObject);
23. private
24. { Private declarations }
25. public
26. { Public declarations }
27. end;
28. var
29. Form1: TForm1;
30. OFName,SFName:String;
31. implementation
32. {$R *.dfm}
33. procedure TForm1.Button1Click(Sender: TObject);
34. begin
35. if OpenDialog1.Execute then
36. OFName:=OpenDialog1.FileName;
37. if OFName<>'' then begin
38. Button1.Enabled:=False;
39. Button2.Visible:=True;
40. Label1.Caption:='Путь к файлу для проверки: '+OFName;
41. Label2.Visible:=True;
42. Label2.Caption:='Нажмите на кнопку "Сохранить" и выберите файл для хранения результатов проверки';
43. end;
44. end;
45. procedure TForm1.Button2Click(Sender: TObject);
46. var
47. b:boolean;
48. begin
49. b:=false;
50. if SaveDialog1.Execute then
51. SFName:=SaveDialog1.FileName;
52. if Pos('.txt',SFName)=0 then SFName:=SFName+'.txt';
53. ifSFName=OFNamethen
54. ShowMessage('Выберите другой файл для сохранения результата')
55. else
56. b:=true;
57. if (SFName<>'') and (b) then begin
58. Button2.Enabled:=False;
59. Label2.Caption:='Путь к результирующему файлу: '+SFName;
60. Button3.Visible:=True;
61. Label3.Visible:=True;
62. Label3.Caption:='Для начала проверки нажмите на кнопку "Проверить"';
63. end;
64. end;
65. procedure TForm1.FormCreate(Sender: TObject);
66. begin
67. Button2.Visible:=False;
68. Label2.Visible:=False;
69. Button3.Visible:=False;
70. Label3.Visible:=False;
71. Button4.Visible:=False;
72. Label4.Visible:=False;
73. Label1.Caption:='Нажмите на кнопку "Открыть" и выберите файл для проверки';
74. end;
75. procedure TForm1.Button3Click(Sender: TObject);
76. var
77. FO,FS:TextFile;
78. i,j,count:integer;
79. str,strslovo,tmpstr:String;
80. ZnCh,UpCh:set of Char;
81. answ:Word;
82. begin
83. count:=0;
84. ZnCh:=['.',',','!','?'];
85. UpCh:=['A'..'Z','А'..'Я'];
86. AssignFile(FO,OFName);
87. AssignFile(FS,SFName);
88. {$I-}
89. Reset(FO);
90. {$I+}
91. if IOResult<>0 then begin
92. ShowMessage('Произошли проблемы с открытием файла. Программа будет завершена');
93. Exit;
94. end