Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Скачиваний:
17
Добавлен:
09.02.2016
Размер:
82.47 Кб
Скачать

Учреждение «Университет Туран»

Факультет АКТ

Кафедра компьютерная и программная инженерия

Отчёт по лабораторной работе №4

по дисциплине «ООП»

Выполнил

ст. гр. ВТПО-12-1у

Цой А. С..

Проверила

Койшыбаева Ж.Б.

Алматы, 2013

1 ПОСТАНОВКА ЗАДАЧИ

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

2 АНАЛИЗ ПОСТАНОВКИ ЗАДАЧИ

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

3 ФОРМАЛЬНАЯ ПОСТАНОВКА ЗАДАЧИ

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

Требуется считать и вывести только те строки, в которых нет двухзначных чисел.

4 ИСКЛЮЧИТЕЛЬНЫЕ СИТУАЦИИ

Ошибка при открытии файла. Путь к файлу указан по умолчанию, т.е файл должен находиться в той же папке что и сама программа(..VisualStudio 2008\Projects\название вашей лабораторной \ название вашей лабораторной).

5 РЕЗУЛЬТАТЫ

5.1 Листинг программы

#include "stdafx.h"

#include <stdio.h> //i/o

#include <ctype.h> //isdigit

#include <string.h>

int isStrHas2DigitValues(char * str);

int main()

{

int ncount = 0;//Будет содержать число строк без двузначн чисел

char line[256] = {0}; //Предполагаем что в строке не более 256 символов

FILE * file = NULL; //Указатель на строку

file = fopen("input.txt","rb");//Указатель на файловый поток

if(file == NULL) //Пробуем открыть файл для чтения

printf("Error open input.txt\n");

else

{

while(!feof(file))

{

if(!fgets(line,256,file))

printf("Error read input.txt\n");

else

//Проверка не содержит ли строка 2-ных

if(!isStrHas2DigitValues(line))

{

printf("%s\n", line);//Печатаем строку

ncount = ncount + 1;//Увеличиваем счётчик строк

}

}

fclose(file);

printf("Text contain %d lines with absent 2dig values\n",ncount);

}

printf("Press any key to continue\n");

getchar();

return 0;

}

int isStrHas2DigitValues(char * str)

{

int i;//Счётчик

int flag = 0;

int value = 0;//Будет соеражть число

int length = 0;//Длинна строки

if(str != NULL)

{

length = strlen(str);

for(i = 0; i < length && flag == 0; i = i + 1)

{

if((str[i]))//Если встретили число

{

sscanf(str + i, "%d", &value);

//Пропускаем число

while(isdigit(str[i]) && str[i] != '\0')

i = i + 1;

if(9 < value && value < 100)

flag = 1;

}

}

}

return flag;

}

5.2 Контрольный пример

Соседние файлы в папке лабы