Мегаобучалка Главная | О нас | Обратная связь


Инструкция по установке



2015-11-12 446 Обсуждений (0)
Инструкция по установке 0.00 из 5.00 0 оценок




Техническое задание

Название

Программа, реализующая стек.

Функциональные характеристики

Программа моделирует работу со стеком. Пользовательский интерфейс – консоль Windows. В программе должны быть реализованы следующие операции для работы со стеком:

§ Добавление элемента;

§ Удаление элемента из стека;

§ Функция, возвращающая последний добавленный элемент в стек

§ Функция, возвращающая количество элементов в стеке.

Структура входных и выходных данных

Входные и выходные данные – целые числа; вводятся с клавиатуры и выводятся на экран.

Требования к среде разработки

1.1.

1.2.

1.3.

Требование к аппаратной части

Персональный компьютер с процессо­ром Pentium 600 и выше, имеющий не менее 256 Мб оперативной памяти, а также 200 Mб свободного места на логическом диске.

Требование к программной части

Операционная система Microsoft Windows 7, сред разработки Microsoft Visual Studio 2010.

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

Требуется разработать программу, реализующую работу со стеком при помощи двунаправленных списков. Программа должна реализовывать методы помещения в стек, изъятия из стека, и вывода содержимого стека в консоль и в текстовый файл.

Алгоритмическое обеспечение

3.1.Функция добавления в стек (см. рисунок 1)

Рисунок 1. Функция добавления в стек.

 

3.2.Функция удаления последнего элемента из стека и показа его значения (см. рисунок 2)

Рисунок 2. Функция удаления последнего элемента из стека и показа его значения.

 

3.3.Функция показа содержимого стека (см. рисунок 3)

Рисунок 3. Функция показа содержимого стека.

 

Программное обеспечение

1.

2.

3.

4.

Структура программы

Программа состоит из следующих модулей:

stk.h – заголовочный файл класса стека

stk.cpp – реализация класса стека

stack v2.cpp – пример использования работы с классом

Структура модулей

Модуль stk.h

В модуле stk.h содержится описание класса stk.

class stk

{

private:

struct elem

{

elem* up;

elem* down;

int val;

};

elem *stkTop; //вершина стека

elem *stkBottom; //дно стека

unsigned elemsCount;//размер стека

public:

stk (); //конструктор по умолчанию

bool add_top (int newVal);//метод помещения в стек

int pop_top (); //метод изъятия из стека

//метод, позволяющий читать размер стека из вне класса

unsigned size () const;

std::string print() const; //вывод содержимого стека

};

 

 

Основные методы класса stk:

Добавление элемента в стек:

Прототип функции:

bool add_top (int newVal)

Функциональные характеристики:

Входные данные: целое число

Результат выполнения – добавление элемента в стек

Удаление элемента из стека:

Прототип функции:

int pop_top ()

 

Функциональные характеристики:

Результат выполнения – удаление последнего добавленного элемента

Модуль stk.cpp

В модуле stk.cpp содержится реализация методов класса stk.

Подробный код программы смотри Приложение 1

Тестовое обеспечение

Результаты функционального тестирования приведены в Приложении 2

Инструкция по установке

Создать новую папку на жестком диске и скопировать в неё файл «stk.exe».

Заключение

Целью работы было реализовать работу стека, методы добавления и извлечения элементов, а также вывод в текстовый файл. Она достигнута. Алгоритм имеют высокую отказоустойчивость и хорошо обусловлен.

Список используемой литературы

1. Технологии разработки программного обеспечения: Учебник/ С. Орлов. — СПб.: Питер, 2002. — 464 с.: ил.

2. MSDN 2005. Электронная документация Microsoft для разработчиков программного обеспечения. – 200000 с.

3. http://ru.wikipedia.org/

 


 

Приложения

Приложение 1

Модуль stk.h

#pragma once

#include <string>

 

class stk

{

private:

struct elem

{

elem* down;

int val;

};

elem *stkTop;

unsigned elemsCount;

public:

stk ();

bool add_top (int newVal);

int pop_top ();

unsigned size () const;

std::string print() const;

};

Модуль stk.cpp

#include "StdAfx.h"

#include "stk.h"

stk::stk()

{

elemsCount = 0;

stkTop = NULL;

}

 

bool stk::add_top (int newVal)

{

elem *newElem = new elem;

if (newElem != NULL)

{

newElem->val = newVal;

newElem->down = stkTop;

stkTop = newElem;

elemsCount++;

return 0;

}

else

return 1;

}

int stk::pop_top()

{

if (stkTop == NULL)

return 0;

int result = stkTop->val;

elem* newTop = stkTop->down;

delete stkTop;

stkTop = newTop;

elemsCount--;

return result;

}

 

unsigned stk::size () const {return elemsCount;}

 

string stk::print() const

{

if (stkTop == NULL)

return "Empty";

string result;

elem* curr = stkTop;

while(1)

{

char buf[40]="";

_itoa_s(curr->val, buf, 39, 10);

result += string(buf) += " ";

if (curr->down != NULL)

curr = curr->down;

else

break;

}

return result;

}

Модуль stack.cpp

#include "stdafx.h"

void main()

{

setlocale( LC_ALL,"Russian" );

cin.exceptions(ios_base::badbit|ios_base::failbit);

stk s;

try{

while (true){

int choise;

cout<< "\nПоказать содержимое стека - 1\npush (Добавить) - 2\npop (Удалить) - 3\nexit - 4" << endl;

cin >> choise;

if (1 == choise)

{

cout << s.print();

fstream f("s.txt", ios_base::out|ios_base::trunc);

if (!f.is_open())

throw "Невозможно открыть файл!!";

f << s.print();

f.close();

}

else if (2 == choise)

{

cout << "add: ";

int add;

cin >> add;

s.add_top(add);

}

else if (3 == choise)

s.pop_top();

else if (4 == choise)

break;

else

{

cout << "Неправильный выбор";

continue;

}} }

catch (char* err)

{

cout << err << endl;

_getch();

return;

}

catch (...)

{

cout << "bm!" << endl;

_getch();

return;

}

}

 

Приложение 2

Рисунок 1 Тестирование входных данных

Рисунок 2. Тестирование входных данных



2015-11-12 446 Обсуждений (0)
Инструкция по установке 0.00 из 5.00 0 оценок









Обсуждение в статье: Инструкция по установке

Обсуждений еще не было, будьте первым... ↓↓↓

Отправить сообщение

Популярное:



©2015-2024 megaobuchalka.ru Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. (446)

Почему 1285321 студент выбрали МегаОбучалку...

Система поиска информации

Мобильная версия сайта

Удобная навигация

Нет шокирующей рекламы



(0.006 сек.)