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

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

Отчет о производственной практике


Задание на практику

Производственная практика студентов по специальности «Программное обеспечение вычислительной техники и автоматизированных систем» является неотъемлемой частью учебно-воспитательного процесса и имеет целью приобретение студентами практических навыков и умений производственной деятельности на предприятиях, в учреждениях и организациях, на основе применения теоретических знаний, полученных бизнес-колледже. Производственная практика завершает 2‑й курс обучения студентов.

Объектами профессиональной деятельности техника по специальности «Программное обеспечение вычислительной техники и автоматизированных систем» являются информационные системы и сети, а также программное обеспечение и сопровождение.

В процессе производственной (профессиональной) практики техник информационных систем должен закрепить и углубить знания, полученные в процессе обучения, приобрести умения и навыки работы по всем видам профессиональной деятельности. Должен закрепить навыки и овладеть умениями: адаптации программного продукта к конкретной системе автоматизированной обработки информации, работы в заданном операционном и / или телекоммуникационном окружении, практических средств конкретных технических средств информатизации.


Введение

Необходимо сделать программу для старших менеджеров казино «Тамбовский Волк», рассчитывающую результаты всех игровых столов за рабочий день, независимо от количества клиентов и количества дилеров. Программа должна рассчитывать полученные результаты и сохранять их в отдельные файлы, которые легко можно будет распечатывать через принтер. Результаты каждого дилера должны сохраняться отдельно, для расчета заработной платы, и премий за крупные выигрыши. Необходимо, чтобы через программу можно было, как добавить нового дилера (при подачи заявления на работу), так и удалить уже имеющегося (при увольнении), по возможности желательно учесть то, что при восстановлении старого дилера, его результаты и категория не должны быть утеряны.

Описание деятельности предприятия

В 1994-ом году было принято решение построить (арендовать) помещение для нового развлекательного центра г. Тамбова. Появилось казино «Тамбовский Волк» в 1999 году Директором данного заведения является Сидоров В.В. Через пол года открылось казино «Атлантида». В обоих центрах находились: казино, ресторан и танцпол. В каждом казино находился дополнительный бар. Остановимся более подробно на казино «Тамбовский Волк». Данное заведение сразу после открытия составило конкуренцию остальным игорным домам г. Тамбова и области за счет отличного обслуживания клиентов и разновидности предлагаемых азартных игр. Казино предлагает своим клиентам 7 видов покера (пяти карточный с обменом OasisPoker, шести карточный OasisPoker, русский покер, техасский покер, семи карточный OasisPoker, и два Oasis покера для дорогих столов), Blackjack и Американскую рулетку. На данный момент казино «Тамбовский Волк» имеет большое количество постоянных клиентов, несмотря на открытие нового казино.

Описание индивидуальной работы

Моя программа написана специально для казино «Тамбовский волк» и предназначена для постоянного расчета расчёта денежных средств на игровых столах.

Принцип работы программы:

В меню new/del Dealer вводятся данные дилеров (фамилия и имя) после чего они вводятся в общий список дилеров. Здесь же вы нашли данный help‑файл. Меню exit – есть ни что иное как выход из программы. В ComboBox’e выбираются дилера, пришедшие на работу, они автоматически попадают в список и по окончании рабочего дня их результаты будут сохранены в файле (С:\rez\…).

Посмотреть список дилеров можно нажатием на кнопку Checkbox «View dealer’s list». В начале рабочего дня запускается программа, по нажатию на кнопку «Money» появляется таблица для ввода данных (денежных средств) с расчетом на каждые 20 минут.

По нажатию на кнопку «Dealers» появляется такая же таблица, но с номерами дилеров которые вводятся по порядку в зависимости от того, как были выбраны в начале смены. По ходу всего рабочего дня заполняются обе таблицы после полного заполнения нажимается кнопка «Total», при нажатии рассчитывается результат каждого дилера, записывается в файл с его фамилией и расширением «.rez». Общий итог дня записывается в ту же папку но в файл без названия так же с расширением».rez».


Приложение 1

Программа использует два юнита (fil и Unit2) первый – главный, второй используется только при добавлении нового дилера или при его увольнении

Код программы и интерфейс программы:

unitfil;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons, Grids, XPMan, ComCtrls, Menus;

type

TForm1 = class(TForm)

BitBtn1: TBitBtn;

StringGrid1: TStringGrid;

Button2: TButton;

StringGrid2: TStringGrid;

StringGrid3: TStringGrid;

ComboBox3: TComboBox;

CheckBox1: TCheckBox;

Button4: TButton;

Button3: TButton;

MainMenu1: TMainMenu;

menu1: TMenuItem;

newDealer1: TMenuItem;

eXIt1: TMenuItem;

ExitProgramm1: TMenuItem;

Memo1: TMemo;

Button1: TButton;

Help1: TMenuItem;

procedure BitBtn1Click (Sender: TObject);

procedure Button2Click (Sender: TObject);

procedure Button4Click (Sender: TObject);

procedure CheckBox1Click (Sender: TObject);

procedure ComboBox3Click (Sender: TObject);

procedure FormCreate (Sender: TObject);

procedure Button3Click (Sender: TObject);

procedure ExitProgramm1Click (Sender: TObject);

procedure newDealer1Click (Sender: TObject);

procedure FormClose (Sender: TObject; var Action: TCloseAction);

procedure FormClick (Sender: TObject);

procedure Help1Click (Sender: TObject);

procedure Memo1Click (Sender: TObject);

procedure Button1Click (Sender: TObject);

procedure FormDblClick (Sender: TObject);

private

{Private declarations}

public

{Public declarations}

end;

var

Form1: TForm1;

implementation

uses Math, Unit2;

{$R *.dfm}

Var

*здесь вводится глобальная переменная для хранения количества дилеров на данный день

z: integer=1;

procedure TForm1. BitBtn1Click (Sender: TObject);

begin

StringGrid1. Visible:= true;

StringGrid2. Visible:= false;

end;

procedure TForm1. Button2Click (Sender: TObject);

begin

StringGrid1. Visible:= False;

StringGrid2. Visible:= True;

end;

procedure TForm1. FormClick (Sender: TObject);

begin

if StringGrid2. Cells [5,5]='fil' then Button4. Visible:= true;

end;

end.

procedure TForm1. Button4Click (Sender: TObject);

*делаем проверку программы, данное событие возможно только в том случае, если в stringGrid 2 в ячейке [5,5] написано слово « fil » и «клик» по форме (появляется кнопка « GO !!!»)

*при нажатии на которую «рандомно» заполняются поля « Dealers » и « Money »:

var

h, l, p, f, x, a: integer;

begin

p:= 1;

Randomize;

for f:= 1 to 37

do begin

for x:= 1 to 5 do begin

a:= (Random((49)+1)*100+Random(200)*50);

StringGrid1. Cells [f, x]:= IntToStr(a);

end;

end;

for l:= 1 to 37 do begin

for h:= 1 to 5 do begin

StringGrid2. Cells [l, h]:= IntToStr(p);

inc(p);

if p > z‑1 then p:= 1;

end;

end;

end;

procedure TForm1. CheckBox1Click (Sender: TObject);

begin

*данная процедура используется для показа (скрытия) листа дилеров и их результатов

if CheckBox1. Checked

then StringGrid3. Visible:= true

else StringGrid3. Visible:= false

end;

Procedure TForm1. ComboBox3Click (Sender: TObject);

Begin

StringGrid3. Cells [0, z]:= ComboBox3. Text;

Inc (z);

End;

Procedure TForm1. FormCreate (Sender: TObject);

Var

o, x, i, q: integer;

Begin

Button4. Visible:= false;

* здесь заполняем строки ComboBox загрузкой из файла «File.txt», расположенного в корне диска С

Form1. ComboBox3. Items. LoadFromFile ('c:\file.txt');

i:= 0;

for q:=1 to 40

do begin

* озаглавливаем String Grid 1, 2, 3.

StringGrid3. Cells [1, q]:= '0';

end;

StringGrid3. Cells [1,0]:= 'total';

StringGrid2. Cells [0,0]:= 'Dealers';

StringGrid1. Cells [0,0]:= 'money';

StringGrid2. ColCount:= 38;

StringGrid2. Cells [0,1]:= 'AR';

StringGrid2. Cells [0,2]:= 'BJ';

StringGrid2. Cells [0,3]:= 'OP1';

StringGrid2. Cells [0,4]:= 'OP2';

StringGrid2. Cells [0,5]:= 'OP3';

StringGrid1. ColCount:=38;

StringGrid1. Cells [0,1]:= 'AR';

StringGrid1. Cells [0,2]:= 'BJ';

StringGrid1. Cells [0,3]:= 'OP1';

StringGrid1. Cells [0,4]:= 'OP2';

StringGrid1. Cells [0,5]:= 'OP3';

for o:= 8 to 20 do begin

for x:= 0 to 2 do begin

Inc(i);

StringGrid1. Cells [i, 0]:= IntToStr (o) + ':' + IntToStr (x*2) + '0';

StringGrid2. Cells [i, 0]:= IntToStr (o) + ':' + IntToStr (x*2) + '0';

end;

end;

end;

procedure TForm1. Button3Click (Sender: TObject);

var

dl: integer;

st, y: string;

fl: TextFile;

sav: TextFile;

q, w, c, s, f, d, r, t, l, p: integer;

begin

w:= 0;

for c:= 1 to 36

do begin

for s:= 1 to 5

dobegin

*в переменную « d » берём № дилера

d:= StrToInt (StringGrid2. Cells [c, s]);

*в переменную « f » берём сколько денег было до него

f:= StrToInt (StringGrid1. Cells [c, s]);

*в переменную « t » берём сколько денег осталось после него

t:= StrToInt (StringGrid1. Cells [c+1, s]);

*в находим разницу, и получаем сумму работы дилера

r:= t-f;

*в переменную « l » берём сколько денег было в ячейке StringGrid 3 данного дилера до данного момента времени

l:= StrToInt (StringGrid3. Cells [1, d]);

*здесь просто перезаписываем результат

p:= r+l;

*…и перезаписываем этот результат в ту же ячейку

StringGrid3. Cells [1, d]:= IntToStr(p);

Button3. Enabled:= false;

Button4. Enabled:= false;

end;

end;

for q:= 1 to 40 do begin

w:= w + StrToInt (StringGrid3. Cells [1, q]);

end;\

*сохраняем полученные результаты каждого дилера в отдельном файле в каталоге « Rez » на диске С:\

For dl:= 1 to z do begin

st:= StringGrid3. Cells [0, dl];

y:= StringGrid3. Cells [1, dl];

assignfile (fl, 'c:\rez\' + st +'.txt');

if not fileexists ('c:\rez\' + st +'.txt') then

rewrite(fl)

else append(fl);

writeln (fl, y);

closefile(fl);

end;

assignfile (sav, 'c:\rez\.txt');

if not fileexists ('c:\rez\.txt') then

rewrite(sav)

else append(sav);

writeln (sav, IntToStr(w));

closefile(sav);

*после расчета выводим сообщение о результате дня

ShowMessage ('Результатдня:' + IntToStr(w));

end;

*процедура выхода из программы

procedureTForm1. ExitProgramm1Click (Sender: TObject);

begin

ShowMessage ('Good Luck!!!');

Hide;

Form1. Close;

Form2. Close;

end;

*процедура создания нового дилера, использующая Unit 2

procedure TForm1.newDealer1Click (Sender: TObject);

begin

Form1. Visible:= False;

form2. Visible:= true;

Form2. ComboBox1. Items. LoadFromFile ('c:\file.txt');

end;

procedure TForm1. FormClose (Sender: TObject; var Action: TCloseAction);

begin

ShowMessage ('Good Luck!!!');

form1. Hide;

end;

*при закрытии программы выводится сообщение:

procedure TForm1. Memo1Click (Sender: TObject);

begin

Button1. Visible:= true;

end;

procedure TForm1. Button1Click (Sender: TObject);

begin

Memo1. Visible:= false;

Button1. Visible:= false;

end;

procedure TForm1. FormDblClick (Sender: TObject);

begin

Button3. Visible:= false;

end;


unit Unit2;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ComCtrls, StdCtrls, CheckLst;

type

TForm2 = class(TForm)

Button1: TButton;

Button2: TButton;

Button3: TButton;

ComboBox1: TComboBox;

Edit1: TEdit;

Edit2: TEdit;

Label1: TLabel;

Label2: TLabel;

procedure Button2Click (Sender: TObject);

procedure FormHide (Sender: TObject);

procedure FormClose (Sender: TObject; var Action: TCloseAction);

procedure Button3Click (Sender: TObject);

procedure Button1Click (Sender: TObject);

private

{Private declarations}

public

{Public declarations}

end;

var

Form2: TForm2;

implementation

uses fil, Math;

{$R *.dfm}

*процедура создания нового дилера

procedure TForm2. Button2Click (Sender: TObject);

var

q: string;

w: TextFile;

begin

q:= Edit1. Text + ' ' + Edit2. Text;

Form2. ComboBox1. Items. Add(q);

Form2. Close;

Form1. ComboBox3. Items. Add(q);

AssignFile (w, 'c:\file.txt');

If not FileExists ('c:\file.txt')

Then Rewrite(w)

else Append(w);

Writeln (w, Edit1. Text + ' ' + Edit2. Text);

CloseFile(w);

end;

procedure TForm2. FormHide (Sender: TObject);

begin

Form1. Visible:= true;

end;

procedure TForm2. FormClose (Sender: TObject; var Action: TCloseAction);

begin

Form1. Visible:= true;

end;

procedure TForm2. Button3Click (Sender: TObject);

begin

Hide;

end;

procedure TForm2. Button1Click (Sender: TObject);

* процедура удаления дилера

begin

ComboBox1. Items. Delete (ComboBox1. ItemIndex);

ComboBox1. Items. SaveToFile ('c:\file.txt');

form1. ComboBox3. Items. LoadFromFile ('c:\file.txt');

ComboBox1. Items. LoadFromFile ('c:\file.txt');

hide;

end;

end.