Разработка программного продукта «Разработка учебного плана по специальности» (Текст программы)

Страницы работы

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.

Фрагмент текста работы

ПРИЛОЖЕНИЕ А

unit ZastavkaUnit;  \\Модуль заставка

interface

uses

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

Dialogs, ExtCtrls, jpeg;

type

TZastavka = class(TForm)

Image1: TImage;

Timer1: TTimer;

procedure FormShow(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure Image1Click(Sender: TObject);

private

{ Private declarations }

public

T: integer;

{ Public declarations }

end;

var

Zastavka: TZastavka;

implementation

uses UnitGlav, UnitLogin;

{$R *.dfm}

procedure TZastavka.FormShow(Sender: TObject);

begin

T:=0;

end;

procedure TZastavka.Timer1Timer(Sender: TObject);

begin

t:=t+1;

if t=3 then

begin

{Login.Show; }

Zastavka.Hide;

end;

end;

procedure TZastavka.Image1Click(Sender: TObject);

begin

end;

end.

unit UnitLogin; \\ Модуль для ввода пароля

interface

uses

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

Dialogs, StdCtrls;

type

TLogin = class(TForm)

Button1: TButton;

Edit1: TEdit;

Label1: TLabel;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Login: TLogin;

implementation

uses UnitGlav;

{$R *.dfm}

procedure TLogin.Button1Click(Sender: TObject);

begin

if edit1.text='2505' then

begin

glav.Show;

Login.Hide;

end

else

Application.MessageBox('Не угадали!','Сообщение',MB_Ok);

end;

end.

unit UnitGlav; \\ Модуль главной формы

interface

uses

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

Dialogs, Menus, DBCtrls, StdCtrls, comobj, ADOconEd;

type

TGlav = class(TForm)

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

N13: TMenuItem;

Label1: TLabel;

N15: TMenuItem;

N17: TMenuItem;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

N18: TMenuItem;

ComboBox1: TComboBox;

procedure N4Click(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure N18Click(Sender: TObject);

procedure AvtoRef(Sender: TObject);

procedure ComboBox1Change(Sender: TObject);

procedure N13Click(Sender: TObject);

procedure N17Click(Sender: TObject);

private

{ Private declarations }

public

ch:integer;

v:integer;{Выбор специальности}

DAt:array[1..2,1..52] of integer;

{ Public declarations }

end;

var

Glav: TGlav;

implementation

uses  UnitGUP, UnitPUP, UnitDisz, UnitLogin, ZastavkaUnit, UnitDataModule,

UnitSpravka, Unitkartspravd, UnitSpez;

{$R *.dfm}

procedure TGlav.AvtoRef(sender:TObject);

var i:integer;

begin

ComboBox1.Items.Clear;

for i:=1 to datamodule1.SpezTable.RecordCount do begin

datamodule1.SpezTable.RecNo:=i;

Glav.ComboBox1.Items.Add(datamodule1.SpezTableDSDesigner2.AsString);   end;

end;

procedure TGlav.N4Click(Sender: TObject);

begin

Close;

Login.Close;

Zastavka.Close;

end;

procedure TGlav.N2Click(Sender: TObject);

begin

GUP.Show;

end;

procedure TGlav.N3Click(Sender: TObject);

begin

Pup.Show;

end;

procedure TGlav.N6Click(Sender: TObject);

begin

Spravka.Show;

{}

end;

procedure TGlav.FormShow(Sender: TObject);

var i:integer;

begin

V:=1;{Выбираем первую запись в SpezTable}

datamodule1.ADOConnection1.Close;

{Заполнение дат первой строки}

dat[1,1]:=1;

dat[1,2]:=8;

dat[1,3]:=15;

dat[1,4]:=22;

dat[1,5]:=29;

dat[1,6]:=6;

dat[1,7]:=13;

dat[1,8]:=20;

dat[1,9]:=27;

dat[1,10]:=3;

dat[1,11]:=10;

dat[1,12]:=17;

dat[1,13]:=24;

dat[1,14]:=1;

dat[1,15]:=8;

dat[1,16]:=15;

dat[1,17]:=22;

dat[1,18]:=29;

dat[1,19]:=5;

dat[1,20]:=12;

dat[1,21]:=19;

dat[1,22]:=26;

dat[1,23]:=2;

dat[1,24]:=9;

dat[1,25]:=16;

dat[1,26]:=23;

dat[1,27]:=2;

dat[1,28]:=9;

dat[1,29]:=16;

dat[1,30]:=23;

dat[1,31]:=30;

dat[1,32]:=6;

dat[1,33]:=13;

dat[1,34]:=20;

dat[1,35]:=27;

dat[1,36]:=4;

dat[1,37]:=11;

dat[1,38]:=18;

dat[1,39]:=25;

dat[1,40]:=1;

dat[1,41]:=8;

dat[1,42]:=15;

dat[1,43]:=22;

dat[1,44]:=29;

dat[1,45]:=6;

dat[1,46]:=13;

dat[1,47]:=20;

dat[1,48]:=27;

dat[1,49]:=3;

dat[1,50]:=10;

dat[1,51]:=17;

dat[1,52]:=24;

{Заполнение дат Второй строки}

dat[2,1]:=7;

dat[2,2]:=14;

dat[2,3]:=21;

dat[2,4]:=28;

dat[2,5]:=5;

dat[2,6]:=12;

dat[2,7]:=19;

dat[2,8]:=26;

dat[2,9]:=2;

dat[2,10]:=9;

dat[2,11]:=16;

dat[2,12]:=23;

dat[2,13]:=30;

dat[2,14]:=7;

dat[2,15]:=14;

dat[2,16]:=21;

dat[2,17]:=28;

dat[2,18]:=4;

dat[2,19]:=11;

dat[2,20]:=18;

dat[2,21]:=25;

dat[2,22]:=1;

dat[2,23]:=8;

dat[2,24]:=15;

dat[2,25]:=22;

dat[2,26]:=1;

dat[2,27]:=8;

dat[2,28]:=15;

dat[2,29]:=22;

dat[2,30]:=29;

dat[2,31]:=5;

dat[2,32]:=12;

dat[2,33]:=19;

dat[2,34]:=26;

dat[2,35]:=3;

dat[2,36]:=10;

dat[2,37]:=17;

dat[2,38]:=24;

dat[2,39]:=31;

dat[2,40]:=7;

dat[2,41]:=14;

dat[2,42]:=21;

dat[2,43]:=28;

dat[2,44]:=5;

dat[2,45]:=12;

dat[2,46]:=19;

dat[2,47]:=26;

dat[2,48]:=2;

dat[2,49]:=9;

dat[2,50]:=16;

dat[2,51]:=23;

dat[2,52]:=31;

{Отключение меню}

Mainmenu1.Items.Items[1].Items[1].Enabled :=false;

Mainmenu1.Items.Items[2].Items[0].Enabled :=false;

Mainmenu1.Items.Items[2].Items[1].Enabled :=false;

Mainmenu1.Items.Items[3].Items[0].Enabled :=false;

Application.MessageBox('Базаданных незагружена ваши функции ограничены','Внимание!',MB_ok);

end;

procedure TGlav.N18Click(Sender: TObject);

begin

Spez.Show;

end;

procedure TGlav.ComboBox1Change(Sender: TObject);

var i,j:integer;

begin

for i:=1 to datamodule1.SpezTable.RecordCount do

begin

datamodule1.SpezTable.RecNo:=i;

if datamodule1.SpezTableDSDesigner2.Value=ComboBox1.Text  then  begin

v:=i;

end;

end;

end;

procedure TGlav.N13Click(Sender: TObject);

var

XLapp,Sheet,Colum:variant;

index,i,j,kol:integer;

begin

Xlapp:=CreateOleObject('Excel.application');

Xlapp.Visible:=true;

Xlapp.Workbooks.add(-4167);

Xlapp.Workbooks[1].WorkSheets[1].name:='Отчет';

Colum:=Xlapp.Workbooks[1].WorkSheets['Отчет'].Columns;

//Расширение столбцов в Exele

for i:=1 to GUP.StringGrid1.ColCount+5  do

begin

Colum.Columns[i].columnWidth:=2;

end;

//Формирование шрифта в первой строке

Colum:=Xlapp.Workbooks[1].Worksheets['Отчет'].Rows;

for j:=1 to GUP.StringGrid1.RowCount+4 do

begin

Colum.Rows[j].Font.Size:=8;

end;

Sheet:=Xlapp.Workbooks[1].WorkSheets['Отчет'];

sheet.cells[3,5]:='График учебного процеса';

Sheet:=Xlapp.Workbooks[1].WorkSheets['Отчет'];

for i:=1 to GUP.StringGrid1.ColCount+1  do

begin

for j:=1 to GUP.StringGrid1.RowCount+1 do

begin

sheet.cells[j+3,i+1]:=GUP.StringGrid1.Cells[i-1,j-1];

end;                end;    end;

procedure TGlav.N17Click(Sender: TObject);

{Подключится}

begin

datamodule1.ADOConnection1.Close;

if editconnectionstring(datamodule1.ADOConnection1) then

begin

datamodule1.ADOConnection1.Connected:=true;

datamodule1.KatDiscTable3.Active:=true;

datamodule1.SpezTable.Active:=true;

datamodule1.DiszTable1.Active:=true;

datamodule1.DiszTableKol.Active:=true;

end;

datamodule1.KatDiscTable3.Active:=true;

datamodule1.SpezTable.Active:=true;

datamodule1.DiszTable1.Active:=true;

datamodule1.DiszTableKol.Active:=true;

{Заполнение Combobox}

Avtoref(sender);

Mainmenu1.Items.Items[1].Items[1].Enabled:=true;

Mainmenu1.Items.Items[2].Items[0].Enabled:=true;

Mainmenu1.Items.Items[2].Items[1].Enabled:=true;

Mainmenu1.Items.Items[3].Items[0].Enabled:=true;

Application.MessageBox('Загрузка успешна можете работать','Внимание!',MB_ok);

end;

end.

unit UnitGUP; \\ Модуль графика учебного процесса

interface

uses

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

Dialogs, StdCtrls, Buttons, Grids, ExtCtrls, Menus;

type

TGup = class(TForm)

StringGrid1: TStringGrid;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

Label4: TLabel;

Label5: TLabel;

Label6: TLabel;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Label10: TLabel;

Label11: TLabel;

Label12: TLabel;

Label13: TLabel;

Label14: TLabel;

Label15: TLabel;

Label16: TLabel;

Label17: TLabel;

Label18: TLabel;

Label19: TLabel;

Label20: TLabel;

Label21: TLabel;

Label22: TLabel;

Button1: TButton;

Label23: TLabel;

GroupBox1: TGroupBox;

Label25: TLabel;

Label26: TLabel;

Label27: TLabel;

Label28: TLabel;

Button2: TButton;

Timer1: TTimer;

Label24: TLabel;

StringGrid2: TStringGrid;

Memo1: TMemo;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

SaveDialog1: TSaveDialog;

OpenDialog1: TOpenDialog;

N4: TMenuItem;

N5: TMenuItem;

PopupMenu1: TPopupMenu;

o1: TMenuItem;

N81: TMenuItem;

x1: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

c1: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

Label29: TLabel;

procedure BitBtn1Click(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;

Rect: TRect; State: TGridDrawState);

procedure StringGrid2DrawCell(Sender: TObject; ACol, ARow: Integer;

Rect: TRect; State: TGridDrawState);

procedure Button1Click(Sender: TObject);

procedure Button2Click(Sender: TObject);

procedure Timer1Timer(Sender: TObject);

procedure N2Click(Sender: TObject);

procedure N1Click(Sender: TObject);

procedure N3Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;

var CanSelect: Boolean);

procedure o1Click(Sender: TObject);

procedure N81Click(Sender: TObject);

procedure x1Click(Sender: TObject);

procedure N6Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure N8Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure c1Click(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure Raspoz1(Dr:string;sender:Tobject);

procedure N11Click(Sender: TObject);

private

{ Private declarations }

public

{Пере меные для процедуры RASPOZ1}

Dr,d,rb:string;

{}

GR1:textfile;

Gup:array[0..52,0..5] of string;   {Массив лля значений из Графика учебного процеса}

Rect1: TRect;

t:integer;

raz:array[1..9] of integer;

Zag:array[1..10] of string;

put:TfileName;

Xs,Ys:integer;                                    {Координаты выбраной ячейки}

{ Public declarations }

end;

var

Gup: TGup;

implementation

uses UnitGlav, UnitVibor;

{$R *.dfm}

procedure TGup.Raspoz1(Dr:string;Sender:tobject);

var i:integer;

begin

d:=''; rb:='';

for i:=1 to length(Dr) do

begin

if Dr[i]='/'then begin d:=Dr[1];rb:=Dr[3]; end;

end

end;

procedure TGup.BitBtn1Click(Sender: TObject);

begin

Close;

end;

procedure TGup.FormShow(Sender: TObject);

Var i:integer;

begin

raz[1]:=5;

raz[2]:=9;

raz[3]:=18;

raz[4]:=22;

raz[5]:=26;

raz[6]:=31;

raz[7]:=35;

raz[8]:=44;

raz[9]:=48;

zag[1]:='недель';

zag[2]:='часов';

zag[3]:='промеж. аттест. недель.';

zag[4]:='для получ. первич. проф. нав.';

zag[5]:='по проф. спец.(тех)';

zag[6]:='преддиплом(квалиф)';

zag[7]:='подг. ИГА';

zag[8]:='ИГА недель.';

zag[9]:='Каник. недель';

zag[10]:='Всего недель';

for i:=2 to 6 do

begin

Stringgrid1.Cells[0,i]:=inttostr(i-1);

end;

for i:=1 to 52 do

begin

Stringgrid1.Cells[i,0]:=inttostr(Glav.dat[1 ,i]);

end;

for i:=1 to 52 do

begin

Stringgrid1.Cells[i,1]:=inttostr(Glav.dat[2 ,i]);

end;

for i:=1 to 10 do

begin

Stringgrid2.Cells[i,0]:=zag[i];

end;

{Онулируем суммы в Сводные данные по бюджету}

for i:=1 to 10 do

begin

Stringgrid2.Cells[i,5]:='0';

end;

for i:=1 to 4 do

begin

Stringgrid2.Cells[0,i]:=inttostr(i);

end

end;

procedure TGup.StringGrid1DrawCell(Sender: TObject; ACol, ARow: Integer;

Rect: TRect; State: TGridDrawState);

var  i,j:integer;

begin

{  ------------------------- ОКРАСКА СТРИНГГРИДА   ---------------------for i:=1 to 9 do

if (Acol=raz[i])  then

begin

Stringgrid1.Canvas.Brush.Color:=clMoneyGreen;

end;

Stringgrid1.CaNVAS.FillRect(Rect);

Stringgrid1.CaNVAS.Textout(Rect.Left+2,Rect.Top+1,Stringgrid1.Cells[Acol,Arow]);

for j:=2 to 6 do

begin

Stringgrid1.Cells[0,i]:=inttostr(i-1);

end;

for j:=1 to 52 do

begin

Stringgrid1.Cells[i,0]:=inttostr(Glav.dat[1 ,i]);

end;

for j:=1 to 52 do

begin

Stringgrid1.Cells[i,1]:=inttostr(Glav.dat[2 ,i]);

end;

{t:=t+1;

edit1.Text:=inttostr(t); }

{for i:=1 to 4 do

begin

Stringgrid2.Cells[0,i]:=inttostr(i);

end;

}

end;

procedure TGup.StringGrid2DrawCell(Sender: TObject; ACol, ARow: Integer;

Rect: TRect; State: TGridDrawState);

begin

{t:=t+1;   }

end;

procedure TGup.Button1Click(Sender: TObject);

var i,j,v,r,r1,t:integer;

ch:real;

znach:array[1..11] of string;   {Сокращеные значения Пример(п,8,х... )}

begin

{zag[6]:='преддиплом(квалиф)';

zag[7]:='подг. ИГА';

zag[8]:='ИГА недель.';

zag[9]:='Каник. недель';

zag[10]:='Всего недель';

{}

for i:=0 to 52 do

begin

for j:=0 to 5 do

begin

Memo1.Lines.Add(inttostr(i)+','+inttostr(j)+'_'+Gup[i,j])

end;

end;

{}

Znach[1]:=''; Znach[2]:=' '; Znach[3]:='п';   Znach[4]:='о';  Znach[5]:='8';

Znach[6]:='х';   Znach[7]:='г'; Znach[8]:='и';  Znach[9]:='к';  Znach[10]:=' ';

Znach[11]:='с';

{----------------------------------------------------------------------------------------}

ch:=0;

t:=0;

{Пересчет из GUP количества п - Промежуточных атестаций   в стринггрид2 }

for v:=1 to 10 do           begin

for j:=0 to 5 do

begin

ch:=0;

for i:=0 to 52 do

begin

if Gup[i,j]=Znach[V] then begin

ch:=ch+1;

end;

if j>1 then    {Выводим в сводные данные по бюджету количество п - Промежуточная атестация}

stringgrid2.Cells[v-t,j-1]:=floattostr(ch);

end;

end;

{   }

end;

{Подсчет учебных сборов-с }

for j:=0 to 5 do

begin

{ch:=0; }

for i:=0 to 52 do

begin

if Gup[i,j]='с' then begin

{ch:=ch+1; }

if j>1 then    {Выводим в сводные данные по бюджету количество п - Промежуточная атестация}

stringgrid2.Cells[9,j-1]:=floattostr(strtofloat(stringgrid2.Cells[9,j-1])+1);

end;

end;

end;

{Пересчет из GUP дробного количества п - Промежуточных атестаций и прочих значений   в стринггрид2 }

for v:=3 to 9 do           begin

for j:=0 to 5 do

begin

ch:=0;

for i:=0 to 52 do   {Считаем все до дроби}

begin

Raspoz1(Gup[i,j],sender);

if d=Znach[V] then begin

ch:=ch+0.5;

if j>1 then    {Выводим в сводные данные по бюджету количество п - Промежуточная атестация и прочие}

stringgrid2.Cells[v,j-1]:=floattostr(strtofloat(stringgrid2.Cells[v,j-1])+ch);

end;

end;

ch:=0;

for i:=0 to 52 do  {Считаем все после дроби}

begin

Raspoz1(Gup[i,j],sender);

if rb=Znach[V] then begin

ch:=ch+0.5;

if j>1 then    {Выводим в сводные данные по бюджету количество п - Промежуточная атестация и прочие}

stringgrid2.Cells[v,j-1]:=floattostr(strtofloat(stringgrid2.Cells[v,j-1])+ch);

end;

end;

end;

end;

{----------------------------------------------------------------------------------------}

{Обнуление перед подсчетом Суммы столбцов}

for i:=1 to 10 do     {Очищаем строку Итого}

begin

Stringgrid2.Cells[i,5]:='0';

end;

{Подсчет всего недель}

r:=0;

for j:=2 to 5 do  begin  r1:=52;

for i:=1 to 52 do

begin

if Gup[i,j]=Znach[8]{и} then begin

r1:=i;

end;   {else begin r1:=52; end; }

if j>1 then  begin

stringgrid2.Cells[10,j-1]:=inttostr(r1);   end;

end;

end;

{На последнем курсе несчитаем  недели после ИГА}

stringgrid2.Cells[1,4]:= inttostr(strtoint(stringgrid2.Cells[1,4])-(52-r1));

{Подсчет часов}

for j:=1 to 4 do begin

stringgrid2.Cells[2,j]:=floattostr(strtofloat(stringgrid2.Cells[1,j])*36);

end;

{Подсчитываем Суммы столбцов}

for i:=1 to 10 do begin

for j:=1 to 4 do begin

stringgrid2.Cells[i,5]:=floattostr(strtofloat(stringgrid2.Cells[i,5])+strtofloat(stringgrid2.Cells[i,j]));

end;

end;

GroupBox1.Visible:=true;

end;

procedure TGup.Button2Click(Sender: TObject);

begin

GroupBox1.Visible:=false;

end;

procedure TGup.Timer1Timer(Sender: TObject);

var i,j:integer;

begin

{Запсываем из Stringgrid1 в Gup }

for i:=0 to 52 do

begin

for j:=0 to 5 do

begin

Gup[i,j]:=Stringgrid1.Cells[i,j];

end;

end;

{label29.Caption:=Stringgrid1.Cells[2,2];}

end;

procedure TGup.N2Click(Sender: TObject);

begin

close;

end;

procedure TGup.N1Click(Sender: TObject);

begin

application.MessageBox('Вводить все русским транскриптом','Внимание!',MB_OK);

end;

procedure TGup.N3Click(Sender: TObject);

var  i:integer;

begin

if savedialog1.Execute then

begin

assignfile(Gr1,Savedialog1.FileName);

Rewrite(Gr1);

for i:=0 to 52 do

begin

Writeln(Gr1,GUP[i,0]+'#'+GUP[i,1]+'#'+GUP[i,2]+'#'+GUP[i,3]+'#'+GUP[i,4]+'#'+GUP[i,5]);

end;

CloseFile(Gr1);

end;

PUT:=Savedialog1.FileName;

end;

procedure TGup.N5Click(Sender: TObject);

var i,h,j:integer;

proch,s:string;

begin

if opendialog1.Execute then

begin

AssignFile(Gr1,Opendialog1.FileName);

Reset(Gr1);

for i:=0 to 52 do

begin

h:=0;

readln(Gr1,Proch);

for j:=1 to Length(Proch) do

begin

if Proch[j]<>'#' then

begin

GUP[i,h]:=GUP[i,h]+Proch[j];

end

else

begin

h:=h+1;

end;

end;

end;

end;

for i:=1 to 52 do begin

for j:=2 to 5 do begin

stringgrid1.Cells[i,j]:=GUP[i,j];

end; end;

for i:=1 to 52 do begin

for j:=2 to 5 do begin

s:=stringgrid1.Cells[i,j];

end;

end;

CloseFile(Gr1);

end;

procedure TGup.StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;

var CanSelect: Boolean);

begin

Xs:=ACol;

Ys:=ARow;

end;

procedure TGup.o1Click(Sender: TObject);

begin

Stringgrid1.Cells[Xs,Ys]:='о';

end;

procedure TGup.N81Click(Sender: TObject);

begin

Stringgrid1.Cells[Xs,Ys]:='8';

end;

procedure TGup.x1Click(Sender: TObject);

begin

Stringgrid1.Cells[Xs,Ys]:='х';

end;

procedure TGup.N6Click(Sender: TObject);

begin

Stringgrid1.Cells[Xs,Ys]:='п';

end;

procedure TGup.N7Click(Sender: TObject);

begin

Stringgrid1.Cells[Xs,Ys]:='и';

end;

procedure TGup.N8Click(Sender: TObject);

begin

Stringgrid1.Cells[Xs,Ys]:='к';

end;

procedure TGup.N9Click(Sender: TObject);

begin

Stringgrid1.Cells[Xs,Ys]:='г';

end;

procedure TGup.c1Click(Sender: TObject);

begin

Stringgrid1.Cells[Xs,Ys]:='с';

end;

procedure TGup.N10Click(Sender: TObject);

begin

Vibor.ShowModal;

end;

procedure TGup.N11Click(Sender: TObject);

begin

Stringgrid1.Cells[Xs,Ys]:='';

end;

end.

unit UnitPUP; \\ Модуль плана учебного процесса

interface

uses

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

Dialogs, Grids, StdCtrls, ExtCtrls, Buttons;

type

TPUP = class(TForm)

BitBtn1: TBitBtn;

Button1: TButton;

Label5: TLabel;

Panel1: TPanel;

Label1: TLabel;

Label2: TLabel;

Label3: TLabel;

StringGrid1: TStringGrid;

Label4: TLabel;

Label6: TLabel;

Button2: TButton;

Label7: TLabel;

Label8: TLabel;

Label9: TLabel;

Button3: TButton;

Button4: TButton;

procedure BitBtn1Click(Sender: TObject);

procedure Button1Click(Sender: TObject);

procedure FormShow(Sender: TObject);

procedure Button2Click(Sender: TObject);

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

procedure Button3Click(Sender: TObject);

procedure Button4Click(Sender: TObject);

Procedure Vivod(sender: Tobject);

Procedure SAveDB(sender: Tobject);

Procedure Raspoz(Es:String;Sender: Tobject);

{procedure StringGrid1Click(Sender: TObject);    }

private

{ Private declarations }

public

summ,f:integer;

Es:string;

srav:array[1..10] of string;{Массив для распределения экзаменов без запятых}

Ek:array[1..20,1..3] of string;  {Массив для распределения экзаменов}

{ Public declarations }

end;

var

PUP: TPUP;

implementation

uses UnitRON, UnitDataModule, UnitOBNag, UnitVsego;

{$R *.dfm}

procedure TPUP.Raspoz(Es:string;sender:Tobject);

var i,j,ch,ch1:integer;

begin

{for i:=1 to 10 do begin Ek[i,1]:=inttostr(i); end;

for i:=11 to 20 do begin Ek[i,1]:=inttostr(i-10)+'к'; end;

for i:=1 to 20 do begin Ek[i,3]:='0';end;  }

for i:=1 to 10 do begin srav[i]:=''; end;

ch:=1 ;

ch1:=0;

for i:=1 to Length(Es) do

begin

if ES[i]<>',' then begin

srav[ch]:=srav[ch]+ES[i];

end else begin ch:=ch+1;  end;

end ;

for i:=1 to 10 do begin

for j:=1 to 20 do begin

if srav[i]=Ek[j,1] then begin Ek[j,3]:=inttostr(strtoint(Ek[j,3])+1); end;

end;

end;

{}

end;

procedure TPUP.SAveDB(sender:Tobject);

var i,j,j1,r:integer;

begin

for r:=1 to datamodule1.KatDiscTable3.RecordCount do     begin {Цикл перебора категорий}

datamodule1.KatDiscTable3.RecNo:=r;

for j1:=1 to stringgrid1.RowCount do     begin

{Цикл для сравнения записей Индекс в таблице с индексом в Stringgridom}

if datamodule1.KatDiscTable3.Fields.Fields[2].AsString=stringgrid1.Cells[0,j1] then begin

datamodule1.KatDiscTable3.Edit;    {Переносим Контрольные работы}

datamodule1.KatDiscTable3.Fields[4].AsString:=stringgrid1.Cells[5,j1];

{Загружаю Максимальная учебная нагрузка на студенчский час}

Datamodule1.KatDiscTable3.Fields.Fields[5].AsString:= stringgrid1.Cells[6,j1];

{Загружаю Самостоятельная учебная нагрузка на студенчский час}

Datamodule1.KatDiscTable3.Fields.Fields[6].AsString:=stringgrid1.Cells[7,j1];

if datamodule1.KatDiscTable3.Modified=true then begin datamodule1.KatDiscTable3.Post;  end;

end;

end;

for i:=1 to datamodule1.DiszTable1.RecordCount do   {Цикл перебора дисциплин в таблице}

begin

datamodule1.DiszTable1.RecNo:=i;

for j:=1 to stringgrid1.RowCount do     begin

{Цикл для сравнения записей Индекс в таблице с индексом в Stringgridom}

if datamodule1.DiszTable1.Fields.Fields[2].AsString=stringgrid1.Cells[0,j] then begin

{Записываем значение в таблицу}

{}

Label7.Caption:=datamodule1.DiszTable1.Fields.Fields[2].AsString;

Label8.Caption:=stringgrid1.Cells[0,j];

Label9.Caption:=stringgrid1.Cells[2,j];

{Application.MessageBox('','',Mb_ok);    }

{}

datamodule1.DiszTable1.Edit;

{Переносим Значения экзаменов}

datamodule1.DiszTable1.Fields[4].AsString:=stringgrid1.Cells[2,j];

{Переносим Значения Курсовой проект}

datamodule1.DiszTable1.Fields[5].AsString:=stringgrid1.Cells[3,j];

{Переносим Значения зачет}

datamodule1.DiszTable1.Fields[6].AsString:=stringgrid1.Cells[4,j];

{Переносим Контрольные работы}

datamodule1.DiszTable1.Fields[7].AsString:=stringgrid1.Cells[5,j];

{Загружаю Максимальная учебная нагрузка на студенчский час}

Datamodule1.DiszTable1.Fields.Fields[8].AsString:= stringgrid1.Cells[6,j];

{Загружаю Самостоятельная учебная нагрузка на студенчский час}

Datamodule1.DiszTable1.Fields.Fields[9].AsString:=stringgrid1.Cells[7,j];

if datamodule1.DiszTable1.Modified=true then begin datamodule1.DiszTable1.Post;  end;

end;

end;       end;

end;

end;

procedure TPUP.Vivod(Sender: Tobject);

var i,j,st,q:integer;

begin

st:=0;

stringgrid1.Cells[2,0]:='Экзамены';

stringgrid1.Cells[3,0]:='Курс проект';

stringgrid1.Cells[4,0]:='Зачет';

stringgrid1.Cells[5,0]:='Контр. работы';

stringgrid1.Cells[6,0]:='';

stringgrid1.Cells[7,0]:='';

{stringgrid2.Cells[0,0]:='Всего';

stringgrid2.Cells[1,0]:='Зан.на уроках';

stringgrid2.Cells[2,0]:='Лаб. и практ.работы';

stringgrid2.Cells[3,0]:='Курс. проектирование';

{Передаем каличество записей}

stringgrid1.RowCount:=Datamodule1.DiszTablekol.RecordCount+Datamodule1.KatDiscTable3.RecordCount;

label5.Caption:=label5.Caption+inttostr(stringgrid1.RowCount);

{Процедура заполнения}

{for q:=0 to 1 do begin  }

{Цикл промотки столбцов}

st:=0;

for i:=1 to Datamodule1.KatDiscTable3.RecordCount do

begin {---------------------Цикл категорий------------------}

st:=st+1;

Datamodule1.KatDiscTable3.RecNo:=i;

{Загружаю индексы}

stringgrid1.Cells[0,st]:=Datamodule1.KatDiscTable3.Fields.Fields[2].AsString ;

{Загружаю Наименования Категорий}

stringgrid1.Cells[1,st]:=Datamodule1.KatDiscTable3.Fields.Fields[3].AsString ;

{Загружаю Контрольные работы}

stringgrid1.Cells[5,st]:=Datamodule1.KatDiscTable3.Fields.Fields[4].AsString;

{Загружаю Максимальная учебная нагрузка на студенчский час}

stringgrid1.Cells[6,st]:=Datamodule1.KatDiscTable3.Fields.Fields[5].AsString;

{Загружаю Самостоятельная учебная нагрузка на студенчский час}

Похожие материалы

Информация о работе

Уважаемые коллеги! Предлагаем вам разработку программного обеспечения под ключ.

Опытные программисты сделают для вас мобильное приложение, нейронную сеть, систему искусственного интеллекта, SaaS-сервис, производственную систему, внедрят или разработают ERP/CRM, запустят стартап.

Сферы - промышленность, ритейл, производственные компании, стартапы, финансы и другие направления.

Языки программирования: Java, PHP, Ruby, C++, .NET, Python, Go, Kotlin, Swift, React Native, Flutter и многие другие.

Всегда на связи. Соблюдаем сроки. Предложим адекватную конкурентную цену.

Заходите к нам на сайт и пишите, с удовольствием вам во всем поможем.