Разработка информационно-поисковой системы "Студенты факультета"
Создание приложения Windows, позволяющего автоматизировать процесс обработки информации студентов университета. Организация работы с физическими файлами в языках программирования. Изучение средств IDE Delphi для организации работы с текстовыми файлами.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | курсовая работа |
Язык | русский |
Дата добавления | 08.11.2011 |
Размер файла | 1,5 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
Размещено на http://www.allbest.ru/
Курсовая работа
"Разработка информационно-поисковой системы "Студенты факультета"
Введение
Сейчас компьютер является неотъемлемой частью практически любой сферы профессиональной деятельности человека. Компьютеры используются на предприятиях, фирмах, в магазинах, учреждениях, учебных заведениях и т.п. Они позволяют систематизировать информацию, с которой работают сотрудники данной организации, и в дальнейшем оперативно получать необходимые сведения.
Цель курсовой работы: создать приложение Windows, позволяющее автоматизировать процесс обработки информации студентов университета.
ПОСТАНОВКА ЗАДАЧИ
Имеется две таблицы (студенты, группы), информация о каждом объекте имеет заданную структуру и представляет собой запись хранимой таблицы. Запись в таблице студентов должна содержать следующую информацию о товаре: ФИО, дата рождения, дата поступления, адрес, группа, признак получения стипендии. Таблица групп представляет собой неизменный справочник с данными о составе групп университета. Основная таблица может использовать справочные данные, которые выбирает из другой таблицы (неизменный справочник) и помещает в основную таблицу выбранное значение. Обе таблицы представляют собой текстовые файлы. Работа с таблицей (т.е. с файлом) может происходить без полной загрузки ее в оперативную память. Обязательные операции с файлом таблицы - ввод, вывод. Вывод по группе. Сортировка по фамилии. Поиск по фамилии.
ИСХОДНЫЕ ДАННЫЕ
1. Основная таблица содержит поля:
а) Табельный номер; (вводится программой для контроля уникальности записи и оптимизации работы с набором данных)
б) ФИО;
в) дата рождения;
г) дата поступления;
д) адрес;
е) группа;
ж) признак получения стипендии.
Представляет собой типизированный файл записей.
2. Дополнительная таблица: неизменяемый справочник групп.
Представляет собой текстовый файл, строки которого являются наименованиями групп студентов.
ДЕЙСТВИЯ
1. Вывод по выбранной(-ым) группе(-ам) студентов. Операция фильтрации может быть выполнена в любое время при работе с таблицей данных студентов.
2. Сортировка по ФИО, дате рождения и поступления, адресу, группе, признаку получения стипендии. При этом существует возможность предварительной загрузки всего содержимого файла студентов. Сортировка в прямом и обратном порядке.
3. При вводе дат прихода вести проверку на корректность ввода даты.
4. Поиск по ФИО. При этом существует возможность предварительной загрузки всего содержимого файла студентов. Поиск осуществляется как с начала загруженного в оперативную память набора данных, так и в продолжение с текущей позицией курсора в наборе данных студентов.
5. Ввод в текущую рабочую таблицу данных студентов или в новый файл.
6. Работа с таблицей данных студентов: добавление, редактирование и удаление записей.
7. Работа с неизменным справочником групп: добавление, редактирование и удаление записей из файла.
8. Вывод информации о программном продукте.
Теоретический материал
ФИЗИЧЕСКИЙ ФАЙЛ
Организация хранения информации зависит от конкретного носителя, и подробно рассматриваться нами не будет. В общем случае хранение информации организовано в виде именованных областей внешней памяти, называемых файлами. Файл в таком понимании называют физическим файлом.
ЛОГИЧЕСКИЙ ФАЙЛ
Для организации работы с физическими файлами в языках программирования предусмотрены специальные структуры данных ? тип данных файл. Файл в таком понимании называют логическим файлом, так как в этом случае он представляет собой лишь логическую модель хранения информации не зависящую от организации конкретного физического файла.
Файл ? это потенциально бесконечная последовательность компонент одного и того же типа. Количество компонент в файле заранее не оговаривается.
Файловый тип можно задать одним из трех способов:
<имя> = File of <тип>;
<имя> = TextFile;
<имя> = File;
Здесь <имя> - имя файлового типа (правильный идентификатор);
File, of - зарезервированные слова (файл, из); TextFile - имя стандартного типа текстовых файлов; <тип> - любой тип Object Pascal, кроме файлов. Например:
type
Fl = File of Char;
F2 = TextFile;
F3 = File;
В зависимости от способа объявления можно выделить три вида файлов:
1) типизированные файлы (задаются предложением File of ...);
2) текстовые файлы (определяются типом TextFile);
3) нетипизированные файлы (определяются типом File).
В наших примерах F1 - типизированный файл, F2 - текстовый файл, F3 - нетипизированный файл. Вид файла, вообще говоря, определяет способ хранения в нем информации. Однако в Delphi нет средств контроля вида ранее созданных файлов. При объявлении уже существующих файлов программист должен сам следить за соответствием вида объявления характеру хранящихся в файле данных.
Типизированные файлы представляют собой набор данных одного типа. В разрабатываемой программе удобно использовать файл содержащий набор структур - «запись». Объявление структуры в Delphi: type recordTypeName = record
fieldList1: type1;
fieldListn: typen;
end
где recordTypeName - имя записи, record - ключевое слово обозначающее тип объявляемой структуры как запись, fieldList1… fieldListn - набор полей записи несущих некую смысловую нагрузку и содержащие данные об объекте описываемом записью.
Основные процедуры/функции работы с типизированными файлами:
AssignFile - ассоциирует имя физического файла файловой переменной программы.
CloseFile - закрывает файл.
Eof - возвращает истину если курсор находится в конеце файла.
Erase- удалить файл.
FileSize - возвращает текущий размер файла в байтах.
Read- считывает запись из файла в переменную программы.
Reset- открывает выбранный файл.
Seek- перемещает курсор в типизированном файле на указанную позицию.
Truncate - обрезает файл по текущей позиции курсора.
Write- запись переменной в файл.
В программе предусмотрена сортировка содержимого файла загруженного в оперативную память. Для сортировки используется метод вставками. Сортировка вставками -- простой алгоритм сортировки. Хотя этот алгоритм сортировки уступает в эффективности более сложным (таким как быстрая сортировка), у него есть ряд преимуществ:
* прост в реализации;
* эффективен на небольших наборах данных, на наборах данных до десятков элементов может оказаться лучшим;
* эффективен на наборах данных, которые уже частично отсортированы;
* это устойчивый алгоритм сортировки (не меняет порядок элементов, которые уже отсортированы);
* может сортировать список по мере его получения;
* не требует временной памяти, даже под стек.
На каждом шаге алгоритма мы выбираем один из элементов входных данных и вставляем его на нужную позицию в уже отсортированном списке, до тех пор пока набор входных данных не будет исчерпан. Метод выбора очередного элемента из исходного массива произволен; может использоваться практически любой алгоритм выбора. Обычно (и с целью получения устойчивого алгоритма сортировки), элементы вставляются по порядку их появления во входном массиве. На рис. 1 представлен фрагмент работы алгоритма.
Рис.1. Пример работы алгоритма сортировки вставками
На рис.1(a) мы вынимаем элемент 3. Затем элементы, расположенные выше, сдвигаем вниз - до тех пор, пока не найдем место, куда нужно вставить 3. Это процесс продолжается на рис.1(b) для числа 1. Наконец, на рис.1(c) мы завершаем сортировку, поместив 2 на нужное место.
Если длина нашего массива равна n, нам нужно пройтись по n - 1 элементам. Каждый раз нам может понадобиться сдвинуть n - 1 других элементов, получая алгоритм с временем работы O(n2).
Структурное описание проекта
В проекте используются файлы формата `.txt', файл студентов содержит набор типизированных записей, файл групп содержит наименование групп университета каждая строка которого - наименование группы.
Согласно заданию программное средство должно выполнять ряд функций, способ организации каждой из них следующий:
1. МОДУЛЬ ВЫВОДА/ФИЛЬТРАЦИИ - вывод по выбранной(-ым) группе(-ам). Операция фильтрации может быть выполнена в любое время при работе с таблицей данных студентов.
В данном случае необходимо учесть, что одно из требований состоит в том, чтобы данные из файла, при необходимости, загружались в оперативную память частично. Для реализации данной функции при открытии нового файла или фильтрации будет происходить обращение к файлу и выборке из него записей удовлетворяющих критериям фильтрации, этом информация о файле будет храниться на протяжении всей работы приложения.
Вх. данные модуля: файл записей данных о студентах определенного формата, параметры фильтрации - список групп, которые необходимо загрузить в оперативную память.
Промежуточные данные: текущая считанная запись из файла.
Вых. данные: набор записей в оп. памяти удовлетворяющий параметрам фильтра, определенного при загрузке данных.
2. МОДУЛЬ СОРТИРОВКИ - Сортировка по ФИО, дате рождения и поступления, адресу, группе, признаку получения стипендии. При этом перед процедурой сортировки происходит предварительная загрузки всего содержимого файла студентов. Сортировка в прямом и обратном порядке.
Для реализации данной возможности создается процедура сортировки, которая по выбранным пользователем параметрам будет сортировать данные. Для сортировки данных выбран алгоритм сортировки вставками, описание см. выше. Перед началом сортировки, будет производиться обращение к файлу студентов с загрузкой всех записей из файла перед сортировкой, т.к. перед сортировкой пользователем мог быть применен фильтр на записи, выводимые в оп. память, затем будет применен алгоритм сортировки на данные в оперативной памяти.
Вх. данные: набор записей в оп. памяти, поле сортировки, порядок сортировки (прямой/обратный).
Промежуточные данные: отсутствуют.
Вых. данные: набор записей, отсортированный согласно выбранным параметрам.
3. МОДУЛЬ ПОИСКА - Поиск по ФИО. При этом осуществляется автоматическая загрузка всего содержимого файла склада. Поиск осуществляется как с начала загруженного в оперативную память набора данных, так и в продолжение с текущей позицией курсора в наборе данных студентов.
Для реализации данной функции создается крупа полей, при выборе значения которых и нажатия кнопки происходит обращение к файлу записей о студентах и выборка всех неповторяющихся значений групп в нем. При этом происходит предварительная загрузка всех записей файла для поиска (аналогично сортировке). После выбора пользователем ФИО и подтверждении выбора происходит позиционирование курсора на первой записи в оп. памяти удовлетворяющей параметрам поиска.
Также пользователю предоставлена возможность поиска следующей записи удовлетворяющей последним введенным параметрам поиска с любой позиции курсора в наборе записей, загруженных в оп. память. В случае, не будет найдено совпадения выдается сообщение об окончании поиска.
Вх. данные: набор записей в оп. памяти, ФИО поиска.
Промежуточные данные: отсутствуют
Вых. данные: позиция найденной записи в наборе или сообщение об окончании поиска без нахождения совпадений.
4. МОДУЛЬ СОХРАНЕНИЯ - Ввод в текущую рабочую таблицу данных студентов или в новый файл.
Пользователю предоставляется выбор файла для сохранения набора записей находящихся в оп. памяти. Если будет выбран файл, с которым велась текущая работа, то выдается предупреждение о возможной потере информации из файла при сохранении в него данных.
Вх. данные: набор записей в оп. памяти, файл для сохранения.
Вых. данные: файл с записями.
5. МОДУЛЬ РЕДАКТИРОВАНИЯ - Работа с таблицей данных студентов: добавление, редактирование и удаление записей.
- Редактирование: пользователь имеет возможность редактирования данных о любом студенте университета, при этом возможна отмена всех внесенных пользователем изменений до нажатия им кнопки подтверждения сохранения изменений.
- Добавление: пользователю предоставляется возможность добавления новой записи о студенте, при этом, после подтверждения сохранения данных, запись записывается в файл и помещается в оп. память.
- Удаление: пользователь имеет возможность удалить запись о студенте, после подтверждения запроса на удаление, запись будет безвозвратно удалена из файла
Вх. данные: текущая запись в оп. памяти, файл записей.
Вых. данные: обновленная/новая запись о студентах.
6. МОДУЛЬ РАБОТЫ С ГРУППАМИ - работа с неизменным справочником групп: добавление, редактирование и удаление записей из файла.
Пользователю предоставляется возможность редактирования, добавления и удаления записей из неизменного справочника групп университета. При этом пользователь имеет возможность сохранить данные в первоначальный файл или выбрать новый файл.
Вх. данные: файл групп университета.
Промежуточные данные: группы.
Вых. данные: обновленный файл групп университета.
7. МОДУЛЬ ИНФОРМАЦИИ - Вывод информации о программном продукте.
Выводится информативное окно в модальном режиме о назначении программного продукта.
8. МОДУЛЬ ВИЗУАЛИЗАЦИИ - Вывод информации о текущем наборе записей о студентах в оп. памяти.
В данном модуле происходит отображение записей с которыми в данный момент работает пользователь. Через данный модуль осуществляется доступ ко всем возможным операциям с набором записей (к остальным модулям программы). После нажатия пользователям пункта меню «выход» работа с программой заканчивается и приложение закрывается, при этом все несохраненные данные будут потеряны.
Во избежание возможной потери данных на всех этапах работы программы вводятся предупреждающие окна. При операциях редактирования, добавления и удаления записи происходит обращение к файлу и сохранение в нем новой информации после подтверждения пользователя.
В запись о студенте внесено дополнительное поле «Табельный номер» для контроля уникальности записей о студенте. Для пользователя доступ к данному полю закрыт и на всех этапах работы значение поля контролируется программой. При операциях с записью (редактировании, удалении) происходит поиск записи по табельному номеру в файле с последующей заменой старых данных на новые или удаление данных. При удалении записи происходит поиск удаляемой записи в файле по табельному номеру, записи на ее место последней записи файла и обрезанием файла по предпоследней записи.
Функциональное описание
При написании программы использовалось следующее представление записи о студенте:
tzStudent = record //пользовательский тип запись для хранения
TabNum:word; //сведений об одном студенте
Name:string[150];
databorn:TDateTime;
dataprih:TDateTime;
adress:string[150];
Grupp:string[30];
Step:byte;
end;
Данное представление записи содержит все необходимые данные о студенте по заданию.
Файл с записями о студентах представляет собой типизированный файл записей tzStudent: fl:file of tzStudent;
Для обеспечения корректной и согласованной работы всех модулей вводятся следующие глобальные переменные:
flStud, flGrupp: String; - строковые переменные хранящие пути к файлам студентов и групп, с которыми проводится работа пользователем. Переменные существуют на протяжении всего периода работы приложение, инициализируются при выборе пользователем файлов в модуле загрузки. Данные переменные используются при всех последующих обращениях к файлам.
maxTabNum:word; - переменная хранящая максимальный номер студента в файле, необходима при добавлении новых записей в файл для контроля уникальности записей в файле.
lastPoisk:string; - переменная хранящая информацию о ФИО выбранных при последнем поиске через модуль поиска, для поиска совпадений далее по набору записей.
flWhatToDo:byte; - переменная хранящая код операции при работе модуля редактирования: 1 - добавление записи, 2 - редактирование.
1. МОДУЛЬ ВИЗУАЛИЗАЦИИ.
Модуль загружается первым при начале работы с программой, предоставляет пользователю возможность просмотра данных файла и доступа к основным функционалам программы.
Форма модуля представлена на рис. 2. Описание используемых компонент представлено в таб. 1.
Рис.2. Основная форма приложения.
Таблица 1. Компоненты формы
№ |
Имя компонента |
Примечание |
|
1 |
2 |
3 |
|
1 |
StringGrid1(таблица записей) |
Компонент используется для отображения набора записей находящихся в оп. памяти. |
|
2 |
SaveDialog1(диалог сохранения файла)) |
Диалог выбора файла для сохранения текущего набора записей, фильтр расширения *.txt |
|
3 |
MainMenu1(главное меню) |
Главное меню программы реализует запуск всех функционалов приложения |
|
4 |
PopupMenu1(всплывающее меню) |
Всплывающее меню для выбора действия над текущей записью |
|
5 |
GroupBox1 |
Группа компонент, отвечающих за поиск значения в наборе данных, находящемся в оп. памяти (модуль поиска) |
|
6 |
GroupBox3 |
Группа компонент, отвечающих за сортировку набора записей, находящемся в оп. памяти (модуль сортировки) |
МОДУЛЬ ВЫВОДА/ФИЛЬТРАЦИИ.
Модуль предназначен для выбора файлов данных о студентах и группах, а также выбора параметров фильтрации при выборе данных из файла студентов. Доступ к форме модуля осуществляется при нажатии пункта меню:
Файл -> Загрузить (Ctrl+L) - в начале работы с программой,
Пункт «Фильтрация» - при фильтрации загруженных данных. (Рис.4).
Форма модуля представлена на рис. 3.
Рис. 3. Форма загрузки из файла и фильтрации.
Рис. 4. Доступ к форме модуля вывода/фильтрации
При нажатии кнопок «1», «2» на рис. 3 открывается диалог выбора рабочих файлов студентов и групп. После выбора файла студентов происходит заполнение списка групп без повторений, содержащихся в файле. После выбора файлов пути к ним прописываются в соответствующих информационных полях. Галка «Все записи» говорит о том, что будут загружены все записи из файла, при снятии галки становится доступен список «3» рис. 3.
Рис. 5. Алгоритм загрузки данных из файла по фильтру.
Список имеет свойство мультивыбора, поэтому загрузка записей может проводиться по фильтру из нескольких группам. После нажатия кнопки «ОК» происходит открытие файла и загрузка в оп. память всех записей удовлетворяющих заданному фильтру. После осуществляется переход к основной форме рис. 2. Блок-схема алгоритма загрузки записей по фильтру представлена на рис. 5.
2. МОДУЛЬ СОРТИРОВКИ.
Модуль предназначен для сортировки записей в оперативной памяти. Активация и настройки фильтрации производятся с помощью выпадающих списков ComboBox (см. Рис. 6). Алгоритм активизируется после выбора значения в любом из списков, отвечающих за порядок или поле сортировки. Перед началом сортировки производится загрузка всех записей из рабочего файла студентов в случае, если установлен переключатель «Грузить полный список». Сортировка производится внутри компонента StringGrid1 основной формы приложения методом вставки, блок-схема алгоритма представлена на рис. 7. Текст процедуры сортировки представлен в листинге 1.
Рис. 6. Компоненты доступа к настройкам и запуску сортировки.
Листинг 1.
//сортировка стринггрида
procedure sortTable();
Var i,j,tempJ:integer;
tempZap,maxZap:tzPrepod;
fl:boolean;
fl1:file of tzPrepod;
begin
if fmMain.CheckBox2.Checked then
begin
fmMain.sg.RowCount:=2;
clearRowTovar(2);
AssignFile(fl1,flStud);
Reset(fl1);
While not eof(fl1) do
begin
read(fl1,tempZap);
InsertZap(tempZap,fmMain.sg.RowCount-1);
fmMain.sg.RowCount:=fmMain.sg.RowCount+1;
end;
fmMain.sg.RowCount:=fmMain.sg.RowCount-1;
CloseFile(fl1);
end;
if fmMain.sg.RowCount = 2 then exit;
for i:= 1 to fmMain.sg.RowCount-2 do
begin
maxZap := GetZap(i);
tempJ:=i;
for j:= i+1 to fmMain.sg.RowCount-1 do
begin
tempZap:=GetZap(j);
fl:=false;
//сравнение параметра сортировки
if fmMain.ComboBox1.Text = 'ФИО' then
if maxZap.Name > tempZap.Name then fl:=true;
if fmMain.ComboBox1.Text = 'Дата рождения' then
if maxZap.databorn > tempZap.databorn then fl:=true;
if fmMain.ComboBox1.Text = 'Дата поступления' then
if maxZap.dataprih > tempZap.dataprih then fl:=true;
if fmMain.ComboBox1.Text = 'Адрес' then
if maxZap.adress > tempZap.adress then fl:=true;
if fmMain.ComboBox1.Text = 'Группа' then
if maxZap.Grupp > tempZap.Grupp then fl:=true;
if fmMain.ComboBox1.Text = 'Стипендия' then
if maxZap.Step > tempZap.Step then fl:=true;
////////////////
if fmMain.ComboBox2.Text = 'По возрастанию' then
begin
if fl then
begin
maxZap:=GetZap(j);
tempJ:=j;
end;
end else
if not fl then
begin
maxZap:=GetZap(j);
tempJ:=j;
end;
end;
If tempJ<>i then
begin
tempZap:= GetZap(i);
InsertZap(maxZap,i);
InsertZap(tempZap,tempJ);
end;
end;
end;end;
Рис. 7. Блок-схема алгоритма сортировки.
3. МОДУЛЬ ПОИСКА
Модуль осуществляет поиск записи в оп. памяти, удовлетворяющей параметрам поиска. Доступ к модулю поиска осуществляется при помощи группы компонент главной формы (см. рис. 8)
Рис. 8. Меню доступа к настройкам поиска.
Перед выбором параметров заполняется список ФИО студентов из файла склада без повторений. После выбора ФИО и нажатия кнопки «Сначала» происходит загрузка всех записей из файла студентов в оп. память и происходит поиск по StringGrid1 основной формы приложения первой записи соответствующей параметру поиска и курсор устанавливается на нужную запись. Если нажать кнопку «Далее» происходит поиск записи, удовлетворяющей последнему выбранному значению ФИО в форме параметров поиска, от текущего положения курсора.
Блок-схема алгоритма поиска представлена на рис. 9
Рис. 9. Блок-схема алгоритма поиска.
4. МОДУЛЬ СОХРАНЕНИЯ
Модуль активизируется при нажатии пункта меню: Файл->Сохранить (см. рис. 4.). Открывается диалог сохранения файла в котором пользователь может выбрать файл для сохранения данных, если выбран текущий рабочий файл программа запросит подтверждение сохранение данный с потерей данных хранящихся в файле до сохранения (рис. 10), при этом в файл будут записаны записи о партиях товара, находящиеся в оп. памяти.
Рис. 10. Форма подтверждения сохранения в файл.
5. МОДУЛЬ РЕДАКТИРОВАНИЯ
Форма модуля (см. рис. 11) активируется при выборе пунктов всплывающего меню «Редактировать», «Добавить запись». При этом, если запись открывается на редактирование, то поля формы заполняются соответствующими данными текущей записи (записи на которую установлен курсор).
Рис. 11. Форма редактирования/добавления записи.
После внесения изменений/записи данных во все поля формы необходимо нажать кнопку «Записать» для записи данных в файл, при этом будет проведена предварительная проверка на корректность даты рождения и поступления. В случае введения даты в неправильном формате, выдается сообщение об ошибке формата (рис. 12), проверка реализуется с помощью конструкции “try…except” (листинг 2). Если дата введенное в поле больше текущей даты выдается предупреждение (рис. 13).
Рис. 12. Сообщение об ошибке формата даты.
Листинг 2.
try
TempZap.dataprih:=StrToDate(ePrih.Text);
TempZap.databorn:=StrToDate(eBorn.Text);
if (TempZap.dataprih > Date()) or (TempZap.databorn > Date()) then
begin
ShowMessage('Подарки из будущего не принимаем!');
exit;
end;
except
on E: EConvertError do
begin
ShowMessage('Неверный формат даты!');
exit;
end;
end;
Рис. 13. Сообщение о некорректной дате.
Если до нажатия кнопки «Записать», нажать - «Отмена», то окно будет закрыто без внесения изменений в данные.
Согласно заданию список групп будет заполнен записями из файла групп.
При выборе пункта всплывающего меню «Удалить запись» происходит поиск текущей записи в файле, записи на ее место последней записи в файле и обрезании файла по предпоследней записи. Текст процедуры удаления записи представлен в листинге 2.
Листигн 2.
if MessageDlg('Данные будут удалены безвозвратно. ПРОДОЛЖИТЬ?',
mtConfirmation , [mbYes, mbNo], 0) = mrYes then
begin
AssignFile(fl,flStud);
Reset(fl);
posDel:=1;
poseof:=0;
While not eof(fl) do
begin
read(fl,tempZap);
poseof:=poseof+1;
if TempZap.TabNum = StrToInt(fmMain.sg.Cells[0,fmMain.sg.row]) then
posDel:= poseof;
end;
CloseFile(fl);
Reset(fl);
While poseof>1 do
begin
if posDel=1 then
begin
write(fl,tempZap);
poseof:=poseof-1;
posDel:=0;
end else
begin
read(fl,only);
poseof:=poseof-1;
posDel:=posDel-1;;
end;
end;
Truncate(fl);
CloseFile(fl);
////// обновляем стринггрид на основной форме
if (fmOpenFilter.cbShowAll.Checked) or (EmptyChecked) then
begin
fmMain.sg.RowCount:=2;
clearRowTovar(2);
AssignFile(fl,flStud);
Reset(fl);
maxTabNum:=0;
While not eof(fl) do
begin
read(fl,tempZap);
if tempZap.TabNum>maxTabNum then maxTabNum:= tempZap.TabNum;
InsertZap(tempZap,fmMain.sg.RowCount-1);
fmMain.sg.RowCount:=fmMain.sg.RowCount+1;
end;
if fmMain.sg.RowCount>2 then
fmMain.sg.RowCount:=fmMain.sg.RowCount-1 else
clearRowTovar(1);
end else
begin
fmMain.sg.RowCount:=2;
clearRowTovar(2);
AssignFile(fl,flStud);
Reset(fl);
While not eof(fl) do
begin
read(fl,tempZap);
if tempZap.TabNum>maxTabNum then maxTabNum:= tempZap.TabNum;
if IsInSelected(tempZap.Grupp) then
begin
InsertZap(tempZap,fmMain.sg.RowCount-1);
fmMain.sg.RowCount:=fmMain.sg.RowCount+1;
end
end;
fmMain.sg.RowCount:=fmMain.sg.RowCount-1;
end;
CloseFile(fl);
end;
6. МОДУЛЬ РАБОТЫ С ГРУППАМИ УНИВЕРСИТЕТА
Форма модуля (см. рис. 14) активируется при выборе пункта меню: Группы. При открытии формы в список Memo1 будет загружен список групп из текущего файла групп. Редактирование, удаление и добавление записей происходит непосредственно в списке. Для сохранения изменений необходимо нажать кнопку «Сохранить» - данные сохраняются в текущем файле категорий, либо выбрать новый файл, нажав кнопку «Сохранить как».
Рис. 14. Форма редактирования/добавления записи.
7. МОДУЛЬ ИНФОРМАЦИИ.
Форма модуля (см. рис. 15) активируется при выборе пункта меню: О программе.
Рис. 15. Форма информации.
Контрольные примеры работы программы
1. При невыбранных файлах студентов и групп в форме вывода/фильтрации (см. рис. 3) выводится сообщении о недостаточном наборе данных для работы программы. На рис. 16 представлена ситуация, когда файл категорий не выбран
Рис. 16. Не выбран файл групп и\или студентов.
2. При активной галке «Все записи» загружается все записи из файла (см. рис. 17а), при снятии галки «Все записи» и выборе в списке «ПО-11», будут загружены только записи, в которых поле группа будет равна «ПО-11» (см. рис 17б), при выборе пустого файла список записей будет пуст и доступен только пункт всплывающего меню «Добавить запись» (рис 17в)
а)
Рис
б)
Рис
в)
Рис. 17. Варианты загрузки файла студентов.
3. Выбрать сортировку по ФИО файла из рис. 17а, результат изображен на рис. 18а. Выбрать сортировку по тому же полю, но в обратном порядке, результат на рисунке 18б.
а)
Рис
приложение windows файл программирование
б)
Рис. 18.Сортировка файла по ФИО.
Заключение
В ходе выполнения курсовой работы выполнено следующее:
Изучены средства IDE Delphi, позволяющие организовать работу с текстовыми файлами, а также приемы создания простейших многооконных приложений.
С помощью IDE Delphi разработано программное средство, позволяющее организовать ввод, просмотр и редактирование данных, хранящихся в текстовом файле. Предметная область: список студентов университета. Структура записи: ФИО, дата рождения, дата поступления, адрес, группа, признак получения стипендии.
Также программа позволяет выполнять следующие действия:
1. Сохранить сформированный список групп в файл;
2. Загрузить ранее сохраненный список из файла;
3. Поиск информации - последовательно находить несколько записей, удовлетворяющих заданному значению поля «ФИО»;
4. Фильтрацию данных - формирование списка студентов, которые имеют заданное значение в поле «Группа»;
5. Сортировку списка студентов по выбранному полю в алфавитном (прямом) или обратном порядке.
6. Проверку на корректность введенной даты.
7. Выводится информация о программе.
Размещено на Allbest.ru
Подобные документы
Принципы и порядок работы с файлами на языке Delphi, получение навыков программирования с использованием файлов. Создание каталога продуктов. Страница палитры компонентов, настраиваемые компоненты и их значения. Текст программы и ее тестирование.
лабораторная работа [243,9 K], добавлен 09.01.2009Теоретическое изучение и практическое применение приёмов работы с файлами в операционной системе Windows 95. Файлы и папки: основные понятия и правила формирования имен файлов в Windows. Характеристика и анализ особенностей операций с файлами и папками.
контрольная работа [139,9 K], добавлен 09.03.2011Изучение сущности и основных задач файловой системы. Принципы работы с папками и файлами. Комплекс системных программных средств, реализующих управление файлами: создание, уничтожение, чтение, запись, именование, поиск и другие операции над файлами.
курсовая работа [309,6 K], добавлен 11.11.2013Создание Windows-приложения для проведения обучения и тестирования студентов по информационной безопасности. Алгоритм решения задачи, блок-схема работы программы, выбор языка программирования Delphi. Охрана труда программиста, обязанности пользователя.
дипломная работа [4,8 M], добавлен 04.06.2013Средства языка программирования Delphi. Структурные типы данных. Строковые переменные, массивы, множества, файлы. Механизм классов в C++. Интерфейсный и описательный обзоры классов в Delphi. Работа с текстовыми и бинарными файлами прямого доступа.
курсовая работа [990,4 K], добавлен 07.08.2012Среда для разработки приложений Borland Delphi 2007 с помощью Microsoft Visual Basic. Создание современной системы "Паспортный стол" на языке программирования Delphi. Состав объектов, обеспечивающих функциональность всего клиентского приложения.
курсовая работа [333,7 K], добавлен 03.03.2015Создание программы "MP3 Player", воспроизводящей аудио файлы формата MP3 для работы в операционной системе Windows с использованием языка программирования Delphi. Разработка интерфейса, алгоритма и документации к разработанному программному продукту.
курсовая работа [625,0 K], добавлен 18.07.2012Автоматизация и визуализация рабочего места методиста факультета, работающего с личными делами студентов. Создание базы данных и ограничений. Интерфейс пользователя и порядок работы с программным обеспечением. Разработка справки и контекстной помощи.
курсовая работа [867,3 K], добавлен 22.02.2016Основы работы с многооконным графическим пользовательским интерфейсом операционной системы Windows95/NT. Основы работы с прикладными программами Windows и DOS. Разработка простого приложения для Windows при помощи средства разработки приложений DELPHI.
контрольная работа [281,0 K], добавлен 15.01.2009Разработка информационной системы административного управления. Выбор языка и среды программирования. Структура взаимодействия информации. Требования к программно-аппаратному окружению. Создание программы в Delphi и связывание ее с базой данных.
курсовая работа [1010,9 K], добавлен 08.10.2015