Читайте также: |
|
Тема: Программирование задач, включающих действиями с файлами.
Цель работы: Знакомство с функциями и методами обработкифайлов.
1 Порядок выполнения лабораторной работы:
1.1 Знакомство с теоретическим материалом, соответствующим теме лабораторной работы
1.2. Ответить на следующие вопросы:
1. 1.Что такое файл? Что такое тип FILE?
2. Как открывать и закрывать текстовые файлы?
3. Как осуществить ввод данных из текстового файла?
4. Как записывать в файл?
5. Как проверять классы символов?
6. Какие есть стандартные процедуры для работы с файлами?
7. Где расположены компоненты для работы с файлами?
8. Какие модули необходимо подключить для обработки файлов?
9. Какой компонент служит для просмотра списка и выбора имени файла?
Задание для выполнения
Составить программу, которая читает текстовый файл и выполняет такое преобразование его, какое задано в Вашем варианте индивидуального задания.
Примечания:
Варианты индивидуальных заданий
Группа А
Написать программу, которая считывает из текстового файла 3 предложения и выводит их в обратном порядке. | |
Написать программу, которая считывает текст из файла и выводит на экран только предложения, содержащие введенное с клавиатуры слово. | |
Написать программу, которая считывает текст из файла и выводит на экран только строки, содержащие двузначные числа. | |
Написать программу, которая считывает английский текст из файла и выводит на экран слова, начинающиеся с гласных букв. | |
Написать программу, которая считывает текст из файла и выводит его на экран, меняя местами каждые 2 соседних слова. | |
Написать программу, которая считывает текст из файла и выводит на экран только предложения, не содержащие запятых. | |
Написать программу, которая считывает текст из файла и определяет, сколько в нем слов, состоящих из не более чем четырех букв. | |
написать программу, которая считывает текст из файла и выводит на экран только цитаты, то есть предложения, заключенные в кавычки. | |
Написать программу, которая считывает текст из файла и выводит на экран только предложения, состоящие из заданного количества слов. | |
Написать программу, которая считывает английский текст из файла и выводит на экран слова текста, начинающиеся и оканчивающиеся на гласные буквы. | |
Написать программу, которая считывает текст из файла и выводит на экран только строки, не содержащие двузначных чисел. | |
Написать программу, которая считывает текст из файла и выводит на экран только предложения, начинающиеся с тире, перед которым могут находиться только пробельные символы. | |
Написать программу, которая считывает английский текст из файла и выводит его на экран, заменив каждую первую букву слов, начинающихся с гласной буквы, на прописную. | |
Написать программу, которая считывает текст из файла и выводит его на экран, заменив цифры от 0 до 9 на слова «ноль», «один», …. «девять», начиная каждое предложение с новой строки. | |
Написать программу, которая считывает текст из файла, находит самое длинное слово и определяет, сколько раз оно встретилось в тексте. | |
Написать программу, которая считывает текст из файла и выводит на экран сначала вопросительные, а затем восклицательные предложения. | |
Написать программу, которая считывает текст из файла и выводит его на экран, после каждого предложения добавляя, сколько раз встретилось в нем введенное с клавиатуры слово. | |
Написать программу, которая считывает текст из файла и выводит на экран все его предложения в обратном порядке. | |
Написать программу, которая считывает текст из файла и выводит на экран сначала предложения, начинающиеся с однобуквенных слов, а затем все остальные. | |
Написать программу, которая считывает текст из файла и выводит на экран предложения, содержащие максимальное количество знаков пунктуации. |
Группа В
Вариант | Условие задачи |
А. Создать файл, содержащий сведения о месячной заработной плате рабочих завода. Каждая запись содержит поля - фамилия рабочего, наименование цеха, размер заработной платы за месяц. Количество записей 10. Б. Вычислить общую сумму выплат за месяц по цеху Х, а также среднемесячный заработок рабочего этого цеха. Напечатать для бухгалтерии ведомость для начисления заработной платы рабочим этого цеха. | |
А. Создать файл, содержащий сведения о количестве изделий, собранных сборщиками цеха за неделю. Каждая запись содержит поля: фамилию сборщика, количество изделий, собранных им ежедневно в течение шестидневной недели, т.е. раздельно - в понедельник, вторник и т.д. Кол-во записей 10. Б. Написать программу выдающую на печать следующую информацию: фамилию сборщика и общее количество деталей, собранное им за неделю; фамилию сборщика, собравшего наибольшее число изделий, и день, когда он достиг наивысшей производительности труда. | |
А. Создать файл, содержащий сведения о количестве изделий категорий А, В, С, собранных рабочим за месяц. Структура записи имеет поля: фамилия сборщика, наименование цеха, количество изделий по категориям, собранных рабочим за месяц. Количество записей - 10. Б. Считая заданным значения расценок SA, SB, SC за выполненную работу по сборке единицы изделия категорий А, В, С соответственно, выдать на печать следующую информацию: - общее количество изделий категорий А, В, С, собранных рабочим цеха Х; - ведомость заработной платы рабочих цеха Х; - средний размер заработной платы работников этого цеха | |
А. Создать файл, содержащий сведения о телефонах абонентов. Каждая запись имеет поля: фамилия абонентов, год установки телефона, номер телефона. Количество записей - 10. Б. Написать программу, выдающую информацию следующего вида: - по вводимой фамилии абонента выдается номер телефона - определяется количество установленных телефонов с ХХХХ года. Номер года вводится с терминала. | |
А. Создать файл, содержащий сведения игрушек в магазине. Структура записи: название игрушки, цена, количество, возрастные границы, например 2-5, т.е. от 2 до 5 лет. Б. Написать программу, выдающую информацию следующего вида: - названия игрушек, которые подходят детям от 1 до 3 лет; - стоимость самой дорогой игрушки и ее наименование: - название игрушки, которая по стоимости не превышает х тенге и подходит ребенку в возрасте от a до b лет. Значения a, b, x ввести с терминала. Количество записей - 10. | |
А. Создать файл, содержащий сведения о сдаче студентами 1 курса кафедры ИИТ сессии. Структура записи: индекс группы, фамилия студента, оценки по пяти экзаменам, признак участия в общественной работе: 1- активное участие, 0 - неучастие. Количество записей - 10. Б. Написать программу зачисления студентов группы Х на стипендию. Студент, получивший все оценки 5 и активно участвующий в общественной работе, зачисляется на повышенную стипендию (доплата 50%), не активно участвует - доплата 25%. Студенты, получившие 4 и 5, зачисляются на обычную стипендию. Студент, получивший одну оценку 3, но активно занимавшийся общественной работой, также зачисляется на стипендию, в противном случае зачисление не производится. Индекс группы вводится с терминала. | |
А. Создать файл, содержащий сведения о сдаче студентами сессии. Структура записи: индекс группы, фамилия студента, оценки по пяти экзаменам и пяти зачетам («з» означает зачет, «н»- незачет). Количество записей - 10. Б. Написать программу, выдающую следующую информацию: - фамилии неуспевающих студентов с указанием индексов групп и количества задолжностей - средний балл, полученный каждым студентом группы Х, и всей группой в целом | |
А. Создать файл, содержащий сведения о личной коллекции книголюба. Структура записи: шифр книги, автор, название, год издания, местоположение (номер стелажа, шкафа и т.п.). Количество записей - 10. Б. Написать программу, выдающую следующую информацию: - местоположение книги автора Х названия У. Значения Х, У ввести с терминала. - Список книг автора Z, находящихся в коллекции. - Число книг издания ХХ года, имеющиеся в библиотеке. | |
А. Создать файл, содержащий сведения о наличии билетов и рейсах Аэрофлота. Структура записи: номер рейса, пункт назначения, время вылета, время прибытия, количество свободных мест в салоне. Количество записей - 10. Б. Написать программу, выдающую следующую информацию: - время отправления самолетов в город А. - Наличие свободных мест на рейс в город Х с временем отправления У. Значения Х, У вводятся по запросу с терминала. | |
А. Создать файл, содержащий сведения об ассортименте обуви в магазине фирмы. Структура записи: артикул, наименование, количество, стоимость одной пары. Количество записей - 10. Б. Написать программу, выдающую следующую информацию: - о наличии и стоимости обуви артикула Х. Ассортиментный список дамской обуви с указанием наименования и имеющегося в наличии числа пар каждой модели. | |
А. Создать файл, содержащий сведения о десяти нападающих хакейных команд «Динамо» и «Спартак». Структура записи: имена нападающих, число заброшенных ими шайб, сделанных голевых передач, заработанное штрафное время. Б. Написать программу, которая по данным, извлеченным из этих файлов, создает новый третий файл, содержащий имя, команду, сумму очков (годы+передачи) для шести лучших игроков обеих команд. Имена и показатели результативности хоккеистов вывести на экран. | |
А. Создать файл, содержащий сведения о том, какие из пяти предлагаемых дисциплин по выбору желает слушать студент. Структура записи: фамилия студента, индекс группы, 5 дисциплин, средний балл успеваемости. Выбираемая дисциплина отмечается символом 1, иначе – пробел. Количество записей - 10. Б. Написать программу, которая печатает список студентов, желающих прослушать дисциплину Х. Если число желающих превысит 8 человек, то отобрать студентов, имеющих более высокий средний балл успеваемости. | |
А. Создать файл, содержащий сведения об отправлении поездов дальнего следования с железнодорожного вокзала. Структура записи: номер поезда, станция назначения, время отправления, время в пути, наличие билетов. Количество записей - 10. Б. Написать программу, которая позволяет получить следующую справочную информацию: - время отправления поездов в город Х во временном интервале от А до В часов. Наличие билетов на поезд с номером ХХХХ. | |
А. Создать файл, содержащий сведения о сотрудниках института. Структура записи: фамилия работающего, название отдела, год рождения, стаж работы, должность оклад. Количество записей - 10. Б. Написать программу, которая позволяет получить следующую информацию: - список сотрудников пенсионного возраста на сегодняшний день с указанием стажа работы. - средний стаж работающих в отделе. |
Примеры
Пример 2.1 Составить программу, которая читает текстовый файл в Memo1, определяет количество вхождений в текст указанного символа и количество разделителей «;,:.!» и пробелов. Результаты вывести в Memo2 и записать в другой файл.
Меню Файл содержит следующие пункты:
Создать, Открыть, Сохранить, Сохранить как, Расчет, Выход
Меню Справка содержит пункт О программе
Рисунок-29. Исходная форма объекта.
TMainMenu позволяет Вам поместить главное меню в программу. При помещении TMainMenu на форму это выглядит, как просто иконка. Иконки данного типа называют "невидимыми компонентом", поскольку они невидимы во время выполнения программы. Создание меню включает три шага: (1) помещение TMainMenu на форму, (2) вызов Дизайнера Меню через свойство Items в Инспекторе Объектов, (3) определение пунктов меню в Дизайнере Меню.
TPopupMenu позволяет создавать всплывающие меню. Этот тип меню появляется по щелчку правой кнопки мыши на объекте, к которому привязано данное меню. У всех видимых объектов имеется свойство PopupMenu, где и указывается нужное меню. Создается PopupMenu аналогично главному меню.
TImage -отображает графическое изображение на форме. Воспринимает форматы BMP, ICO, WMF. Если картинку подключить во время дизайна программы, то она прикомпилируется к EXE файлу.
Листинг программы:
//---------------------------------------------------------------------------
#include <vcl.h>
#include <io.h>
#include <string.h>
#include <SysUtils.hpp>
#include <stdio.h>
#pragma hdrstop
#include "struct.h"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
AnsiString fname="";
char buf[256]="";
//TStringList *List= new TStringList;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::AexitExecute(TObject *Sender)
{
Close();
}
//---------------------------------------------------------------------------
//открытие файла
void __fastcall TForm1::AopenExecute(TObject *Sender)
{ Edit1->Text="";
if (OpenDialog1->Execute()) {
fname=OpenDialog1->FileName;
Memo1->Lines->LoadFromFile(fname);
}
}
//---------------------------------------------------------------------------
//создание нового файла
void __fastcall TForm1::ANewExecute(TObject *Sender)
{
Memo1->Clear();
Memo2->Clear();
}
//---------------------------------------------------------------------------
// подсчет
void __fastcall TForm1::ArunExecute(TObject *Sender)
{ AnsiString del=";,:.!";
AnsiString st, st1;
int i,m=0,j=0;
Memo2->Clear();
st1=Edit1->Text; //ввести символ для поиска
for (i=0;i<=Memo1->Lines->Count;i++)
{
StrPCopy(buf,Memo1->Lines->Strings[i]);
st=buf;
for (int k=1;k<=StrLen(st.c_str());k++)
{if (IsDelimiter(del,st,k)) j++; //подсчет количества разделителей в файле
if (IsDelimiter(st1,st,k)) m++; //подсчет введенного в Edit1 символа
} }
Memo2->Lines->Add("количество символов "+Edit1->Text+" равно "+IntToStr(m));
Memo2->Lines->Add("количество разделителей "";"",:.! и пробелов равно "+IntToStr(j));
}
//---------------------------------------------------------------------------
//---------------------------------------------------------------------------
// сохранение файла под тем же именем
void __fastcall TForm1::AsaveExecute(TObject *Sender)
{ if (fname!="")
Memo2->Lines->SaveToFile(fname);
else
if (SaveDialog1->Execute()) {
fname=SaveDialog1->FileName;
Memo2->Lines->SaveToFile(fname);}
}
//---------------------------------------------------------------------------
// сохранение файла под другим именем
void __fastcall TForm1::ASaveAsExecute(TObject *Sender)
{
SaveDialog1->FileName=fname;
if (SaveDialog1->Execute()) {
fname=SaveDialog1->FileName;
Memo2->Lines->SaveToFile(fname);
}
}
//---------------------------------------------------------------------------
void __fastcall TForm1::AHelpExecute(TObject *Sender)
{
AboutBox->ShowModal();
}
//---------------------------------------------------------------------------
Дата добавления: 2015-11-04; просмотров: 103 | Нарушение авторских прав
<== предыдущая страница | | | следующая страница ==> |
Лабораторная работа № 9 | | | Лабораторная работа № 11 |