Всё сдал! - помощь студентам онлайн Всё сдал! - помощь студентам онлайн

Реальная база готовых
студенческих работ

Узнайте стоимость индивидуальной работы!

Вы нашли то, что искали?

Вы нашли то, что искали?

Да, спасибо!

0%

Нет, пока не нашел

0%

Узнайте стоимость индивидуальной работы

это быстро и бесплатно

Получите скидку

Оформите заказ сейчас и получите скидку 100 руб.!


Программа формирования списков «Предметы».

Тип Курсовая
Предмет Программирование delphi

ID (номер) заказа
3577134

500 руб.

Просмотров
710
Размер файла
94.67 Мб
Поделиться

Ознакомительный фрагмент работы:

ВведениеЦелью курсовой работы является изучение языка объектно-ориентированного программирования 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 дней в неделю

Наши менеджеры всегда на связи и оперативно решат любую проблему

Строгий отбор экспертов

К работе допускаются только проверенные специалисты с высшим образованием. Проверяем диплом на оценки «хорошо» и «отлично»

1 000 +
Новых работ ежедневно
computer

Требуются доработки?
Они включены в стоимость работы

Работы выполняют эксперты в своём деле. Они ценят свою репутацию, поэтому результат выполненной работы гарантирован

avatar
Математика
История
Экономика
icon
159599
рейтинг
icon
3275
работ сдано
icon
1404
отзывов
avatar
Математика
Физика
История
icon
156450
рейтинг
icon
6068
работ сдано
icon
2737
отзывов
avatar
Химия
Экономика
Биология
icon
105734
рейтинг
icon
2110
работ сдано
icon
1318
отзывов
avatar
Высшая математика
Информатика
Геодезия
icon
62710
рейтинг
icon
1046
работ сдано
icon
598
отзывов
Отзывы студентов о нашей работе
54 132 оценки star star star star star
среднее 4.9 из 5
ТюмГУ
Спасибо большое за курсовую работу!! Оригинальность 75%, оценка отлично
star star star star star
СПбГУ
Очень грамотное написание курсовой, видно, что исполнитель разбирается в теме работы и пиш...
star star star star star
РЭУ им.Плеханова
Благодарю Евгению за выполнение работы,оценка-отлично.Сделано -все как положено,грамотно и...
star star star star star

Последние размещённые задания

Ежедневно эксперты готовы работать над 1000 заданиями. Контролируйте процесс написания работы в режиме онлайн

Подогнать готовую курсовую под СТО

Курсовая, не знаю

Срок сдачи к 7 дек.

только что
только что

Выполнить задания

Другое, Товароведение

Срок сдачи к 6 дек.

1 минуту назад

Архитектура и организация конфигурации памяти вычислительной системы

Лабораторная, Архитектура средств вычислительной техники

Срок сдачи к 12 дек.

1 минуту назад

Организации профилактики травматизма в спортивных секциях в общеобразовательной школе

Курсовая, профилактики травматизма, медицина

Срок сдачи к 5 дек.

2 минуты назад

краткая характеристика сбербанка анализ тарифов РКО

Отчет по практике, дистанционное банковское обслуживание

Срок сдачи к 5 дек.

2 минуты назад

Исследование методов получения случайных чисел с заданным законом распределения

Лабораторная, Моделирование, математика

Срок сдачи к 10 дек.

4 минуты назад

Проектирование заготовок, получаемых литьем в песчано-глинистые формы

Лабораторная, основы технологии машиностроения

Срок сдачи к 14 дек.

4 минуты назад

2504

Презентация, ММУ одна

Срок сдачи к 7 дек.

6 минут назад

выполнить 3 задачи

Контрольная, Сопротивление материалов

Срок сдачи к 11 дек.

6 минут назад

Вам необходимо выбрать модель медиастратегии

Другое, Медиапланирование, реклама, маркетинг

Срок сдачи к 7 дек.

7 минут назад

Ответить на задания

Решение задач, Цифровизация процессов управления, информатика, программирование

Срок сдачи к 20 дек.

7 минут назад
8 минут назад

Все на фото

Курсовая, Землеустройство

Срок сдачи к 12 дек.

9 минут назад

Разработка веб-информационной системы для автоматизации складских операций компании Hoff

Диплом, Логистические системы, логистика, информатика, программирование, теория автоматического управления

Срок сдачи к 1 мар.

10 минут назад
11 минут назад

перевод текста, выполнение упражнений

Перевод с ин. языка, Немецкий язык

Срок сдачи к 7 дек.

11 минут назад
planes planes
Закажи индивидуальную работу за 1 минуту!

Размещенные на сайт контрольные, курсовые и иные категории работ (далее — Работы) и их содержимое предназначены исключительно для ознакомления, без целей коммерческого использования. Все права в отношении Работ и их содержимого принадлежат их законным правообладателям. Любое их использование возможно лишь с согласия законных правообладателей. Администрация сайта не несет ответственности за возможный вред и/или убытки, возникшие в связи с использованием Работ и их содержимого.

«Всё сдал!» — безопасный онлайн-сервис с проверенными экспертами

Используя «Свежую базу РГСР», вы принимаете пользовательское соглашение
и политику обработки персональных данных
Сайт работает по московскому времени:

Вход
Регистрация или
Не нашли, что искали?

Заполните форму и узнайте цену на индивидуальную работу!

Файлы (при наличии)

    это быстро и бесплатно
    Введите ваш e-mail
    Файл с работой придёт вам на почту после оплаты заказа
    Успешно!
    Работа доступна для скачивания 🤗.