Помощь в написании студенческих работ
Антистрессовый сервис

Разработка Windows-приложения «Электронная касса»

Курсовая Купить готовую Узнать стоимостьмоей работы

Рис. 3. Сообщение о некорректном выборе месяца и года Если в заявке пользователь указал валюту такого достоинства, которого нет в кассе или недостаточно купюр данного достоинства, то программа выдаст сообщение, показанное на рис. 4. Рис. 8. Сообщение бухгалтеру о том, что не выбран сотрудник из списка Если бухгалтер пытается второй раз ввести данные о зарплате человека за указанный месяц и год… Читать ещё >

Разработка Windows-приложения «Электронная касса» (реферат, курсовая, диплом, контрольная)

Содержание

  • Введение
  • Глава 1. Работа с типизированными файлами
    • 1. 1. Использование файловых переменных. Типы файлов
    • 1. 2. Операции ввода/вывода
  • Глава 2. Основные сведения о системе Borland Delphi
    • 2. 1. Объектно-ориентированное программирование
    • 2. 2. Создание проекта
  • приложения в Delph
    • 2. 3. Описание компонентов Delphi, использованных при создании
  • приложения
    • 2. 3. 1. Обработка исключительных ситуаций
    • 2. 3. 2. Элемент Form
    • 2. 3. 3. Компонент PageControl
    • 2. 3. 4. Компонент Label
    • 2. 3. 5. Компонент BitBtn
    • 2. 3. 6. Компонент Panel
    • 2. 3. 7. Компонент Edit
    • 2. 3. 8. Компонент MaskEdit
    • 2. 3. 9. Компонент ComboBox
    • 2. 3. 10. Компонент SpinEdit
    • 2. 3. 11. Компонент ListView
  • Глава 3. Windows-приложение «Электронная касса»
    • 3. 1. Общая характеристика
  • приложения
    • 3. 2. Описание интерфейса
  • приложения
    • 3. 3. Инструкция пользователя по работе с
  • приложением
  • Заключение
  • Список литературы
  • Приложения
  • Приложение 1. Текст программных модулей
  • Приложение 2. Система тестов

dfm}

procedure TForm1. FormCreate (Sender: TObject);

var NewColumn: TListColumn;

Year, Month, Day: Word;

Layout: array[0. KL_NAMELENGTH] of char;

begin

//процедура при открытии формы

Form1.Width:=800; //размеры формы — ширина и высота

Form1.Height:=600;

PageControl1.Align:=AlClient; //на весь экран

LoadKeyBoardLayout (StrCopy (Layout,'419'), KLF_ACTIVATE); //на русскую раскладку клавиатуры

DecimalSeparator:='.'; //установка разделителя целой и дробной части чисел

TabSheet1.TabVisible:=False;

TabSheet3.TabVisible:=False;

Panel3.Visible:=False;

Panel4.Visible:=False;

with ListView1 do

begin

NewColumn := Columns. Add;

NewColumn.Width:=120;

NewColumn.Caption := 'Фамилия';

NewColumn := Columns. Add;

NewColumn.Width:=120;

NewColumn.Caption := 'Имя';

NewColumn := Columns. Add;

NewColumn.Width:=120;

NewColumn.Caption := 'Отчество';

end;

ListView1.Align:=AlClient;

with ListView2 do

begin

NewColumn := Columns. Add;

NewColumn.Width:=100;

NewColumn.Caption := 'Валюта';

NewColumn := Columns. Add;

NewColumn.Width:=100;

NewColumn.Caption := 'Коэффициент';

NewColumn := Columns. Add;

NewColumn.Width:=100;

NewColumn.Caption := 'Номинал';

NewColumn := Columns. Add;

NewColumn.Width:=100;

NewColumn.Caption := 'Количество';

end;

ListView2.Align:=AlClient;

with ListView3 do

begin

NewColumn := Columns. Add;

NewColumn.Width:=100;

NewColumn.Caption := 'Валюта';

NewColumn := Columns. Add;

NewColumn.Width:=100;

NewColumn.Caption := 'Номинал';

NewColumn := Columns. Add;

NewColumn.Width:=100;

NewColumn.Caption := 'Количество';

end;

ListView3.Align:=AlClient;

DecodeDate (date, Year, Month, Day);

SpinEdit4.Value:=Year;

SpinEdit6.Value:=Year;

//заполнение выпадающего списка названиями месяцев для получения денег

ComboBox1.Items.Clear;

ComboBox1.Items.Add ('январь'); ComboBox1.Items.Add ('февраль'); ComboBox1.Items.Add ('март');

ComboBox1.Items.Add ('апрель'); ComboBox1.Items.Add ('март'); ComboBox1.Items.Add ('июнь');

ComboBox1.Items.Add ('июль'); ComboBox1.Items.Add ('август'); ComboBox1.Items.Add ('сентябрь');

ComboBox1.Items.Add ('октябрь'); ComboBox1.Items.Add ('ноябрь'); ComboBox1.Items.Add ('декабрь');

//заполнение выпадающего списка названиями месяцев для ведомости зарплат

ComboBox4.Items.Clear;

ComboBox4.Items.Add ('январь'); ComboBox4.Items.Add ('февраль'); ComboBox4.Items.Add ('март');

ComboBox4.Items.Add ('апрель'); ComboBox4.Items.Add ('март'); ComboBox4.Items.Add ('июнь');

ComboBox4.Items.Add ('июль'); ComboBox4.Items.Add ('август'); ComboBox4.Items.Add ('сентябрь');

ComboBox4.Items.Add ('октябрь'); ComboBox4.Items.Add ('ноябрь'); ComboBox4.Items.Add ('декабрь');

//заполним списками имеющихся валют

AssignFile (ManyFile, 'many.rec');

//если есть файл с валютами, то проверяем

if (FileExists ('many.rec')) then

begin

Reset (ManyFile);

while not eof (ManyFile) do

begin

Read (ManyFile, Many_Record);

ComboBox2.Items.Add (Many_Record.Valuta);

ComboBox5.Items.Add (Many_Record.Valuta);

end;

CloseFile (ManyFile);

end;

end;

procedure TForm1. BitBtn1Click (Sender: TObject);

var Pass_true: Boolean; //переменная для определения корректности пароля

begin

//проверить ФИО и пароль

Label22.Caption:='0';

if (FileExists ('list.rec')=False) then

begin

Application.MessageBox ('Нет файла для проверки корректности имени пользователя и пароля!','Сообщение', mb_Ok+mb_ICONINFORMATION);

exit;

end;

Pass_true:=False;

AssignFile (PersonFile, 'list.rec');

Reset (PersonFile);

while not eof (PersonFile) do

begin

Read (PersonFile, People_Record);

if ((People_Record.Family=trim (Edit1.Text)) and

(People_Record.Name=trim (Edit2.Text)) and

(People_Record.Patronim=trim (Edit3.Text))) then

begin

if (People_Record.Password<>SpinEdit1.Value) then

begin

Application.MessageBox ('Пароль неверный!','Сообщение', mb_Ok+mb_ICONINFORMATION);

CloseFile (PersonFile);

exit;

end

else

Pass_true:=True;

end;

end;

if (not Pass_true) then

begin

Application.MessageBox ('Такого пользователя нет!','Сообщение', mb_Ok+mb_ICONINFORMATION);

CloseFile (PersonFile);

exit;

end;

Panel1.Enabled:=False;

Panel10.Visible:=True;

CloseFile (PersonFile);

end;

procedure TForm1. BitBtn4Click (Sender: TObject);

var ListItem: TlistItem;

begin

//заполнение ведомости на зарплату

if (trim (Edit5.Text)<>'1') then

begin

Application.MessageBox ('Неверный пароль для бухгалтера!','Сообщение', mb_Ok+mb_ICONINFORMATION);

exit;

end;

TabSheet3.TabVisible:=True;

PageControl1.ActivePage:=TabSheet3;

ListView1.Items.Clear;

if (FileExists ('list.rec')) then

begin

AssignFile (PersonFile, 'list.rec');

Reset (PersonFile);

while not eof (PersonFile) do

begin

Read (PersonFile, People_Record);

ListItem:=ListView1.Items.Add;

ListItem.Caption:=People_Record.Family;

ListItem.SubItems.Add (People_Record.Name);

ListItem.SubItems.Add (People_Record.Patronim);

end;

CloseFile (PersonFile);

end;//if FileExists

end;

procedure TForm1. BitBtn5Click (Sender: TObject);

begin

//пополнение кассы деньгами

if (trim (Edit4.Text)<>'1') then

begin

Application.MessageBox ('Неверный пароль для инкассатора!','Сообщение', mb_Ok+mb_ICONINFORMATION);

exit;

end;

TabSheet1.TabVisible:=True;

PageControl1.ActivePage:=TabSheet1;

View_Kassa;

end;

procedure TForm1. View_Kassa;

var namefile: String;

ListItem:TlistItem;

begin

//просмотр содержимого кассы

ListView3.Items.Clear;

if (not FileExists ('kassa.rec')) then exit;

namefile:='kassa.rec';

AssignFile (KassaFile, namefile);

Reset (KassaFile);

while not eof (KassaFile) do

begin

Read (KassaFile, Kassa_Record);

ListItem:=ListView3.Items.Add;

ListItem.Caption:=Kassa_Record.Valuta;

ListItem.SubItems.Add (IntToStr (Kassa_Record.Nominal));

ListItem.SubItems.Add (IntToStr (Kassa_Record.Vcount));

end;

CloseFile (KassaFile);

end;

procedure TForm1. BitBtn6Click (Sender: TObject);

var ListItem: TlistItem;

begin

//проверить, есть или нет такой человек

AssignFile (PersonFile, 'list.rec');

//если есть файл с ФИО и паролями, то проверяем

if (FileExists ('list.rec')) then

begin

Reset (PersonFile);

while not eof (PersonFile) do

begin

Read (PersonFile, People_Record);

if ((People_Record.Family=trim (Edit6.Text)) and

(People_Record.Name=trim (Edit7.Text)) and

(People_Record.Patronim=trim (Edit8.Text))) then

begin

Application.MessageBox ('Человек с таким ФИО уже внесен в список!','Сообщение', mb_Ok+mb_ICONINFORMATION);

CloseFile (PersonFile);

exit;

end;

end;

end

else

Rewrite (PersonFile);

//добавить нового сотрудника

People_Record.Family:=trim (Edit6.Text);

People_Record.Name:=trim (Edit7.Text);

People_Record.Patronim:=trim (Edit8.Text);

People_Record.Password:=SpinEdit5.Value;

//запись введенных значений в файл

Write (PersonFile, People_Record);

CloseFile (PersonFile);

ListItem:=ListView1.Items.Add;

ListItem.Caption:=People_Record.Family;

ListItem.SubItems.Add (People_Record.Name);

ListItem.SubItems.Add (People_Record.Patronim);

//очистить поля после ввода

Edit6.Text:='';

Edit7.Text:='';

Edit8.Text:='';

SpinEdit5.Value:=1;

Application.MessageBox ('Новый сотрудник добавлен!','Сообщение', mb_Ok+mb_ICONINFORMATION);

end;

procedure TForm1. BitBtn7Click (Sender: TObject);

var namefile: String; //переменная для имени файла с зарплатой

r: Real;

begin

//процедура для добавления зарплаты

try

r:=StrToFloat (trim (MaskEdit1.Text));

except

Application.MessageBox ('Ошибка в сумме денег!','Сообщение', mb_Ok+mb_ICONINFORMATION);

exit;

end;

if (ListView1.SelCount=0) then

begin

Application.MessageBox ('Не выбран человек для внесения суммы денег!','Сообщение', mb_Ok+mb_ICONINFORMATION);

exit;

end;

namefile:=IntToStr (SpinEdit6.Value)+'_'+IntToStr (ComboBox4.ItemIndex+1)+'.rec';

AssignFile (PersonManyFile, namefile);

//если есть файл с начислениями денег за указанный год и месяц, то дозаписываем.

//Если файла нет, то создаем

if (FileExists (namefile)) then

Reset (PersonManyFile)

else

Rewrite (PersonManyFile);

//проверка, чтобы не было повторов при внесении зарплаты

while not eof (PersonManyFile) do

begin

Read (PersonManyFile, People_many_Record);

if ((People_many_Record.Family=ListView1.Selected.Caption) and

(People_many_Record.Name=ListView1.Selected.SubItems[0]) and

(People_many_Record.Patronim=ListView1.Selected.SubItems[1])) then

begin

Application.MessageBox ('Зарплата сотрудника за указанный месяц уже имеется!','Повтор', mb_Ok+mb_ICONINFORMATION);

CloseFile (PersonManyFile);

exit;

end;

end;

//добавить новое начисление

People_many_Record.Family:=ListView1.Selected.Caption;

People_many_Record.Name:=ListView1.Selected.SubItems[0];

People_many_Record.Patronim:=ListView1.Selected.SubItems[1];

People_many_Record.Many:=StrToFloat (trim (MaskEdit1.Text));

//запись введенных значений в файл

Write (PersonManyFile, People_many_Record);

CloseFile (PersonManyFile);

//очистить поля после ввода

ComboBox4.ItemIndex:=-1;

MaskEdit1.Text:='';

Application.MessageBox ('Зарплата сотрудника внесена!','Сообщение', mb_Ok+mb_ICONINFORMATION);

end;

procedure TForm1. BitBtn8Click (Sender: TObject);

var namefile: String; //переменная для имени файла с зарплатой

begin

//сформировать имя файла с зарплатой

namefile:=IntToStr (SpinEdit4.Value)+'_'+IntToStr (ComboBox1.ItemIndex+1)+'.rec';

if (FileExists (namefile)=False) then

begin

Application.MessageBox ('Нет файла за указанный год и месяц!','Сообщение', mb_Ok+mb_ICONINFORMATION);

exit;

end;

Label22.Caption:='0';

AssignFile (PersonManyFile, namefile);

Reset (PersonManyFile);

while not eof (PersonManyFile) do

begin

Read (PersonManyFile, People_many_Record);

if ((People_many_Record.Family)=trim (Edit1.Text)) and

(People_many_Record.Name=trim (Edit2.Text)) and

(People_many_Record.Patronim=trim (Edit3.Text)) then

Label22.Caption:=FloatToStr (People_many_Record.Many);

end;

CloseFile (PersonManyFile);

if (StrToFloat (Label22.Caption)>0) then

begin

Panel3.Visible:=True;

Panel4.Visible:=True;

Panel10.Enabled:=False;

end;

end;

procedure TForm1. BitBtn10Click (Sender: TObject);

var r: Real;

begin

//добавить новую валюту

try

r:=StrToFloat (trim (MaskEdit2.Text));

except

Application.MessageBox ('Ошибка в коэффициенте пересчета в рубли!','Сообщение', mb_Ok+mb_ICONINFORMATION);

exit;

end;

if (trim (Edit9.Text)='рубль') then

begin

Application.MessageBox ('Вводить валюту «рубль» не нужно!','Сообщение', mb_Ok+mb_ICONINFORMATION);

exit;

end;

//проверить, есть или нет такой валюты

AssignFile (ManyFile, 'many.rec');

//если есть файл с валютами, то проверяем

if (FileExists ('many.rec')) then

begin

Reset (ManyFile);

while not eof (ManyFile) do

begin

Read (ManyFile, Many_Record);

if (Many_Record.Valuta=trim (Edit9.Text)) then

begin

Application.MessageBox ('Такая валюта уже внесена в список!','Сообщение', mb_Ok+mb_ICONINFORMATION);

CloseFile (ManyFile);

exit;

end;

end;

end

else

begin

Rewrite (ManyFile);

//сразу добавим валюту по умолчанию — рубли

ComboBox2.Items.Add ('рубль');

ComboBox5.Items.Add ('рубль');

Many_Record.Valuta:='рубль';

Many_Record.Koef:=1;

//запись введенных значений в файл

Write (ManyFile, Many_Record);

end;

//добавить новую валюту

Many_Record.Valuta:=trim (Edit9.Text);

Many_Record.Koef:=StrToFloat (trim (MaskEdit2.Text));

//запись введенных значений в файл

Write (ManyFile, Many_Record);

CloseFile (ManyFile);

ComboBox2.Items.Add (trim (Edit9.Text));

ComboBox5.Items.Add (trim (Edit9.Text));

//очистить поля после ввода

Edit9.Text:='';

Application.MessageBox ('Новая валюта добавлена!','Сообщение', mb_Ok+mb_ICONINFORMATION);

end;

procedure TForm1. BitBtn9Click (Sender: TObject);

var namefile_source, namefile_destination: String;

KFile: file of TKassa; // файл для перезаписи данных после пополнения кассы

name1,name2:array [0.256] of char;

kupur:Boolean;

begin

//процедура для пополнения кассы

if ((SpinEdit7.Value=0) or (SpinEdit8.Value=0)) then

begin

Application.MessageBox ('Ошибка в указании достоинства и/или количества купюр!','Сообщение', mb_Ok+mb_ICONINFORMATION);

exit;

end;

if (ComboBox5.ItemIndex=-1) then

begin

Application.MessageBox ('Не выбрана валюта!','Сообщение', mb_Ok+mb_ICONINFORMATION);

exit;

end;

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

//Если файла нет, то создаем

namefile_source:='kassa.rec';

AssignFile (KassaFile, namefile_source);

if (FileExists ('kassa.rec')) then

Reset (KassaFile)

else

Rewrite (KassaFile);

//добавить новое поступление

namefile_destination:='kassa.rev';

AssignFile (KFile, namefile_destination);

Rewrite (KFile);

kupur:=False;

while not eof (KassaFile) do

begin

Read (KassaFile, Kassa_Record);

if ((Kassa_Record.Valuta=ComboBox5.Items[ComboBox5.ItemIndex]) and

(Kassa_Record.Nominal=SpinEdit7.Value)) then

begin

Kassa_Record.Vcount:=Kassa_Record.Vcount+SpinEdit8.Value;

kupur:=True; //купюры данного номинала найдены и просто увеличили их количество

end;

Write (KFile, Kassa_Record);

end;

//купюры данного номинала не найдены и добавим запись о них

if (kupur=False) then

begin

Kassa_Record.Valuta:=ComboBox5.Items[ComboBox5.ItemIndex];

Kassa_Record.Nominal:=SpinEdit7.Value;

Kassa_Record.Vcount:=SpinEdit8.Value;

Write (KassaFile, Kassa_Record);

end;

CloseFile (KassaFile);

CloseFile (KFile);

copyfile (StrPCopy (name1,namefile_source), StrPCopy (name2,namefile_destination), False);

DeleteFile (namefile_source);

copyfile (StrPCopy (name1,namefile_destination), StrPCopy (name2,namefile_source), False);

DeleteFile (namefile_destination);

//очистить поля после ввода

ComboBox5.ItemIndex:=-1;

SpinEdit7.Value:=0;

SpinEdit8.Value:=0;

//вызов процедуры для просмотра наличности в кассе

View_Kassa;

Application.MessageBox ('Денежные средства внесены!','Сообщение', mb_Ok+mb_ICONINFORMATION);

end;

procedure TForm1. BitBtn3Click (Sender: TObject);

var ListItem: TListItem;

koef: real;

i: Integer;

begin

//получатель денег выбирает номиналы банкнот

//проверим, чтобы не было такой валюты и номинала среди выбранных пользователем

for i:=0 to ListView2.Items.Count-1 do

begin

if ((ListView2.Items[i]. Caption=ComboBox2.Items[ComboBox2.ItemIndex]) and

(StrToInt (ListView2.Items[i]. SubItems[1])=SpinEdit3.Value)) then

begin

Application.MessageBox ('Такая валюта указанного номинала уже была выбрана!','Сообщение', mb_Ok+mb_ICONINFORMATION);

exit;

end;

end;

//сначала найдем коэффициент пересчета в рубли

AssignFile (ManyFile, 'many.rec');

Reset (ManyFile);

koef:=0;

while not eof (ManyFile) do

begin

Read (ManyFile, Many_Record);

if (Many_Record.Valuta=ComboBox2.Items[ComboBox2.ItemIndex]) then

koef:=Many_Record.Koef;

end;

CloseFile (ManyFile);

ListItem:=ListView2.Items.Add;

ListItem.Caption:=ComboBox2.Items[ComboBox2.ItemIndex];

ListItem.SubItems.Add (FormatFloat ('0.00', koef));

ListItem.SubItems.Add (IntToStr (SpinEdit3.Value));

ListItem.SubItems.Add (IntToStr (SpinEdit9.Value));

ComboBox2.ItemIndex:=-1;

SpinEdit3.Value:=0;

SpinEdit9.Value:=0;

Application.MessageBox ('Ваша заявка учтена!','Сообщение', mb_Ok+mb_ICONINFORMATION);

end;

procedure TForm1. BitBtn2Click (Sender: TObject);

var i: Integer;

kupur: Boolean; //переменная для проверки купюры нужного номинала

summa: Real;

namefile_source, namefile_destination: String;

PMFile: file of TPeople_many; // файл для перезаписи данных после выдачи

name1,name2:array [0.256] of char;

KFile: file of TKassa; // файл для перезаписи данных в кассе после выдачи

begin

//проверить количество купюр в кассе (платежеспособность кассы)

AssignFile (KassaFile,'kassa.rec');

Reset (KassaFile);

for i:=0 to ListView2.Items.Count-1 do

begin

//встать на начало файла перед поиском каждой валюты

Seek (KassaFile, 0);

kupur:=False;

while not eof (KassaFile) do

begin

Read (KassaFile, Kassa_Record);

if ((Kassa_Record.Valuta=ListView2.Items[i]. Caption) and

(Kassa_Record.Nominal=StrToInt (ListView2.Items[i]. SubItems[1]))) then

begin

if (Kassa_Record.Vcount>StrToInt (ListView2.Items[i]. SubItems[2])) then

kupur:=True;

end;

end;

if (kupur=False) then break; //выход из цикла, так как недостаточно в кассе купюр нужного номинала

end; //конец цикла for

CloseFile (KassaFile);

if (kupur=False) then

begin

Application.MessageBox ('В кассе недостаточно купюр выбранной валюты и номинала!','Сообщение', mb_Ok+mb_ICONINFORMATION);

exit;

end;

//проверить заказанную сумму с суммой зарплаты

summa:=0;

for i:=0 to ListView2.Items.Count-1 do

begin

summa:=summa+StrToFloat (ListView2.Items[i]. SubItems[0])*StrToInt (ListView2.Items[i].SubItems[1])*StrToInt (ListView2.Items[i].SubItems[2]);

end;

if (summa>StrToFloat (Label22.Caption)) then

begin

Application.MessageBox ('На Вашем счете недостаточно средств для заказанной суммы!','Сообщение', mb_Ok+mb_ICONINFORMATION);

exit;

end;

//если всё нормально, то надо уменьшить сумму на счете и в кассе

//уменьшим сумму на счете пользователя

namefile_source:=IntToStr (SpinEdit4.Value)+'_'+IntToStr (ComboBox1.ItemIndex+1)+'.rec';

AssignFile (PersonManyFile, namefile_source);

Reset (PersonManyFile);

namefile_destination:=IntToStr (SpinEdit4.Value)+'_'+IntToStr (ComboBox1.ItemIndex+1)+'.rev';

AssignFile (PMFile, namefile_destination);

Rewrite (PMFile);

while not eof (PersonManyFile) do

begin

Read (PersonManyFile, People_many_Record);

if ((People_many_Record.Family)=trim (Edit1.Text)) and

(People_many_Record.Name=trim (Edit2.Text)) and

(People_many_Record.Patronim=trim (Edit3.Text)) then

begin

People_many_Record.Many:=People_many_Record.Many-summa;

end;

Write (PMFile, People_many_Record);

end;

CloseFile (PersonManyFile);

CloseFile (PMFile);

copyfile (StrPCopy (name1,namefile_destination), StrPCopy (name2,namefile_source), False);

deleteFile (namefile_destination);

//уменьшим сумму в кассе

namefile_source:='kassa.rec';

AssignFile (KassaFile, namefile_source);

Reset (KassaFile);

namefile_destination:='kassa.rev';

AssignFile (KFile, namefile_destination);

Rewrite (KFile);

for i:=0 to ListView2.Items.Count-1 do

begin

//встать на начало файла перед поиском каждой валюты

Seek (KassaFile, 0);

while not eof (KassaFile) do

begin

Read (KassaFile, Kassa_Record);

if ((Kassa_Record.Valuta=ListView2.Items[i]. Caption) and

(Kassa_Record.Nominal=StrToInt (ListView2.Items[i]. SubItems[1]))) then

Kassa_Record.Vcount:=Kassa_Record.Vcount-StrToInt (ListView2.Items[i]. SubItems[2]);

Write (KFile, Kassa_Record);

end;

end; //конец цикла for

CloseFile (KassaFile);

CloseFile (KFile);

copyfile (StrPCopy (name1,namefile_destination), StrPCopy (name2,namefile_source), False);

DeleteFile (namefile_destination);

ListView2.Items.Clear;

Panel3.Visible:=False;

Panel4.Visible:=False;

Panel10.Visible:=False;

Panel10.Enabled:=True;

Edit1.Text:='';

Edit2.Text:='';

Edit3.Text:='';

SpinEdit1.Value:=1;

Panel1.Enabled:=True;

TabSheet1.TabVisible:=False;

Application.MessageBox ('Выплата произведена!','Сообщение', mb_Ok+mb_ICONINFORMATION);

end;

procedure TForm1. BitBtn11Click (Sender: TObject);

begin

//возврат в начало

Panel3.Visible:=False;

Panel4.Visible:=False;

Panel10.Visible:=False;

Panel10.Enabled:=True;

//сбросить набранную валюту и номиналы

ListView2.Items.Clear;

Edit1.Text:='';

Edit2.Text:='';

Edit3.Text:='';

SpinEdit1.Value:=1;

Panel1.Enabled:=True;

Edit1.SetFocus;

end;

end.

Приложение 2. Система тестов Для получения денег пользователь должен ввести фамилию, имя, отчество и пароль пользователя. Если такого пользователя нет, то программа выдаст сообщение, показанное на рис. 1.

Рис. 1. Сообщение о некорректном вводе фамилии, имени и/или отчества пользователя Для получения денег пользователь должен ввести фамилию, имя, отчество и пароль пользователя. Если пользователь ввел неверный пароль, то программа выдаст сообщение, показанное на рис. 2.

Рис. 2. Сообщение о некорректном вводе пароля пользователя Для получения денег пользователь должен выбрать из выпадающего списка месяц и год. Если получатель денег выбрал неверно указанные параметры, то программа выдаст сообщение, показанное на рис. 3.

Рис. 3. Сообщение о некорректном выборе месяца и года Если в заявке пользователь указал валюту такого достоинства, которого нет в кассе или недостаточно купюр данного достоинства, то программа выдаст сообщение, показанное на рис. 4.

Рис. 4. Сообщение о неплатежеспособности кассы Если в заявке пользователь указал сумму, большую, чем у него имеется на счете, то программа выдаст сообщение, показанное на рис. 5.

Рис. 5. Сообщение о недостаточном количестве денежных средств на счете пользователя Для перехода для ввода ведомостей для зарплаты, бухгалтер должен ввести пароль. Если пароль введен неверно, программа выдаст сообщение, показанное на рис. 6.

Рис. 6. Сообщение бухгалтеру о неверном пароле Если бухгалтер пытается ввести еще раз одного и того же человека, то программа выдаст сообщение, показанное на рис. 7.

Рис. 7. Сообщение о дублировании информации о получателе денег Если бухгалтер не указал из списка человека, по которому необходимо ввести денежные начисления, то программа выдаст сообщение, показанное на рис. 8.

Рис. 8. Сообщение бухгалтеру о том, что не выбран сотрудник из списка Если бухгалтер пытается второй раз ввести данные о зарплате человека за указанный месяц и год, то программа выдаст сообщение, показанное на рис. 9.

Рис. 9. Сообщение бухгалтеру о дублировании начислений Для перехода для пополнения кассы инкассатор должен ввести пароль. Если пароль введен неверно, программа выдаст сообщение, показанное на рис. 10.

Рис. 10. Сообщение инкассатору о неверном пароле Если инкассатор пытается второй раз ввести информацию о новой валюте, то программа выдаст сообщение, показанное на рис. 11.

Рис. 11. Сообщение инкассатору о дублировании названия валюты После ввода инкассатором количества денежных средств выбранной валюты указанного достоинства инкассатор может видеть информацию в списке справа о всей наличности, имеющейся в кассе. Тестирование приложения показало правильную работу программы при пополнении кассы.

Показать весь текст

Список литературы

  1. , А.Я. Программирование в Delphi 7 / А. Я. Архангельский — Бином-Пресс, 2003. — 1152 с. — ISBN 5−9518−0042−0.
  2. , Д. Фундаментальные алгоритмы и структуры данных в Delphi / Д. Бакнелл — СПб.: Питер, 2006. — 560 с. — ISBN 5−469−1 495−9, 5−93 772−087−3.
  3. Бобровский, С.И. Delphi 7. Учебный курс / С. И. Бобровский — СПб.: Питер, 2008. — 736 с.: ил. — ISBN 978−5-8046−0086−1.
  4. , П.Г., Марков, Е. П. Программирование в Delphi 7 / П. Г. Дарахвелидзе, Е. П. Марков. — СПб.: БХВ-Петербург, 2003. — 784 с. — ISBN 5−94 157−116-Х.
  5. Карпов, Б. Delphi: специальный справочник / Б. Карпов — СПб.: Питер, 2002. — 688 с.: ил. — ISBN 5−272−353−5.
  6. , М.Е. Библия для программиста в среде Delphi / М. Е. Фленов — СПб.: БХВ-Петербург, 2004. — 882 с.: ил. — ISBN 5−94 157−456−8.
  7. , М.Е. Программирование в Delphi глазами хакера / М. Е. Фленов — СПб.: БХВ-Петербург, 2005. — 368 с.: ил. — ISBN 5−94 157−351−0.
  8. , Т.Д. Разработка приложений в системе Delphi: учеб. пособие/ Т. Д. Шейкер — Владивосток: Изд-во ДВГТУ, 2006. — 172 с. ISBN 5−7596−0587−9.
  9. Шумаков, П.В. Delphi 3 и разработка приложений баз данных / П. В. Шумаков. — М.: Нолидж, 1999. — 704 с.: ил. — ISBN 5−89 251−022−0.
  10. , Ю. А. Delphi 7 на примерах / Ю. А. Шпак. — М.: Юниор, 2003. — 344 с. ISBN: 966−7323−28−5.
Заполнить форму текущей работой
Купить готовую работу

ИЛИ