Автор работы: Пользователь скрыл имя, 24 Мая 2013 в 21:37, отчет по практике
Цель практики: Разработка программного продукта.
Наименование программного продукта – «Загруженность аудиторий КемГППК». Данная программа может применяться в качестве вспомогательного программного обеспечения, устанавливаемого в учебном отделе колледжа в целях автоматизации его деятельности. Системой программирования для данного продукта была выбрана Borland Delphi 7. А так же встроенный в Borland Delphi 7 редактор баз данных Database Desktop.
1 Техническое задание………………………………………………………….5
1.1 Введение………………………………………………………………..5
1.2 Основание для разработки…………………………………………….5
1.3 Назначение разработки………………………………………………..5
1.4 Требования к программному изделию……………………………….6
1.5 Технико-экономические показатели………………………………….7
1.6 Стадии и этапы разработки……………………………………………7
2 Основная часть………………………………………………………………...8
2.1 Постановка задачи……………………………………………………..8
2.1.1 Характеристика задачи………………………………………..8
2.1.2 Входная информация………………………………………….8
2.1.3 Выходная информация………………………………………..8
2.2 Выбор и обоснование метода решения……………………………...10
2.3 Описание алгоритма………………………………………………….11
2.3.1 Система классификации и кодирования……………………11
2.3.2 Входная информация………………………………………...11
2.3.3 Выходная информация………………………………………11
3 Рабочая часть…………………………………………………………………12
3.1 Описание программы………………………………………………...12
3.1.1 Общие сведения……………………………………………...12
3.1.2 Функциональное назначение………………………………..12
3.1.3 Описание логической структуры…………………………...12
3.1.4 Используемые технические средства………………………14
3.1.5 Вызов и загрузка……………………………………………..14
3.1.6 Входные данные……………………………………………..14
3.1.7 Выходные данные……………………………………………15
3.2 Программа и методика испытаний………………………………….16
3.2.1 Объект испытаний…………………………………………...16
3.2.2 Цель испытаний……………………………………………...16
3.2.3 Требования, подлежащие проверке………………………...16
3.2.4 Средства и порядок испытаний……………………………..17
3.2.5 Методы испытаний…………………………………………..18
4 Анализ решения задачи……………………………………………………...19
Заключение
Литература
Приложение А Входная информация
Приложение Б Выходная информация
Приложение В Блок-схема алгоритма решения
Cells[1,0]:='№ Пары';
Cells[2,0]:='
Cells[3,0]:=' Преподаватель';
Cells[4,0]:=' № каб.' end end;
procedure TMainForm.RadioGroup2Click(
begin ComboBox2.Clear;
Продолжение приложения Г
if RadioGroup2.ItemIndex=0 then begin
ComboBox2.AddItem('1', Sender);
ComboBox2.AddItem('2', Sender);
ComboBox2.AddItem('3', Sender);
ComboBox2.AddItem('4', Sender);
for i:=0 to 5 do begin
StringGrid1.Cells[0, 1+i*4]:='1';
StringGrid1.Cells[0, 2+i*4]:='2';
StringGrid1.Cells[0, 3+i*4]:='3';
StringGrid1.Cells[0, 4+i*4]:='4' end end else begin
ComboBox2.AddItem('0', Sender);
ComboBox2.AddItem('1', Sender);
ComboBox2.AddItem('2', Sender);
ComboBox2.AddItem('3', Sender);
for i:=0 to 5 do begin
StringGrid1.Cells[0, 1+i*4]:='0';
StringGrid1.Cells[0, 2+i*4]:='1';
StringGrid1.Cells[0, 3+i*4]:='2';
StringGrid1.Cells[0, 4+i*4]:='3' end end;
ComboBox2.ItemIndex:=0;
Table1.First;
TabControl1.Tabs.Clear;
for i:=1 to Table1.RecordCount do begin
if Table1.FieldByName('Smena').
TabControl1.Tabs.Add(Table1.
Table1.Next end;
ControlChange(Sender) end;
Продолжение приложения Г
procedure TMainForm.ControlChange(
begin with Query1 do begin Close;
SQL.Clear;
SQL.Add('SELECT Groupp, Disciplin, Prepod, Cabinet, Dayy, Pari, Week');
SQL.Add('FROM ":My:raspisanie.db"');
SQL.Add('WHERE');
SQL.Add('(Groupp = ''' + TabControl1.Tabs[TabControl1.
Open;
case RadioGroup2.ItemIndex of
0: MainForm.Caption:=MainCap+
1: Mainform.Caption:=MainCap+vtor end;
with StringGrid1 do begin for i:=1 to 24 do begin Cells[1, i]:='';
Cells[2, i]:='';
Cells[3, i]:='' end;
j:=RadioGroup2.ItemIndex; First;
for i:=1 to RecordCount do begin if RadioGroup1.ItemIndex=0 then begin case FieldByName('Week').AsInteger of
0: Cells[1, FieldByName('Pari').AsInteger+
1: Cells[1, FieldByName('Pari').AsInteger+
Cells[1, FieldByName('Pari').AsInteger+
2: Cells[1, FieldByName('Pari').AsInteger+
Cells[1, FieldByName('Pari').AsInteger+
Cells[2, FieldByName('Pari').AsInteger+
Cells[2, FieldByName('Pari').AsInteger+
Продолжение приложения Г
Cells[3, FieldByName('Pari').AsInteger+
Cells[3, FieldByName('Pari').AsInteger+
if RadioGroup1.ItemIndex=
Cells[1, FieldByName('Pari').AsInteger+
Cells[2, FieldByName('Pari').AsInteger+
Cells[3, FieldByName('Pari').AsInteger+
Next end end end end;
procedure TMainForm.DeleteClick(Sender: TObject);
begin if TabControl1.Visible then with StringGrid1 do
if not((Cells[1 , Row]='')or((Cells[1 , Row][2]='.')and(
(Cells[1 , Row][1]='ч')or(Cells[1 , Row][1]='н')))) then begin
if Table5.Locate('Groupp;Dayy;
ControlChange(Sender) end else else begin
if Table7.Locate('Data;Grouppp;
DataChange(Sender);
if not f then StringGridClick(Sender) end end;
procedure TMainForm.
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin StringGrid1.MouseToCell(X, Y, r, r);
if r>0 then StringGrid1.Row:=r end;
Продолжение приложения Г
procedure TMainForm.Button1Click(Sender: TObject);
begin DeleteClick(Sender);
Table5.InsertRecord([
ControlChange(Sender) end;
procedure TMainForm.StringGrid1Click(
begin with StringGrid1 do begin if RadioGroup2.ItemIndex=0 then
ComboBox2.ItemIndex:=strtoint(
ComboBox2.ItemIndex:=strtoint(
ComboBox1.ItemIndex:=ceil(Row/
procedure TMainForm.DBComboBox6Change(
begin with ComboBox5 do begin
if Text='' then i:=1 else i:=strtoint(Text);
Clear; Table6.Locate('Group', DBComboBox6.Text, []);
if Table6.FieldByName('Smena').
AddItem('1', Sender);
AddItem('2', Sender);
AddItem('3', Sender);
AddItem('4', Sender);
AddItem('5', Sender);
if i<1 then i:=1;
ItemIndex:=i-1 end else begin
AddItem('-1', Sender);
AddItem('0', Sender);
AddItem('1', Sender);
Продолжение приложения Г
AddItem('2', Sender);
AddItem('3', Sender);
if i>3 then i:=3;
ItemIndex:=i+1 end end end;
procedure TMainForm.ComboBox1Change(
begin StringGrid1.Row:=ComboBox1.
procedure TMainForm.Button3Click(Sender: TObject);
begin f:=true; DeleteClick(Sender); f:=false;
Table7.InsertRecord([Data.
DataChange(Sender) end;
procedure TMainForm.StringGrid1KeyDown(
Shift: TShiftState);
begin if Key=VK_DELETE then Button2.Click end;
procedure TMainForm.DataChange(Sender: TObject);
begin with Query1 do begin Close; SQL.Clear;
SQL.Add('SELECT Data, Grouppp, Pari, Subgroup, Disciplin, Prepod, Cabinet');
SQL.Add('FROM ":My:izmenenies.db"');
SQL.Add('WHERE');
SQL.Add('Data = ''' + datetostr(Data.Date) + '''');
SQL.Add('ORDER BY Grouppp');
Open; First;
if RecordCount>0 then StringGrid.RowCount:=
Продолжение приложения Г
for i:=0 to 4 do StringGrid.Cells[i, 1]:='';
for i:=1 to RecordCount do begin
StringGrid.Cells[0, i]:=FieldByName('Grouppp').
StringGrid.Cells[1, i]:=FieldByName('Pari').
StringGrid.Cells[2, i]:=FieldByName('Disciplin').
StringGrid.Cells[3, i]:=FieldByName('Prepod').
StringGrid.Cells[4, i]:=FieldByName('Cabinet').
if FieldByName('Subgroup').
if FieldByName('Subgroup').
Next end end;
s:=formatdatetime('dddd', Data.Date);
s[1]:=chr(ord(s[1])-32);
j:=DayOfWeek(Data.Date);
i:=WeekOfTheYear(Data.Date);
if strtoint(formatdatetime('m', Data.Date))>8 then
i:=i-WeekOfTheYear(StrToDate('
i:=i+(52-WeekOfTheYear(
if i mod 2 = 0 then s:=s+chet else s:=s+nech;
Label7.Caption:=s;
DBComboBox7Change(Sender);
ComboBox5Change(Sender) end;
procedure TMainForm.DBComboBox6KeyPress(
begin if Key=#13 then ComboBox5.SetFocus end;
Продолжение приложения Г
procedure TMainForm.ComboBox5KeyPress(
begin if Key=#13 then DBComboBox4.SetFocus end;
procedure TMainForm.DBComboBox4KeyPress(
begin if Key=#13 then ComboBox4.SetFocus end;
procedure TMainForm.ComboBox4KeyPress(
begin if Key=#13 then DBComboBox5.SetFocus end;
procedure TMainForm.DBComboBox5KeyPress(
begin if Key=#13 then DBComboBox7.SetFocus end;
procedure TMainForm.DBComboBox7KeyPress(
begin Button3.SetFocus end;
procedure TMainForm.StringGridMouseDown(
Shift: TShiftState; X, Y: Integer);
begin StringGrid.MouseToCell(X, Y, r, r);
if r>0 then StringGrid.Row:=r end;
procedure TMainForm.StringGridClick(
begin with StringGrid do begin if Cells[0, Row]='' then begin
ComboBox4.ItemIndex:=0;
ComboBox5.ItemIndex:=0;
DBComboBox6.ItemIndex:=0;
DBComboBox7.ItemIndex:=0 end else begin if Cells[2, Row][2]='-' then
ComboBox4.ItemIndex:=strtoint(
DBComboBox6.Text:=Cells[0, Row];
Продолжение приложения Г
ComboBox5.Text:=Cells[1, Row];
DBComboBox7.Text:=Cells[4, Row] end;
DBComboBox7Change(Sender);
DBComboBox6Change(Sender) end end;
procedure TMainForm.DBComboBox7Change(
begin for i:=1 to 6 do for j:=1 to 6 do
if Table5.Locate('Dayy;Pari;
then StringGrid2.Cells[i, j]:=' x' else StringGrid2.Cells[i, j]:='' end;
procedure TMainForm.ComboBox5Change(
begin s:=ComboBox5.Text;
for i:=1 to StringGrid.RowCount-1 do if (StringGrid.Cells[0, i]=DBComboBox6.Text)
and(StringGrid.Cells[1, i]=s) then StringGrid.Row:=i;
Table6.Locate('Group', DBComboBox6.Text, []);
with ComboBox5 do begin if Table6.FieldByName('Smena').
StringGrid2.Row:=ItemIndex+1;
ItemIndex:=strtoint(s)-1 end else begin
if Text<>'4' then StringGrid2.Row:=ItemIndex+2;
ItemIndex:=strtoint(s)+1 end end;
if DayOfTheWeek(Data.Date)<>7 then StringGrid2.Col:=DayOfTheWeek(
ListBox1.Clear;
Table8.First;
for i:=1 to Table8.RecordCount do begin
if (not(Table5.Locate('Dayy;Pari;
Продолжение приложения Г
and((Table8.FieldByName('
Table8.Next end end;
procedure TMainForm.
Shift: TShiftState; X, Y: Integer);
var Row, Col: integer;
begin StringGrid2.MouseToCell(X, Y, Col, Row);
if ((Row<>r)or(Col<>c)) then begin
R:=row; C:=col; Application.CancelHint;
with Table5 do if Locate('Dayy;Pari;Cabinet', VarArrayOf([inttostr(c), inttostr(r), DBComboBox7.Text]), [])
then StringGrid2.Hint:=FieldByName(
else StringGrid2.Hint:='' end end;
procedure TMainForm.StringGrid2DrawCell(
ARow: Integer; Rect: TRect; State: TGridDrawState);
begin if (ACol=0)and(ARow=0) then begin with StringGrid2.Canvas do begin
TextOut(Rect.Left, Rect.Top, ' №');
TextOut(Rect.Left, Rect.Top-StringGrid2.Font.
procedure TMainForm.FileCloseItemClick(
begin RadioGroup3.OnClick(Sender);
TabControl1.Visible:=false;
TabControl2.Visible:=false;
TabControl3.Visible:=true;
Продолжение приложения Г
StringGrid3Click(Sender);
StringGrid4Click(Sender);
StringGrid6Click(Sender) end;
procedure TMainForm.RadioGroup3Click(
begin f:=false;
StringGrid5.RowCount:=1;
with Table1 do begin First;
for i:=1 to RecordCount do begin
if FieldByName('Smena').
if f then StringGrid5.RowCount:=
StringGrid5.Cells[0, StringGrid5.RowCount-1]:=
StringGrid5.Cells[1, StringGrid5.RowCount-1]:=
f:=true end;
Next end end;
StringGrid5.OnClick(Sender) end;
procedure TMainForm.BitBtn1Click(Sender: TObject);
begin if Table1.Locate('Group', LabeledEdit1.Text, []) then begin Table1.Delete;
DBComboBox6.Items.Delete(
Table1.InsertRecord([
DBComboBox6.Items.Add(
Session.Databases[0].
try Table1.ApplyUpdates;
Session.Databases[0].Commit except Session.Databases[0].Rollback;
raise end;
Table1.CommitUpdates;
RadioGroup3.OnClick(Sender) end;
Продолжение приложения Г
procedure TMainForm.BitBtn2Click(Sender: TObject);
begin if Table1.Locate('Group', LabeledEdit1.Text, []) then begin Table1.Delete;
DBComboBox6.Items.Delete(
Session.Databases[0].
try Table1.ApplyUpdates;
Session.Databases[0].Commit except Session.Databases[0].Rollback;
raise end;
Table1.CommitUpdates;
RadioGroup3.OnClick(Sender) end;
procedure TMainForm.BitBtn3Click(Sender: TObject);
begin if not Table9.Locate('Disciplin', LabeledEdit2.Text, []) then begin
Table9.InsertRecord([
DBComboBox1.Items.Add(
DBComboBox4.Items.Add(
Session.Databases[0].
try Table9.ApplyUpdates;
Session.Databases[0].Commit except Session.Databases[0].Rollback;
raise end;
Table9.CommitUpdates end;
StringGrid6.OnClick(Sender) end;
procedure TMainForm.BitBtn4Click(Sender: TObject);
begin if Table9.Locate('Disciplin', LabeledEdit2.Text, []) then begin Table9.Delete;
DBComboBox1.Items.Delete(
DBComboBox4.Items.Delete(
Session.Databases[0].
try Table9.ApplyUpdates;
Продолжение приложения Г
Session.Databases[0].Commit except Session.Databases[0].Rollback;
raise end;
Table9.CommitUpdates;
StringGrid6.OnClick(Sender) end;
procedure TMainForm.BitBtn5Click(Sender: TObject);
begin if not Table0.Locate('Prepod', LabeledEdit3.Text, []) then begin
Table0.InsertRecord([
DBComboBox2.Items.Add(
DBComboBox5.Items.Add(
Session.Databases[0].
try Table0.ApplyUpdates;
Session.Databases[0].Commit except Session.Databases[0].Rollback;
raise end;
Table0.CommitUpdates end;
StringGrid3.OnClick(Sender) end;
procedure TMainForm.BitBtn6Click(Sender: TObject);
begin if Table0.Locate('Prepod', LabeledEdit3.Text, []) then begin Table0.Delete;
DBComboBox2.Items.Delete(
DBComboBox5.Items.Delete(
Session.Databases[0].
try Table0.ApplyUpdates;
Session.Databases[0].Commit except Session.Databases[0].Rollback;
raise end;
Table0.CommitUpdates;
StringGrid3Click(Sender) end;
Продолжение приложения Г
procedure TMainForm.BitBtn7Click(Sender: TObject);
begin if Table8.Locate('Cabinet', LabeledEdit4.Text, []) then begin Table8.Delete;
DBComboBox3.Items.Delete(
DBComboBox7.Items.Delete(
Table8.InsertRecord([
DBComboBox3.Items.Add(
DBComboBox7.Items.Add(
Session.Databases[0].
try Table8.ApplyUpdates;
Session.Databases[0].Commit except Session.Databases[0].Rollback;
raise end;
Table8.CommitUpdates;
StringGrid4.OnClick(Sender) end;
procedure TMainForm.BitBtn8Click(Sender: TObject);
begin if Table8.Locate('Cabinet', LabeledEdit4.Text, []) then begin Table8.Delete;
DBComboBox3.Items.Delete(
DBComboBox7.Items.Delete(
Session.Databases[0].
try Table8.ApplyUpdates;
Session.Databases[0].Commit except Session.Databases[0].Rollback;
raise end;
Table8.CommitUpdates;
StringGrid4.OnClick(Sender) end;
procedure TMainForm.StringGrid3Click(
begin try with Table0 do begin First;
Продолжение приложения Г
StringGrid3.RowCount:=
for i:=0 to RecordCount do begin
StringGrid3.Cells[0, i]:=FieldByName('Prepod').
LabeledEdit3.Text:=
procedure TMainForm.StringGrid4Click(
begin with Table8 do begin First;
StringGrid4.RowCount:=
for i:=1 to RecordCount do with StringGrid4 do begin
Cells[0, i]:=FieldByName('Cabinet').
Cells[1, i]:=FieldByName('Name').
Cells[2, i]:=FieldByName('Zavcab').
Cells[3, i]:=FieldByName('Mesta').
if FieldByName('Computers').
if Row=i then CheckBox1.Checked:=true end else begin Cells[4, i]:='';
if Row=i then CheckBox1.Checked:=false end; Next end end;
LabeledEdit4.Text:=
LabeledEdit5.Text:=
LabeledEdit6.Text:=
SpinEdit2.Text:=StringGrid4.
procedure TMainForm.StringGrid5Click(
begin LabeledEdit1.Text:=
Table1.Locate('Group', LabeledEdit1.Text, []);
SpinEdit1.Value:=Table1.
procedure TMainForm.StringGrid6Click(
begin try with Table9 do begin First;
Продолжение приложения Г
StringGrid6.RowCount:=
for i:=0 to RecordCount do begin
StringGrid6.Cells[0, i]:=FieldByName('Disciplin').
LabeledEdit2.Text:=
procedure TMainForm.ListBox1Click(
begin DBComboBox7.Text:=ListBox1.
DBComboBox7.OnChange(Sender) end;