Компьютерные комплектующие
Общая характеристика программы "Компьютерные комплектующие", знакомство с основным предназначением. Анализ особенностей инструментальной среды разработки приложений Delphi 6.0, реализующей современные подходы к программированию, рассмотрение возможностей.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | контрольная работа |
Язык | русский |
Дата добавления | 07.08.2013 |
Размер файла | 1,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Компьютерные комплектующие
Введение
Сегодня на рынке программных продуктов очень большое распространение получили различного рода программы, которые заменяют довольно привычные для нас вещи: учебники, прайс-листы, игры и т.д., причем во многих случаях использование таких программ дает большие результаты, чем традиционные средства.
В ходе курсового проектирования как раз и ставилась задача разработки программы такого рода.
Программа позволяет найти необходимые компьютерные комплектующие по заданным параметрам и по минимальной цене. Список выбранных комплектующих можно сохранить и вывести на печать.
Программа обладает развитым графическим интерфейсом. С данной программой могут работать пользователи различной квалификации.
Приложение создано в инструментальной среде разработки приложений Delphi 6.0, реализующей современные подходы к программированию: объектно-ориентированный подход и визуальные средства быстрой разработки приложений.
В данной пояснительной записке описывается разработанная программа.
компьютерный программирование инструментальный среда
1. Анализ постановки задачи
1.1 Постановка задачи
Разрабатываемая программа является приложением базы данных компьютерных комплектующих. Программа должна обеспечивать ввод, редактирование и просмотр данных. В программу должны входить отдельные таблицы для:
А) микропроцессоры указанных тактовой частоты, модели, фирмы;
Б) материнские платы указанных модели, фирмы;
В) жесткие диски указанных объема памяти, скорости, фирмы;
Г) видео карты указанных объема памяти, фирмы;
Д) дисководы CD-ROM указанных скорости, фирмы;
Е) мониторы указанных размера диагонали, модели, фирмы;
Ж) магазины;
З) фирмы;
И) продавцы.
1.2 Уточнение задачи
Структура базы данных должна содержать перечень фирм, магазинов и продавцов в отдельных таблицах. Для связи таблиц должны использоваться поля просмотра и соответствующие элементы управления для обеспечения ввода и редактирования данных. Элементы интерфейса должны быть снабжены всплывающими подсказками.
2. Техническое задание
2.1 Основание для разработки
Разработка программы ведется на основании задания на курсовое проектирование по дисциплине «Алгоритмические языки и программирование».
Дата выдачи задания: _________
Тема разработки: Компьютерные комплектующие.
2.2 Назначение разработки
Данная программа позволяет быстро и просто найти необходимые компьютерные комплектующие.
2.3 Требования к программе
2.3.1 Требования к функциональным характеристикам
Интерфейс программы должен быть достаточно приятный и удобный при использовании данной программы. В освоении программа должна быть достаточно простой.
В данной программе должен содержаться ряд функций: просмотр, исправление и добавление данных, поиск необходимых комплектующих по заданным параметрам, сохранение списка комплектующих и вывод на печать.
2.3.2 Требования к надежности
Основное требование к надежности программы заключается в правильности работы алгоритма программы.
2.3.3 Требования к составу и параметрам технических средств
В качестве технического средства будут использоваться IBM -- совместимые ПЭВМ. Предполагается использовать операционную систему Windows не ниже 95. Программа должна быть разработана в среде Delphi 6.
2.4 Требования к программной документации
Пояснительная записка должна содержать следующие разделы:
- задание на курсовое проектирование,
- ведение,
- анализ постановки задачи,
- техническое задание,
- описание программы,
- порядок и методика испытаний,
- описание применения,
- заключение,
- список использованных источников,
- приложения.
2.5 Стадии и этапы разработки
Стадии и этапы разработки программы приведены в таблице 1.
Таблица 1
Cодержание работ |
сроки |
|
согласование ИД с руководителем |
15.10.2005 |
|
разработка программы |
с 5.11.2005 |
|
отладка программы приложения и испытания системы |
25.10.2005 |
|
написание пояснительной записки |
12.12.2005 |
2.6 Порядок контроля и приёмки
Для тестирования данной программы следует проверить её на работоспособность. Данный процесс можно осуществить проведением последовательности определённых операций, охватывающих все функциональные возможности программы. Порядок проверки приведён в п.5.
3. Описание метода решения
В соответствии с требованиями к функциональным характеристикам программы можно привести следующий алгоритм решения задачи:
1. создание связанных таблиц базы данных по указанным комплектующим;
2. создание удобного пользовательского интерфейса;
3. введения параметров для поиска необходимого комплектующего;
4. вывод результатов поиска;
5. сохранение списка комплектующих и вывод на печать;
6. сервисные возможности:
- вызов помощи;
- просмотр, редактирование и добавления данных в списки фирм и магазинов;
- выход из программы.
4. Описание программы
4.1 Общие сведения и используемые технические средства
Программа разработана в среде визуального программирования Delphi 6. Исполняемый файл - pPricelist.exe. Для функционирования программы необходим IBM-совместимый компьютер с операционной системой Windows не ниже 95.
4.2 Функциональное назначение
Данная программа позволяет быстро и просто найти необходимые компьютерные комплектующие.
4.3 Описание структуры программы
Текст программы приведен в приложении А.
Программа представляет из себя определенную группу объектов со своими событиями. В процессе работы программы, по мере использования того или иного объекта, активизируется событие, принадлежащее этому объекту, и выполняется последовательность действий (или одно действие), указанных в нем.
Все объекты компонентов размещаются в объектах - формах. Для каждой формы создается отдельный модуль, в котором осуществляется программирование задачи. В основном все алгоритмы, помещенные в обработчиках событий объектов, сводятся к обработке свойств различных объектов, при этом происходит постоянное обращение к их методам.
Структуру разработанной программы можно представить следующим образом:
На самом верхнем уровне располагается главный проектный файл pPricelist.dpr. В нем происходит создание всех форм приложения и запуск самого приложения.
Затем идет основной модуль программы uPricelist.pas, который описывает основное окно программы.
Из основного окна программы уже можно вызывать все остальные окна (или обращаться к их данным), описанные модулями:
а) uMagfirm.Pas
б) uAbout.Pas
в) uDM.Pas
г) uComputer.pas
д) uSale.pas
е) uSellers.pas
4.4 Спецификация модулей программы
Рассмотрим подробно каждый модуль.
Модуль uPricelist относится к форме MainForm. Его текст содержится в файле uPricelist.pas. В нем описаны следующие процедуры:
procedure sProcClick(Sender: TObject) - процедура запуска поиска процессора по заданным параметрам;
procedure sMatboardClick(Sender: TObject) - процедура запуска поиска материнской платы по заданным параметрам;
procedure sHardClick(Sender: TObject) - процедура запуска поиска жесткого диска по заданным параметрам;
procedure sVideoClick(Sender: TObject) - процедура запуска поиска видео карты по заданным параметрам;
procedure sCDROMClick(Sender: TObject) - процедура запуска поиска CD-ROM по заданным параметрам;
procedure sMonitorClick(Sender: TObject) - процедура запуска поиска монитора по заданным параметрам;
procedure acMagfirmExecute(Sender: TObject) - процедура вызова окна для редактирования списка фирм и магазинов;
procedure acAboutExecute(Sender: TObject) - процедура вызова окна справки;
procedure FormActivate(Sender: TObject) - процедура подключения базы данных для редактирования;
procedure FormClose(Sender: TObject; var Action: TCloseAction) процедура закрытия базы данных для редактирования;
procedure acExitExecute(Sender: TObject) - процедура закрытия программы;
procedure btProcAddClick(Sender: TObject) - процедура добавления комплектующего в список;
procedure acComputerExecute(Sender: TObject) - процедура вызова окна списка выбранных комплектущих;
procedure acSellersExecute(Sender: TObject) - процедура вызова окна списка продавцов;
procedure acHistoryExecute(Sender: TObject) - процедура вызова окна истории продаж;
Модуль uMagfirm относится к форме Magfirm. Его текст содержится в файле uMagfirm.pas. В нем описаны следующие процедуры:
procedure Button1Click(Sender: TObject) - процедура закрытия формы.
Модуль uAbout относится к форме About. Его текст содержится в файле u uAbout.pas. В нем описаны следующие процедуры:
procedure Button1Click(Sender: TObject) - процедура закрытия формы.
Модуль uDM относится к форме uDM. Его текст содержится в файле u uDM.pas. В нем содержатся Data modules базы данных.
Модуль uComputer относится к форме Computer. Его текст содержится в файле uComputer.pas. В нем описаны следующие процедуры:
procedure FormCreate(Sender: TObject) - процедура установки начальных настроек;
procedure btPrintClick(Sender: TObject) - процедура вывода списка комплектующих на печать;
procedure FormActivate(Sender: TObject) - процедура установки начальных настроек;
procedure btSaveClick(Sender: TObject) - процедура сохранения списка комплектующих.
Модуль uSale относится к форме Sale. Его текст содержится в файле uSale.pas. В нем описаны следующие процедуры:
procedure btCloseClick(Sender: TObject) - процедура закрытия окна.
Модуль uSellers относится к форме Sellers. Его текст содержится в файле uSellers.pas. В нем описаны следующие процедуры:
procedure btCloseClick(Sender: TObject) - процедура закрытия окна.
4.5 Входные данные
Входными данными являются параметры поиска необходимого комплектующего.
4.6 Выходные данные
Выходными данными является запись базы данных, которая найдена по заданным параметрам поиска, список комплектующих. Также к выходным данным можно отнести окно справки.
5. Порядок и методика испытаний
5.1 Объект испытаний и требования к программе
Объектом испытаний является программа «Компьютерные комплектующие». Исходные коды расположены в каталоге «Компьютерные комплектующие». Исполняемый файл - pPricelist.exe.
5.2 Цель испытаний
Испытания проводятся с целью проверки правильности выполнения программой ее функций.
5.3 Методы испытаний
Испытание программы осуществляется при её непосредственной работе. Правильность работы программы устанавливается в соответствии с требованиями, установленными при разработке данной программы.
5.4 Средства и порядок испытаний
Для проведения испытаний нужен РС типа IBM стандартной комплектации и файл, содержащий проверяемую программу.
Для тестирования программы необходимо запустить файл pPricelist.exe. На экране должна появиться форма представленная на рисунке Б.1. Далее необходимо на закладке «Процессоры» ввести в поле «Модель» - «A-XP», в поле «Тактовая частота (Гц)» - 2700, в поле выбора «Фирма производитель» выбрать фирму «AMD». Затем при нажатии кнопки Поиск через некоторое время курсор в списке комплектующих должен указать на найденную запись базы данных. Эта запись должна содержать следующие данные: необходимый процессор есть в магазине «Компьютерный центр», стоимость его равна 4018 рублей. Цена найденного процессора минимальна из имеющихся в базе данных (рис. Б.1). Для занесения в список комплектующих нажмем кнопку «Добавить». После добавления всех необходимых комплектующих нажмем кнопку «Компьютер». В открывшемся окне нажмем кнопку «Сохранить» для сохранения списка (рис. Б.2). Для вывода в Excel и печати выберем из списка продавца и нажмем кнопку «Печать» (рис. Б.3).
Аналогичные проверяем поиск на всех закладках, вводя соответствующие параметры поиска. Редактирование списков производится с помощью навигационной панели.
Для редактирования списка магазинов или фирм нажимаем кнопку «Магазины и фирмы» или выбираем соответствующий пункт меню. Редактирование списков производится с помощью навигационной панели. Аналогично можно редактировать список продавцов.
Для просмотра истории продаж необходимо нажать кнопку «История продаж».
5.5 Результат тестирования
На основе данных, полученных в результате тестирования, установлена правильность работы программы
В приложении Б приведен результат работы программы.
6. Описание применения
6.1 Назначение программы
Данная программа позволяет быстро и просто найти необходимые компьютерные комплектующие.
6.2 Условия применения
Программа предназначена для работы на персональных компьютерах типа IBM стандартной конфигурации.
Для вызова программы на выполнение необходимо с помощью команд операционной системы компьютера сделать в качестве текущего каталог, в котором расположен файл pPricelist.exe, и запустить его на выполнение. Размер этого файла составляет 1,09 Мбайта.
Для применения программы нужен РС типа IBM стандартной комплектации с операционной системой Windows не ниже 95 и файл, содержащий проверяемую программу, а также файлы базы данных.
Для начала работы необходимо инициализировать файл pPricelist.exe. На экране должна появиться форма представленная на рисунке В.1.
Для начала работы надо выбрать закладку с интересующими комплектующими. Затем ввести необходимые параметры и нажать кнопку «Поиск».
В данной программе предусмотрены некоторые необходимые элементы:
а) поиск комплектующих производится по следующему критерию: если в базе данных есть несколько записей об искомом комплектующем, то программа выбирает тот, у которого цена минимальна;
каждому комплектующему соответствует отдельная таблица базы данных;
б) Вы можете редактировать списки комплектующих, а также списки магазинов и фирм;
в) каждому комплектующему соответствует отдельная таблица базы данных.
г) составления списка комплектующих и вывод в Excel.
Для выхода из программы в меню "Файл" выберите пункт "Выход" и щелкните на нем левой кнопкой мыши. Также можно выйти из программы обычным щелчком левой кнопкой мыши на крестике в верхнем правом углу или иными другими способами, которые Вы знаете.
Заключение
В ходе выполнения курсового проекта мною была выполнена следующая работа:
- разработан проект «Компьютерные комплектующие»;
- приложение было протестировано и отлажено.
Результаты тестирования совпали с ожидаемыми, на основании чего можно сделать вывод о том, что программа работает правильно.
Список использованных источников
1. Гофман В.Э., Хомоненко А.Д. Delphi 6 .- СПб.:»БХВ-Петербург», 2002. - 1152с.
2. Турбо Паскаль 7.0 - К.: Издательская группа BHV, 2000. - 432с.
Приложения
Приложение А
Текст программы
unit uPricelist;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, Grids, DBGrids, StdCtrls,uDM, ExtCtrls, DBCtrls,
ToolWin, ActnMan, ActnCtrls, ActnMenus, ActnList;
type
TMainForm = class(TForm)
PageControl1: TPageControl;
TabSheet1: TTabSheet;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
TabSheet4: TTabSheet;
TabSheet5: TTabSheet;
TabSheet6: TTabSheet;
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
DBGrid3: TDBGrid;
DBGrid4: TDBGrid;
DBGrid5: TDBGrid;
DBGrid6: TDBGrid;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
GroupBox4: TGroupBox;
GroupBox5: TGroupBox;
GroupBox6: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Label8: TLabel;
Label9: TLabel;
Label10: TLabel;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
Label15: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
sProc: TButton;
sMatboard: TButton;
sHard: TButton;
sVideo: TButton;
sCDROM: TButton;
sMonitor: TButton;
Button7: TButton;
DBNavigator1: TDBNavigator;
DBNavigator2: TDBNavigator;
DBNavigator3: TDBNavigator;
DBNavigator4: TDBNavigator;
DBNavigator5: TDBNavigator;
DBNavigator6: TDBNavigator;
DBLookupComboBox1: TDBLookupComboBox;
DBLookupComboBox2: TDBLookupComboBox;
DBLookupComboBox3: TDBLookupComboBox;
DBLookupComboBox4: TDBLookupComboBox;
DBLookupComboBox5: TDBLookupComboBox;
DBLookupComboBox6: TDBLookupComboBox;
ComboBox1: TComboBox;
ComboBox2: TComboBox;
ComboBox3: TComboBox;
ComboBox4: TComboBox;
ActionMainMenuBar1: TActionMainMenuBar;
ActionManager1: TActionManager;
acExit: TAction;
acMagfirm: TAction;
acAbout: TAction;
btProcAdd: TButton;
btComputer: TButton;
btMatAdd: TButton;
btVideoAdd: TButton;
btCDAdd: TButton;
btMonAdd: TButton;
btHardAdd: TButton;
acComputer: TAction;
btSellers: TButton;
btHistory: TButton;
acSellers: TAction;
acHistory: TAction;
procedure sProcClick(Sender: TObject);
procedure sMatboardClick(Sender: TObject);
procedure sHardClick(Sender: TObject);
procedure sVideoClick(Sender: TObject);
procedure sCDROMClick(Sender: TObject);
procedure sMonitorClick(Sender: TObject);
procedure acMagfirmExecute(Sender: TObject);
procedure acExitExecute(Sender: TObject);
procedure acAboutExecute(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure btProcAddClick(Sender: TObject);
procedure acComputerExecute(Sender: TObject);
procedure acSellersExecute(Sender: TObject);
procedure acHistoryExecute(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
MainForm: TMainForm;
implementation
uses uMagfirm, DB, uAbout, uComputer, uSellers, uSale;
{$R *.dfm}
//Процедура поиска процессора с наименьшей ценой
procedure TMainForm.sProcClick(Sender: TObject);
var i,n,min:integer;
flag:boolean;
begin
flag:=false;
min:=0;
n:=0;
DM.tProc.First;
While (flag<>true) and (not DM.tProc.Eof) do begin
If (DM.tProcModel.AsString=Edit1.Text) and
(DM.tProcFreq.AsInteger=StrToInt(Edit2.Text)) and
(DM.tProcFirm.AsString=DBLookupComboBox1.Text) then begin
flag:=true;
min:=DM.tProcPrice.AsInteger;
n:=DM.tProc.RecNo;
end;
DM.tProc.Next;
end;
If not flag then MessageDlg('Запись не найдена!',mtInformation,[mbOK],0)
else begin
DM.tProc.First;
For i:=1 to DM.tProc.RecordCount do begin
If (DM.tProcModel.AsString=Edit1.Text) and
(DM.tProcFreq.AsInteger=StrToInt(Edit2.Text)) and
(DM.tProcFirm.AsString=DBLookupComboBox1.Text) then begin
If DM.tProcPrice.AsInteger<min then begin
min:=DM.tProcPrice.AsInteger;
n:=DM.tProc.RecNo;
end; //if
DBGrid1.SetFocus
end; //if
DM.tProc.Next;
end; //for i
DM.tProc.RecNo:=n;
end; //else
end;
//Процедура поиска материнской платы с наименьшей ценой
procedure TMainForm.sMatboardClick(Sender: TObject);
var i,n,min:integer;
flag:boolean;
begin
flag:=false;
min:=0;
n:=0;
DM.tMatboard.First;
While (flag<>true) and (not DM.tMatboard.Eof) do begin
If (DM.tMatboardModel.AsString=Edit3.Text) and
(DM.tMatboardFirm.AsString=DBLookupComboBox2.Text) then begin
flag:=true;
min:=DM.tMatboardPrice.AsInteger;
n:=DM.tMatboard.RecNo;
end;
DM.tMatboard.Next;
end;
If not flag then MessageDlg('Запись не найдена!',mtInformation,[mbOK],0)
else begin
DM.tMatboard.First;
For i:=1 to DM.tProc.RecordCount do begin
If (DM.tMatboardModel.AsString=Edit3.Text) and
(DM.tMatboardFirm.AsString=DBLookupComboBox2.Text) then begin
If DM.tMatboardPrice.AsInteger<min then begin
min:=DM.tMatboardPrice.AsInteger;
n:=DM.tMatboard.RecNo;
end; //if
DBGrid2.SetFocus
end; //if
DM.tMatboard.Next;
end; //for i
DM.tMatboard.RecNo:=n;
end; //else
end;
//Процедура поиска жесткого диска с наименьшей ценой
procedure TMainForm.sHardClick(Sender: TObject);
var i,n,min:integer;
flag:boolean;
begin
flag:=false;
min:=0;
n:=0;
DM.tHard.First;
While (flag<>true) and (not DM.tHard.Eof) do begin
If (DM.tHardVolume.AsString=Edit4.Text) and
(DM.tHardSpeed.AsInteger=StrToInt(ComboBox1.Text)) and
(DM.tHardFirm.AsString=DBLookupComboBox3.Text) then begin
flag:=true;
min:=DM.tHardPrice.AsInteger;
n:=DM.tHard.RecNo;
end;
DM.tHard.Next;
end;
If not flag then MessageDlg('Запись не найдена!',mtInformation,[mbOK],0)
else begin
DM.tHard.First;
For i:=1 to DM.tHard.RecordCount do begin
If (DM.tHardVolume.AsString=Edit4.Text) and
(DM.tHardSpeed.AsInteger=StrToInt(ComboBox1.Text)) and
(DM.tHardFirm.AsString=DBLookupComboBox3.Text) then begin
If DM.tHardPrice.AsInteger<min then begin
min:=DM.tHardPrice.AsInteger;
n:=DM.tHard.RecNo;
end; //if
DBGrid3.SetFocus
end; //if
DM.tHard.Next;
end; //for i
DM.tHard.RecNo:=n;
end; //else
end;
//Процедура поиска видеокарты с наименьшей ценой
procedure TMainForm.sVideoClick(Sender: TObject);
var i,n,min:integer;
flag:boolean;
begin
flag:=false;
min:=0;
n:=0;
DM.tVideo.First;
While (flag<>true) and (not DM.tVideo.Eof) do begin
If (DM.tVideoVolume.AsInteger=StrToInt(ComboBox2.Text)) and
(DM.tVideoFirm.AsString=DBLookupComboBox4.Text) then begin
flag:=true;
min:=DM.tVideoPrice.AsInteger;
n:=DM.tVideo.RecNo;
end;
DM.tVideo.Next;
end;
If not flag then MessageDlg('Запись не найдена!',mtInformation,[mbOK],0)
else begin
DM.tVideo.First;
For i:=1 to DM.tVideo.RecordCount do begin
If (DM.tVideoVolume.AsInteger=StrToInt(ComboBox2.Text)) and
(DM.tVideoFirm.AsString=DBLookupComboBox4.Text) then begin
If DM.tVideoPrice.AsInteger<min then begin
min:=DM.tVideoPrice.AsInteger;
n:=DM.tVideo.RecNo;
end; //if
DBGrid4.SetFocus
end; //if
DM.tVideo.Next;
end; //for i
DM.tVideo.RecNo:=n;
end; //else
end;
//Процедура поиска CD-ROM с наименьшей ценой
procedure TMainForm.sCDROMClick(Sender: TObject);
var i,n,min:integer;
flag:boolean;
begin
flag:=false;
min:=0;
n:=0;
DM.tCDROM.First;
While (flag<>true) and (not DM.tCDROM.Eof) do begin
If (DM.tCDROMSpeed.AsInteger=StrToInt(ComboBox3.Text)) and
(DM.tCDROMFirm.AsString=DBLookupComboBox5.Text) then begin
flag:=true;
min:=DM.tCDROMPrice.AsInteger;
n:=DM.tCDROM.RecNo;
end;
DM.tCDROM.Next;
end;
If not flag then MessageDlg('Запись не найдена!',mtInformation,[mbOK],0)
else begin
DM.tCDROM.First;
For i:=1 to DM.tCDROM.RecordCount do begin
If (DM.tCDROMSpeed.AsInteger=StrToInt(ComboBox3.Text)) and
(DM.tCDROMFirm.AsString=DBLookupComboBox5.Text) then begin
If DM.tCDROMPrice.AsInteger<min then begin
min:=DM.tCDROMPrice.AsInteger;
n:=DM.tCDROM.RecNo;
end; //if
DBGrid5.SetFocus
end; //if
DM.tCDROM.Next;
end; //for i
DM.tCDROM.RecNo:=n;
end; //else
end;
//Процедура поиска монитора с наименьшей ценой
procedure TMainForm.sMonitorClick(Sender: TObject);
var i,n,min:integer;
flag:boolean;
begin
flag:=false;
min:=0;
n:=0;
DM.tMonitor.First;
While (flag<>true) and (not DM.tMonitor.Eof) do begin
If (DM.tMonitorDiagonal.AsInteger=StrToInt(ComboBox4.Text)) and
(DM.tMonitorModel.AsString=Edit5.Text) and
(DM.tMonitorFirm.AsString=DBLookupComboBox6.Text) then begin
flag:=true;
min:=DM.tMonitorPrice.AsInteger;
n:=DM.tMonitor.RecNo;
end;
DM.tMonitor.Next;
end;
If not flag then MessageDlg('Запись не найдена!',mtInformation,[mbOK],0)
else begin
DM.tMonitor.First;
For i:=1 to DM.tMonitor.RecordCount do begin
If (DM.tMonitorDiagonal.AsInteger=StrToInt(ComboBox4.Text)) and
(DM.tMonitorModel.AsString=Edit5.Text) and
(DM.tMonitorFirm.AsString=DBLookupComboBox6.Text) then begin
If DM.tMonitorPrice.AsInteger<min then begin
min:=DM.tMonitorPrice.AsInteger;
n:=DM.tMonitor.RecNo;
end; //if
DBGrid6.SetFocus
end; //if
DM.tMonitor.Next;
end; //for i
DM.tMonitor.RecNo:=n;
end; //else
end;
procedure TMainForm.acMagfirmExecute(Sender: TObject);
begin
Magfirm.ShowModal;
end;
procedure TMainForm.acAboutExecute(Sender: TObject);
begin
About.ShowModal;
end;
procedure TMainForm.acExitExecute(Sender: TObject);
begin
Close;
end;
procedure TMainForm.FormActivate(Sender: TObject);
begin
DM.tProc.DatabaseName := GetCurrentDir + '\base';
DM.tFirma.DatabaseName := GetCurrentDir+'\base';
DM.tShop.DatabaseName := GetCurrentDir+'\base';
DM.tMatboard.DatabaseName := GetCurrentDir+'\base';
DM.tHard.DatabaseName := GetCurrentDir+'\base';
DM.tVideo.DatabaseName := GetCurrentDir+'\base';
DM.tCDROM.DatabaseName := GetCurrentDir+'\base';
DM.tMonitor.DatabaseName := GetCurrentDir+'\base';
DM.tSellers.DatabaseName := GetCurrentDir+'\base';
DM.tSale.DatabaseName := GetCurrentDir+'\base';
DM.tProc.Active := true;
DM.tFirma.Active := true;
DM.tShop.Active := true;
DM.tMatboard.Active := true;
DM.tHard.Active := true;
DM.tVideo.Active := true;
DM.tCDROM.Active := true;
DM.tMonitor.Active := true;
DM.tSellers.Active := true;
DM.tSale.Active := true;
end;
procedure TMainForm.FormClose(Sender: TObject; var Action: TCloseAction);
begin
DM.tProc.Active := false;
DM.tFirma.Active := false;
DM.tShop.Active := false;
DM.tMatboard.Active := false;
DM.tHard.Active := false;
DM.tVideo.Active := false;
DM.tCDROM.Active := false;
DM.tMonitor.Active := false;
DM.tSale.Active := false;
DM.tSellers.Active := false;
end;
procedure TMainForm.btProcAddClick(Sender: TObject);
begin
if PageControl1.ActivePageIndex = 0 then begin
Computer.StringGrid1.Cells[1,1] := DM.tProcId.AsString;
Computer.StringGrid1.Cells[2,1] := DM.tProcFirm.AsString;
Computer.StringGrid1.Cells[3,1] := DM.tProcModel.AsString;
Computer.StringGrid1.Cells[4,1] := DM.tProcFreq.AsString;
Computer.StringGrid1.Cells[5,1] := DM.tProcShop.AsString;
Computer.StringGrid1.Cells[6,1] := DM.tProcPrice.AsString;
end;
if PageControl1.ActivePageIndex = 1 then begin
Computer.StringGrid1.Cells[1,2] := DM.tMatboardId.AsString;
Computer.StringGrid1.Cells[2,2] := DM.tMatboardFirm.AsString;
Computer.StringGrid1.Cells[4,2] := DM.tMatboardModel.AsString;
Computer.StringGrid1.Cells[5,2] := DM.tMatboardShop.AsString;
Computer.StringGrid1.Cells[6,2] := DM.tMatboardPrice.AsString;
end;
if PageControl1.ActivePageIndex = 2 then begin
Computer.StringGrid1.Cells[1,3] := DM.tHardId.AsString;
Computer.StringGrid1.Cells[2,3] := DM.tHardFirm.AsString;
Computer.StringGrid1.Cells[3,3] := DM.tHardVolume.AsString;
Computer.StringGrid1.Cells[4,3] := DM.tHardSpeed.AsString;
Computer.StringGrid1.Cells[5,3] := DM.tHardShop.AsString;
Computer.StringGrid1.Cells[6,3] := DM.tHardPrice.AsString;
end;
if PageControl1.ActivePageIndex = 3 then begin
Computer.StringGrid1.Cells[1,4] := DM.tVideoId.AsString;
Computer.StringGrid1.Cells[2,4] := DM.tVideoFirm.AsString;
Computer.StringGrid1.Cells[4,4] := DM.tVideoVolume.AsString;
Computer.StringGrid1.Cells[5,4] := DM.tVideoShop.AsString;
Computer.StringGrid1.Cells[6,4] := DM.tVideoPrice.AsString;
end;
if PageControl1.ActivePageIndex = 4 then begin
Computer.StringGrid1.Cells[1,5] := DM.tCDROMId.AsString;
Computer.StringGrid1.Cells[2,5] := DM.tCDROMFirm.AsString;
Computer.StringGrid1.Cells[4,5] := DM.tCDROMSpeed.AsString;
Computer.StringGrid1.Cells[5,5] := DM.tCDROMShop.AsString;
Computer.StringGrid1.Cells[6,5] := DM.tCDROMPrice.AsString;
end;
if PageControl1.ActivePageIndex = 5 then begin
Computer.StringGrid1.Cells[1,6] := DM.tMonitorId.AsString;
Computer.StringGrid1.Cells[2,6] := DM.tMonitorFirm.AsString;
Computer.StringGrid1.Cells[3,6] := DM.tMonitorModel.AsString;
Computer.StringGrid1.Cells[4,6] := DM.tMonitorDiagonal.AsString;
Computer.StringGrid1.Cells[5,6] := DM.tMonitorShop.AsString;
Computer.StringGrid1.Cells[6,6] := DM.tMonitorPrice.AsString;
end;
end;
procedure TMainForm.acComputerExecute(Sender: TObject);
begin
Computer.ShowModal;
end;
procedure TMainForm.acSellersExecute(Sender: TObject);
begin
Sellers.ShowModal;
end;
procedure TMainForm.acHistoryExecute(Sender: TObject);
begin
Sale.ShowModal;
end;
end.
unit uMagfirm;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, DB, StdCtrls, DBTables, ExtCtrls, DBCtrls, Grids, DBGrids;
type
TMagfirm = class(TForm)
DBNavigator1: TDBNavigator;
DBNavigator2: TDBNavigator;
Button1: TButton;
DBGrid1: TDBGrid;
DBGrid2: TDBGrid;
Bevel1: TBevel;
Bevel2: TBevel;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Magfirm: TMagfirm;
implementation
{$R *.dfm}
procedure TMagfirm.Button1Click(Sender: TObject);
begin
Close;
end;
end.
unit uAbout;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, jpeg, ExtCtrls;
type
TAbout = class(TForm)
Image1: TImage;
Memo1: TMemo;
Button1: TButton;
procedure Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
About: TAbout;
implementation
{$R *.dfm}
procedure TAbout.Button1Click(Sender: TObject);
begin
Close;
end;
end.
unit uDM;
interface
uses
SysUtils, Classes, DB, DBTables;
type
TDM = class(TDataModule)
dsProc: TDataSource;
dsMatboard: TDataSource;
dsHard: TDataSource;
dsVideo: TDataSource;
dsCDROM: TDataSource;
dsMonitor: TDataSource;
tProc: TTable;
tMatboard: TTable;
tHard: TTable;
tVideo: TTable;
tCDROM: TTable;
tMonitor: TTable;
tProcId: TAutoIncField;
tProcFreq: TSmallintField;
tProcModel: TStringField;
tProcPrice: TSmallintField;
dsFirma: TDataSource;
dsShop: TDataSource;
tFirma: TTable;
tShop: TTable;
tProcFirmId: TStringField;
tProcFirm: TStringField;
tProcShopId: TStringField;
tProcShop: TStringField;
tMatboardId: TAutoIncField;
tMatboardFirmId: TSmallintField;
tMatboardShopId: TSmallintField;
tMatboardModel: TStringField;
tMatboardPrice: TSmallintField;
tMatboardFirm: TStringField;
tMatboardShop: TStringField;
tHardId: TAutoIncField;
tHardFirmId: TSmallintField;
tHardShopId: TSmallintField;
tHardVolume: TSmallintField;
tHardSpeed: TSmallintField;
tHardPrice: TSmallintField;
tHardShop: TStringField;
tHardFirm: TStringField;
tVideoId: TAutoIncField;
tVideoFirmId: TSmallintField;
tVideoShopId: TSmallintField;
tVideoVolume: TSmallintField;
tVideoPrice: TSmallintField;
tVideoFirm: TStringField;
tVideoShop: TStringField;
tCDROMId: TAutoIncField;
tCDROMFirmId: TSmallintField;
tCDROMShopId: TSmallintField;
tCDROMSpeed: TSmallintField;
tCDROMPrice: TSmallintField;
tCDROMFirm: TStringField;
tCDROMShop: TStringField;
tMonitorId: TAutoIncField;
tMonitorFirmId: TSmallintField;
tMonitorShopId: TSmallintField;
tMonitorDiagonal: TSmallintField;
tMonitorModel: TStringField;
tMonitorPrice: TSmallintField;
tMonitorFirm: TStringField;
tMonitorShop: TStringField;
tFirmaId: TAutoIncField;
tFirmaFirmname: TStringField;
tShopId: TAutoIncField;
tShopShopname: TStringField;
dsSellers: TDataSource;
tSellers: TTable;
tSellersIds: TAutoIncField;
tSellersFIO: TStringField;
tSellersAdress: TStringField;
tSellersTel: TFloatField;
dsSale: TDataSource;
tSale: TTable;
tSaleId: TAutoIncField;
tSaleIdproc: TFloatField;
tSaleIdmatboard: TFloatField;
tSaleIdhard: TFloatField;
tSaleIdvideo: TFloatField;
tSaleIdcdrom: TFloatField;
tSaleIdmonitor: TFloatField;
tSaleIdsaller: TFloatField;
tSaleDate: TDateField;
tSaleProc: TStringField;
tSaleMatboard: TStringField;
tSaleHard: TStringField;
tSaleVideo: TStringField;
tSaleCDROM: TStringField;
tSaleMonitor: TStringField;
tSaleSeller: TStringField;
private
{ Private declarations }
public
{ Public declarations }
end;
var
DM: TDM;
implementation
{$R *.dfm}
end.
unit uComputer;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, StdCtrls, ComObj, DBCtrls;
type
TComputer = class(TForm)
StringGrid1: TStringGrid;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
btPrint: TButton;
DBLCBSellers: TDBLookupComboBox;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
btSave: TButton;
procedure FormCreate(Sender: TObject);
procedure btPrintClick(Sender: TObject);
procedure FormActivate(Sender: TObject);
procedure btSaveClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Computer: TComputer;
implementation
uses uDM;
{$R *.dfm}
procedure TComputer.FormCreate(Sender: TObject);
begin
StringGrid1.Cells[0,1] := 'Процессор';
StringGrid1.Cells[0,2] := 'Материнская плата';
StringGrid1.Cells[0,3] := 'Жесткий диск';
StringGrid1.Cells[0,4] := 'Видеокарта';
StringGrid1.Cells[0,5] := 'CD-ROM';
StringGrid1.Cells[0,6] := 'Монитор';
StringGrid1.Cells[1,0] := 'Код';
StringGrid1.Cells[2,0] := 'Фирма';
StringGrid1.Cells[3,0] := 'Модель';
StringGrid1.Cells[4,0] := 'Параметры';
StringGrid1.Cells[5,0] := 'Магазин';
StringGrid1.Cells[6,0] := 'Цена(руб.)';
end;
procedure TComputer.btPrintClick(Sender: TObject);
var i,k,x,y,sum:integer;
Excel: Variant;
sampl, temp: string;
begin
sampl := GetCurrentDir + '\КвитS.xls'; //Шаблон
temp := GetCurrentDir + '\КвитT.xls'; //Копия
Excel := CreateOleObject('Excel.Application');
try
Excel.Workbooks.Open(sampl);
Excel.ActiveWorkBook.SaveAs(temp);
x:=1; y:=1;
Excel.Cells[2,2] := DBLCBSellers.Text;
Excel.Cells[3,2] := Label6.Caption;
For i:=6 to 12 do begin
For k:=2 to 7 do begin
Excel.Cells[i,k] := StringGrid1.Cells[x,y];
x:=x+1;
end;
y:=y+1;
x:=1;
end;
Excel.Cells[13,2] := Label5.Caption;
Excel.Visible := True;
except
Excel.Quit;
end;
end;
procedure TComputer.FormActivate(Sender: TObject);
var i,sum: integer;
begin
Label6.Caption := DateTimeToStr(Now);
sum:=0;
For i:=1 to 6 do begin
if StringGrid1.Cells[6,i] <> '' then
sum:= sum + StrToInt(StringGrid1.Cells[6,i]);
end;
Label5.Caption := IntToStr(sum);
end;
procedure TComputer.btSaveClick(Sender: TObject);
begin
with DM do begin
tSale.Insert;
tSaleIdproc.Value := StrToInt(StringGrid1.Cells[1,1]);
tSaleIdmatboard.Value := StrToInt(StringGrid1.Cells[1,2]);
tSaleIdhard.Value := StrToInt(StringGrid1.Cells[1,3]);
tSaleIdvideo.Value := StrToInt(StringGrid1.Cells[1,4]);
tSaleIdcdrom.Value := StrToInt(StringGrid1.Cells[1,5]);
tSaleIdmonitor.Value := StrToInt(StringGrid1.Cells[1,6]);
tSaleIdsaller.Value := DBLCBSellers.KeyValue;
tSaleDate.Value := StrToDateTime(Label6.Caption);
tSale.Post;
end;
end;
end.
unit uSale;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Grids, DBGrids, StdCtrls;
type
TSale = class(TForm)
DBGrid1: TDBGrid;
Bevel1: TBevel;
btClose: TButton;
procedure btCloseClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Sale: TSale;
implementation
{$R *.dfm}
procedure TSale.btCloseClick(Sender: TObject);
begin
Close;
end;
end.
unit uSellers;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, Grids, DBGrids, DBCtrls, StdCtrls;
type
TSellers = class(TForm)
DBGrid1: TDBGrid;
Bevel1: TBevel;
btClose: TButton;
DBNavigator1: TDBNavigator;
procedure btCloseClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Sellers: TSellers;
implementation
{$R *.dfm}
procedure TSellers.btCloseClick(Sender: TObject);
begin
Close;
end;
end.
Приложение Б
Работы программы
Рисунок Б.1
Рисунок Б.2
Рисунок Б.3
Приложение В
Экранные формы
Рисунок В.1 - Главная форма
Рисунок В.2 - Форма списков магазинов и фирм
Рисунок В.3 - Форма списка продавцов
Рисунок В.4 - Форма списка выбранных комплектующих
Рисунок В.5 - Форма истории продаж
Рисунок В.6 - Справка
Размещено на Allbest.ru
...Подобные документы
Реляционные базы данных как часть корпоративных информационных систем, их построение по принципам клиент-серверной технологии. Основные характеристики СУБД Firebird. Проектирование базы данных для информационной системы "Компьютерные комплектующие".
курсовая работа [1,9 M], добавлен 28.07.2013Рассмотрение особенностей среды программирования Delphi, анализ клиент-серверной версии. Знакомство с библиотекой визуальных компонентов. Основные функции интеллектуального редактора. Характеристика требований к базам данных. Функции программы "Магистр".
дипломная работа [1,5 M], добавлен 10.03.2013Ознакомление с программой проведения сборки компьютера из деталей, имеющихся в базе данных. Рассмотрение правил создания иерархии классов. Описание основных методов и пользовательского интерфейса. Изучение системных требований и текстов основных классов.
курсовая работа [710,2 K], добавлен 26.07.2014Жизненный цикл программного продукта. Современные среды разработки приложений. Защита информации в базах данных. Особенности разработки приложения с помощью среды Delphi 7. Проверка программного модуля на предмет соответствия стандартам кодирования.
отчет по практике [589,0 K], добавлен 18.05.2017Описание принципа развивающей игры в слова "Виселица". Разработка программы, реализующей задачу данной игры на языке Delphi. Обоснование выбора среды программирования, листинг файла, результаты отладки и тестирования, руководство для пользователя.
курсовая работа [572,7 K], добавлен 14.07.2012Особенности среды визуального проектирования Borland Delphi 7.0. Этапы разработки программы и составления блок-схемы алгоритмов. Способы вычисления кусочно-заданной функции одной переменной. Рассмотрение компонентов среды Delphi, ее предназначение.
контрольная работа [703,8 K], добавлен 24.09.2012Разработка головоломки на основе гравюры Альбрехта Дюрера "Магический квадрат". Главные составные части среды программирования Delphi, особенности ее стандартных компонентов и процесса сохранения программы. Компоненты и алгоритмы создаваемой программы.
курсовая работа [147,1 K], добавлен 05.02.2015Кто и почему пишет вирусы. Компьютерные вирусы, их свойства, классификация. Пути проникновения вирусов в компьютер, механизм распределения вирусных программ. Методы защиты от компьютерных вирусов. Антивирусные программы: Doctor Web, Microsoft Antivirus.
реферат [45,2 K], добавлен 27.09.2008Основные приемы работы в среде программирования Delphi. Особенности технологии создания простейших приложений. Работа с компонентами среды разработки приложений. Ввод, редактирование, выбор и вывод информации. Аспекты использования структуры ветвления.
методичка [619,9 K], добавлен 17.11.2011Delphi как среда разработки программ, ориентированных на работу в Windows. Назначение и преимущество использования электронных учебников. Описание возможностей среды Delphi 5 для разработки электронного учебника. Варианты применения служб Internet.
дипломная работа [3,6 M], добавлен 13.07.2011Особенности разработки приложений для операционной системы с помощью императивного, структурированного, объектно-ориентированного языка программирования Delphi. Формальное начало программы. Выделение конца программного блока. Листинг и описание программы.
курсовая работа [1,2 M], добавлен 04.08.2014Проектирование программы в среде Delphi для тестирования знаний студентов по программированию, с выводом оценки по окончанию тестирования. Разработка экранных форм и алгоритма программы. Описание программных модулей. Алгоритм процедуры BitBtn1Click.
курсовая работа [365,0 K], добавлен 18.05.2013Выбор инструментальной среды разработки программного обеспечения системы. Алгоритм создания теста и ввода его исходных данных. Анализ экономической эффективности применения программного обеспечения "Тестирования знаний обучающихся программированию".
дипломная работа [3,2 M], добавлен 11.09.2014Особенности разработки автоматизированной справочной системы по основным элементам языка ассемблера, анализ среды Borland Delphi 7.0. Способы определения трудоемкости разработки программного продукта: этапы расчета сметной стоимости, планирование цены.
дипломная работа [3,2 M], добавлен 03.04.2013Компьютерные технологии, применяемые в машиностроении на этапах разработки нового изделия. Современные компьютерные технологии при проектировании высокомоментного линейного привода с цифровым программным управлением. Разработка управляющей программы.
дипломная работа [2,8 M], добавлен 28.10.2010Проектирование и разработка базы данных в РСУБД Firebird. Последовательность создания приложения, основанного на клиент-серверной технологии и работающего в операционной системе Windows. Хранимые процедуры и триггеры. Доступ к сети и транзакции.
курсовая работа [2,6 M], добавлен 27.07.2013Общая характеристика информационно-коммуникационных технологий, которые используются в учебном процессе. Преимущество использования компьютера на уроках. Програмные среды Delphi 7 и AutoPlay Media Studio 7.0. Особенности работы с электронным пособием.
курсовая работа [3,4 M], добавлен 27.11.2010Теоретические основы объектно-ориентированного языка программирования Delphi, изучение среды визуального проектирования приложений. Определение 40-го числа Фибоначчи, составление листинга и блок-схемы программы, тестирование ее на работоспособность.
курсовая работа [261,1 K], добавлен 25.03.2015Разработка программы проверки знаний для тестирования студентов по программированию с кодом на языке Delphi. Проектирование визуального интерфейса и словесный алгоритм работы программы. Алгоритмы разработанных процедур и функций, инструкция пользователя.
курсовая работа [506,5 K], добавлен 21.02.2011Анализ предметной области объекта автоматизации "Компьютерные курсы". Обзор информационных технологий, подходящих для разработки информационной системы. Требования к разрабатываемой базе данных и ее проектирование, особенности ее программной реализации.
курсовая работа [369,8 K], добавлен 30.05.2013