Автор работы: Пользователь скрыл имя, 27 Мая 2013 в 22:25, курсовая работа
Задача «Абонент АТС» предназначена для автоматизации работы с информацией о поступивших и проданных товарах в магазин.
Задача выполняет основные функции:
ведение базы данных (редактирование данных о товарах);
формирование и выдача на терминал запросов ( об остатке товара на сладе, запросы по поставщикам и клиентам);
формирование и выдача на терминал, а также на печать отчетов (приходная накладная, расходная накладная).
1. Постановка задачи 4
1.1 Характеристика задачи 4
1.2 Выходная информация 5
1.3 Входная информация 13
2. Описание алгоритма решения задачи 14
2.1 Назначение и характеристика 14
2.2 Используемая информация 14
2.3 Результаты решения 14
2.4 Алгоритм решения задачи 15
3. Руководство пользователя 17
3.1 Введение 17
3.2 Назначение и условия применения 17
3.3 Описание операций 17
3.4 Действия при аварийных ситуаци-ях……………………………………...18
4. Руководство системного программиста 19
4.1 Минимальные системные требования 19
4.2 Структура программы 19
4.3 Настройка программы 21
4.4 Проверка программы 21
4.5 Сообщения системному программисту 21
5. Приложение 22
5.1 Листинг программы 22
5.2 Результаты работы программы 39
5.3 Контрольный пример 46
6. Список используемой литерату-ры
type
TForm22 = class(TForm)
DBGrid1: TDBGrid;
Image1: TImage;
BitBtn1: TBitBtn;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
procedure FormActivate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure N1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form22: TForm22;
implementation
uses unit1,unit3,unit19;
{$R *.dfm}
procedure TForm22.FormActivate(Sender: TObject);
var
sq:String;
begin
sq:='';
sq:='SELECT TOP 1 Т_АТС.Наименование,
Sum([Задолжность_город]+[
sq:=sq+' FROM Т_АТС INNER JOIN ((Т_Абоненты
INNER JOIN Т_Абонентская_плата ON Т_Абоненты.Код
= Т_Абонентская_плата.Код_
sq:=sq+' GROUP BY Т_АТС.Наименование, Т_АТС.Код';
sq:=sq+' ORDER BY Sum([Задолжность_город]+[
sq:=sq+' WITH OWNERACCESS OPTION';
DataModule1.ADOQueryzap.
DataModule1.ADOQueryzap.sql.
DataModule1.ADOQueryzap.sql.
DataModule1.ADOQueryzap.
end;
procedure TForm22.BitBtn1Click(Sender: TObject);
begin
form22.close;
end;
procedure TForm22.N1Click(Sender: TObject);
begin
unit19.Form19.tag:=11;
unit19.Form19.ShowModal;
end;
end.
unit Unit23;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, Grids, DBGrids, StdCtrls, jpeg, ExtCtrls, Buttons, Menus;
type
TForm23 = class(TForm)
DBGrid1: TDBGrid;
BitBtn1: TBitBtn;
Image1: TImage;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
procedure FormActivate(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure N1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form23: TForm23;
implementation
uses unit1,unit3,unit19;
{$R *.dfm}
procedure TForm23.FormActivate(Sender: TObject);
var
sq:String;
begin
sq:='';
sq:='SELECT Т_Льготы.Наименование, Count(Т_Льготы.Наименование) AS [Количество]';
sq:=sq+' FROM Т_Льготы INNER JOIN Т_Абонентская_плата
ON Т_Льготы.Код = Т_Абонентская_плата.Код_
sq:=sq+' GROUP BY Т_Льготы.Наименование';
sq:=sq+' WITH OWNERACCESS OPTION;';
DataModule1.ADOQueryzap.
DataModule1.ADOQueryzap.sql.
DataModule1.ADOQueryzap.sql.
DataModule1.ADOQueryzap.
end;
procedure TForm23.BitBtn1Click(Sender: TObject);
begin
form23.close;
end;
procedure TForm23.N1Click(Sender: TObject);
begin
unit19.Form19.tag:=12;
unit19.Form19.ShowModal;
end;
end.
unit Unit25;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Buttons, jpeg, ExtCtrls;
type
TForm25 = class(TForm)
Edit1: TEdit;
Label1: TLabel;
BitBtn1: TBitBtn;
Image1: TImage;
procedure BitBtn1Click(Sender: TObject);
procedure FormActivate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form25: TForm25;
implementation
uses unit2,unit24,unit3,unit4,
{$R *.dfm}
procedure TForm25.BitBtn1Click(Sender: TObject);
begin
if Edit1.Text='' then messagebox(Form25.Handle,'
else begin
if tag=1 then begin
unit3.DataModule1.adoquery3.
unit3.DataModule1.adoquery3.
Edit1.Text;
unit3.DataModule1.adoquery3.
if unit3.DataModule1.adoquery3.
messagebox(Form25.Handle,'Данн
else begin
unit2.form2.dbgrid1.
{Form24.ShowModal;}
edit1.Text:='';
form25.Close;
end;
edit1.Text:='';
end;
if tag=2 then begin
unit3.DataModule1.adoquery4.
unit3.DataModule1.adoquery4.
Edit1.Text;
unit3.DataModule1.adoquery4.
if unit3.DataModule1.adoquery4.
messagebox(Form25.Handle,'Данн
else begin
unit4.form4.dbgrid1.
{Form24.ShowModal;}
edit1.Text:='';
form25.Close;
end;
edit1.Text:='';
end;
if tag=3 then begin
unit3.DataModule1.adoquery5.
unit3.DataModule1.adoquery5.
Edit1.Text;
unit3.DataModule1.adoquery5.
if unit3.DataModule1.adoquery5.
messagebox(Form25.Handle,'
else begin
unit5.form5.dbgrid1.
{Form24.ShowModal;}
edit1.Text:='';
form25.Close;
end;
edit1.Text:='';
end;
if tag=4 then begin
unit3.DataModule1.adoquery6.
unit3.DataModule1.adoquery6.
Edit1.Text;
unit3.DataModule1.adoquery6.
if unit3.DataModule1.adoquery6.
messagebox(Form25.Handle,'Данн
else begin
unit6.form6.dbgrid1.
{Form24.ShowModal;}
edit1.Text:='';
form25.Close;
end;
edit1.Text:='';
end;
if tag=5 then begin
unit3.DataModule1.adoquery7.
unit3.DataModule1.adoquery7.
Edit1.Text;
unit3.DataModule1.adoquery7.
if unit3.DataModule1.adoquery7.
messagebox(Form25.Handle,'Данн
else begin
unit7.form7.dbgrid1.
{Form24.ShowModal;}
edit1.Text:='';
form25.Close;
end;
edit1.Text:='';
end;
end;
end;
procedure TForm25.FormActivate(Sender: TObject);
begin
if tag=1 then begin
label1.Caption:='Введите ФИО';
edit1.Left:=104;end;
if tag=2 then begin
label1.Caption:='Введите наименование';
edit1.Left:=152;end;
if tag=3 then begin
label1.Caption:='Введите наименование';
edit1.Left:=152;end;
if tag=4 then begin
label1.Caption:='Введите ФИО';
edit1.Left:=104;end;
if tag=5 then begin
label1.Caption:='Введите наименование';
edit1.Left:=152;end;
end;
end.
5.2.1 При запуске программы на экран выводится главная форма «АТС» (рис.1), содержащая меню.
Рисунок 1
5.2.2 Пункт меню «Справочная
информация»/«Абоненты» отображ
Рисунок 2
5.2.3 Пункт меню «Справочная
информация»/«АТС» отображает
Рисунок 3
5.2.4 Пункт меню «Справочная
информация»/«Льготы»
Рисунок 4
5.2.5 Пункт меню «Справочная
информация»/«Сотрудники»
Рисунок 5
5.2.6 Пункт меню «Справочная
информация»/«Тарифы»
Рисунок 6
5.2.7 Пункт меню «Учётная информация»/«Заявка» отображает форму, изображенную на рисунке 7.
Рисунок 7
5.2.8 Пункт меню «Учётная
информация»/«Абонентская
Рисунок 8
5.2.9 Пункт меню «Учётная
информация»/«Телефоны»
Рисунок 9
5.2.10 Пункт меню «Запросы»/«Число абонентов» отображает форму, изображенную на рисунке 10.
Рисунок 10
5.2.11 Пункт меню «Запросы»/«Должники» отображает форму, изображенную на рисунке 11.
Рисунок 11
5.2.12 Пункт меню «Запросы»/«АТС с самым большим долгом» отображает форму, изображенную на рисунке 12.
Рисунок 12
5.2.13 Пункт меню «Запросы»/«Льготники» отображает форму, изображенную на рисунке 13.
Рисунок 13
5.2.14 Пункт меню «Отчёты»/«Должники» отображает форму, изображенную на рисунке 14.
Рисунок 14
5.2.15 Пункт меню «Отчёты»/«Сообщение об отключении» отображает форму, изображенную на рисунке 15.
Рисунок 15
margin-left: 0pt; text-indent: 28pt; line-height: 18pt;">
5.3 Контрольный пример
1
. Добавим в пустую таблицу три новых записи:
ФИО: Иванов Иван Иванович
Пол: М
Дата Рождения: 31.12.1985
ФИО
: Петров Петр Петрович
Пол: М
Дата Рождения: 10.09.1980
ФИО: Смирнова Ольга Петровна
Пол: Ж
Дата Рождения: 31.01.1987
Ожидаем, что распечатка справочника абонентов содержит соответствующие сведения:
Код |
ФИО |
Пол |
Дата Рождения |
4 |
Иванов Иван Иванович |
М |
31.12.1985 |
7 |
Петров Петр Петрович |
М |
10.09.1980 |
8 |
Смирнова Ольга Петровна |
Ж |
31.01.1987 |
Точно такие же данные получаем на форме справочника абонентов:
На основании полученного результата можно сделать вывод о правил
ьности работы данной программы.
2. Добав
им в пустую таблицу «Список льгот» две новые записи:
Наименование: Ветеран ВОВ
Абонентская плата: 100
Наименование: Инвалид
Абонентская плата: 70
Ожидаем, что распечатка справочника льгот содержит соответствующие свед
ения:
Код |
Наименование |
Абонентская плата |
1 |
Ветеран ВОВ |
100 |
2 |
Инвалид |
70 |
Точно такие же данные получаем на форме справочника льгот:
На основании полученного результата можно сделать вывод о правил
ьности работы данной программы.
3. Добавим в пустую таблицу 3 новых записи:
Дата заявки: 04.0
2.2010
Код абонента: 12
Код сотрудника: 2
Дата заявки: 04.03.2010
Код абонента: 13
Код сотрудника: 3
Дата заявки: 27.03.2010
Код абонента: 14
Код сотрудника: 3
Ожидаем, что распечатка справочника льгот содержит соответствующие сведения:
Код |
Дата заявки |
Код абонента |
Код сотрудника |
12 |
04.02.2010 |
12 |
2 |
13 |
04.03.2010 |
13 |
3 |
14 |
27.03.2010 |
14 |
3 |
Точно такие же данные получаем на форме справочника заявок на подключение:
На основании полученного результата можно сделать вывод о правил
ьности работы данной программы.
4. Добавим в пустую таблицу две новых записи:
Код абонента: 7
Код тарифа: 2
Код льготы: 2
Дата оплаты: 19.09.2011
Кол.мин.город: 138
Кол.мин.межгород: 10
Задолженность город: 0
Задолженность межгород: 0
Абонентская плата: 740
Код абонента: 1
8
Код та
рифа: 4
Код льготы:
4
Дата оплаты: 26.
10.2011
Кол.мин.город:
55
Кол.мин.межгород:
10
Задолженность город:
23
Задолженность межгород:
5
Абонентская плата: 1
30
Ожидаем, что распечатка справочника льгот содержит соответствующие свед
ения:
Код |
Код абонента |
Код тарифа |
Код льготы |
Дата оплаты |
Кол.мин. город |
Кол.мин. межгород |
Задолженность город |
Задолженность межгород |
Абонентская плата |
7 |
7 |
2 |
2 |
19.09.2011 |
138 |
<p class="dash041e_0431_044b_ |