4 ИНСТРУКЦИЯ ОПЕРАТОРУ

Разработанная программа представляет собой исполняемый файл Computers.exe размером 493 568 байт. В программе выполняется обработка типизированных файлов.

После запуска программы появляется окно, изображенное на рисунке 4.1.

Рисунок 4.1 – Главное окно программы

Главное меню содержит пункты:

- «Информация» (при нажатии запускается диалог с информацией о задании и разработчике, изображенный на рисунке 4.2);

- «Открыть файл» (при нажатии запускается диалог открытия файла, изображенный на рисунке 4.3)

- «Перенос» (при нажатии выполняются действия согласно заданию)

- «Сохранить результат» (при нажатии запускается диалог сохранения файла, изображенный на рисунке 4.4);

- «Выход» (закрывает программу)

Рисунок 4.2 – Информационное окно «Задание»

Рисунок 4.3 – Диалог открытия файла


Рисунок 4.4 – Диалог сохранения файла

В качестве примера введем некоторые данные о нескольких компьютерах и сохраним в файле, нажав на пункт меню «Сохранить как».

При помощи кнопок «Предыдущая запись» и «Следующая запись» можно перемещаться между записями о компьютерах. Если необходимо изменить данные о каком то компьютере, то необходимо перейти на запись о нем, изменить соответствующие данные в индивидуальных полях, а потом нажать на кнопку «Обновить». Запись этого компьютера в массиве будет изменена.

Для удаления записи следует нажать на кнопку «Удалить».

Для поиска нужно в требуемые поля написать данные запроса и нажать на кнопку «Поиск». Если записи по заданным критериям найдены, то информация об этих компьютерах будет выведена на форму.

Например, пусть критерием поиска будет имя ‘USER1 ’, а остальные поля оставим незаполненными. В результате будет выполнен поиск, выведены результаты, изображенные на рисунке 4.5. По результатам видно, что выводится компьютер с указанным именем.

Если мы хотим вновь отобразить содержимое обо всех введенных компьютерах, необходимо нажать на пункт главного меню Файл-> Показать. (см рисунок 4.6).

Рисунок 4.5 – Пример поиска

Рисунок 4.6 - Содержимое файла

Можно осуществить поиск по нескольким полям, например: выведем все компьютеры с объемом оперативной памяти 256 Мб и имеющих подключение к интернет. Пример запроса и результат приведен на рисунке 4.7.

Рисунок 4.7 – Результат поиска по нескольким полям


ВЫВОДЫ

Данный курсовой проект был выполнен в полном соответствии поставленному заданию и отлажен в среде DELPHI 7.0. В ходе выполнения курсовой работы была разработана программа для обработки типизированных файлов, а также создан визуальный интерфейс для создания и ведения базы о компьютерах предприятия.

В результате выполнения данной курсовой работы, я убедилась в широких возможностях языка программирования Object Pascal и среды проектирования Delphi 7.


Перечень ссылок

1.  Валентин Озеров «Советы по Delphi», 1999

2.  Зуев Е.А. Программирование на языке Turbo Pascal 6.0,7.0. – М.: Радио и связь, Веста, 1993.

3.  Фаронов В.В. Turbo Pascal 7.0. Начальный курс. - М.: Нолидж, 2000.

4.  Фаронов В.В. «DELPHI. Программирование на языке высокого уровня». – Питер, 2005.

5.  Дятченко Д.А. Методические указания к выполнению курсовой работы по дисциплине «Программирование и алгоритмические языки»– Северодонецк, 2005.


 
ПРИЛОЖЕНИЕ А

Алгоритм программы

Рисунок А.1 – Обработка событий главной формы программы

Рисунок А.2 – Открытие файла

типизированный файл программирование delphi


Рисунок А.3 – Алгоритм процедуры сохранения в файл

Рисунок А.4 – Алгоритм вывода содержимого массива AComp на форму


ПРИЛОЖЕНИЕ Б

Листинг программы

 

1.  unit Unit1;

2.  interface

3.  uses

4.  Windows, Messages, SysUtils, Variants, Classes, Graphics,

5.  Controls, Forms,Dialogs, Menus, StdCtrls, Buttons, ExtCtrls,

6.  Grids;

7.  type

8.  TForm1 = class(TForm)

9.  MainMenu1: TMainMenu;

10.  N1: TMenuItem;

11.  NOpen: TMenuItem;

12.  NSave: TMenuItem;

13.  NSaveAs: TMenuItem;

14.  NCreate: TMenuItem;

15.  N6: TMenuItem;

16.  NExit: TMenuItem;

17.  NInfo: TMenuItem;

18.  NShow: TMenuItem;

19.  SaveDlg: TSaveDialog;

20.  OpenDlg: TOpenDialog;

21.  Label1: TLabel;

22.  Label2: TLabel;

23.  Label3: TLabel;

24.  Label4: TLabel;

25.  Label9: TLabel;

26.  EHDD: TEdit;

27.  ERAM: TEdit;

28.  EMonitor: TEdit;

29.  RGrInet: TRadioGroup;

30.  EName: TEdit;

31.  SGrid1: TStringGrid;

32.  BBPrev: TBitBtn;

33.  BBNext: TBitBtn;

34.  BBDelete: TBitBtn;

35.  BBAdd: TBitBtn;

36.  BBUpdate: TBitBtn;

37.  BBSearch: TBitBtn;

38.  procedure FormCreate(Sender: TObject);

39.  procedure NCreateClick(Sender: TObject);

40.  procedure NOpenClick(Sender: TObject);

41.  procedure NShowClick(Sender: TObject);

42.  procedure NSaveClick(Sender: TObject);

43.  procedure NSaveAsClick(Sender: TObject);

44.  procedure NExitClick(Sender: TObject);

45.  procedure NInfoClick(Sender: TObject);

46.  procedure BBPrevClick(Sender: TObject);

47.  procedure BBNextClick(Sender: TObject);

48.  procedure BBUpdateClick(Sender: TObject);

49.  procedure BBAddClick(Sender: TObject);

50.  procedure BBDeleteClick(Sender: TObject);

51.  procedure BBSearchClick(Sender: TObject);

52.  private

53.  { Private declarations }

54.  public

55.  { Public declarations }

56.  end;

57.  TComp = record

58.  Name:string[20];

59.  HDD:real;

60.  RAM:integer;

61.  Monitor:string[20];

62.  Inet:boolean; {true - есть, false - нет}

63.  end;

64.  ATComp = array of TComp;

65.  var

66.  Form1: TForm1;

67.  F:file of TComp;

68.  Comp:TComp;

69.  AComp:ATComp;

70.  CurK:integer;

71.  Fname:string;

72.  implementation

73. 

74.  uses Unit2;

75. 

76.  {$R *.dfm}

77.  // поиск компьютера по имени

78.  Function GetComp(name:string;AComp:ATComp;var Comp:TComp):boolean;

79.  var i:integer;

80.  begin

81.  for i:=0 to Length(AComp)-1 do

82.  if AComp[i].Name = Name then

83.  begin

84.  Comp:=AComp[i];

85.  GetComp:=true;

86.  exit;

87.  end;

88.  GetComp:=false;

89.  end;

90.  // вывод информации об одном компьютерера из типизированного файла на экранную форму

91.  Procedure ShowComp(Comp:TComp);

92.  begin

93.  Form1.EName.Text:=Comp.Name;

94.  Form1.EHDD.Text:=FloatToStr(Comp.HDD);

95.  Form1.ERAM.Text:=IntToStr(Comp.RAM);

96.  if Comp.Inet then

97.  Form1.RgrInet.ItemIndex := 1

98.  else

99.  Form1.RgrInet.ItemIndex:=0;

100.  Form1.EMonitor.Text:=Comp.Monitor;

101.  end;

102.  // вывод информации о компьютере из типизированного файла в таблицу

103.  Procedure ShowCompInGrid(Comp:TComp;Sgr:TStringGrid;Row:integer);

104.  begin

105.  Sgr.Cells[0,Row]:=IntToStr(Row);

106.  Sgr.Cells[1,Row]:=Comp.Name;

107.  Sgr.Cells[2,Row]:=FloatToStr(Comp.HDD);

108.  Sgr.Cells[3,Row]:=IntToStr(Comp.RAM);

109.  Sgr.Cells[4,Row]:=Comp.Monitor;

110.  if Comp.Inet then

111.  Sgr.Cells[5,Row]:='есть'

112.  else

113.  Sgr.Cells[5,Row]:='нет';

114.  end;

115.  // вывод содержимого массива FComp в таблицу

116.  Procedure ShowAComp(AComp:ATComp;Sgr:TStringGrid);

117.  var i,ln:integer;

118.  begin

119.  ln:=Length(AComp);

120.  if ln = 0 then

121.  Sgr.RowCount:=2

122.  else

123.  Sgr.RowCount:=ln+1;

124.  SGr.FixedRows:=1;

125.  for i:=0 to LN-1 do

126.  ShowCompInGrid(AComp[i],Sgr,i+1);

127.  end;

128.  // добавление новой записи в массив

129.  procedure TForm1.BBAddClick(Sender: TObject);

130.  var

131.  k:integer;

132.  begin

133.  Comp.Name:=EName.Text;

134.  Comp.HDD:=StrToFloat(EHDD.Text);

135.  Comp.RAM:=StrToInt(ERAM.Text);

136.  Comp.Monitor:=EMonitor.Text;

137.  Comp.Inet:=RgrInet.ItemIndex = 1;

138.  //

139.  if GetComp(Comp.Name,AComp,Comp) then

140.  begin

141.  MessageBox(0,PAnsiChar(String('Ошибка! Запись компьютера с именем '+Comp.Name+' уже существует!')),'Ошибка',0);

142.  exit;

143.  end;

144.  k:=Length(AComp);

145.  SetLength(AComp,k+1);

146.  AComp[k]:=Comp;

147.  CurK:=k;

148.  ShowAComp(AComp,SGrid1);

149.  end;

150.  // переход на предыдущую запись массива

151.  procedure TForm1.BBPrevClick(Sender: TObject);

152.  begin

153.  curK:=CurK-1;

154.  if CurK<0 then CurK:=Length(AComp)-1;

155.  if CurK < Length(AComp) then

156.  ShowComp(AComp[CurK]);

157.  end;

158.  // переход на последующую запись массива

159.  procedure TForm1.BBNextClick(Sender: TObject);

160.  begin

161.  curK:=CurK+1;

162.  if CurK>=Length(AComp) then CurK:=0;

163.  if CurK < Length(AComp) then

164.  ShowComp(AComp[CurK]);

165.  end;

166.  // сохранение содержимого массива в типизированном файле

167.  procedure TForm1.NSaveClick(Sender: TObject);

168.  var i:integer;

169.  begin

170.  if Fname = '' then

171.  MessageBox(0,'Имя файла не задано!','Ошибка',0)

172.  else begin

173.  AssignFile(F,Fname);

174.  Rewrite(f);

175.  for i:=0 to Length(AComp)-1 do

176.  write(f,AComp[i]);

177.  CloseFile(F);

178.  end;

179.  end;

180.  // сохранение в содержимого массива в типизированном файле

181.  // с возможностью указания имени файла

182.  procedure TForm1.NSaveAsClick(Sender: TObject);

183.  var i:integer;

184.  begin

185.  if SaveDlg.Execute then

186.  begin

187.  Fname:=SaveDlg.FileName;

188.  AssignFile(F,Fname);

189.  Rewrite(f);

190.  for i:=0 to Length(AComp)-1 do

191.  write(f,AComp[i]);

192.  CloseFile(F);

193.  end;

194.  end;

195.  // открытие типизированного файла и вывод его содержимого на форму

196.  procedure TForm1.NOpenClick(Sender: TObject);

197.  var K:integer;

198.  begin

199.  if OpenDlg.Execute then

200.  begin

201.  Fname:=OpenDlg.FileName;

202.  AssignFile(F,Fname);

203.  ReSet(f);

204.  k:=0;

205.  SetLength(AComp,0);

206.  while not eof(f) do

207.  begin

208.  read(f,Comp);

209.  SetLength(AComp,k+1);

210.  AComp[k]:=Comp;

211.  k:=k+1;

212.  end;

213.  CloseFile(F);

214.  ShowAComp(AComp,SGRid1);

215.  end;

216.  end;

217.  // удаление текущей записи из массива записей AComp

218.  procedure TForm1.BBDeleteClick(Sender: TObject);

219.  var i,Ln:integer;

220.  begin

221.  Ln:=Length(AComp);

222.  for i:=CurK to Ln-2 do

223.  AComp[i]:=AComp[i+1];

224.  if Ln>0 then

225.  SetLength(AComp,Ln-1);

226.  if CurK<ln then

227.  ShowComp(AComp[CurK]);

228.  ShowAComp(AComp,SGrid1);

229.  end;

230.  // Создание нового массива записей

231.  procedure TForm1.NCreateClick(Sender: TObject);

232.  begin

233.  CurK:=0;

234.  SetLength(AComp,0);

235.  Fname:='';

236.  ShowAComp(AComp,SGrid1);

237.  end;

238.  // созание формы - формирование шапки таблицы

239.  procedure TForm1.FormCreate(Sender: TObject);

240.  begin

241.  SGrid1.Cells[0,0]:='№ п/п';

242.  SGrid1.Cells[1,0]:='Имя ПК';

243.  SGrid1.Cells[2,0]:='Объём памяти';

244.  SGrid1.Cells[3,0]:='Объём ОП';

245.  SGrid1.Cells[4,0]:='Тип монитора';

246.  SGrid1.Cells[5,0]:='Подключение к Internet';

247.  end;

248.  // чтение инофрмации из полей ввода и обновление

249.  // данных текцщей записи в массиве AComp

250.  procedure TForm1.BBUpdateClick(Sender: TObject);

251.  begin

252.  Comp.Name:=EName.Text;

253.  Comp.HDD:=StrToFloat(EHDD.Text);

254.  Comp.RAM:=StrToInt(ERAM.Text);

255.  Comp.Monitor:=EMonitor.Text;

256.  Comp.Inet:=RgrInet.ItemIndex = 1;

257.  //

258.  AComp[CurK]:=Comp;

259.  ShowCompInGrid(Comp,SGrid1,CurK+1);

260.  end;

261.  // ввод информации типизированного файла на форму

262.  procedure TForm1.NShowClick(Sender: TObject);

263.  var k:integer;

264.  begin

265.  AssignFile(F,Fname);

266.  ReSet(f);

267.  k:=0;

268.  SetLength(AComp,0);

269.  while not eof(f) do

270.  begin

271.  read(f,Comp);

272.  SetLength(AComp,k+1);

273.  AComp[k]:=Comp;

274.  k:=k+1;

275.  end;

276.  CloseFile(F);

277.  ShowAComp(AComp,SGRid1);

278.  end;

279.  // поиск записей, удовлетворяющих условию поиска

280.  procedure TForm1.BBSearchClick(Sender: TObject);

281.  var i,k:integer;

282.  Ares:ATComp;

283.  begin

284.  Comp.Name := EName.Text;

285.  if EHDD.Text = '' then

286.  Comp.HDD:=0

287.  else

288.  Comp.HDD:=StrtoFloat(EHDD.Text);

289.  if ERAM.Text = '' then

290.  Comp.RAM:=0

291.  else

292.  Comp.RAM:=StrtoInt(ERAM.Text);

293. 

294.  Comp.Monitor:=EMonitor.Text;

295.  Comp.Inet:=RgrInet.ItemIndex = 1;

296.  //

297.  k:=0;

298.  for i:=0 to Length(AComp) do

299.  if ((Comp.Name='')or(Pos(Comp.Name,AComp[i].Name)<>0))and

300.  ((Comp.HDD=0)or(Comp.HDD = AComp[i].HDD))and

301.  ((Comp.RAM=0)or(Comp.RAM = AComp[i].RAM))and

302.  ((Comp.Monitor='')or

303.  (Pos(Comp.Monitor,AComp[i].Monitor)<>0))and

304.  (Comp.Inet = AComp[i].Inet) then

305.  begin

306.  SetLength(Ares,k+1);

307.  Ares[k]:=AComp[i];

308.  k:=k+1;

309.  end;

310.  ShowAComp(Ares,SGrid1);

311.  end;

312.  // вывод информации о программе

313.  procedure TForm1.NInfoClick(Sender: TObject);

314.  begin

315.  AboutBox.ShowModal;

316.  end;

317.  // завершение работы приложения

318.  procedure TForm1.NExitClick(Sender: TObject);

319.  begin

320.  close;

321.  end;

322.  end.


 
ПРИЛОЖЕНИЕ В

 

Протокол выполнения программы

Созданная программа позволяет добавлять, редактировать и удалять записи, так же позволяет осуществлять поиск по нескольким полям.

При редактировании или удалении данных


Информация о работе «Разработка программы при помощи языка программирования языка Delphi»
Раздел: Информатика, программирование
Количество знаков с пробелами: 36935
Количество таблиц: 4
Количество изображений: 14

Похожие работы

Скачать
30480
4
10

... решения на каждый из вопросов, возможности пропустить некоторые вопросы, чтобы вернуться к ним и ответить на них в случае наличия времени и др. В результате выполнения данной курсовой работы, я убедилась в широких возможностях языка программирования Delphi 7. Перечень ссылок 1.  Валентин Озеров «Советы по Delphi», 1999 2.  Зуев Е.А. Программирование на языке Turbo Pascal 6. 0,7.0. – М.: ...

Скачать
44688
14
5

... . И хотя, используя недокументированные возможности и определённые ухищрения, всё это можно реализовать и на VB; пользоваться этими трюками гораздо сложнее, чем, например, на Delphi. 4. ПРАКТИЧЕСКАЯ РЕАЛИЗАЦИЯ ЗАДАЧ С ИСПОЛЬЗОВАНИЕМ ЯЗЫКА ПРОГРАММИРОВАНИЯ DELPHI   4.1 Задача 1. Примитивный калькулятор   1. Войдите в среду Delphi, дважды щелкнув мышью на пиктограмму Delphi или через меню “ ...

Скачать
73273
4
16

... выбрать имя в ListBox’e и нажать кнопку «OK», после чего выбранное имя автоматически отобразиться в окне получателя сообщения. Рис. 1.10. Выбор адресата получателя   Поиск компьютеров в локальной сети Приведём пример кода программы, реализующую поиск компьютеров в локальной сети Microsoft. procedure TForm4. Button1Click (Sender: TObject); var Q, BufferSize: DWord; R: THandle; Buf: ^ ...

Скачать
192006
8
14

... , и на практике 5NF не используется. Заметим, что зависимость соединения является обобщением как многозначной зависимости, так и функциональной зависимости. 4. РАЗРАБОТКА БАЗЫ ДАННЫХ 4.1 Предметная область базы данных База данных предназначена для хранения информации об электронных источниках литературы в виде файлов, упакованных в архивы. Файлы архивов физически располагаются на сервере ...

0 комментариев


Наверх