Вход

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

Рекомендуемая категория для самостоятельной подготовки:
Курсовая работа*
Код 131132
Дата создания 2009
Страниц 52
Источников 10
Мы сможем обработать ваш заказ (!) 17 апреля в 12:00 [мск]
Файлы будут доступны для скачивания только после обработки заказа.
2 580руб.
КУПИТЬ

Содержание

Оглавление
Введение
Глава 1. Работа с типизированными файлами
1.1 Использование файловых переменных. Типы файлов
1.2 Операции ввода/вывода
Глава 2. Основные сведения о системе Borland Delphi 7.0
2.1 Объектно-ориентированное программирование
2.2 Создание проекта приложения в Delphi
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,'00000419'),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. Сообщение инкассатору о дублировании названия валюты
После ввода инкассатором количества денежных средств выбранной валюты указанного достоинства инкассатор может видеть информацию в списке справа о всей наличности, имеющейся в кассе. Тестирование приложения показало правильную работу программы при пополнении кассы.
2

Список литературы [ всего 10]

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

Очень похожие работы
Пожалуйста, внимательно изучайте содержание и фрагменты работы. Деньги за приобретённые готовые работы по причине несоответствия данной работы вашим требованиям или её уникальности не возвращаются.
* Категория работы носит оценочный характер в соответствии с качественными и количественными параметрами предоставляемого материала. Данный материал ни целиком, ни любая из его частей не является готовым научным трудом, выпускной квалификационной работой, научным докладом или иной работой, предусмотренной государственной системой научной аттестации или необходимой для прохождения промежуточной или итоговой аттестации. Данный материал представляет собой субъективный результат обработки, структурирования и форматирования собранной его автором информации и предназначен, прежде всего, для использования в качестве источника для самостоятельной подготовки работы указанной тематики.
bmt: 0.00523
© Рефератбанк, 2002 - 2024