это быстро и бесплатно
Оформите заказ сейчас и получите скидку 100 руб.!
ID (номер) заказа
3577134
Ознакомительный фрагмент работы:
ВведениеЦелью курсовой работы является изучение языка объектно-ориентированного программирования Borland Delphi и разработка практического приложения согласно заданного варианта задания. При выполнении курсовой работы была выполнена следующая работа:- изучение теории и технологии работы со средой программирования Delphi;- изучение и анализ соответствующей литературы, описывающей среду программирования Delphi;- приведена работа по практическому применению среды программирования Delphi.Среда программирования Delphi относится к объектно-ориентированным языкам программирования.Первый объектно-ориентированный язык программирования Simula 67 был разработан в конце 60-х годов в Норвегии. Современники (программисты 60-х годов) оказались не готовы воспринять ценности языка Simula 67, и он не выдержал конкуренции с другими языками программирования. Но достоинства языка Simula 67 были замечены некоторыми программистами, и в 70-е годы было разработано большое число экспериментальных объектно-ориентированных языков программирования: например, языки CLU, Alphard, Concurrent Pascal и др. Эти языки так и остались экспериментальными, но в результате их исследования были разработаны современные объектно-ориентированные языки программирования: C++, Smalltalk, Delphi и др. Появление Delphi не могло пройти незамеченным среди многочисленных пользователей компьютера. Основное достоинство Delphi состоит в том, что здесь реализованы идеи визуального программирования. Среда визуального программирования превращает процесс создания программы в приятное и легко понимаемое конструирование приложения из большого набора графических и структурных примитивов. Delphi – чрезвычайно быстро развивающаяся система. Первая версия – Delphi 1. 0 была выпущена в феврале 1995 г. А затем новые версии выпускались ежегодно. Каждая последующая версия Delphi дополняла предыдущую. Большинство версий Delphi выпускается в нескольких вариантах: Standart – стандартном, Professional – профессиональном, Client/Server – клиент/сервер, Enterprise – разработка баз данных предметных областей. Различаются варианты в основном разным уровнем доступа к системам управления базами данных. Последние варианты — Client/Server и Enterprise, в этом отношении наиболее мощные. Актуальность данной курсовой работы связана с возможностью использования визуальной среды программирования Delphi для решения практических задач. Курсовая работа состоит из введения двух глав, заключения и списка использованной литературы. Курсовая работа имеет одно приложение в виде компьютерной программы, для решения заданной задачи.Постановка задачиТема: Программа формирования списков «Предметы».Исходные данные: Дан список студентов четырех групп, состоящий из номера по порядку, фамилии и инициалов, группы, оценок по четырем предметам, средний балл.Средний балл считается программно.Программа по требованию выдает списки:1.Список любой группы, с положительными оценками по заданному пользователем предмету.2.Список любой задаваемой пользователем группы, и диапазоном среднего балла, заданного пользователем.3.Список любой задаваемой пользователем группы, отсортированный по среднему баллу.4.Список студентов на любую букву, задаваемую пользователем, отсортированный по оценке заданного пользователем предмету.5.Список студентов с заданными пользователем оценкой и предмету.Теоретическая частьОбъектно-ориентированное программирование (ООП) зародилось в языках программирования Паскаль, Ада, С++. До появления ООП технология создания компьютерных программ базировалась на процедурном программировании, в котором основой программ являлись функции и процедуры, т.е. действия. Созданная т.о. компьютерная программа отличалась четким алгоритмом работы – последовательностью действий по достижению поставленной цели. В ООП основной точкой опоры при проектировании программы является – объект. Программа ООП – это не последовательность операторов, а совокупность объектов и способов их взаимодействия. Обмен информацией между объектами происходит посредством сообщений.1) Объектом назовем понятие, абстракцию или любой предмет с четко очерченными границами, который имеет смысл в контексте рассматриваемой прикладной проблемы. Объекты могут наследовать характеристики и поведение других объектов, называемых родительскими или предками. Наличие механизма наследования является самым существенным различием между обычным программированием на Pascal ООП программированием в Delphi.2) Основным понятием ООП является понятие класса: классом – называют особую структуру, которая может иметь в своем составе поля, методы и свойства. Класс – это множество объектов, которые обладают внутренними свойствами, присущими любому объекту класса. Причем специфика класс проводится путем определения его внутренних свойств (классообразующие признаки). Класс выступает в качестве объектного типа данных. Классы имеют поля (как тип данных Record), свойства (напоминающие поля, но имеющие дополнительные описания) и методы (подпрограммы, которые обрабатывают поля и свойства класса). Базовым классом для всех объектов в Delphi, является класс TObject. Этот класс инкапсулирует основные функции, свойственные всем объектам Delphi. Все классы в Delphi являются прямыми или косвенными наследниками этого класса.3) Иерархия объектов класса. Каждый конкретный класс имеет свои особенности поведения и характеристик, определяющих этот класс. При использовании ООП следует помнить, что если характеристика однажды определена, то все категории, расположенные ниже данного определения, тоже будут содержать эту характеристику. Поэтому, если определена окружность, то нет необходимости узнавать сколько у нее вершин, т. к. она относится к подклассу фигур, не имеющих вершин.4) Наследование. В терминах Паскаль объект наиболее схож с типом Record, который является структурированным типом для объединения нескольких связанных элементов под одним именем.5) Операции и методы. Функция (или преобразование), которую можно применять к объектам данного класса, называется операцией. Если одна и та же операция применяется к объектам разного класса, то ее называют полиморфной.6) Свойства объекта. Совокупность данных и методов их чтение и записи называются свойством. Свойства объектов можно устанавливать в процессе проектирования, а также можно изменять программно во время выполнения программы. 7) События и их обработка. Средой взаимодействия объектов являются сообщения, генерируемые в результате наступления различных событий. Событие – это взаимодействие на объект. Событие наступает в результате действий пользователя (перемещение курсора, нажатие кнопки и т.п.). В каждом объекте определено множество событий, на которые он может реагировать. В конкретных объектах могут быть определены обработчики каких-то из этих событий. К написанию этих обработчиков и сводится основное программирование с помощью Delphi.Для решения задачи в Дельфи будем использовать записи.Запись (англ. record) - это сложный тип данных, позволяющие объединить данные разных типов. Запись можно назвать наиболее общим сложным типом данных. Название "запись" появилось из тех соображений, что данные разного типа можно встретить в таблицах: в каждой строке записаны сразу несколько разных значений. Таким образом, одна запись соответствует одной строке данных: она имеет несколько полей, каждое из которых хранит своё значение.Описание записиЧтобы работать в программе с записями, нужно сначала описать соответствующий тип данных. Запись описывается следующим образом:typeимя_типа_записи = record{поля записи}end;В блоке полей описание идёт точно так же, как описание переменных: указывается имя поля, далее через двоеточие тип данных этого поля. Сами поля разделяются точкой с запятой.Работа с записямиЧтобы обратиться к конкретному полю записи, применяется стандартная конструкция:имя_переменной.название_полят.е. имя переменной или объекта и его поле разделяются точкой.3. Практическая часть3.1. Описание алгоритма решения задачи.Для решения задачи примем следующие исходные данные:Первоначально сведения о студентах и их успеваемости хранятся в текстовом файле. Наименование текстового файла вводится в программе. Успеваемость студентов записываются виде последовательности целых числе. В начале программы загружаем соответствующие данные и складываем в соответствующие переменные с первоначальными изменениями. Далее загружаем данные в экран. Программа позволяет удалять данные, добавлять их. Также в программе предусмотрено работа с запросами, которые заданы в условии задачиДля решения задачи используем программу Borland Delphi.3.2. Блок схема решения задачи.Структурная схема алгоритма программыНачалоПолучение названия файла Обнуление переменных, в которые записываются искомые данныеКонец файлаЧтение элементаЗагрузка элемента на экранРасчет запросовКонецНетДаЗапрос первыйЗапрос второйЗапрос третийЗапрос четвертыйНачалоПолучение названия файла Обнуление переменных, в которые записываются искомые данныеКонец файлаЧтение элементаЗагрузка элемента на экранРасчет запросовКонецНетДаЗапрос первыйЗапрос второйЗапрос третийЗапрос четвертыйНачалоПолучение названия файла Обнуление переменных, в которые записываются искомые данныеКонец файлаЧтение элементаЗагрузка элемента на экранРасчет запросовКонецНетДаЗапрос первыйЗапрос второйЗапрос третийЗапрос четвертыйНачалоПолучение названия файла Обнуление переменных, в которые записываются искомые данныеКонец файлаЧтение элементаЗагрузка элемента на экранРасчет запросовКонецНетДаЗапрос первыйЗапрос второйЗапрос третийЗапрос четвертый3.3. Описание процедур и переменных.В программе применяются следующие процедуры и переменные:Процедура TForm1.N6Click обрабатывает пункт меню Файл-Открыть файл. Процедура предназначена для загрузки данных в таблицу и вывода на экран. Процедура TForm1.N7Click обрабатывает пункт меню Файл-Сохранить. Процедура предназначена для сохранения данных в исходный файл.Процедура TForm1.N8Click обрабатывает пункт меню Файл-Сохранить как... Процедура предназначена для сохранения данных в файл с новым именем.Процедура TForm1.N9Click обрабатывает пункт меню Файл-Разрешить редактирование. Процедура разрешает редактирование таблицы.Процедура TForm1.N10Click обрабатывает пункт меню Файл-Запретить редактирование. Процедура запрещает редактирование таблицы.Процедура TForm1.StringGrid1MouseDown запускает контекстное меню.Процедура TForm1.N16Click обрабатывает пункт контекстного меню Удалить строку. Процедура удаляет строку.Процедура TForm1.N17Click запускает форму 2. В форме 2 проводится добавление новой строки.Процедура TForm1.N11Click запускает форму 3. В форме 3 проводится обработка первого запроса.Процедура TForm1.N12Click запускает форму 4. В форме 4 проводится обработка второго запроса.Процедура TForm1.N13Click запускает форму 5. В форме 5 проводится обработка третьего запроса.Процедура TForm1.N14Click запускает форму 6. В форме 6 проводится обработка четвертого запроса.Процедура TForm1.N15Click запускает форму 7. В форме 7 проводится обработка пятого запроса.Процедура TForm1.N5Click выводит сведения о программе.Процедура TForm1.N4Click запускает форму 8. В форме 8 выводится помощь по работе с программой.3.4. Создание пользовательских форм.Для решения создаем 8 пользовательских форм:Рисунок SEQ Рисунок \* ARABIC 1. Главная формаРисунок SEQ Рисунок \* ARABIC 2. Форма добавления записиРисунок SEQ Рисунок \* ARABIC 3. Создание первого запросаРисунок SEQ Рисунок \* ARABIC 4. Создание второго запросаРисунок SEQ Рисунок \* ARABIC 5. Создание третьего запросаРисунок SEQ Рисунок \* ARABIC 6. Создание четвертого запросаРисунок SEQ Рисунок \* ARABIC 7. Создание пятого запросаРисунок SEQ Рисунок \* ARABIC 8. Создание справки по программе3.5. Листинг программы.Модуль №1unit Unit1;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Grids, Menus;type TForm1 = class(TForm) procedure N6Click(Sender: TObject); procedure N7Click(Sender: TObject); procedure N8Click(Sender: TObject); procedure N9Click(Sender: TObject); procedure N10Click(Sender: TObject); procedure StringGrid1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer); procedure N16Click(Sender: TObject); procedure N17Click(Sender: TObject); procedure N11Click(Sender: TObject); procedure N12Click(Sender: TObject); procedure N13Click(Sender: TObject); procedure N14Click(Sender: TObject); procedure N15Click(Sender: TObject); procedure N5Click(Sender: TObject); procedure N4Click(Sender: TObject); procedure FormCreate(Sender: TObject); private { Private declarations } public { Public declarations } end;type TStudent = record FIO: string; group: string; fiz: integer; mat: integer; inf: integer; fil: integer; srb: real;end;varForm1: TForm1; nm: string; st: array [1..100] of TStudent; vrgr: array [1..100] of TStudent; ACol, ARow: Integer; max: Integer;implementationuses Unit2, Unit3, Unit4, Unit5, Unit6, Unit7, Unit8;{$R *.dfm}procedure TForm1.N6Click(Sender: TObject);var L : TStringList; s:string; I,j : Integer;begin if OpenDialog1.Execute then begin nm:=OpenDialog1.FileName; L := TStringList.Create; L.LoadFromFile(nm); StringGrid1.Enabled:=True; StringGrid1.Visible:=True; StringGrid1.RowCount := L.Count+1; StringGrid1.Cells[0,0]:='№'; StringGrid1.Cells[1,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]:='Средний балл'; For I := 1 To L.Count Do Begin s:=L[i-1]; StringGrid1.Cells[0,i] := IntToStr(I); for j:=1 to 5 do begin StringGrid1.Cells[j,i] := Copy(s,1,Pos(',',s)-1); s:=Copy(s,Pos(',',s)+1,Length(s)); end; StringGrid1.Cells[6,i] := Copy(s,Pos(',',s)+1,Length(s)); StringGrid1.Cells[7,i] :=FloatToStr((StrToInt(StringGrid1.Cells[3,i])+StrToInt(StringGrid1.Cells[4,i])+StrToInt(StringGrid1.Cells[5,i])+StrToInt(StringGrid1.Cells[6,i]))/4); st[i].FIO:=StringGrid1.Cells[1,i]; st[i].group:=StringGrid1.Cells[2,i]; st[i].mat:=StrToInt(StringGrid1.Cells[3,i]); st[i].fiz:=StrToInt(StringGrid1.Cells[4,i]); st[i].inf:=StrToInt(StringGrid1.Cells[5,i]); st[i].fil:=StrToInt(StringGrid1.Cells[6,i]); st[i].srb:=strtofloat(StringGrid1.Cells[7,i]); End; L.Free; StringGrid1.Enabled:=false; max:=StringGrid1.RowCount; end;end;procedure TForm1.N7Click(Sender: TObject);Var I,j : Byte; F : TextFile; S : String;begin AssignFile(F, nm); Rewrite(F); For I := 1 to StringGrid1.rowcount-1 do Begin s:= StringGrid1.Cells[1,i]; for j:=2 to 6 do s:=s+','+StringGrid1.Cells[j,i]; Writeln(F,s) end; CloseFile(F)end;procedure TForm1.N8Click(Sender: TObject);Var I,j : Byte; F : TextFile; S,fname : String;begin if savedialog1.Execute then begin fname:=savedialog1.filename; if Copy(fname,Length(fname)-4,4)='.txt' then fname:=Copy(fname,Length(fname)-4,4)+'.txt' else fname:=fname+'.txt'; AssignFile(F, fname); Rewrite(F); For I := 1 to StringGrid1.rowcount-1 do Begin s:= StringGrid1.Cells[1,i]; for j:=2 to 6 do s:=s+','+StringGrid1.Cells[j,i]; Writeln(F,s) end; CloseFile(F) end;end;procedure TForm1.N9Click(Sender: TObject);begin StringGrid1.Enabled:=True;end;procedure TForm1.N10Click(Sender: TObject);begin StringGrid1.Enabled:=False;end;procedure TForm1.StringGrid1MouseDown(Sender: TObject; Button: TMouseButton; Shift: TShiftState; X, Y: Integer);beginwith StringGrid1 do begin MouseToCell(X, Y, ACol, ARow); Col:=ACol; Row:=ARow; popupMenu:=PopupMenu1; end;end;procedure TForm1.N16Click(Sender: TObject); var i, j: Integer;beginwith StringGrid1 do begin for i:=ARow+1 to RowCount-1 do for j:=1 to ColCount-1 do Cells[j, i-1]:=Cells[j, i]; for i:=0 to ColCount-1 do Cells[i, RowCount-1]:=''; RowCount:=RowCount-1; end; for i:=ARow to StringGrid1.RowCount-1 do st[i]:=st[i+1]; st[StringGrid1.RowCount].FIO:=''; st[StringGrid1.RowCount].group:=''; st[StringGrid1.RowCount].fiz:=0; st[StringGrid1.RowCount].mat:=0; st[StringGrid1.RowCount].inf:=0; st[StringGrid1.RowCount].fil:=0; max:=max-1;end;procedure TForm1.N17Click(Sender: TObject);begin form2.Show;end;procedure TForm1.N11Click(Sender: TObject);begin form3.show;end;procedure TForm1.N12Click(Sender: TObject);begin form4.show;end;procedure TForm1.N13Click(Sender: TObject);begin form5.show;end;procedure TForm1.N14Click(Sender: TObject);begin form6.show;end;procedure TForm1.N15Click(Sender: TObject);begin form7.show;end;procedure TForm1.N5Click(Sender: TObject);begin ShowMessage('Программа создана в рамках работы над курсовым проектом "Программа формирования списков "Предметы"');end;procedure TForm1.N4Click(Sender: TObject);begin form8.show;end;end.Модуль №2unit Unit2;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, ExtCtrls,Unit1;type TForm2 = class(TForm) Edit1: TEdit; Label1: TLabel; Edit2: TEdit; Panel1: TPanel; Label3: TLabel; Edit3: TEdit; Label4: TLabel; Edit4: TEdit; Label5: TLabel; Edit5: TEdit; Label6: TLabel; Edit6: TEdit; Button1: TButton; Button2: TButton; procedure Edit3KeyPress(Sender: TObject; var Key: Char); procedure Edit4KeyPress(Sender: TObject; var Key: Char); procedure Edit5KeyPress(Sender: TObject; var Key: Char); procedure Edit6KeyPress(Sender: TObject; var Key: Char); procedure Button1Click(Sender: TObject); procedure Button2Click(Sender: TObject); procedure FormActivate(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form2: TForm2;implementation{$R *.dfm}procedure TForm2.Edit3KeyPress(Sender: TObject; var Key: Char);begin if not (Key in ['2'..'5', #8])then Key:=#0;end;procedure TForm2.Edit4KeyPress(Sender: TObject; var Key: Char);begin if not (Key in ['2'..'5', #8])then Key:=#0;end;procedure TForm2.Edit5KeyPress(Sender: TObject; var Key: Char);begin if not (Key in ['2'..'5', #8])then Key:=#0;end;procedure TForm2.Edit6KeyPress(Sender: TObject; var Key: Char);begin if not (Key in ['2'..'5', #8])then Key:=#0;end;procedure TForm2.Button1Click(Sender: TObject);begin form2.Edit1.Text:=''; form2.Edit2.Text:=''; form2.Edit3.Text:=''; form2.Edit4.Text:=''; form2.Edit5.Text:=''; form2.Edit6.Text:='';end;procedure TForm2.Button2Click(Sender: TObject); var i:Byte;begin form1.StringGrid1.RowCount:= form1.StringGrid1.RowCount+1; st[form1.StringGrid1.RowCount-1].FIO:=edit1.text; st[form1.StringGrid1.RowCount-1].group:=edit2.text; st[form1.StringGrid1.RowCount-1].fiz:=strtoint(edit3.text); st[form1.StringGrid1.RowCount-1].mat:=strtoint(edit4.text); st[form1.StringGrid1.RowCount-1].inf:=strtoint(edit5.text); st[form1.StringGrid1.RowCount-1].fil:=strtoint(edit6.text); For I := 1 To form1.StringGrid1.RowCount-1 Do Begin form1.StringGrid1.Cells[0,i] := IntToStr(I); form1.StringGrid1.Cells[1,i] :=st[i].FIO; form1.StringGrid1.Cells[2,i] :=st[i].group; form1.StringGrid1.Cells[3,i] :=inttostr(st[i].fiz); form1.StringGrid1.Cells[4,i] :=inttostr(st[i].mat); form1.StringGrid1.Cells[5,i] :=inttostr(st[i].inf); form1.StringGrid1.Cells[6,i] :=inttostr(st[i].fil); form1.StringGrid1.Cells[7,i] :=floattostr((st[i].fiz+st[i].mat+st[i].inf+st[i].fil)/4); end; max:=max+1; form2.hide;end;procedure TForm2.FormActivate(Sender: TObject);begin form2.Edit1.Text:=''; form2.Edit2.Text:=''; form2.Edit3.Text:=''; form2.Edit4.Text:=''; form2.Edit5.Text:=''; form2.Edit6.Text:='';end;end.Модуль №3unit Unit3;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, Unit1, StdCtrls, ExtCtrls;type TForm3 = class(TForm) Label1: TLabel; RadioGroup1: TRadioGroup; RadioButton1: TRadioButton; RadioButton2: TRadioButton; RadioButton3: TRadioButton; RadioButton4: TRadioButton; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form3: TForm3;implementation{$R *.dfm}procedure TForm3.Button1Click(Sender: TObject); var i,k :Byte; r:TStudent; s:string;begin k:=1; with r do begin FIO:=''; group:=''; fiz:=0; mat:=0; inf:=0; fil:=0; end; with Form1.StringGrid1 do for i:=0 to ColCount-1 do Cols[i].Clear; for i:=1 to max do vrgr[i]:=r; Form1.StringGrid1.Cells[0,0]:='№'; Form1.StringGrid1.Cells[1,0]:='Фамилия И.О.'; Form1.StringGrid1.Cells[2,0]:='Группа'; Form1.StringGrid1.Cells[3,0]:='Математика'; Form1.StringGrid1.Cells[4,0]:='Физика'; Form1.StringGrid1.Cells[5,0]:='Информатика'; Form1.StringGrid1.Cells[6,0]:='Философия'; Form1.StringGrid1.Cells[7,0]:='Средний балл';if RadioButton1.Checked=True then begin for i:=1 to max do if ((st[i].fiz=4) or (st[i].fiz=5)) then begin vrgr[k]:=st[i] ; k:=k+1; end; end; if RadioButton2.Checked=True then begin for i:=1 to max do if ((st[i].mat=4) or (st[i].mat=5)) then begin vrgr[k]:=st[i] ; k:=k+1; end; end; if RadioButton3.Checked=True then begin for i:=1 to max do if ((st[i].inf=4) or (st[i].inf=5)) then begin vrgr[k]:=st[i] ; k:=k+1; end; end; if RadioButton4.Checked=True then begin for i:=1 to max do if ((st[i].fil=4) or (st[i].fil=5)) then begin vrgr[k]:=st[i] ; k:=k+1; end; end; For I := 1 To k-1 Do Begin form1.StringGrid1.Cells[0,i] := IntToStr(I); form1.StringGrid1.Cells[1,i] :=vrgr[i].FIO; form1.StringGrid1.Cells[2,i] :=vrgr[i].group; form1.StringGrid1.Cells[3,i] :=inttostr(vrgr[i].fiz); form1.StringGrid1.Cells[4,i] :=inttostr(vrgr[i].mat); form1.StringGrid1.Cells[5,i] :=inttostr(vrgr[i].inf); form1.StringGrid1.Cells[6,i] :=inttostr(vrgr[i].fil); form1.StringGrid1.Cells[7,i] :=floattostr(vrgr[i].srb); end; form3.hide;end;end.Модуль №4unit Unit4;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm4 = class(TForm) Label1: TLabel; Edit1: TEdit; Label2: TLabel; Edit2: TEdit; Label3: TLabel; Edit3: TEdit; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form4: TForm4;implementationuses Unit1;{$R *.dfm}procedure TForm4.Button1Click(Sender: TObject); var mina,maxa:Real; i,k :Byte; r:TStudent; s:string;begink:=1; with r do begin FIO:=''; group:=''; fiz:=0; mat:=0; inf:=0; fil:=0; end; with Form1.StringGrid1 do for i:=0 to ColCount-1 do Cols[i].Clear; for i:=1 to max do vrgr[i]:=r; Form1.StringGrid1.Cells[0,0]:='№'; Form1.StringGrid1.Cells[1,0]:='Фамилия И.О.'; Form1.StringGrid1.Cells[2,0]:='Группа'; Form1.StringGrid1.Cells[3,0]:='Математика'; Form1.StringGrid1.Cells[4,0]:='Физика'; Form1.StringGrid1.Cells[5,0]:='Информатика'; Form1.StringGrid1.Cells[6,0]:='Философия'; Form1.StringGrid1.Cells[7,0]:='Средний балл'; mina:=strtofloat(Edit2.Text); maxa:=strtofloat(Edit3.Text); for i:=1 to max do if ((st[i].group=Edit1.text) and (st[i].srb<=maxa) and (st[i].srb>=mina) ) then begin vrgr[k]:=st[i] ; k:=k+1; end; For I := 1 To k-1 Do Begin form1.StringGrid1.Cells[0,i] := IntToStr(I); form1.StringGrid1.Cells[1,i] :=vrgr[i].FIO; form1.StringGrid1.Cells[2,i] :=vrgr[i].group; form1.StringGrid1.Cells[3,i] :=inttostr(vrgr[i].fiz); form1.StringGrid1.Cells[4,i] :=inttostr(vrgr[i].mat); form1.StringGrid1.Cells[5,i] :=inttostr(vrgr[i].inf); form1.StringGrid1.Cells[6,i] :=inttostr(vrgr[i].fil); form1.StringGrid1.Cells[7,i] :=floattostr(vrgr[i].srb); end; form4.hide;end;end.Модуль №5unit Unit5;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm5 = class(TForm) Label1: TLabel; Edit1: TEdit; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form5: TForm5;implementationuses Unit1;{$R *.dfm}procedure TForm5.Button1Click(Sender: TObject);var i,j,k :Byte; r:TStudent; s:string;begink:=1; with r do begin FIO:=''; group:=''; fiz:=0; mat:=0; inf:=0; fil:=0; end; with Form1.StringGrid1 do for i:=0 to ColCount-1 do Cols[i].Clear; for i:=1 to max do vrgr[i]:=r; Form1.StringGrid1.Cells[0,0]:='№'; Form1.StringGrid1.Cells[1,0]:='Фамилия И.О.'; Form1.StringGrid1.Cells[2,0]:='Группа'; Form1.StringGrid1.Cells[3,0]:='Математика'; Form1.StringGrid1.Cells[4,0]:='Физика'; Form1.StringGrid1.Cells[5,0]:='Информатика'; Form1.StringGrid1.Cells[6,0]:='Философия'; Form1.StringGrid1.Cells[7,0]:='Средний балл'; for i:=1 to max do if (st[i].group=Edit1.text) then begin vrgr[k]:=st[i] ; k:=k+1; end; for i:=1 to k-2 do for j:=i to k-1 do begin if vrgr[j].srb>vrgr[i].srb then begin r:=vrgr[j]; vrgr[j]:=vrgr[i]; vrgr[i]:=r; end; end; For I := 1 To k-1 Do Begin form1.StringGrid1.Cells[0,i] := IntToStr(I); form1.StringGrid1.Cells[1,i] :=vrgr[i].FIO; form1.StringGrid1.Cells[2,i] :=vrgr[i].group; form1.StringGrid1.Cells[3,i] :=inttostr(vrgr[i].fiz); form1.StringGrid1.Cells[4,i] :=inttostr(vrgr[i].mat); form1.StringGrid1.Cells[5,i] :=inttostr(vrgr[i].inf); form1.StringGrid1.Cells[6,i] :=inttostr(vrgr[i].fil); form1.StringGrid1.Cells[7,i] :=floattostr(vrgr[i].srb); end; form5.hide;end;end.Модуль №6unit Unit6;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm6 = class(TForm) Label1: TLabel; Edit1: TEdit; Label2: TLabel; ListBox1: TListBox; Button1: TButton; procedure Button1Click(Sender: TObject); procedure Edit1KeyPress(Sender: TObject; var Key: Char); private { Private declarations } public { Public declarations } end;var Form6: TForm6;implementationuses Unit1, Unit5;{$R *.dfm}procedure TForm6.Button1Click(Sender: TObject);var i,j,k :Byte; r:TStudent; s:string;begink:=1; with r do begin FIO:=''; group:=''; fiz:=0; mat:=0; inf:=0; fil:=0; end; with Form1.StringGrid1 do for i:=0 to ColCount-1 do Cols[i].Clear; for i:=1 to max do vrgr[i]:=r; Form1.StringGrid1.Cells[0,0]:='№'; Form1.StringGrid1.Cells[1,0]:='Фамилия И.О.'; Form1.StringGrid1.Cells[2,0]:='Группа'; Form1.StringGrid1.Cells[3,0]:='Математика'; Form1.StringGrid1.Cells[4,0]:='Физика'; Form1.StringGrid1.Cells[5,0]:='Информатика'; Form1.StringGrid1.Cells[6,0]:='Философия'; Form1.StringGrid1.Cells[7,0]:='Средний балл'; for i:=1 to max do if (Copy(st[i].FIO,1,1)=Edit1.text) then begin vrgr[k]:=st[i] ; k:=k+1; end; for i:=1 to k-2 do for j:=i to k-1 do begin if ListBox1.ItemIndex=1 then begin if vrgr[j].mat>vrgr[i].mat then begin r:=vrgr[j]; vrgr[j]:=vrgr[i]; vrgr[i]:=r; end; end; if ListBox1.ItemIndex=2 then begin if vrgr[j].fiz>vrgr[i].fiz then begin r:=vrgr[j]; vrgr[j]:=vrgr[i]; vrgr[i]:=r; end; end; if ListBox1.ItemIndex=3 then begin if vrgr[j].inf>vrgr[i].inf then begin r:=vrgr[j]; vrgr[j]:=vrgr[i]; vrgr[i]:=r; end; end; if ListBox1.ItemIndex=4 then begin if vrgr[j].fil>vrgr[i].fil then begin r:=vrgr[j]; vrgr[j]:=vrgr[i]; vrgr[i]:=r; end; end; end; For I := 1 To k-1 Do Begin form1.StringGrid1.Cells[0,i] := IntToStr(I); form1.StringGrid1.Cells[1,i] :=vrgr[i].FIO; form1.StringGrid1.Cells[2,i] :=vrgr[i].group; form1.StringGrid1.Cells[3,i] :=inttostr(vrgr[i].fiz); form1.StringGrid1.Cells[4,i] :=inttostr(vrgr[i].mat); form1.StringGrid1.Cells[5,i] :=inttostr(vrgr[i].inf); form1.StringGrid1.Cells[6,i] :=inttostr(vrgr[i].fil); form1.StringGrid1.Cells[7,i] :=floattostr(vrgr[i].srb); end; form6.hide;end;procedure TForm6.Edit1KeyPress(Sender: TObject; var Key: Char);begin if not (Key in ['А'..'Я', #8])then Key:=#0;end;end.Модуль №7unit Unit7;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm7 = class(TForm) ListBox1: TListBox; Label1: TLabel; Label2: TLabel; Edit1: TEdit; Button1: TButton; procedure Edit1KeyPress(Sender: TObject; var Key: Char); procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form7: TForm7;implementationuses Unit1;{$R *.dfm}procedure TForm7.Edit1KeyPress(Sender: TObject; var Key: Char);begin if not (Key in ['2'..'5', #8])then Key:=#0;end;procedure TForm7.Button1Click(Sender: TObject);var i,j,k :Byte; r:TStudent; s:string;begink:=1; with r do begin FIO:=''; group:=''; fiz:=0; mat:=0; inf:=0; fil:=0; end; with Form1.StringGrid1 do for i:=0 to ColCount-1 do Cols[i].Clear; for i:=1 to max do vrgr[i]:=r; Form1.StringGrid1.Cells[0,0]:='¹'; Form1.StringGrid1.Cells[1,0]:='Ôàìèëèÿ È.Î.'; Form1.StringGrid1.Cells[2,0]:='Ãðóïïà'; Form1.StringGrid1.Cells[3,0]:='Ìàòåìàòèêà'; Form1.StringGrid1.Cells[4,0]:='Ôèçèêà'; Form1.StringGrid1.Cells[5,0]:='Èíôîðìàòèêà'; Form1.StringGrid1.Cells[6,0]:='Ôèëîñîôèÿ'; Form1.StringGrid1.Cells[7,0]:='Ñðåäíèé áàëë'; for i:=1 to max do begin if (ListBox1.ItemIndex=0) and (st[i].fiz=strtoint(Edit1.text)) then begin vrgr[k]:=st[i] ; k:=k+1; end; if (ListBox1.ItemIndex=1) and (st[i].mat=strtoint(Edit1.text)) then begin vrgr[k]:=st[i] ; k:=k+1; end; if (ListBox1.ItemIndex=2) and (st[i].inf=strtoint(Edit1.text)) then begin vrgr[k]:=st[i] ; k:=k+1; end; if (ListBox1.ItemIndex=3) and (st[i].fil=strtoint(Edit1.text)) then begin vrgr[k]:=st[i] ; k:=k+1; end; end; for i:=1 to k-2 do for j:=i to k-1 do begin if vrgr[j].srb>vrgr[i].srb then begin r:=vrgr[j]; vrgr[j]:=vrgr[i]; vrgr[i]:=r; end; end;For I := 1 To k-1 Do Begin form1.StringGrid1.Cells[0,i] := IntToStr(I); form1.StringGrid1.Cells[1,i] :=vrgr[i].FIO; form1.StringGrid1.Cells[2,i] :=vrgr[i].group; form1.StringGrid1.Cells[3,i] :=inttostr(vrgr[i].fiz); form1.StringGrid1.Cells[4,i] :=inttostr(vrgr[i].mat); form1.StringGrid1.Cells[5,i] :=inttostr(vrgr[i].inf); form1.StringGrid1.Cells[6,i] :=inttostr(vrgr[i].fil); form1.StringGrid1.Cells[7,i] :=floattostr(vrgr[i].srb); end; form7.hide;end;end.Модуль №8unit Unit8;interfaceuses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls;type TForm8 = class(TForm) Memo1: TMemo; Button1: TButton; procedure Button1Click(Sender: TObject); private { Private declarations } public { Public declarations } end;var Form8: TForm8;implementationuses Unit1;{$R *.dfm}procedure TForm8.Button1Click(Sender: TObject);beginForm8.Hide;end;end.3.6. Результат выполнения программы.Создаем текстовый файл с данными об успеваемости студентов:Рисунок SEQ Рисунок \* ARABIC 9. Исходный файл с даннымиЗапускаем программу:Рисунок SEQ Рисунок \* ARABIC 10. Главное окно программыЗагружаем файл с данными:Рисунок SEQ Рисунок \* ARABIC 11. Загрузка данныхПолучаем таблицу, с которой мы будем работатьРисунок SEQ Рисунок \* ARABIC 12. Окно с загруженными даннымиРисунок SEQ Рисунок \* ARABIC 13. Окно с запросомРисунок SEQ Рисунок \* ARABIC 14. Окно со справкойЗаключениеВ ходе выполнения курсовой работы мы установили, что система Delphi позволяет решать множество задач, в частности:- Создавать законченные приложения для Windows самой различной направленности: от чисто вычислительных и логических, до графических и мультимедиа. - Быстро создавать профессионально выглядящий оконный интерфейс для любых приложений. - Создавать мощные системы работы с локальными и удаленными базами данных- Создавать справочные системы (файлы. hlp) для своих приложений. В процессе выполнения курсового проекта я усвоил некоторые возможности Delphi. Но даже этот небольшой объем материала позволил мне убедиться в колоссальности данной среды. Целью курсовой работы было изучение языка программирования Delphi и разработка практического приложения. При этом были выявлены следующие достоинства полученного программного продукта:1. Минималистичный интерфейс программы позволяет сразу же приступить к работе и не вызывает утомления от длительной работы с программой;2. Программа не требует установки в систему;3. Программный продукт малотребователен к системным ресурсам компьютера. В результате учета всех сделанных выше замечаний можно заключить, что программа полностью удовлетворяет поставленной при разработке задаче, имея при этом минимально необходимую функциональность. Так же следует заметить возможность улучшения и дальнейшего развития программного продукта, для чего потребуется освоение новых областей знаний и приемов программирования. Список использованных источников Гофман, В. Э. Delphi. Быстрый старт / В. Э. Гофман, А. Д. Хомоненко. – СПб.: БХВ-Петербург, 2003. Пестриков, В. М. Delphi на примерах / В. М. Пестриков, А. Н. Маслобоев. — СПб.: БХВ-Петербург, 2005. Стивене, Р. Delphi. Готовые алгоритмы / Род Стивене; Пер. с англ. Мерещука П. А. — 2-е изд., стер. — М.: ДМК Пресс; СПб.: Питер, 2004. Фаронов В. В. Deiphi 6. Учебный курс / В. В. Фараонов. – СПб.: Питер, 2002. Федоров А. Г. Создание Windows-приложений в среде Delphi / А. Г. Федоров. – М.: ТОО «Компьютер Пресс», 1999.
Сделайте индивидуальный заказ на нашем сервисе. Там эксперты помогают с учебой без посредников
Разместите задание – сайт бесплатно отправит его исполнителя, и они предложат цены.
Цены ниже, чем в агентствах и у конкурентов
Вы работаете с экспертами напрямую. Поэтому стоимость работ приятно вас удивит
Бесплатные доработки и консультации
Исполнитель внесет нужные правки в работу по вашему требованию без доплат. Корректировки в максимально короткие сроки
Гарантируем возврат
Если работа вас не устроит – мы вернем 100% суммы заказа
Техподдержка 7 дней в неделю
Наши менеджеры всегда на связи и оперативно решат любую проблему
Строгий отбор экспертов
К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»
Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован
Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн
Выполнить 2 контрольные работы по Информационные технологии и сети в нефтегазовой отрасли. М-07765
Контрольная, Информационные технологии
Срок сдачи к 12 дек.
Архитектура и организация конфигурации памяти вычислительной системы
Лабораторная, Архитектура средств вычислительной техники
Срок сдачи к 12 дек.
Организации профилактики травматизма в спортивных секциях в общеобразовательной школе
Курсовая, профилактики травматизма, медицина
Срок сдачи к 5 дек.
краткая характеристика сбербанка анализ тарифов РКО
Отчет по практике, дистанционное банковское обслуживание
Срок сдачи к 5 дек.
Исследование методов получения случайных чисел с заданным законом распределения
Лабораторная, Моделирование, математика
Срок сдачи к 10 дек.
Проектирование заготовок, получаемых литьем в песчано-глинистые формы
Лабораторная, основы технологии машиностроения
Срок сдачи к 14 дек.
Вам необходимо выбрать модель медиастратегии
Другое, Медиапланирование, реклама, маркетинг
Срок сдачи к 7 дек.
Ответить на задания
Решение задач, Цифровизация процессов управления, информатика, программирование
Срок сдачи к 20 дек.
Написать реферат по Информационные технологии и сети в нефтегазовой отрасли. М-07764
Реферат, Информационные технологии
Срок сдачи к 11 дек.
Написать реферат по Информационные технологии и сети в нефтегазовой отрасли. М-07764
Реферат, Геология
Срок сдачи к 11 дек.
Разработка веб-информационной системы для автоматизации складских операций компании Hoff
Диплом, Логистические системы, логистика, информатика, программирование, теория автоматического управления
Срок сдачи к 1 мар.
Нужно решить задание по информатике и математическому анализу (скрин...
Решение задач, Информатика
Срок сдачи к 5 дек.
Заполните форму и узнайте цену на индивидуальную работу!