- •Курсовая работа по технологии программирования
- •Постановка задачи
- •1.2 Программа решения задачи 1.1
- •1.3 Результат работы программы
- •1.4 Объяснение результатов
- •1.5 Программа решения задачи 1.2
- •1.6 Результат работы программы
- •Лабораторная работа №2 «Использование основных операторов языка Си»
- •2.1 Постановка задачи
- •2.2 Программа решения задачи
- •2.3 Результат работы программы
- •Лабораторная работа №3 «Вычисление функций с использованием их разложения в степенной ряд»
- •3.1 Постановка задачи
- •Программа решения задачи
- •Результат работы программы
- •Лабораторная работа №4 «Работа с одномерными массивами»
- •4.1 Постановка задачи
- •Программа решения задачи
- •Результат работы программы
- •Лабораторная работа №5 «Функции и массивы»
- •Постановка задачи
- •Программа решения задачи
- •Результат работы программы
- •Лабораторная работа №6 «Строки»
- •Постановка задачи
- •Программа решения задачи
- •Результат работы программы
- •Постановка задачи
- •Программа решения задачи
- •Результат работы программы
- •Лабораторная работа №7.2 «Функции с переменным числом параметров»
- •Постановка задачи
- •Программа решения задачи
- •Результат работы программы
- •Лабораторная работа №8 «Блоковый ввод-вывод»
- •Постановка задачи
- •Программа решения задачи
- •Результат работы программы
- •Лабораторная работа №9 «Строковый ввод-вывод»
- •Постановка задачи
- •Программа решения задачи
- •Результат работы программы
- •11. Лабораторная работа №10 «Динамические массивы»
- •11. 1 Постановка задачи
- •2 Программа решения задачи
- •11.3 Результат работы программы
- •Лабораторная работа №11 «Информационные динамические структуры»
- •Постановка задачи
- •Программа решения задачи
- •12.3 Результат работы программы
Результат работы программы
Рис 11. Результат работы программы 8: заполнение структур
Рис 12. Результат работы программы 8
Лабораторная работа №9 «Строковый ввод-вывод»
Постановка задачи
Создать текстовый файл F1 не менее, чем из 10 строк и записать в него информацию.
Скопировать из файла F1 в файл F2 все строки, которые не содержат слова , начинающиеся на одну букву.
Найти самое короткое слово в файле F2.
Программа решения задачи
#include <vcl.h>
#include <iostream.h>
#include <conio.h>
#include <math.h>
#include <fstream.h>
#include <stdio.h>
#include <iomanip.h>
#include <algorithm>
#include <string.h>
#include <fstream.h>
#pragma hdrstop
#pragma argsused
/*
1) Скопировать из файла F1 в файл F2 все строки, которые не содержат слова ,
начинающиеся на одну букву.
2) Найти самое короткое слово в файле F2.
*/
char* Rus(const char* text);
void vvod_F1(char* outfile);
void copy_F1(char* infile, char* outfile);
int schet(char* outfile);
void show(char* outfile);
int main(int argc, char* argv[])
{
vvod_F1("F1.txt"); //создаем файл и записываем в него строки
copy_F1("F1.txt","F2.txt"); //копируем в другой файл нужные строки
cout<< endl <<Rus("Данные из файла F2.txt:")<<endl<<endl;
show("F2.txt"); //выводим данные из второго файла
//выводим размер самого маленького слова
cout<<Rus("Количество букв в самом маленьком слове: ")<< schet("F2.txt");
getch();
return 0;
}
// Функция создает текстовый файл F1.txt и вводится с клавиатуры текст этого файла
void vvod_F1(char* outfile)
{
int len = 0;
char s[255]; //строка
cout<<Rus("Введите количество строк: ");
cin>>len;
ofstream f1(outfile);
cout<<Rus("Введите текст:") << endl << endl;
_flushall();
for (int i=0;i<len;i++) //записываем строку
{
gets(s);
f1.write(s,strlen(s));
f1.write("\n",1);
}
cout << endl <<Rus("Ввод завершен.");
cout<< endl << endl;
f1.close();
}
// Функция копирует определенные данные из файла F1.txt в файл F2.txt
void copy_F1(char* infile, char* outfile)
{ const max=255;
char s[max]; //строка
int dlin=0; //длина строки
ifstream f1(infile);
ofstream f2(outfile);
while (!f1.eof()) //начинаем просматривать файл
{
f1.getline(s,max);
dlin=strlen(s);
for(int i=0;i<dlin;i++) //просматриваем строку
{
if(s[i]==' ' && s[i+1]==s[0]) //если нашли слова, начинающиеся на одну букву - их не записываем
{
break; //не записываем ее
}
else
{
if(i==(dlin-1)) //если дошли до конца строки
{
f2.write(s,strlen(s)); //переписываем строку
f2.write("\n",1);
}
continue;
}
}
}
f1.close();
f2.close();
}
// функция, ищущая самое маленькое слово
int schet(char* outfile)
{
ifstream f2(outfile);
const int max=255;
char s[max]; //строка
int dlin; //длина строки
int min=255; //переменная для хранения длины самого маленького слова
int curlen; //длина текущего слова
while (!f2.eof())
{
int curb=0; //начало текущего слова
f2.getline(s,max);
dlin= strlen(s); //длина тек. строки
if (dlin!=0)
{
for(int i=0;i<=dlin;i++)
{
if(s[i]==' ' || i==dlin ) //ищем слово
{
curlen=i-curb; //находим его длину
if (curlen<min) min=curlen; //записываем минимальное
curb=i+1; //передвигаемся на начало следующего слова
}
}
}
}
f2.close();
return min;
}
// Функция вывода данных на экран
void show(char* outfile)
{
ifstream f2(outfile);
char s[256];
while (!f2.eof())
{
f2.getline(s,255) ; //берем строку
printf("%s\n",s); //печатаем и переводим строку
}
cout<< endl << endl;
f2.close();
}
char bufrus[256];
char* Rus(const char* text)
{
CharToOem(text,bufrus);
return bufrus;
}