Главная | Обратная связь | Поможем написать вашу работу!
МегаЛекции

Лабораторная работа №5




Цели. Научиться использовать различные типы файлов для хранения данных. Правильно записывать и считывать данные из файла. Корректно обрабатывать операцию открытия файла. Четко представлять разницу между файлами с последовательным и прямым способом доступа.

Задание 1

В простейшем текстовом редакторе создать текстовый файл.

При запуске программы на выполнение на экране должно отображаться меню:

1. Обработать данные

2. Добавить данные

3. Распечатать содержимое файла REZULT.TXT.

Выбор соответствующего пункта меню осуществлять указанием номера.

Реализацию каждого пункта меню и самого меню оформить в виде процедуры, которые поместить в модуль.

 

1. Вариант

Подсчитать количество согласных и гласных "а", "о","у" в тексте. Текст ввести в файл LITER.TXT. Результаты работы программы записать в файл REZULT.TXT.

2. Вариант

Найти в тексте из файла SLOVA.TXT. слово, номер которого ввести с клавиатуры. Из найденного слова, получить слова с различным сочетанием букв, выводя их сначала на экран и, после подтверждения в файл REZULT.TXT.

3. Вариант

Составить программу, печатающую слова из файла SLOVA.TXT в перевернутом виде. Результаты работы программы записать в файл OWRAT.TXT.

4. Вариант

Составить программу, шифрующую и расшифровывающую тексты. Текст ввести в файл LITER.TXT. Зашифрованный текст хранить в файле SHIFR.TXT.

5. Вариант

Осуществить поиск всех вхождений данного слова в тексте из файла OBRAZEC.TXT. Выдать на экран сообщение "слова.....в тексте нет", или "слово..... стоит на....месте в....предложении". Результаты работы программы записать в файл REZULT.TXT.\

6. Вариант

Фамилии, имена, отчества ввести в файл FIO.TXT. На экране напечатать фамилию и первые буквы имени и отчества. Результаты работы программы записать в файл REZULT.TXT.

7. Вариант

.Даны тексты простейших тригонометрические формул (например: cos(2,56),tg(1,12),...). Тексты формул ввести в файл TRIG.TXT. Обработать тексты формул, посчитать и напечатать значения их выражений. Результат работы программы записать в файл REZULT.TXT.

8. Вариант

Поменять в каждом предложении текста первое слово с последним. Текст ввести в файл TEXT.LIT. Результаты работы программы записать в файл REZULT.TXT.

9. Вариант

В данном тексте в словах, имеющих длину более символов, заменить пробелами буквы, начиная с-11-ой. Текст ввести в файл OBREZ.LIT. Результаты работы программы записать в файл REZULT.TXT.

10. Вариант

Составить список имен подруг. Подсчитать, сколько раз каждое имя содержится в файле. Имена ввести в файл IMENA.ROD Результаты работы программы записать в файл REZULT.TXT.

11. Вариант

В данном списке фамилий подгруппы RODGR2.22 все фамилии напечатать в родительном падеже, вставляя в текст "Лекции по ВТ....-группа 22".

Например: Яппарова Р.---> Яппаровой Р., вставляя в текст "Лекции по ВТ Яппаровой Р.- группа 22". Список фамилий ввести в файл RODGR2.22.Результат работы программы записать в файл REZULT.TXT

12. Вариант

Заданы фамилии, инициалы, номера телефонов. Подсчитать количество абонементов с фамилиями, начинающимися на указанную букву. Данные абонентов ввести в файл АВОНЕНТ.ТЕЛ. Результат работы программы записать в файл REZULT.TXT.

13. Вариант

Сообщить фамилии абонентов, номера телефонов которых лежат в указанном интервале. Данные абонентов ввести в файл АБОНЕНТ.ТЕЛ. Результат работы программы записать в файл REZULT.TXT.

14. Вариант

Дан список фамилий и номеров телефонов абонентов. Составить отдельный список номеров телефонов. Данные абонентов ввести в файл АБОНЕНТ.ТЕЛ. Результат работы программы записать в файл REZULT.TXT.

15. Вариант

Дан список фамилий и номеров телефонов абонентов. Составить отдельный список фамилий абонентов. Данные абонентов ввести в файл АБОНЕНТ.ТЕЛ. Результат работы программы записать в файл REZULT.TXT.

16. Вариант

Дан список фамилий и номеров телефонов абонентов. Найти самую длинную и самую короткую фамилии. Данные абонентов ввести в файл АБОНЕНТ.ТЕЛ. Результат работы программы записать в файл REZULT.TXT.

17. Вариант

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

Пример: Иванов 5 4 3 5 4 ---> Иванов 5 в первом списке Иванов 4 во втором списке Иванов 3 в третьем списке Иванов 5 в четвертом Иванов 4 в пятом.

Данные студентов ввести в файл СЕССИЯ.TXT. Результаты работы программы записать в файлы REZULT1.TXT, REZULT2.TXT, REZULT3.TXT, REZULT4.TXT, REZULT5.TXT.

18. Вариант

Дан список фамилий инициалов студентов группы и оценки по 5-ти дисциплинам. Составить списков, отличников хорошистов, троечников, неуспевающих.

Данные студентов ввести в файл СЕССИЯ.TXT. Результаты работы программы записать в файлы REZULT5.TXT, REZULT4.TXT, REZULT3.TXT, REZULT2.TXT.

19. Вариант

Дан список фамилий инициалов студентов группы и оценки по 5-ти дисциплинам. Составить список средних балов по каждой дисциплине, указав название дисциплины. Данные студентов ввести в файл СЕССИЯ.TXT. Результаты работы программы записать в файл REZULT.TXT..

20. Вариант

Фамилии записаны в файл FIO.DAT. Программа анализирует: фамилия записана буквами русского алфавита; первая буква заглавная, остальные строчные. Если сделана ошибка, программа выдает соответствующее сообщение. Результаты работы программы записать в файл REZULT.TXT.

21. Вариант

Результаты игр введены в файл ХОК.DAT. Подсчитать количество очков каждой команды (проигрыш-0 очков; выигрыш-2 очка; ничья-1 очко). Составить список названий пяти лучших команд. Результаты работы программы записать в файл REZULT.TXT. Протокол гонок записан в файл SKI.DAT. Для каждого участника вводится фамилия, время старта (часы, минуты, секунды),время финиша. Используя данный протокол, вывести на экран дисплея фамилии участников, выполнивших норму ГТО. Результат работы программы записать в файл REZULT. TXT.

22. Вариант

Протокол гонок записан в файл SKI.DAT. Для каждого участника вводится фамилия, время старта (часы, минуты, секунды),время финиша. Используя данный протокол, вывести на экран дисплея фамилии участников, выполнивших норму ГТО. Результат работы программы записать в файл REZULT. TXT.

23. Вариант

Результаты игр введены в файл ХОК.DAT. Подсчитать количество очков каждой команды (проигрыш-0 очков; выигрыш-2 очка; ничья-1 очко). Составить список названий пяти худших команд. Результаты работы программы записать в файл REZULT.TXT.

24. Вариант

Результаты игр введены в файл ХОК.DAT. Подсчитать количество очков каждой команды (проигрыш-0 очков; выигрыш-2 очка; ничья-1 очко). Составить список названий команд, сыгравших в ничью. Результаты работы программы записать в файл REZULT.TXT.

25. Вариант

Пусть дан текстовый файл INPUT.TXT. Напечатайте первое слово, состоящее из различных букв. Результат работы программы записать в файл REZULT.TXT.

 

Задание 2.

При запуске программы на выполнение на экране должно отображаться меню:

1. Создать файл

2. Открыть файл

3. Обработать данные

4. Добавить данные

5. Удалить данные

6. Распечатать данные

Выбор соответствующего пункта меню осуществлять указанием номера.

Реализацию каждого пункта меню и самого меню, операций поиска и сортировки оформить в виде процедуры, которые поместить в модуль.

 

1. Вариант

Сформировать список фамилий любимых писателей учеников класса (ученики по очереди вводят по три фамилии различных писателей), хранящийся в типизированном файле. Результат работы программы записать в файл REZ.DAT.

1. Поля записи – фамилия ученика фамилии писателей. Напечатать, сколько учеников назвали фамилию данного писателя (фамилии писателя вводится с клавиатуры).

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

2. Вариант

Известны результаты сдачи сессии (три экзамена) группой студентов. Информация об одном студенте вводится в виде записи и хранится в типизированном файле. Результат работы программы записать в файл REZ.DAT.

1. Поля записи – фамилия, три оценки. Сообщить, сколько студентов сдали данный предмет на хорошо (название предмета вводится с клавиатуры).

2. Поля записи – фамилия, поле оценки, являющееся записью из трех полей типа byte (три оценки). Сообщить фамилии пяти лучших студентов. Данные - результаты сессии вывести на экран в виде таблицы. В шапке таблицы вывести названия предметов.

3. Вариант

Ввести фамилии и даты (день, месяц и год) рождения Ваших друзей. Вывести фамилии тех, кто родился летом (июнь, июль, август). Данные о друге хранить в виде записи в типизированном файле. Результат работы программы записать в файл REZ.DAT.

1. Поля записи – ФИО, день, месяц и год. Вывести фамилии тех, кто родился летом (июнь, июль, август). Результат работы программы записать в массив REZ. Элемент массива – фамилия друга.

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

4. Вариант

Ввести данные студентов.

1. Данные об одном студенте хранить в виде записи с полями – фамилия и инициалы, пол (одна буква М или Ж), год рождения. Напечатать список студентов мужского пола с указанием их возраста. В конце списка напечатать средний возраст. Результат работы программы записать в файл REZ.DAT.

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

5. Вариант

Ввести информацию об автолюбителях: фамилия, марка автомобиля, цвет машины.

1. Данные хранить в виде записи с полями – фамилия и инициалы, марка автомобиля, цвет машины. Вывести на экран дисплея сведения об автолюбителях, имеющих автомобиль "Жигули" зеленого цвета. Результат работы программы записать в файл REZ.DAT.

2. Данные хранить в виде записи с полями – фамилия и инициалы, автомобиль - являющаяся записью из трех полей: марка автомобиля, цвет машины, год выпуска. Вывести на экран дисплея сведения об автолюбителях, имеющих автомобиль "Жигули" зеленого цвета, список упорядочить по году выпуска. Результат работы программы записать в файл REZ.DAT.

6. Вариант

Ввести данные о студентах одного курса (фамилия и инициалы, пол, год рождения, месяц, день рождения). Вывести на экран дисплея фамилии студентов мужского пола, родившихся летом, (июнь, июль, август). Данные хранить в виде записи. Результат работы программы записать в файл REZ.DAT.

1.Данные хранить в виде записи с полями – фамилия и инициалы, пол, год, месяц, день рождения. Результат работы программы записать в массив REZ. Элемент массива – фамилия студента.

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

7. Вариант

Ввести информацию о поездах, отправляющихся с Ленинградского вокзала г. Москвы (номер поезда, станция назначения, время отправления, время в пути). Вывести на экран дисплея информацию о поездах, отправляющихся в Ленинград от 21 до 24часов. Данные хранить в виде записи. Результат работы программы записать в файл REZ.DAT.

1. Данные хранить в виде записи с полями – номер поезда, станция назначения, время отправления, время в пути.

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

8. Вариант

В задаче 8 вывести информацию о поездах, следующих в г.Ленинград и находящихся в пути менее 8 часов. Данные хранить в виде записи (см. задачу 7).

9. Вариант

Составьте список книг по программированию вашей личной библиотеки (фамилия автора и его инициалы, название книги, название издательства, год издания). Вывести на экран дисплея фамилии авторов и названия книг, выпущенных издательством "Мир". Данные хранить в виде записи. Результат работы программы записать в файл REZ.DAT.

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

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

10. Вариант

Ввести информацию о магазинах Вашего города (района): название магазина (универмаг, продукты, ткани и т.д.),его номер, адрес. Вывести на экран дисплея информацию обо всех магазинах "Книги". Данные хранить в виде записи. Результат работы программы записать в файл REZ.DAT.

1. Данные хранить в виде записи с полями – название магазина (универмаг, продукты, ткани и т.д.), его номер, улица, номер дома.

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

11. Вариант

В шахматном турнире принимает участие 10 шахматистов. Ввести фамилии участников и инициалы, их возраст и результаты: победа-1, ничья-0.5, проигрыш-0 очков. Вывести на экран фамилии участников турнира и количество набранных ими очков в порядке занятых мест. Данные хранить в виде записи. Результат работы программы записать в файл REZ.DAT.

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

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

12. Вариант

В чемпионате по футболу принимает участие 6 команд. Ввести названия команд и результаты игр: выигрыш-2,ничья-1, проигрыш-0 очков. Вывести на экран дисплея названия трех лучших команд по числу очков и количество побед каждой команды. Данные хранить в виде записи. Результат работы программы записать в файл REZ.DAT.

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

2. Данные хранить в виде записи с полями – результат, участник, являющееся записью из двух полей: название команды, город. Вывести на экран дисплея названия трех лучших команд по числу очков и количество побед каждой команды. Сообщить результаты всех команд указанного города.

13. Вариант

В классном журнале (в классе не более 20 учеников) каждый день по предмету отмечается пропуск занятия или выставляется оценка за ответ. Ввести данные об успевающих учениках за один день: фамилии и инициалы, оценка, пропуск. Результат работы программы записать в файл REZ.DAT.

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

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

 

 

14. Вариант

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

15. Вариант

В задаче 13 вывести на экран дисплея фамилии учеников, имеющих пропуски занятий.

16. Вариант

К спортивным журналистам обратились с просьбой назвать трех лучших хоккеистов сезона. Информация от каждого журналиста поступает независимо от других. Сообщить количество баллов каждого названного хоккеиста (за первое место-3, за второе-2,за третье место-1). Результат работы программы записать в файл REZ.DAT.

1. Данные хранить в виде записи с полями – фамилия и инициалы 1, команда 1,балл 1, фамилия и инициалы 2, команда 2, балл2, фамилия и инициалы 3, команда 3, балл3.

2. Данные хранить в виде записи с полями – хоккеист1, хоккеист2, хоккеист3, каждое поле является полем с полями: фамилия и инициалы, команда, балл. Вывести на экран дисплея фамилии хоккеистов, список упорядочить по набранному баллу. Определить лучшего хоккеиста сезона по сумме очков (за первое место-3, за второе-2,за третье место-1).

17. Вариант

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

1. Данные хранить в виде записи с полями – наименование, стоимость подписки на год, количество подписчиков.

2. Данные хранить в виде записи с полями – наименование, которое является записью с двумя полями: стоимость подписки на год, количество подписчиков. Сообщить список всех изданий, упорядочив по популярности.

18. Вариант

Для задачи 17 напечатать, какое издание собрало наибольшую сумму.

19. Вариант

В задаче 17 сообщить информацию только для журналов.

20. Вариант

Ввести результаты спортивного турнира; фиксируется количество очков, набранных каждым игроком одной команды. В команде всего 3 игрока. По результатам игры вывести на экран фамилию лучшего игрока и количество набранных им очков. Результат работы программы записать в файл REZ.DAT.

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

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

21. Вариант

Ввести результаты нескольких проведенных тиражей "Спортлото:5 из 36". Вывести на экран дисплея частоту появления каждого из 36 номеров во всех проведенных тиражах. Результат работы программы записать в файл REZ.DAT.

1. Данные хранить в виде записи с полями – номер тиража, пять выигрышных номеров.

2. Данные хранить в виде записи с полями – номер тиража, являющийся записью с пятью полями: пять выигрышных номеров. Сообщить выигрышные номера, упорядочив их в порядке возрастания частоты появления.

22. Вариант

Дан список фамилий, имен и отчеств с указанием возраста вывести на экран дисплея данные тех, чьи имена, начинаются с буквы А. Данные хранить в виде записей. Результат работы программы записать в файл REZ.DAT.

1. Данные хранить в виде записи с полями – фамилия, имя, отчество возраст.

2. Данные хранить в виде записи с полем – абонент, которое является записью с полями: фамилия, имя, отчество возраст. Найденные фамилии упорядочить по алфавиту.

23. Вариант

Дан список фамилий, имен и отчеств с указанием возраста вывести на экран дисплея данные тех, чье имя введено с клавиатуры. Данные хранить в виде записей. Результат работы программы записать в файл REZ.DAT.

1. Данные хранить в виде записи с полями – фамилия, имя, отчество возраст.

2. Данные хранить в виде записи с полем – абонент, которое является записью с полями: фамилия, имя, отчество возраст. Найденные фамилии упорядочить по алфавиту.

 

24. Вариант

Дан список фамилий, имен и отчеств с указанием возраста вывести на экран дисплея данные тех, чей возраст лежит в заданном интервале. Данные хранить в виде записей. Результат работы программы записать в файл REZ.DAT.

1. Данные хранить в виде записи с полями – фамилия, имя, отчество возраст.

2. Данные хранить в виде записи с полем – абонент, которое является записью с полями: фамилия, имя, отчество возраст. Найденные фамилии упорядочить по алфавиту.

25. Вариант

В задаче варианта 24, вывести список 5 самых старых людей.

Вариант0

 

1. Подсчитать количество слов заданной длины в тексте и вывести эти слова на печать. Абзац текста ввести в файл TEXT.LIT. Результаты работы программы записать в файл REZULT.TXT.

{Лабораторная работа №5 задача1}

Program Lab_Rab_5_1;

Uses Crt;

const

Name_file: string = 'C:\text.lit';

{множество символов - разделителей слов}

Razd: set of char = [' ', '.', '?', '!', '-', ':', ','];

var

Len, K: integer;

Ch: char;

Sl: string;

f,f1: text;

Poisk: boolean;

 

 

Begin

ClrScr;

Assign(f,Name_File);

Assign(f1,'C:\Result.txt');

Rewrite(f1);

{$I-}

Reset(f);

Reset(f);

{$I+}

If IOResult <> 0 then writeln ('Нет файла с именем ', Name_File)

else

begin

Writeln('Исходный текст');

While Not Eof(f) do

begin

Readln(f,Sl);

Writeln(sl);

end;

Close(f);

Reset(f);

Writeln;

Write('Введите длину искомых слов:');

ReadLn(Len);

Sl:= ''; Poisk:= false;

While Not Eof(f) do

begin

Read(f,Ch);

If not (Ch in Razd) then Sl:= Sl + Ch

else

begin

If length(Sl) = Len then

begin

Poisk:= true;

Writeln(f1,Sl)

end;

Sl:= '';

end;

 

end;

Close(f); Close(f1);

If Poisk then

begin

Reset(f1);

Writeln('Найденные слова');

While Not Eof(f1) do

begin

Readln(f1,Sl);

Writeln(sl);

end;

Close(f1);

end

else Writeln('В тексте нет слов длины ',Len);

end;

ReadKey;

End.

2. Больница ведет учет пациентов. Для каждого пациента имеется информация: Ф.И.О., год рождения, диагноз, дата поступления (день: месяц: год), курс лечения. Данные хранить в виде записей в файле. Организовать поиск пациентов с заданной фамилией.

{Лабораторная работа №5 задача 2}

 

Program Lab_Rab_5_2;

Uses Crt;

Type Pacient = Record

FIO: string[30];

year: 1900..2005;

diag: string[20];

date: record

den: 1..31;

mes: 1..12;

god: 1900..2005;

end;

kurs: integer;

end;

var

Name_file: string;

Ch: char;

 

procedure Create(var Name_File: string);

var

f: file of Pacient;

A: Pacient;

i,n: integer;

begin

ClrScr;

Write('Введите имя файла:');

ReadLn(Name_File);

Assign(f,Name_File);

Rewrite(f);

Write('Введите количество записей:');

ReadLn(n);

if n>0 then

begin

For i:=1 to n do

begin

with A do

begin

Writeln('Введите данные ',i,'-го пациента');

write('Введите фамилию:');

Readln(FIO);

write('Введите год рождения:');

Readln(year);

write('Введите диагноз:');

Readln(diag);

writeln('Введите дату поступления:');

write('день:');

Readln(date.den);

write('месяц:');

Readln(date.mes);

write('год:');

Readln(date.god);

write('Введите курс лечения:');

Readln(kurs);

end;

write(f,A)

end;;

Writeln('Создан файл из ',n,' записей');

end

else Writeln('Создан пустой файл');

Close(f);

ReadKey;

end;

 

procedure Open(var Name_File: string);

var

f: file of Pacient;

begin

ClrScr;

Write('Введите имя файла:');

ReadLn(Name_File);

Assign(f,Name_File);

{$I-}

Reset(f);

{$I+}

If IOResult <> 0 then

begin

writeln ('Нет файла с именем ', Name_File);

Name_File:='';

end

else

begin

writeln ('Файла с именем ', Name_File, ' открыт');

Close(f);

end;

ReadKey;

end;

 

procedure Add_Record(Name_File: string);

var

f: file of Pacient;

A: Pacient;

begin

ClrScr;

Assign(f,Name_File);

{$I-}

Reset(f);

{$I+}

If IOResult <> 0 then

writeln ('Нет файла с именем ', Name_File)

else

begin

Seek(f,FileSize(f));

with A do

begin

Writeln('Введите данные ',FileSize(f)+1,'-го пациента');

write('Введите фамилию:');

Readln(FIO);

write('Введите год рождения:');

Readln(year);

write('Введите диагноз:');

Readln(diag);

writeln('Введите дату поступления:');

write('день:');

Readln(date.den);

write('месяц:');

Readln(date.mes);

write('год:');

Readln(date.god);

write('Введите курс лечения:');

Readln(kurs);

end;

write(f,A);

Writeln('Запись добавлена');

Close(f);

end;

ReadKey;

end;

 

procedure View(Name_File: string);

var

f: file of Pacient;

A: Pacient;

begin

ClrScr;

Assign(f,Name_File);

{$I-}

Reset(f);

{$I+}

If IOResult <> 0 then writeln ('Нет файла с именем ', Name_File)

else

begin

Writeln('Содержимое файла: ', Name_File);

Writeln('Содержимое файла: ', Name_File);

Writeln('| Ф.И.О. |Год рожд.| Диагноз |Дата поступления | Курс лечения |');

Writeln('___________________________________________________

while not Eof(f) do

begin

Read(f,A);

with A do

writeln(FIO: 10, Year: 10,Diag:10, Date.den: 8,

Date.mes:3, date.god:5, kurs:13);

end;

Close(f);

end;

ReadKey;

end;

 

procedure Del(Name_File: string);

var

f,Temp: file of Pacient;

A: Pacient;

k,i: integer;

begin

ClrScr;

Assign(f,Name_File);

{$I-}

Reset(f);

{$I+}

If IOResult <> 0 then writeln ('Нет файла с именем ', Name_File)

else

begin

Writeln('Файл ',Name_File, ' имеет ',FileSize(f), ' записей');

Write('Введите номер удаляемой записи №=');

ReadLn(k);

if (k<1) or (k>FileSize(f)) then Writeln('нет записи с №=',k)

else

begin

Assign(temp,'1.tmp');

Rewrite(temp);

For i:=1 to FileSize(f) do

begin

Read(f,A);

if i<>k then write(temp,A);

end;

Close(f); Close(temp);

Erase(f);

ReName(temp,Name_File);

Writeln('Запись удалена')

end;

end;

ReadKey;

end;

 

procedure Search(Name_File: string);

var

f: file of Pacient;

A: Pacient;

Fam: String[30];

Poisk: boolean;

begin

ClrScr;

Assign(f,Name_File);

{$I-}

Reset(f);

{$I+}

If IOResult <> 0 then writeln ('Нет файла с именем ', Name_File)

else

begin

Write('Введите фамилию пациента: ');

ReadLn(Fam);

Writeln('| Ф.И.О. |Год рожд.| Диагноз |Дата поступления| Курс лечения |’);

Writeln('___________________________________________________

Poisk:= False;

while not Eof(f) do

begin

Read(f,A);

with A do

if Fio = Fam then

begin

writeln(FIO: 10, Year: 10,Diag:10, Date.den: 8,

Date.mes:3, date.god:5, kurs:13);

Poisk:= true

end;

end;

Close(f);

If not Poisk then writeln('Нет пациентов с фамилией ',Fam);

end;

ReadKey;

end;

 

Begin

Name_File:='';

repeat

ClrScr;

Writeln('1-Создать файл');

Writeln('2-Открыть файл');

Writeln('3-Просмотр данных');

Writeln('4-Добавить данные');

Writeln('5-Удалить данные');

Writeln('6-Поиск данных ');

Writeln('7-Выход ');

Writeln;

Write('Выберите пункт меню ');

ReadLn(Ch);

Case Ch of

'1': Create(Name_File);

'2': Open(Name_File);

'3': if Name_File <> '' then View(Name_File)

else

begin

Writeln('Не задано имя файла (выберите пункт 1 или 2)');

Readkey;

end;

'4': if Name_File <> '' then Add_Record(Name_File)

else

begin

Writeln('Не задано имя файла (выберите пункт 1 или 2)');

Readkey;

end;

'5': if Name_File <> '' then Del(Name_File)

else

begin

Writeln('Не задано имя файла (выберите пункт 1 или 2)');

Readkey;

end;

'6': if Name_File <> '' then Search(Name_File)

else

begin

Writeln('Не задано имя файла (выберите пункт 1 или 2)');

Readkey;

end;

end;

until Ch = '7';

End.


Список рекомендуемой литературы

 

1. Фаронов В.В. Турбо Паскаль 7.0. Начальный курс. М., Нолидж, 1997.

2. Фаронов В.В. Турбо Паскаль 7.0. Практика программирования. М., Нолидж, 1997.

3. Немнюгин С.А. Турбо Паскаль. Учебник для ВУЗов. М., Питер 2003.

4. Немнюгин С.А. Турбо Паскаль. Практикум. М., Питер 2003.

5. Абрамов А.Г., Трифонов Н.П., Трифонова Г.Н. Введение в язык Паскаль. М., Наука, 1988.

6. Епанешников А., Епанешников В. Программирование в среде Turbo Pascal 7.0. М., Диалог-Мифи, 1993.

7. Пильщиков В.Н. Сборник упражнений по языку Паскаль. М., Наука, 1989.

8. Поляков Д.Б., Круглов И.Ю. Программирование в среде Турбо Паскаль (версия 5.5). Изд-во МАИ, 1992.

9. Шень А. Программирование: Теоремы и задачи. М., МЦНМО, 1995.


Учебное издание

 

Поделиться:





Читайте также:





Воспользуйтесь поиском по сайту:



©2015 - 2024 megalektsii.ru Все авторские права принадлежат авторам лекционных материалов. Обратная связь с нами...