БОЛЬШАЯ НАУЧНАЯ БИБЛИОТЕКА  
рефераты
Добро пожаловать на сайт Большой Научной Библиотеки! рефераты
рефераты
Меню
Главная
Налоги
Начертательная геометрия
Оккультизм и уфология
Педагогика
Полиграфия
Политология
Право
Предпринимательство
Программирование и комп-ры
Радиоэлектроника
Региональная экономика
Режущий инструмент
Реклама и PR
Ресторанно-гостиничный бизнес бытовое обслуживан
Римское право
Русский язык культура речи
РЦБ ценные бумаги
САПР
Сексология
Семейное право
Социология
Страховое право
Строительство архитектура
Таможенное право
Теория государства и права
Технология
Таможенная система
Транспорт
Физика и энергетика
Философия
Финансы деньги и налоги
Физкультура и спорт
Фотография
Химия
Хозяйственное право
Цифровые устройства
Экологическое право
Экология
Экономика
Экономико-математическое моделирование
Экономическая география
Экономическая теория
Эргономика
Этика и эстетика
Сочинения по литературе и русскому языку
Рефераты по теории государства и права
Рефераты по теории организации
Рефераты по теплотехнике
Рефераты по товароведению
Рефераты по трудовому праву
Рефераты по туризму
Рефераты по уголовному праву и процессу
Рефераты по управлению
Рефераты по менеджменту
Рефераты по металлургии
Рефераты по муниципальному праву
Биографии
Рефераты по психологии
Рефераты по риторике
Рефераты по статистике
Рефераты по страхованию
Рефераты по схемотехнике
Рефераты по науке и технике
Рефераты по кулинарии
Рефераты по культурологии
Рефераты по зарубежной литературе
Рефераты по логике
Рефераты по логистике
Рефераты по маркетингу
Рефераты по международному публичному праву
Рефераты по международному частному праву
Рефераты по международным отношениям
Рефераты по культуре и искусству
Рефераты по кредитованию
Рефераты по естествознанию
Рефераты по истории техники
Рефераты по журналистике
Рефераты по зоологии
Рефераты по инвестициям
Рефераты по информатике
Исторические личности
Рефераты по кибернетике
Рефераты по коммуникации и связи
Рефераты по косметологии
Рефераты по криминалистике
Рефераты по криминологии
Новые или неперечисленные
Без категории

Программирование на С++

Программирование на С++

МИНИСТЕРСТВО ОБЩЕГО И ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ РОССИЙСКОЙ ФЕДЕРАЦИИ.

МОСКОВСКИЙ ГОСУДАРСТВЕННЫЙ АВИАЦИОННО-ТЕХНОЛОГИЧЕСКИЙ УНИВЕРСИТЕТ

им. К.Э. ЦИОЛКОВКОГО

КАФЕДРА ИНФОРМАЦИОННЫХ ТЕХНОЛОГИЙ

Курсовая работа второго курса второго семестра.

Руководитель: Чернадский

Дата сдачи: _____________

Подпись: _____________

Студент: Лицентов Д.Б.

Группа: 3ИТ-2-26

Москва

1998

Постановка задачи.

Необходимо реализовать список вида:

Техническое описание программы.

В программе предусмотрена работа со списком, которая включает в себя:

1. Создание нового вписка;

2. Добавление элемента в список;

3. Вывод списка на дисплей;

4. Сохранение данных списка в файл;

5. Читение данных из файла;

6. Удаление списка из памяти компьютера;

7. Поиск элемента в списке;

8. Сортировка списка;

9. Удаление элемента списка.

Спецификация программы.

Ввод данных в программу может осуществляться двумя спосабами: ввод с

клавиатуры или из файла.

Для работы с файлом необходимо на соответствующий запрос программы ввести

имя файла, из которого будут взяты данные для построения списка.

Для нормальной работы программы требуется PC совместимый компьютер и

компилятор Borland 3.01 и выше. При использование иного сочетая

характеристик системы на которой будет тестироваться программа возможны

некоторые расхождения с результатами теста, но в основном ничего страшного

произойти не должно.

Текст программы.

#include

#include

class List

{struct Tree

{int Body;

Tree *LP;

Tree *RP;

Tree(int Bdy=0) {Body=Bdy; LP=NULL; RP=NULL;}

~Tree() {Body=0; LP=NULL; RP=NULL;}

};

public:

List(int Digit=0);

Tree *Root;

List *LNext;

List *LPrev;

};

List::List(int Digit)

{Root=NULL;

for (int i=Digit*10; iLP=NULL;

PTree->RP=NULL;

if (Root==NULL)

Root=PTree;

else

{Tree *PTree1=Root;

do

{if (PTree1->LP!=NULL)

PTree1=PTree1->LP;}

while (PTree1->LP!=NULL);

PTree1->LP=PTree;

PTree=NULL; PTree1=NULL;

}

}

}

class TreeWork : private List

{public:

void TreeWorkStart();

private:

int ElementQuantity;

int Mass;

int i;

List *BegP;

List *PList;

int MainMenu();

int Work(int Task);

int MakeNewList();

int AddElements();

int PrintList();

void EraseList();

int DeleteElement();

int FindElement();

int SubMenu();

int SubWork(int Task);

int SortByIncrease();

int SortByDecrease();

int SaveList();

int OpenList();

protected:

void GoThroughTree(Tree *L);

void Erase(Tree *L);

};

int TreeWork::MainMenu()

int TreeWork::SubMenu()

int i;

int TreeWork::SubWork(int Task)

{switch (Task)

{case 1 : SortByIncrease(); break; //Increase

case 2 : SortByDecrease(); break; //Decrease

}

return 0;

}

int TreeWork::Work(int Task)

{switch (Task)

{case 1 : ElementQuantity=MakeNewList(); break; //Make New List

case 2 : ElementQuantity+=AddElements(); break; //Add Element

case 3 : PrintList(); break; //Print List

case 4 : DeleteElement(); break; //Delete Element

case 5 : SaveList(); break; //Save List

case 6 : ElementQuantity=0; EraseList(); break; //Erase List

case 7 : OpenList(); break; //Open File

case 8 : FindElement(); break; //Find Element

case 9 : SubWork(SubMenu()); break; //Sort List

case 0 : EraseList(); return -1; //Exit

}

return 0;

}

void TreeWork::TreeWorkStart()

{ElementQuantity=0;

do {} while (Work(MainMenu())!=-1);

}

int TreeWork::MakeNewList()

{if (BegP!=NULL)

{cout>Quant;

if (Quant>Digit;

PList=new List(Digit);

if (BegP==NULL)

{BegP=PList;

BegP->LNext=BegP;

BegP->LPrev=BegP;

PList=NULL;}

else

{List *PList1=BegP->LPrev;

if (PList1==BegP)

{BegP->LNext=PList;

BegP->LPrev=PList;

PList->LNext=BegP;

PList->LPrev=BegP;

PList=NULL; PList1=NULL;}

else

{BegP->LPrev=PList;

PList1->LNext=PList;

PList->LNext=BegP;

PList->LPrev=PList1;

PList=NULL; PList1=NULL;}

}

}

return Quant;

}

int TreeWork::AddElements()

{if (BegP==NULL)

{MakeNewList(); return 0;}

int Quant;

cout>Quant;

if (Quant>Digit;

PList=new List(Digit);

List *PList1=BegP->LPrev;

if (PList1==BegP)

{BegP->LNext=PList;

BegP->LPrev=PList;

PList->LPrev=BegP;

PList->LNext=BegP;

PList1=NULL; PList=NULL;}

else

{BegP->LPrev=PList;

PList->LNext=BegP;

PList->LPrev=PList1;

PList1->LNext=PList;

PList=NULL; PList1=NULL;}

}

return Quant;

}

int TreeWork::PrintList()

{if (BegP==NULL)

{coutRoot);

coutLNext;}

while (PList!=BegP);

return 0;

}

void TreeWork::GoThroughTree(Tree *L)

{Tree *PL=L, *PL1;

if (PL->LP!=NULL)

{PL1=PL;

PL=PL->LP;

coutBodyBodyRP!=NULL)

{PL1=PL;

PL=PL->RP;

coutBodyBodyLP!=NULL)

{PL=PL->LP;

Erase(PL);}

if (PL->RP!=NULL)

{PL=PL->RP;

Erase(PL);}

PL->LP=NULL;

PL->RP=NULL;

}

void TreeWork::EraseList()

{if (BegP!=NULL)

{do

{List *PList1=BegP->LNext;

PList=PList1->LNext;

BegP->LNext=PList;

PList->LPrev=BegP;

Erase(PList1->Root);

delete [] PList1;

}

while (PList!=BegP);

BegP=NULL; PList=NULL;

}

}

int TreeWork::DeleteElement()

{cout>Number;

if (Number>ElementQuantity || NumberLNext;

List *PList1=PList->LNext, *PList2=PList->LPrev;

if (PList==BegP)

{PList1->LPrev=PList2;

PList2->LNext=PList1;

PList->LNext=NULL;

PList->LPrev=NULL;

delete [] PList;

BegP=PList1;

PList1=NULL; PList2=NULL;}

else

{PList1->LPrev=PList2;

PList2->LNext=PList1;

PList->LNext=NULL;

PList->LPrev=NULL;

delete [] PList;

PList1=NULL; PList2=NULL;}

ElementQuantity--;

return 0;

}

int TreeWork::FindElement()

{cout>Number;

PList=BegP;

do

{Tree *PT=PList->Root;

if (Number>PT->Body && NumberBody+10)

{coutRoot);

PList=NULL; coutLNext;

}

while (PList!=BegP);

coutRoot->Body>PList->Root->Body)

{Tree *PT;

PT=PList1->Root;

PList1->Root=PList->Root;

PList->Root=PT;

PT=NULL;}

PList1=PList1->LNext;

}

while (PList1!=BegP);

PList=PList->LNext;

}

while (PList!=BegP);

return 0;

}

int TreeWork::SortByDecrease()

{

if(BegP==NULL) {coutRoot->BodyRoot->Body)

{Tree *PT;

PT=PList1->Root;

PList1->Root=PList->Root;

PList->Root=PT;

PT=NULL;}

PList1=PList1->LNext;

}

while (PList1!=BegP);

PList=PList->LNext;

}

while (PList!=BegP);

return 0;

}

int TreeWork::SaveList()

{if (BegP==NULL)

{cout>FileName;

F.open(FileName);

PList=BegP;

do

{i=0;

Mass=PList->Root->Body;

PList=PList->LNext;

if (PList!=BegP)

F>FileName;

ifstream f;

ElementQuantity=0;

f.open(FileName);

char Next;

Next=f.peek();

while (Next!=EOF)

{

f>>Mass;

PList=new List(Mass/10);

if (BegP==NULL)

{BegP=PList;

BegP->LNext=BegP;

BegP->LPrev=BegP;

PList=NULL;}

else

{List *PList1=BegP->LPrev;

if (PList1==BegP)

{BegP->LNext=PList;

BegP->LPrev=PList;

PList->LNext=BegP;

PList->LPrev=BegP;

PList=NULL; PList1=NULL;}

else

{BegP->LPrev=PList;

PList1->LNext=PList;

PList->LNext=BegP;

PList->LPrev=PList1;

PList=NULL; PList1=NULL;}

}

Next=f.peek();

ElementQuantity++;

}

f.close();

delete [] FileName;

return 0;

}

TreeWork TW;

void main()

{TW.TreeWorkStart();}

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

Начало работы:

| |

|Main Menu: |

| |

|1. Make New List. |

|2. Add Element. |

|3. Print List. |

|4. Delete Element. |

|5. Save List. |

|6. Erase List. |

|7. Open File. |

|8. Find Element. |

|9. Sort List. |

|0. Exit. |

| |

|Your choice : |

Для создания списка выбираем пункт 1:

| |

|Main Menu: |

| |

|1. Make New List. |

|2. Add Element. |

|3. Print List. |

|4. Delete Element. |

|5. Save List. |

|6. Erase List. |

|7. Open File. |

|8. Find Element. |

|9. Sort List. |

|0. Exit. |

| |

|Your choice : 1 |

| |

|Input kol-vo of elements: |

Вводим количество элементов в списке (предположим 4):

| |

|Main Menu: |

| |

|1. Make New List. |

|2. Add Element. |

|3. Print List. |

|4. Delete Element. |

|5. Save List. |

|6. Erase List. |

|7. Open File. |

|8. Find Element. |

|9. Sort List. |

|0. Exit. |

| |

|Your choice : 1 |

| |

|Input kol-vo of elements: 4 |

| |

|Input digit: |

Успешное завершение ввода списка:

| |

|Input kol-vo of elements: 4 |

| |

|Input digit: 1 |

| |

|Input digit: 2 |

| |

|Input digit: 3 |

| |

|Input digit: 4 |

| |

|Main Menu: |

| |

|1. Make New List. |

|2. Add Element. |

|3. Print List. |

|4. Delete Element. |

|5. Save List. |

|6. Erase List. |

|7. Open File. |

|8. Find Element. |

|9. Sort List. |

|0. Exit. |

| |

|Your choice : |

После ввода списка попадаем в главное меню где выбираем пункт добавления

элемента :

| |

|Input digit: 1 |

| |

|Input digit: 2 |

| |

|Input digit: 3 |

| |

|Input digit: 4 |

| |

|Main Menu: |

| |

|1. Make New List. |

|2. Add Element. |

|3. Print List. |

|4. Delete Element. |

|5. Save List. |

|6. Erase List. |

|7. Open File. |

|8. Find Element. |

|9. Sort List. |

|0. Exit. |

| |

|Your choice : 2 |

| |

|Input kol-vo of elements: |

Программа просит ввести количечтво элементов которое мы хотим добавит к

нашему списку. Вводим 1 (для примера):

| |

|Input digit: 2 |

| |

|Input digit: 3 |

| |

|Input digit: 4 |

| |

|Main Menu: |

| |

|1. Make New List. |

|2. Add Element. |

|3. Print List. |

|4. Delete Element. |

|5. Save List. |

|6. Erase List. |

|7. Open File. |

|8. Find Element. |

|9. Sort List. |

|0. Exit. |

| |

|Your choice : 2 |

| |

|Input kol-vo of elements: 1 |

| |

|Input digit: |

Далее происходит ввод списка как было описано выше.

После удачного завершения добавления элемента в список мы вновь попадаем в

главное меню, где выбираем пункт вывода списка на экран монитора:

| |

|1 element: 1234 |

| |

|2 element: 2345 |

| |

|3 element: 3456 |

| |

|4 element: 4567 |

| |

|5 element: 2345 |

| |

|Main Menu: |

| |

|1. Make New List. |

|2. Add Element. |

|3. Print List. |

|4. Delete Element. |

|5. Save List. |

|6. Erase List. |

|7. Open File. |

|8. Find Element. |

|9. Sort List. |

|0. Exit. |

| |

|Your choice : |

Быстро проскользнув мимо Ваших глаз непонятные данные вы снова попадаете в

главное меню, где выбираете пункт удаление элемента:

| |

|2 element: 2345 |

| |

|3 element: 3456 |

| |

|4 element: 4567 |

| |

|5 element: 2345 |

| |

|Main Menu: |

| |

|1. Make New List. |

|2. Add Element. |

|3. Print List. |

|4. Delete Element. |

|5. Save List. |

|6. Erase List. |

|7. Open File. |

|8. Find Element. |

|9. Sort List. |

|0. Exit. |

| |

|Your choice : 4 |

| |

|Input number of element: 5 |

После чего элемент с введённым номером удален. После удачного завершения

удаления элемента Вы снова попадаете в главное меню, где выбираете пункт

сохранение списка:

|Main Menu: |

| |

|1. Make New List. |

|2. Add Element. |

|3. Print List. |

|4. Delete Element. |

|5. Save List. |

|6. Erase List. |

|7. Open File. |

|8. Find Element. |

|9. Sort List. |

|0. Exit. |

| |

|Your choice : 5 |

| |

|Input file name: demon13.txt |

После ввода имени файла данные из списка попадают на диск. И вы снова в

главном меню, где выбираете удаление списка:

|5. Save List. |

|6. Erase List. |

|7. Open File. |

|8. Find Element. |

|9. Sort List. |

|0. Exit. |

| |

|Your choice : 5 |

| |

|Input file name: demon13.txt |

| |

|Main Menu: |

| |

|1. Make New List. |

|2. Add Element. |

|3. Print List. |

|4. Delete Element. |

|5. Save List. |

|6. Erase List. |

|7. Open File. |

|8. Find Element. |

|9. Sort List. |

|0. Exit. |

| |

|Your choice : 6 |

После чего все данные в списке безвозвратно умирают и Вы опять у

главного списка, и выбираете Вы – открыть файл:

|5. Save List. |

|6. Erase List. |

|7. Open File. |

|8. Find Element. |

|9. Sort List. |

|0. Exit. |

| |

|Your choice : 6 |

| |

|Main Menu: |

| |

|1. Make New List. |

|2. Add Element. |

|3. Print List. |

|4. Delete Element. |

|5. Save List. |

|6. Erase List. |

|7. Open File. |

|8. Find Element. |

|9. Sort List. |

|0. Exit. |

| |

|Your choice : 7 |

| |

|Input file name: demon13.txt |

После чего ваш список оживает и … не надо «и» - лучше продолжим – Вы в

главном меню и Вы выбираете найти элемент:

|Main Menu: |

| |

|1. Make New List. |

|2. Add Element. |

|3. Print List. |

|4. Delete Element. |

|5. Save List. |

|6. Erase List. |

|7. Open File. |

|8. Find Element. |

|9. Sort List. |

|0. Exit. |

| |

|Your choice :8 |

| |

| |

|Input number, you want to find: 2 |

| |

|The first element that we fined out: |

|1234 |

Вы вводите то что хотели найти и – находите в строчке ХХХХХ. Главное

меню/Сортировка:

| |

|Main Menu: |

| |

|1. Make New List. |

|2. Add Element. |

|3. Print List. |

|4. Delete Element. |

|5. Save List. |

|6. Erase List. |

|7. Open File. |

|8. Find Element. |

|9. Sort List. |

|0. Exit. |

| |

|Your choice : 9 |

| |

|Sub Menu: |

|1. Sort list by increase. |

|2. Sort list by decrease. |

| |

|Your choice: |

Ту мы можем сортировать по возрастанию или убыванию (ведь у человека

всегда должен быть выбор!). После сортировки Главное меню/Выход! Всё

программа завершилась успешно! А поскольку эти тесты никто не читает, то

можно сказать что компьютеры в нашем институте сделаны из дуба.





17.06.2012
Большое обновление Большой Научной Библиотеки  рефераты
12.06.2012
Конкурс в самом разгаре не пропустите Новости  рефераты
08.06.2012
Мы проводим опрос, а также небольшой конкурс  рефераты
05.06.2012
Сена дизайна и структуры сайта научной библиотеки  рефераты
04.06.2012
Переезд на новый хостинг  рефераты
30.05.2012
Работа над улучшением структуры сайта научной библиотеки  рефераты
27.05.2012
Работа над новым дизайном сайта библиотеки  рефераты

рефераты
©2011