Поможем написать учебную работу
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.

Предоплата всего

Подписываем
Если у вас возникли сложности с курсовой, контрольной, дипломной, рефератом, отчетом по практике, научно-исследовательской и любой другой работой - мы готовы помочь.
Предоплата всего
Подписываем
Учреждение «Университет Туран»
Факультет АКТ
Кафедра компьютерная и программная инженерия
Отчёт по лабораторной работе №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 Контрольный пример