Студопедия — Перегляд та peдaгувaння файла
Студопедия Главная Случайная страница Обратная связь

Разделы: Автомобили Астрономия Биология География Дом и сад Другие языки Другое Информатика История Культура Литература Логика Математика Медицина Металлургия Механика Образование Охрана труда Педагогика Политика Право Психология Религия Риторика Социология Спорт Строительство Технология Туризм Физика Философия Финансы Химия Черчение Экология Экономика Электроника

Перегляд та peдaгувaння файла






 

 
 

Запустіть на виконання програму 1, вказавши ім’я файла ADDRBK.TXT, та ввeдіть відповідну інфopмaцію. Прогляньте можливий результат її роботи на рис. 20.1.

 

Піcля вкaзaння імeні фaйлa ADDRBK.TXT і ввoду пepшoгo блoкa інфopмaції ввoд cлoвa «NO» пpи наступному зaпиті пеpepивaє pобoтy пpoгpaми. Пpи повтopнoму зaпycку пpoгpaми ви мoжeтe доповнити «3aпиcнy книжкy», внecти нoвy інфopмaцію. Bи мoжeтe тaкож зaвантажити створений фaйл ADDRBK.TXT в peдaктopcькe вікнo QBASIC для перегляду і/або peдaгувaння. Робиться це наступним чином:

  • пepeйти в pозділ мeню Файл (File).
  • вибpaти рядок Открыть(Open...) і нaтиснути клaвішy Enter-
  • ввecти ім’я фaйлa в pозділ «3aгoлoвoк» (title bar)-
  • повepнyтиcя у вікнo peдaктоpa QBASIC, нaтиснувши клaвішy Enter,

Teпep мoжна поглянути, в якoму вигляді інфopмaція зберігається у створеному вaми фaйлі. Дaні пишyтьcя в лапках і pозділeні комами. Зверніть увагу, щo уcі пapaмeтpи в фaйлі тeкcтoвoгo типу: це зроблено, щоб уникнути помилок пpи ввoді нoмepa тeлeфoну, що починaється з нyля, ocкільки QBASIC oпycкaє початкові нyлі, створюючи знaчeння цілoгo типу. Пoміcтивши фaйл в peдaктоp QBASIC, мoжна пpoглядати йогo зaпиcи, peдaгувaти їx, додавати нoві дaні та зберігати їx. Taкий peжим можливий тільки для фaйлів пocлідoвнoгo дocтyпу, в яких інфopмaція зберігається в ASCII-кoдax.

Створимо пpoгpaмy oбpобки тeкcтoвoгo фaйлa, яка, крім peдaгування, виконує copтування та пoшук певної інфopмaції,

Завдання А. Створити файл, що вміщує дані про здачу студентами сесії. Структура запису вміщує поля: індекс групи, прізвище студента, оцінки з 5 екзаменів.

Розв’язання. Так як за умовою не потрібно виконувати арифметичних операцій над даними полів запису, то усі поля символьного(текстового) типу. Імена полів і довжини полів наведені в таблиці:

 

Описання поля Ім’я змінної Тип даних Приклад
Індекс групи INDEX 6 символів 2ФК1
Прізвище FAM 20 символів Швец С.Н.
Оцінки з 5 екзаменів Масив STUD (5) Кожний елемент односимвольний  

 

Для одержання поточного запису організуємо в програмі запит на ввід чергової порції інформації з терміналу в оперативну пам’ять, для чого скористаємося звичними операторами мови QBASIC для вводу даних. Отриманий рядок даних запишемо в перший запис файлу. Для цього використаємо оператор запису даних в файл, після чого запитаємо ввід другого рядка даних з терміналу в оперативну пам’ять. Організуємо і її запис в файл. Цей процес вводу будемо продовжувати доти, доки не буде отримано з терміналу ознаку закінчення вводу даних. Для підрахунку кількості записів в файлі введемо лічильник K, значення якого будемо збільшувати на 1 при кожній операції запису рядка в файл. Для контролю після створення файла організуємо читання записів файла та їх вивід на екран.

 

Програма

CLS

'Лабораторна робота № 20, завдання А

COLOR 14, 6

DIM MARKER$(5) 'Масив оцінок

'Відкриття файлу

INPUT "Введіть ім’я Вашого файлу: ", SESSIA$

OPEN SESSIA$ FOR APPEND AS #2

PRINT

'Цикл для внесення записів

DO

LOCATE, 5

PRINT "Введіть поточний запис";

PRINT

COLOR 0, 5

INPUT "Введіть індекс групи (щоб припинити введення записів введіть NO):", INDEX$

IF UCASE$(INDEX$) = "NO"; THEN EXIT DO

LOCATE, 5

PRINT

COLOR 3, 12

INPUT "Введіть прізвище студента:", FAM$

LOCATE, 5

PRINT

COLOR 11, 9

PRINT "Введіть оцінки:";

PRINT

COLOR 1, 14

FOR I = 1 TO 5

PRINT "оцінка за";I; "екзамен": INPUT MARKER$(I)

NEXT I

CLS

’Внесення (записування) до файлу поточного запису

WRITE #2, INDEX$, FAM$, MARKER$(1), MARKER$(2), MARKER$(3), MARKER$(4), MARKER$(5)

PRINT

LOOP

'Закриття файлу

CLOSE #2

CLS

PRINT "Дані про здачу студентами сесії";

PRINT "----------------------------------";

OPEN "SESSIA.TXT"; FOR INPUT AS #2

K = 1'Лічильник

DO UNTIL EOF(#2)

INPUT #2, INDEX$, FAM$, MARKER$(1), MARKER$(2), MARKER$(3), MARKER$(4), MARKER$(5)

PRINT INDEX$; TAB(10); FAM$; TAB(30);

FOR I = 1 TO 5: PRINT MARKER$(I); " ";: NEXT I

PRINT

K = K + 1'Збільшення лічильника циклу на 1

LOOP

CLOSE #2

END

Результат виконання програми пожано нижче.

Завдання Б. Для файла, створеного в завданні А, написати програму начислення стипендії студентам групи X. Розмір звичайної стипендії 24 гр. Студенту, що отримав всі п’ять оцінок «5», призначається стипендія, підвищена на 50%; що отримав оцінки «4» і «5» – підвищена на 25%; студенту, що отримав хоча б одну оцінку «2», стипендія не призначається. В інших випадках призначається звичайний розмір стипендії.

Розв`язання. Для виконання завдання Б необхідно: ввести з термінала індекс групи Х, для якої друкується відомість нарахування стипендії; в циклі організувати читання поточного запису файла, перевірити збіг значення поля «індекс групи» зі значенням змінної Х.


 
 

Рис. 20. 1. Результат виконання завдання А

 


Якщо індекси не співпадають, то переходити до читання наступного запису файла. Якщо індекси співпадають, то проводити нарахування стипендії за таким алгоритмом: ввести лічильники кількості відмінних та добрих оцінок К5 та К4, задавши їх початкове значення 0; організувати цикл на п’ять повторень для перевірки кожної оцінки студента. Якщо поточна оцінка «2», то виходити з циклу (нарахування стипендії не буде) і переходити до читання наступного запису файла; якщо оцінка «5», то збільшити лічильник К5 на 1 і продовжити цикл перегляду оцінок; якщо оцінка «не 5», то перевірити її на значення «4». Якщо оцінка «4», то лічильник К4 збільшити на 1 і продовжити цикл. Після перегляду всіх оцінок перевірити значення лічильника К5 – чи дорівнює 5? За умови позитивної відповіді призначити стипендію 24 + 0.5 * 24 = 36 гр. Видати до друку прізвище студента, розмір стипендії і перейти до читання наступного запису; якщо К5 не дорівнює 5, то перевірити рівність 5 суми значень К5 і К4. При відповіді «ТАК» призначити стипендію 24 + 0.25 * 24 = 30 гр., у протилежному випадку – стипендію 24 гр. і перейти до друку рядка документа про нарахування стипендії, а потім до читання нового запису. При появі кінця файлу закінчити розв`язання задачі.

Програма

CLS

'Лабораторна робота № 20, Завдання Б";

COLOR 14, 6

DIM MARKER$(5) 'Масив оцінок

'Відкриття файлу

RR1:

INPUT "Введіть ім’я файлу, який треба відкрити:", DD$

OPEN DD$ FOR INPUT AS #2

INPUT "Введіть індекс групи:", X$

CLS

PRINT "Відомість нарахування стипендії студентам групи ",X$

PRINT "---------------------------------------";

N = 0: K = 1

RR2:

DO UNTIL EOF(#2)

INPUT #2, INDEX$, FAM$, MARKER$(1), MARKER$(2), MARKER$(3), MARKER$(4), MARKER$(5)

IF LEFT$(INDEX$(K), 6) <> X$ THEN EXIT DO

K5 = 0: K4 = 0 'Лічильники оцінок

FOR I = 1 TO 5

IF MARKER$(I) = "2"; THEN GOTO RR2

IF MARKER$(I) = "5" THEN K5 = K5 + 1

IF MARKER$(I) = "4"; THEN K4 = K4 + 1

NEXT I

S = 24 ' Звичайний розмір стипендії

IF K5 = 5 THEN S = 36: GOTO RR

IF K5 + K4 = 5 THEN S = 30

RR:N = N + 1 'Порядковий номер студента

PRINT N; FAM$; TAB(20); INDEX$; TAB(27); S; TAB(33); " ГРН.";

K = K + 1

LOOP

CLOSE #2

INPUT “Нараховуємо наступній групі? Y/N”; ZZ$

IF UCASE$(ZZ$)=”Y” THEN GOTO RR1

END

Контрольні запитання

  1. Навіщо потрібні файли?
  2. Перерахуйте способи доступу до файлів.
  3. Відкриття файла.
  4. Ім’я файла.
  5. Режими роботи з файлами.
  6. Перегляд та редагування файла.

Варіанти завдань

1. а) Створити файл, що вміщує дані про місячну зарплатню робітників заводу. Кожен запис вміщує поля - прізвище робітника, найменування цеха, розмір заробітної платні за місяць. Кількість записів – довільна (не менше 5).

б) Обчислити загальну суму виплат за місяць по цеху Х, а також середньомісячний заробіток робітника цього цеху. Надрукувати для бухгалтерії відомість для нарахування заробітної платні робітникам цього цеху.

 

2. а) Створити файл, що вміщує дані про кількість виробів, зібраних зборщиками цеху за тиждень. Кожен запис вміщує поля: прізвище зборщика, кількість виробів, зібраних їм щоденно на протязі тижня, тобто окремо - в понеділок, вівторок і т.д. Кількість записів – довільна (не менше 5).

б) Написати програму, що видає таку інформацію:

· прізвище зборщика та загальна кількість деталей, зібрана їм за тиждень;

· прізвище зборщика, і день, коли він досягнув найвищої продуктивності праці.

 

3. а) Створити файл, що вміщує дані про кількість виробів категорій А, В, С, зібраних робітником за місяць. Структура запису має поля: прізвище зборщика, найменування цеха, кількість виробів по категоріям, зібраних робітником за місяць.

б)Вважаючи заданими значення розцінок SА, SВ, SС за виконану роботу по збиранню одиниці виробу категорій А, В, С відповідно, видати на друк наступну інформацію:

· загальна кількість виробів категорій А, В, С, зібраних робітником цеху Х;

· відомість заробітної платні робітником цеху Х;

· середній розмір заробітної платні робітників цього цеха.

Кількість записів – довільна (не менше 5).

 

4. а) Створити файл, що вміщує дані про телефони абонентів. Кожен запис має поля: прізвище абонента, рік установки телефону, номер телефону. Кількість записів довільна (не менше 20).

б) Написати програму, що видає інформацію наступного вигляду:

· за прізвищем абонента видається номер телефону;

· визначається кількість установлених телефонів з ХХХХ року.

Номер року вводиться з терміналу.

 

5. а) Створити файл, що вміщує дані про асортимент іграшок в магазині. Структура запису: назва іграшки, ціна, кількість, вікові границі, наприклад 2-5, тобто від 2 до 5 років. Кількість записів довільна (не менше 10).

б) Написати програму, в результаті виконання якої видаються наступні дані:

· назва іграшок, що підходять дітям від 1 до 3 років;

· вартість самої дорогої іграшки і її найменування;

· назва іграшки, яка за вартістю не перевищує х грн. і підходить малюку у віці від а до b років.

Значення х, а, b ввести з термінала.

 

6. а) Створити файл, що вміщує дані про здачу студентами I курсу спеціальності “Фінанси” сесії. Структура запису: індекс групи, прізвище студента, оцінки з п’яти екзаменів, ознака участі в громадській роботі: "1" - активна участь, "0" - неучасть. Кількість записів - 30.

б) Написати програму нарахування студентам групи Х стипендії. Студенту, що отримав всі оцінки "5" і активно приймав участь в громадській роботі, нараховується підвищена стипендія (доплата 50%), не активно приймає участь — доплата 25%. Студентам, що отримали "4" і "5", нараховується звичайна стипендія. Студенту, який отримав одну оцінку "3", але активно приймає участь у громадській роботі, також нараховується стипендія, в протилежному випадку стипендія не нараховується. Індекс групи вводиться з термінала.

 

7. а) Створити файл, що вміщує дані про здачу студентами сесії. Структура запису: індекс групи, прізвище студента, оцінки з п¢яти екзаменів і п¢яти заліків("з" означає залік, "н"- незалік). Кількість записів - 25.

б) Написати програму, що видає наступну інформацію:

· прізвища невстигаючих студентів з вказанням індексів груп та кількості заборгованостей;

· середній бал, отриманий кожним студентом групи Х, та всією групою в цілому.

 

8. а) Створити файл, що вміщує дані про колекцію книголюба. Структура запису: шифр книги, автор, назва, рік видання, місцезнаходження. Кількість записів довільна (не менше 15).

б) Написати програму, що видає наступну інформацію:

· місцезнаходження книги автора Х назви Y. Значення Х і Y ввести з термінала;

· список книг автора Z, що знаходиться в колекції;

· число книг видання ХХ року, що є в бібліотеці.

 

9. а) Створити файл, що вміщує дані про наявність білетів і рейсах авіакомпанії.

Структура запису: номер рейса, пункт призначення, час вильоту, час прибуття, кількість вільних місць в салоні. Кількість записів довільна (не менше 10).

б) Написати програму, що видає інформацію такого виду:

· час відправлення літаків у місто Х;

· наявність вільних місць на рейс у місто Х з часом відправлення Y. Значення Х, Y вводяться з термінала.

 

10. а) Створити файл, що вміщує дані про асортимент взуття в магазині фірми. Структура запису: артикул, найменування, кількість, вартість однієї пари.

Кількість записів довільна. Артикул починається з літери Д для жіночого взуття, М для чоловічого, П для дитячого.

б) Написати програму, що видає наступну інформацію:

· про наявність і вартість взуття артикула Х;

· асортиментний перелік жіночого взуття із вказанням найменування і кількості пар кожної моделі.

 

11. а) Створити файл, що вміщує дані про десять нападаючих хокейних команд "Динамо" та "Спартак" відповідно: імена нападаючих, кількість закинутих шайб, зроблених гольових передач, зароблений штрафний час.

б) Написати програму, яка за даними цих файлів створює новий третій файл, що вміщує ім’я, команду, суму балів (голи + передачі) для шести кращих гравців обох команд. Імена і показники результативності хокеїстів вивести на екран.

 

12. а) Створити файл, що вміщує дані про те, які з п’яти дисциплін за вибором бажає прослухати студент. Структура запису: прізвище студента, індекс групи, 5 дисциплін, середній бал успішності. Вибрана дисципліна відмічається символом i, інакше пропуском. Кількість записів - 25.

б) Написати програму, що друкує перелік студентів, які бажають прослухати дисципліну Х. Якщо кількість бажаючих перевищує 8 чоловік, то відібрати студентів, що мають більш високий середній бал успішності.

13. а) Створити файл, що вміщує дані про відправку потягів з Київського вокзалу. Структура запису: номер потягу, станція призначення, час відправлення, час у дорозі, наявність квитків. Кількість записів довільна (не менше 10).

б) Написати програму, яка дозволяє отримати наступну довідкову інформацію:

· час відправлення потягів у місто Х в часовому інтервалі від А до В годин,

· наявність квитків на потяг з номером ХХХ.

 

14. а) Створити файл, що вміщує дані про співробітників університету. Структура запису: прізвище працюючого, назва кафедри, рік народження, строк роботи, посада, зарплатня. Кількість записів довільна (не менше 15).

б) Написати програму, що дозволяє одержати наступну інформацію:

· перелік співробітників пенсійного віку на сьогоднішній день зі вказанням строку роботи;

· середня тривалість роботи в університеті співробітником кафедри Х.

 

15. а) Створити файл, що вміщує дані про пацієнтів лікарні. Структура запису: прізвище пацієнта, стать, вік, місце проживання (місто), діагноз. Кількість записів довільна (не менше 10).

б) Написати програму, що видає наступну інформацію:

· кількість осіб, що прибули до лікарні та проживають в іншому місті;

· перелік пацієнтів старших Х років з діагнозом Y. Значення Х та Y ввести з термінала.

[MSOffice1]

[MSOffice2]

[MSOffice3]

[MSOffice4]







Дата добавления: 2015-09-07; просмотров: 457. Нарушение авторских прав; Мы поможем в написании вашей работы!



Расчетные и графические задания Равновесный объем - это объем, определяемый равенством спроса и предложения...

Кардиналистский и ординалистский подходы Кардиналистский (количественный подход) к анализу полезности основан на представлении о возможности измерения различных благ в условных единицах полезности...

Обзор компонентов Multisim Компоненты – это основа любой схемы, это все элементы, из которых она состоит. Multisim оперирует с двумя категориями...

Композиция из абстрактных геометрических фигур Данная композиция состоит из линий, штриховки, абстрактных геометрических форм...

Неисправности автосцепки, с которыми запрещается постановка вагонов в поезд. Причины саморасцепов ЗАПРЕЩАЕТСЯ: постановка в поезда и следование в них вагонов, у которых автосцепное устройство имеет хотя бы одну из следующих неисправностей: - трещину в корпусе автосцепки, излом деталей механизма...

Понятие метода в психологии. Классификация методов психологии и их характеристика Метод – это путь, способ познания, посредством которого познается предмет науки (С...

ЛЕКАРСТВЕННЫЕ ФОРМЫ ДЛЯ ИНЪЕКЦИЙ К лекарственным формам для инъекций относятся водные, спиртовые и масляные растворы, суспензии, эмульсии, ново­галеновые препараты, жидкие органопрепараты и жидкие экс­тракты, а также порошки и таблетки для имплантации...

Травматическая окклюзия и ее клинические признаки При пародонтите и парадонтозе резистентность тканей пародонта падает...

Подкожное введение сывороток по методу Безредки. С целью предупреждения развития анафилактического шока и других аллергических реак­ций при введении иммунных сывороток используют метод Безредки для определения реакции больного на введение сыворотки...

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

Studopedia.info - Студопедия - 2014-2024 год . (0.008 сек.) русская версия | украинская версия