NetNado
  Найти на сайте:

Учащимся

Учителям



Отчет по лабораторной работе №15 по дисциплине "Программирование на языке высокого уровня"


Национальный исследовательский

Томский политехнический университет

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

Кафедра ИПС

Динамические структуры данных

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

по дисциплине "Программирование на языке высокого уровня"

вариант № 9



Выполнил:


студент группы 8В83

Колчанов А.В.


Проверил:


преподаватель
Погребная Т.А.




Томск 2010

Условие задачи

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

Использовать односвязные списки, классы, конструкторы, входные и выходные файлы.

Алгоритм решения

  1. Создаем структуру списка, класс и определяем его методы.

  2. Считываем из файла слова и загружаем их в список.

  3. Выводим список на консоль и в файл, причем выводятся только слова, состоящие из 4-х букв и расположенные в алфавитном порядке.

Исходный файл


ABBA CAT PROGRAM BABY TOMSK BEER BEEP VITE DOG AUTO

Листинг



Файл list.h

#include "iostream"

#include "string.h"
using namespace std;

// данные

struct Element

{

string data;

Element *next; // указатель на следующий элемент списка

};
//класс и методы

class List

{

Element *pHead; // указатель на первый элемент списка

Element *pPrev; // указатель на последний элемент списка

int countElem; // количество элементов в списке

public:

List();

~List();
void addToList(string data);

void printList();

void printToFile(string filename);

void delAllList();

};

List::List()

{

pHead = NULL;

countElem = 0;

}

List::~List()

{

delAllList();

}

void List::printToFile(string filename)

{

ofstream file(filename);

Element *pTemp = pHead;

string d = pTemp->data;

while(pTemp != NULL)

{

if (pTemp->data.size()==4)

if (d.compare(pTemp->data)<0)

{

d=pTemp->data;

file<
}

pTemp = pTemp->next;

}
file.close();

}
//

void List::addToList(string data)

{

Element *temp = new Element;

if(pHead == NULL)

pHead = temp;

else

pPrev->next = temp;

temp->data = data;

temp->next = NULL;

pPrev = temp;

countElem++;

}
//

void List::printList()

{

Element *pTemp = pHead;

string d = pTemp->data;

while(pTemp != NULL)

{

if (pTemp->data.size()==4)

if (d.compare(pTemp->data)<0)

{

d=pTemp->data;

cout<
}

pTemp = pTemp->next;

}
}
//

void List::delAllList()

{

while(pHead != NULL)

{

Element *pTemp = pHead;

pHead = pHead->next;

delete pTemp;

}

}

Файл laba5.cpp

#include "stdafx.h"

#include "string"

#include "conio.h"

#include "fstream"

#include "list.h"
int _tmain(int argc, _TCHAR* argv[])

{

List lst;
ifstream data("D:\\data2.txt");//открываем файл
int count=0;//общее кол-во четырехбуквенных слов

string str;

while (!data.eof())

{

data>>str;

if (str.size()==4) count++;

}

data.close();

data.open("D:\\data2.txt");
//заполняем

int i=0;

while (!data.eof())

{

data>>str;

if (str.size()==4)

lst.addToList(str);

}

// Распечатываем содержимое списка

lst.printList();

lst.printToFile("D:\\aaa2.txt");
_getch();

return 0;

}

Результат работы программы

BABY

BEER

VITE

Вывод

Научились работать со списками и строками, повторили динамическую струтуру данных.


страница 1


скачать

Другие похожие работы: