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

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





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

		

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

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

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

		

		

		
Введение

		

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

		

		

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



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



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



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

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

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

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

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

		

		
Приложение 1

		

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

		

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

		unit fil;

		

		

		

		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);

		*делаем проверку программы, данное событие возможно только в том случае, если в stringGrid2 в ячейке [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 > z1 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

		do begin

		*в переменную «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» берём сколько денег было в ячейке StringGrid3 данного дилера до данного момента времени

		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;

		

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

		procedure TForm1. 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.





2