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. ОПИСАНИЕ ВХОДНЫХ ДАННЫХ
Исходными данными для выполнения является файл, который содержит заглавные символы.
5. ОПИСАНИЕ ВЫХОДНЫХ ДАННЫХ
Выходными данными являются:
- сообщение о завершении проверки файла на наличие в нем заглавных символов;
- сообщение о количестве исправленных символов;
- заполненный результирующий текстовый файл.
6. ИНСТРУКЦИЯ ОПЕРАТОРУ
Разработанная программа представляет собой исполняемый файл 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. Зуев Е.А. Программирование на языке Delphi 6.0,7.0. – М.: Радио и связь, Веста, 1993.
2. Фаронов В.В. Delphi 7.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. if SFName=OFName then
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
95. else begin
96. Rewrite(FS);
97. while not Eof(FO) do begin
98. Readln(FO,str);
99. strslovo:='';
100. for i:=1 to Length(str) do begin
101. if (str[i] in ZnCh) or (str[i]=' ') then begin
102. for j:=1 to Length(strslovo) do begin
a. if strslovo[j] in UpCh then begin
b. answ:=MessageDlg('В слове "'+strslovo+'" найдена заглавная буква "'+strslovo[j]+'". Заменить ее на малую?',mtInformation,[mbYes,mbNo],0);
c. if answ=mrYes then begin
i. tmpstr:=strslovo[j];
ii. tmpstr:=AnsiLowerCase(tmpstr);
iii. Delete(strslovo,j,1);
iv. Insert(tmpstr,strslovo,j);
v. inc(count);
d. end;
e. end;
103. end;
104. Write(FS,strslovo+str[i]);
105. strslovo:='';
106. end
107. else
108. strslovo:=strslovo+str[i];
109. end;
110. Writeln(FS,'');
111. end;
112. CloseFile(FO);
113. CloseFile(FS);
114. Label3.Caption:='Проверка файла завершена. Исправлено '+IntToStr(count)+' заглавных букв.';
115. Button3.Enabled:=False;
116. Button4.Visible:=True;
117. Label4.Visible:=True;
118. end;
119. end;
120. procedure TForm1.Button4Click(Sender: TObject);
121. begin
122. OFName:='';
123. SFName:='';
124. Button1.Enabled:=True;
125. Button2.Visible:=False;
126. Button2.Enabled:=True;
127. Button3.Visible:=False;
128. Button3.Enabled:=True;
129. Button4.Visible:=False;
130. Label2.Visible:=False;
131. Label3.Visible:=False;
132. Label4.Visible:=False;
133. Label1.Caption:='Нажмите на кнопку "Открыть" и выберите файл для проверки';
134. end;
135. end.
136.
|
Результаты решения программы
Результатом решения программы можно считать сообщение об исправленных заглавных буквах и результирующий файл с записанной в него информацией.
... в четвертом разделе. Алгоритмы процедур приведены в приложении А. Листинг программы содержится в приложении Б. Результат тестового запуска приведен в приложении В. Программа разработана с использованием языка Delphi. УСЛОВНЫЙ ОПЕРАТОР, ДИАЛОГ С ПОЛЬЗОВАТЕЛЕМ, РАБОТА С ВАРИАЦИЯМИ ОТВЕТОВ, ВЫЧИСЛЕНИЕ БАЛЛА НА ОСНОВАНИИ ПОЛУЧЕННЫХ РЕЗУЛЬТАТОВ ВВЕДЕНИЕ Данный курсовой проект был разработан ...
... курс. - М.: Нолидж, 2000. 4. Фаронов В.В. «DELPHI. Программирование на языке высокого уровня». – Питер, 2005. 5. Дятченко Д.А. Методические указания к выполнению курсовой работы по дисциплине «Программирование и алгоритмические языки»– Северодонецк, 2005. ПРИЛОЖЕНИЕ А Алгоритм программы Рисунок А.1 – Обработка событий главной формы программы Рисунок А.2 – ...
... // ... if(condition1) { j = 4; goto label1; } // ... for(j = 0; j < 10; j++) { // ... label1: // ... if(condition2) { i = 6; goto label2; } } // ... label2: // ... } 2.2 Разработка программы В среде программирования Borland Delphi создадим новое приложение (пункт меню File New Application). ...
... . В начале своего появления сканеры взаимодействовали с программами посредством уникального для каждой модели сканера интерфейса, что серьезно затрудняло включение поддержки работы со сканером в прикладные программы. Для решения этой проблемы был разработан TWAIN - индустриальный стандарт интерфейса программного обеспечения для передачи изображений из различных устройств в Windows и Macintosh. ...
0 комментариев