Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Студентам04ЗД к Упр4 Сем 2 на ЗАПИСИ ТИПИЗИР.Ф...doc
Скачиваний:
0
Добавлен:
01.04.2025
Размер:
338.43 Кб
Скачать
    1. Создайте самостоятельно обработчик procedure TForm1.N5Click(Sender: TObject) события щелчка на пункте меню Файл\Сохранить, для чего сделайте двойной щелчок на соответствующей строке дерева объектов и в появившейся заглушке добавьте операторы и комментарии, имея в виду следующее. Если строка S пустая, то есть не представляет имя файла, то следует передать управление обработчику команды Файл/Сохранить как…, выполнив оператор N6Click(Self), иначе – сохранить данные таблицы в файле, вызвав процедуру SaveToFileOfTz. Затем установить оператором TabModified:=false признак, что данные в таблице не модифицированы.

    2. Создайте самостоятельно обработчик procedure TForm1.N4Click(Sender: TObject) события щелчка на пункте меню Файл.Закрыть, для чего сделайте двойной щелчок на соответствующей строке дерева объектов и в появившейся заглушке добавьте операторы и комментарии, имея в виду, что если текст был изменен, то нужно в диалоге (см. справку по функции MessageDlg) выяснить, что желает пользователь. Если он нажмёт кнопук Cancel, то есть хочет вернуться к редактированию данных, то следует просо выйти из обработчика. Если он нажмёт кнопку No, то нужно очистить таблицу, вывести в заголовок окна название формы слово Form1, установить признак, что таблица не модифицирована (TabModified:=false) и присвоить S пустое значение. Если пользователь нажмёт кнопку Yes, то нужно выполнить те же действия, что и при нажатии кноки No, но предварительно сохранить данные таблицы в файле, вызвав процедуру SaveToFileOfTz, если S≠’’, или сохранить данные таблицы в файле по выбору, вызвав N6Click(Self), если S=’’.

  1. Задания для самостоятельного выполнения Общее для всех заданий

  1. Подпункты меню Файл: Файл.Открыть, Файл.Сохранить как, Файл\Выход и соответствующие им диалоги, а также пункт мню Работа, но с двумя индивидуальными для каждого задания подпунктами.

  2. И сходный (создаваемый с использованием меню Файл) файл должен иметь тип tfz=file of tz, где tz=record No:byte; Gr:string[8]; Fm:string[12]; o1,o2,o3:2..5 end, No – порядковый номер, Gr – название группы, Fm – фамилия студента, o1,o2,o3 – оценки по предметам, а основная таблица, в которой эти данные хранятся и редактируются, должна иметь вид

//Удобнее оценки объявлять как массив o:array[1..3] of 2..5;

  1. Исходный файл должен храниться в каталоге проекта программы и иметь данные по трём группам, для каждой из которых должно быть число строк, достаточное для проверки работ по подпунктам меню Работа, но не менее 10 для каждой группы.

  2. Если в задании какие-либо данные отсутствуют или сказано, что они должны быть введены/выбраны в диалогах, то предполагается использование OpenDialog, SaveDialog, MessageDlg или InputQuery.

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

В некоторых заданиях будет предложено отбирать строки файлов по маске. Маской является строка, содержащая символы замещения: * (звёздочка) – представляет любую, в том числе и пустую, последовательность символов; ? (знак вопроса) – представляет любой один, и только один символ. Например, маске *т? удовлетворяет любая последовательность символов, предпоследним символом которой является буква «т», после которого должен стоять ровно один любой символ. Такой маске будут, в частности, соответствовать слова та, эта, приметы, но не такт, этак, приметный.

Д обавляемые подпункты меню Работа по вариантам

1. - Объединение групп – по данным из двух файлов текущего каталога, заданным пользователем в диалоге, создать третий типизированный файл с именем, являющимся склейкой через пробел имен файлов-источников.

- Удалить запись – удалить из файла запись с заданной фамилией и группой, используя диалоги для ввода необходимых данных.

2. - Средние баллы по группам – для файла вычислить средний балл для каждой группы и отобразить в таблице редактора имена групп и соответствующие средние баллы.

- Выбор по части фамилии – загрузить в таблицу редактора строки файла, представляющие студентов всех групп, имеющих фамилию, включающую строку, заданную пользователем в диалоге.

3. - Заменить оценки – в файле заменить заданное имя группы на другое.

- Упорядочить по оценке – в файле упорядочить записи по возрастанию заданной оценки.

4. - Отличники – для выбранного файла отобразить в основной таблице сведения о студентах заданной в диалоге группы, имеющих все оценки 5.

- Должники – отобразить данные записей файла, представляющие студентов всех групп, в фамилии которых содержится заданная в диалоге строка и имеющих оценки 2. Если заданная строка пустая (сделать так по умолчанию), то отобразить данные всех записей, в которых есть оценки 2.

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

- Хорошисты – отобразить данные записей файла, представляющие студентов всех групп, имеющих оценки, большие 3.

6. - Неуды по экзаменам – для выбранных в диалоге файла, группы и экзамена (1, 2 или 3) отобразить количество оценок 2.

- Средние баллы – для выбранного файла отобразить средние баллы по каждому экзамену для студентов всех групп, изменив соответствующим образом структуру таблицы.

7. - Список групп – по данным файла, содержащим сведения по студентам разных групп, создать новый типизированный файл с именами групп и количествами студентов в группах и отобразить его содержимое.

- Выбор по фамилии – загрузить в таблицу редактора данные записей файла, представляющие студентов всех групп, имеющих фамилию, заданную пользователем в диалоге.

8. - Разбить по группам – по данным файла, содержащим сведения по студентам разных групп, создать новые типиззированные файлы с именами '<имя группы>.rec', включающими все данные записей файла-источника с соответствующими именами групп.

- Отстающие – отобразить данные записей файла, представляющие студентов всех групп, имеющих две и более оценки 2.

9. - Добавление строки – в файл, заданный пользователем в диалоге, добавить новую строку на заданное место в файле.

- Выбор по началу фамилии – загрузить в таблицу редактора данные записей файла, представляющие студентов всех групп, имеющих фамилию, начинающуюся со строки, заданной пользователем в диалоге.

10. - Сортировка – упорядочить записи файла по фамилиям методом пузырька (массив и таблицу не использовать).

- Выбор по маске – загрузить в таблицу редактора данные записей файла, представляющие студентов всех групп, имеющих фамилию, соответствующую маске с одним символом замещения * (звёздочка), заданной пользователем в

диалоге.

11. - Средние баллы по группам – для файла вычислить средний балл для каждой группы и отобразить в таблице редактора имена групп и соответствующие средние баллы.

- Удалить запись – удалить из файла запись с заданной фамилией и группой, используя диалоги для ввода необходимых данных.

12. - Сортировка – отсортировать записи файла, заданного пользователем в диалоге, в алфавитном порядке номеров групп (массив и таблицу не использовать).

- Копирование с инверсией – записи одного файла скопировать в другой, расположив их в обратном порядке.

13. - Сортировка – отсортировать записи файла, заданного пользователем в диалоге, по возрастанию номера студента (массив и таблицу не использовать).

- Выбор по маске – загрузить в таблицу редактора данные записей файла, представляющие студентов всех групп, имеющих фамилию, соответствующую маске с одним символом замещения * (звёздочка), заданной пользователем в

диалоге.

14. - Обратить порядок – загрузить в таблицу редактора данные записей файла, очистить файл и затем выводить из редактора данные в файл в обратном порядке.

- Выбор по маске – загрузить в таблицу редактора данные записей файла, представляющие студентов всех групп, имеющих фамилию, соответствующую маске с любым числом символов замещения ? (вопросительный знак), заданной пользователем в диалоге.

15. - Число отличников по группам – для файла вычислить для каждой группы количество отличников и отобразить в строках таблицы редактора.

- Добавить запись – добавить в конец файла запись с заданной фамилией, группой, оценками и номером, используя диалоги для ввода необходимых данных, но не таблицу редактора.

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

(массив и таблицу не использовать).

- Выбор по маске – загрузить в таблицу редактора данные записей файла, представляющие студентов всех групп, имеющих фамилию, не соответствующую маске с одним символом замещения * (звёздочка), заданной пользователем в диалоге.

17. - Удалить группу в новый файл – переместить из файла записи заданной группы в другой файл.

- Добавить в файл – скопировать записи одного файла в конец другого файла.

18. - Сортировка – отсортировать записи файла, заданного в диалоге, по убыванию номера студента (массив и таблицу не использовать).

- Выбор по маске – загрузить в таблицу редактора данные записей файла, представляющие студентов всех групп, имеющих фамилию, соответствующую маске с не более, чем одним символом замещения ? (знак вопроса), заданной пользователем в диалоге.

19. - Упорядочить по оценке – отсортировать записи файла, заданного в диалоге, по заданной в диалоге оценке (1, 2 или 3) (массив и таблицу не использовать).

- Изменить запись – изменить в файле запись с заданным номером, используя диалог InputQuery или InputBox для ввода необходимых данных и редактирования строки, но не таблицу редактора.

20. - Скопировать часть файла – создать в каталоге проекта новый файл и скопировать в него записи файла исходного файла с четными номерами.

- Отобразить часть файла – отобразить в таблице редактора данные первых трёх записей нового файла (см. предыдущий пункт задания). Выдать сообщение, если трех записей нет.

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

(массив и таблицу не использовать).

- Выбор по маске – загрузить в таблицу редактора данные записей файла, представляющие студентов всех групп, имеющих фамилию, соответствующую маске с более, чем одним символом замещения ? (знак вопроса), заданной пользователем в диалоге.

22. - Сортировка по группам –отсортировать данные записей файла, заданного в диалоге, по убыванию групп (массив и таблицу не использовать).

- Выбор по маске – загрузить в таблицу редактора данные записей файла, представляющие студентов всех групп, имеющих фамилию, соответствующую маске с любым числом символов замещения ? (знак вопроса), заданной пользователем в диалоге.

23. - Упорядочить по оценке – упорядочить в файле записи по убыванию заданной (1, 2 или 3) в диалоге оценки.

(массив и таблицу не использовать).

- Заменить запись – в диалоге ввести данные для записи и заменить ею запись файла с такой же фамилией и группой при загрузке в редактор строк из файла; результат сохранить в том же файле.

24. - Три последних записи – отобразить в таблице редактора данные трёх поседних записей файла, выбранного в диалоге. Если нет трех записей, то выдать сообщение.

- Выбор N лучших –загрузить в таблицу редактора данные N записей файла, представляющих студентов всех групп, имеющих наибольшие суммы баллов.

25. - Добавить средние баллы – отобразить в таблице данные записей файла, добавив в конце каждой строки таблицы (в новой колонке) значения средних баллов.

- Упорядочить по СредБаллу – упорядочить в таблице редактора строки по убыванию среднего балла и вывести данные (без средних баллов) в тот же файл, не меняя тип файловой переменной.

26. - Добавить СредБаллы групп – по данным файла-источника создать типизированный файл ‘SbGr.rec’, поместив в него записи, включающие имя группы и средний балл в группе по всем экзаменам.

- Выбор трёх худших – загрузить в таблицу редактора данные трёх записей файла, представляющие студентов заданной пользователем в диалоге группы, имеющих наименьшие суммы баллов.