Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.01.2014, 21:17   #1
feniksss
 
Регистрация: 07.10.2012
Сообщений: 8
По умолчанию Оформить функции в виде методов класса

Код:
#include <stdio.h>
#include <stdlib.h>
#include <locale.h>
 
struct Stack
{
    int data;
    struct Stack *next;
};
 
typedef struct Stack StackN;
typedef StackN *StackPtr;
 
void push( StackPtr *,int);
int pop(StackPtr*);
int isEmpty(StackPtr);
void printStack(StackPtr);
void instructions(void);
 
 
/*вставить значение в вершину стека*/
void push(StackPtr *top, int info)
{
    StackPtr newP; 
    newP=(StackPtr)malloc(sizeof(StackN));
    if(newP!=NULL) 
    {
        newP->data=info;
        newP->next=*top;
        *top=newP;
    }
    else
        printf("%d Ошибка. Недостаточно памяти.\n",info);
}
 
/*стек пуст?*/
int isEmpty(StackPtr top)
{
    return top==NULL;
} 
 
int main()
{
    setlocale(LC_CTYPE, "Russian_Russia.1251");
    StackPtr stackPtr=NULL; /*указывает на вершину стека*/
    int choice, value;
    instructions();
    printf("?");
    scanf("%d",&choice);
 
    while(choice!=3) 
    {
        switch(choice){
case 1:   /*затолкнуть значение в стек*/
    printf("Введите целое число: ");
    scanf("%d", &value);
    push(&stackPtr, value);
    printStack(stackPtr);
    break;
case 2: /*вытолкнуть значение из стека*/
    if(!isEmpty(stackPtr))
        printf("Удалить значение %d.\n", 
        pop(&stackPtr));
    printStack(stackPtr);
    break;
default:
    printf("Неверный выбор.\n\n");
    instructions();
    break;
        }
        printf("?");
        scanf("%d", &choice);
    }
    printf("Завершение.\n");
    return 0;
}
 
/*вывести инструкции*/
void instructions(void)
{
    printf("Введите выбор:\n"
        "1  Добавить новый элемент в стек\n"
        "2  Удалить элемент из стека\n"
        "3  Завершить работу программы\n");
}
 
/*удалить значение из вершины стека*/
int pop(StackPtr *top)
{
    StackPtr temp; 
    int popValue;
    temp=*top;
    popValue=(*top)->data;
    *top=(*top)->next;
    free(temp);
    return popValue;
}
 
/*распечатать содержимое стека*/
void printStack(StackPtr current)
{
    if(current==NULL)
        printf("Стек пуст\n\n");
    else {
        printf("Стек:");
 
        while(current!=NULL){
            printf("%d ",current->data);
            current=current->next;
        }
        printf("NULL\n\n");
    }
}
Необходимо переписать функции в виде методов класса, что у меня никак не получается. Буду очень признателен, если кто-нибудь поможет исправить код программы на необходимый. Спасибо.
feniksss вне форума Ответить с цитированием
Старый 15.01.2014, 01:44   #2
b2soft
Упртй программер
Форумчанин
 
Регистрация: 26.11.2009
Сообщений: 150
По умолчанию

код написан в стиле языка С, классы имеются только в с++. это с++ у Вас? если да -ICQ 623334555, напишу
Помощь с кодом/лабами по С/С++
Контакты: ICQ 623334555 Skype: btwosoft; Mail: b2soft@yandex.ru
b2soft вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задачу оформить в виде функции Gul'ka Visual C++ 0 06.12.2013 18:52
Оформить в виде функции на С/С++ решение задачи Beauty44 Помощь студентам 0 15.05.2013 18:26
Объявление и определение методов.Напишите функции в виде методов (подпрограмм). Напишите тестирующую программу с выдачей результа Vika_0_0 C# (си шарп) 0 04.10.2012 15:21
Нужно оформить в виде функции. MrRifleman Общие вопросы C/C++ 0 27.05.2012 19:05
Оформить в виде функций Smotritel89 Помощь студентам 2 04.11.2008 14:39