Листинг (Готовое ДЗ неизвестного варианта (8))
Описание файла
Файл "Листинг" внутри архива находится в папке "Готовое ДЗ неизвестного варианта (8)". Документ из архива "Готовое ДЗ неизвестного варианта (8)", который расположен в категории "". Всё это находится в предмете "объектно-ориентированное программирование (ооп)" из 3 семестр, которые можно найти в файловом архиве МГТУ им. Н.Э.Баумана. Не смотря на прямую связь этого архива с МГТУ им. Н.Э.Баумана, его также можно найти и в других разделах. Архив можно найти в разделе "курсовые/домашние работы", в предмете "объектно-ориентированное программирование (ооп)" в общих файлах.
Онлайн просмотр документа "Листинг"
Текст из документа "Листинг"
Московский государственный технический университет им. Н.Э.Баумана
_________________________________________________________________
Утверждаю: | |
Большаков С.А. | "__"_____________2009 г. |
Домашнее задание по дисциплине ООП
“Классы слов и предложений”
Исходный текст программ системы классов
(вид документа)
писчая бумага
(вид носителя)
20
(количество листов)
ИСПОЛНИТЕЛЬ: | |
студент группы ИУ5-34 | _____________________ |
Белоус К.С. | "__"_____________2009 г. |
Москва 2009
________________________________________________________________
Содержание
1. Листинг файла MAIN.CPP………………………………………………….…………….3
2. Листинг файла WORD.H..…………………..………………….………………...………8
3. Листинг файла WORD.CPP………………………………..……...……………………...9
4. Листинг файла SENTENCE.H..………………………… ……….…...……...……….…11
5. Листинг файла SENTENCE.CPP………………………………………….....…………..12
1. Листинг файла MAIN.CPP
#include <conio.h>
#include <sentence.h>
void menu()
{
clrscr();
cout << "-=========Меню===========-" << endl;
cout << "1 - Добавить слова в предложение" << endl;
cout << "2 - Вывести все слова в предложении" << endl;
cout << "3 - Количество слов в предложении" << endl;
cout << "4 - Удалить слово в предложении" << endl;
cout << "5 - Сложить предложения" << endl;
cout << "6 - Вычесть предложения" << endl;
cout << "7 - Удалить все слова из предложения" << endl;
cout << "8 - Копировать предложения" << endl;
cout << "9 - Сортировка предложения" << endl;
cout << "0 - Выход" << endl;
}
void main()
{
int buf;
Sentence A,B;
while(buf!=0)
{
menu();
cin >> buf;
switch(buf)
{
case 1:
clrscr();
cout << "1 - Добавить слова в предложение A" << endl;
cout << "2 - Добавить слова в пердложение B" << endl;
cout << "3 - В главное меню" << endl;
cin >> buf;
switch(buf)
{
case 1:
clrscr();
A.Add();
break;
case 2:
clrscr();
B.Add();
break;
}
break;
case 2:
clrscr();
cout << "1 - Вывести слова предложения A" << endl;
cout << "2 - Вывести слова предложения B" << endl;
cout << "3 - В главное меню" << endl;
cin >> buf;
switch(buf)
{
case 1:
clrscr();
A.Print();
cout << endl << endl << "Нажмите любую кнопку...";
getch();
break;
case 2:
clrscr();
B.Print();
cout << endl << endl << "Нажмите любую кнопку...";
getch();
break;
}
break;
case 3:
clrscr();
cout << "1 - Вывести количество слов предложения A" << endl;
cout << "2 - Вывести количество слов предложения B" << endl;
cout << "3 - В главное меню" << endl;
cin >> buf;
switch(buf)
{
case 1:
clrscr();
A.GetCount();
cout << endl << endl << "Нажмите любую кнопку...";
getch();
break;
case 2:
clrscr();
B.GetCount();
cout << endl << endl << "Нажмите любую кнопку...";
getch();
break;
}
break;
case 4:
clrscr();
cout << "1 - Удалить слово в предложении A" << endl;
cout << "2 - Удалить слово в предложении B" << endl;
cout << "3 - В главное меню" << endl;
cin >> buf;
switch(buf)
{
case 1:
clrscr();
cout << "1 - Удаление по слову" << endl;
cout << "2 - Удаление по номеру позиции" << endl;
cout << "3 - В главное меню" << endl;
cin >> buf;
switch(buf)
{
case 1:
clrscr();
A.FindAndDelete();
cout << endl << endl << "Нажмите любую кнопку...";
getch();
break;
case 2:
clrscr();
A.FindPositionAndDelete();
cout << endl << endl << "Нажмите любую кнопку...";
getch();
break;
}
break;
case 2:
clrscr();
cout << "1 - Удаление по слову" << endl;
cout << "2 - Удаление по номеру позиции" << endl;
cout << "3 - В главное меню" << endl;
cin >> buf;
switch(buf)
{
case 1:
clrscr();
B.FindAndDelete();
cout << endl << endl << "Нажмите любую кнопку...";
getch();
break;
case 2:
clrscr();
B.FindPositionAndDelete();
cout << endl << endl << "Нажмите любую кнопку...";
getch();
break;
}
break;
}
break;
case 5:
clrscr();
cout << "1 - Выполнить A+B" << endl;
cout << "2 - Выполнить B+A" << endl;
cout << "3 - В главное меню" << endl;
cin >> buf;
switch(buf)
{
case 1:
clrscr();
A=A+B;
cout << "Сложение успешно выполнено" << endl << "Нажмите любую кнопку...";
getch();
break;
case 2:
clrscr();
B=B+A;
cout << "Сложение успешно выполнено" << endl << "Нажмите любую кнопку...";
getch();
break;
}
break;
case 6:
clrscr();
cout << "1 - Выполнить A-B" << endl;
cout << "2 - Выполнить B-A" << endl;
cout << "3 - В главное меню" << endl;
cin >> buf;
switch(buf)
{
case 1:
clrscr();
A=A-B;
cout << "Вычитание успешно выполнено" << endl << "Нажмите любую кнопку...";
getch();
break;
case 2:
clrscr();
B=B-A;
cout << "Вычитание успешно выполнено" << endl << "Нажмите любую кнопку...";
getch();
break;
}
break;
case 7:
clrscr();
cout << "1 - Удалить все слова из предложения A" << endl;
cout << "2 - Удалить все слова из предложения B" << endl;
cout << "3 - В главное меню" << endl;
cin >> buf;
switch(buf)
{
case 1:
clrscr();
A.DeleteAll();
cout << "Удаление успешно выполнено" << endl << "Нажмите любую кнопку...";
getch();
break;
case 2:
clrscr();
B.DeleteAll();
cout << "Удаление успешно выполнено" << endl << "Нажмите любую кнопку...";
getch();
break;
}
break;
case 8:
clrscr();
cout << "1 - Копировать предложение B в A" << endl;
cout << "2 - Копировать предложение A в B" << endl;
cout << "3 - В главное меню" << endl;
cin >> buf;
switch(buf)
{
case 1:
clrscr();
A = Sentence(B);
cout << "Копирование успешно выполнено" << endl << "Нажмите любую кнопку...";
getch();
break;
case 2:
clrscr();
B = Sentence(A);
cout << "Копирование успешно выполнено" << endl << "Нажмите любую кнопку...";
getch();
break;
}
break;
case 9:
clrscr();
cout << "1 - Сортировать предложение A" << endl;
cout << "2 - Сортировать предложение B" << endl;
cout << "3 - В главное меню" << endl;
cin >> buf;
switch(buf)
{
case 1:
clrscr();
A.Sort();
cout << "Сортировка успешно выполнена" << endl << "Нажмите любую кнопку...";
getch();
break;
case 2:
clrscr();
B.Sort();
cout << "Сортировка успешно выполнена" << endl << "Нажмите любую кнопку...";
getch();
break;
}
break;
}
}
}
2. Листинг файла WORD.H
#if !defined(Word_H)
#define Word_H
#if !defined( _STRNG_H )
#include <strng.h>
#endif
class Word
{
protected:
String word;
int position;
Word* Next;
Word* Prev;
public:
Word();
Word(const Word &op1);
~Word();
String GetWord();
int GetPosition();
void CreateWord();
void PrintWord();
friend int operator ==(Word &op1,Word &op2);
int operator > (Word op1);
Word &operator = (Word &op1);
friend class Sentence;
};
#endif
3. Листинг файла WORD.CPP
#include <word.h>
Word::Word()
{
position=0;
Next=NULL;
Prev=NULL;
}
Word::Word(const Word &op1)
{
word=op1.word;
}
Word::~Word()
{
}
String Word::GetWord()
{
return word;
}
int Word::GetPosition()
{
return position;
}
void Word::CreateWord()
{
char word1[50];
cout << "Введите слово:";
int i=0;
cin >> word1;
word=word1;
}
void Word::PrintWord()
{
cout << word;
}
int operator ==(Word &op1,Word &op2)
{
if(op1.word==op2.word)
{
return 1;
} else
{
return 0;
}
}
Word &Word::operator = (Word &op1)
{
word=op1.word;
return *this;
}
int Word::operator >(Word op1)
{
if(word<op1.word)
{
return 1;
} else return 0;
}
4. Листинг файла SENTENCE.H
#if !defined(Sentence_H)
#define Sentence_H
#if !defined(Word_H)
#include <word.h>
#endif
template <class T> class Abstr
{
protected:
T* First;
T* Last;
public:
Abstr(){};
Abstr(const Abstr &op1);
~Abstr(){};
virtual void Add()=0;
virtual void Print()=0;
};
class Sentence : public Abstr<Word>
{
protected:
int count;
public:
Sentence();
Sentence(const Sentence &op1);
~Sentence();
void Add();
void Print();
void Delete(Word *temp);
void GetCount();
void DeleteAll();
void FindAndDelete();
void FindPositionAndDelete();
void Sort();
Sentence &operator = (Sentence &op1);
Sentence &operator + (Sentence &op1);
Sentence &operator +=(Sentence &op1);
Sentence &operator -=(Sentence &op1);
Sentence &operator - (Sentence &op1);
};
#endif
5. Листинг файла SENTENCE.CPP
#include <sentence.h>
Sentence::Sentence()
{
First=NULL;
Last=NULL;
count = 0;
}
Sentence::Sentence(const Sentence &op1)
{
this->DeleteAll();
Word *temp=op1.First;
Word *temp2;
if(op1.First!=NULL && op1.Last!=NULL)
{
if(temp==op1.Last)
{
First = new Word;
(*First)=(*temp);
First->position=temp->position;
Last=First;
}else
{
First = new Word;
(*First)=(*temp);
Last=First;
while (temp!=op1.Last)
{
Last->Next = new Word;