Форум программистов, компьютерный форум CyberForum.ru

Стек/Разработать программу, реализующую алгоритм стека - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ модель сосредоточенной системы http://www.cyberforum.ru/cpp-beginners/thread875374.html
нyжно сделать очень простyю модель сосредоточенной системы помогите пожалyйста
C++ удаление повторяющихся строк.исправить программу помогите исправить программу. задание: В магазине сформирован список постоянных клиентов, который включает ФИО, домашний адрес покупателя и размер предоставляемой скидки. Удалить из этого списка все повторяющиеся записи, проверив ФИО и домашний адрес покупателя. не работает та часть, где нужно удалить повторяющиеся записи и вывести остальные. заранее огромное спасибо #include<iostream.h>... http://www.cyberforum.ru/cpp-beginners/thread875373.html
Структуры (данные о студентах) - вывод данных в файл C++
Здравствуйте, у меня проблема с выводом данных в файл. При проверке нет ни каких замечаний, однако в файл не заносит инфы. Просмотрите на правильность всего кода. заранее благодарен. #include <iostream> #include <fstream> using namespace std; //////////////////////////////////////////////////////////////// int z=0; struct stud { char first_name; // фамилия
Подсчет количества заданных треугольников C++
Помогите дописать код, что бы в ф-ции calc2 считало столько раз сколько мы вводили триугольников #include <stdio.h> #include <conio.h> #include <Windows.h> #include <iostream> #include <locale> #include <ctime> #include <cmath>
C++ Сформировать динамический двумерный массив, заполнить его случайными числа-ми и вывести на экран монитора. Добавить строку в начало матрицы http://www.cyberforum.ru/cpp-beginners/thread875334.html
Помогите на завтра сделать лабу 2.Сформировать динамический двумерный массив, заполнить его случайными числа-ми и вывести на экран монитора. Добавить строку в начало матрицы И это все надо делать через указатели и без использования cin cout. Спасите, с меня причитается но только завтра, седня уже поздно куда либо идти) Добавлено через 28 минут хотя можно и с cin cout помогите плиз
C++ C++. Перезагрузка операторов (Написать класс Дробь с полями числитель и знаменатель) 2. Написать класс Дробь с полями числитель и знаменатель. Реализовать следующие методы: - Конструктор по умолчанию, конструктор с параметрами, - Добавление дробей (перегрузить оператор +), - Вычитание дробей (перегрузить оператор -), - Умножение дробей (перегрузить оператор *), - Деление дробей (перегрузить оператор /), - Ввод и вывод дробей (перегрузить операторы << и >>) - Проверки на... подробнее

Показать сообщение отдельно
neats10
Сообщений: n/a
23.05.2013, 05:16     Стек/Разработать программу, реализующую алгоритм стека
Добрый.
Помогите пжл написать программу по заданию:


Разработать программу, реализующую алгоритм стека (20 элементов). Задача решается в двух вариантах: статическом (на основе массива структур) и динамическом. В качестве элемента стека выбрать структуру, соответствующую индивидуальному варианту.
Предусмотреть заполнение стека из файла (подготовить файл на 20 элементов).
Предусмотреть многоуровневое меню:
1) Заполнение стека
a) с консоли (циклически)
b) из файла (выбор файла, тек. папка, любая папка)
2) Удаление элемента из стека (циклически)
a) безвозвратно
b) с сохранением в файл
3) Очистка стека (с выводом удаляемых элементов)
a) безвозвратно
b) с сохранением в файл
4) Вывод элементов, содержащихся в стеке
a) на экран
b) в файл
5) Вывод количества элементов в стеке
6) Выход

Реализовать алгоритм обработки исключений.
Продемонстрировать работу всех пунктов меню. Продемонстрировать обработку ошибочных ситуаций (ввод данных другого типа, ввод пустых данных, переполнение стека, пустой стек). Графический интерфейс и использование классов необязательны, но приветствуются.



Вот набросики
файл .cpp
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
#include <stdio.h>
#include <stdlib.h>
 
#include "header.h"
 
 
int main(){
 
    FACULTY mas[100];
 
    int size = 0;
 
 
 
    char c;
    do {
        system("cls");
        
        printf("\n1  - Create from Console ");
        printf("\n2  - REad from file ");
        printf("\n3  - Write to file ");
        printf("\n4  - Delete ");
        printf("\nq  - Exit ");
        
        scanf("%c",&c);
        
        getchar();
        
        switch(c){
        case '1' : break;
        case '2' : break;
        case '3' : break;
        case '4' : break;
        }
 
    } while(c != 'q');
 
    MyCharStack *stack1 = NULL;
    MyCharStack *stack2 = NULL;
    MyCharStack *stack3 = NULL;
 
    FACULTY faculty;
    char c = 'N';
    
    size
    do{
        printf("\nCode of Faculty: ");
        scanf("%s",faculty.code);               // <-- Console
        printf("\n Name of Faculty: ");
        scanf("%s",faculty.name);               // <-- Console
        printf("Faculty: ");
        scanf("%s",faculty.nameD);              // <-- Console
        printf("Faculty: ");
        scanf("%d",&faculty.countDepartment);   // <-- Console
        printf("Faculty: ");
        scanf("%d",&faculty.countTeacher);
        printf("continue??? (Y/N)");
        addElementInStack(&stack,faculty);
 
        getchar();
        scanf("%c",&c);
        
        
    } while(c == 'Y');
 
    try {
        printf("\n");
        showAllStackElements(stack);
    }
    catch(int e){
        if (e == -1) {
            printf("Stack is empty...");
        }
    }
    printf("\nSize: %d",getStackSize(stack));
    
 
    deleteElementFromStack(&stack);
 
    clearStack(&stack);
 
    printf("\n");
    showAllStackElements(stack);
 
    return 0;
}




header.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
struct  FACULTY {
    char code[10];
    char name[50];
    char nameD[150];
    int countDepartment;
    int countTeacher;
};
 
 
 
struct MyCharStack {
    FACULTY data;
 
    MyCharStack *prev;
};
 
 
void addElementInStack(MyCharStack **stack,FACULTY data){
    MyCharStack *newElement = new MyCharStack;
    newElement->data = data;
    newElement->prev = NULL;
 
    if (*stack == NULL){
        *stack = newElement;
    }else {
        newElement->prev = *stack;
        *stack = newElement;
    }
}
 
void showAllStackElements(MyCharStack *stack){
    if (stack == NULL){
        printf("Stack is empty...");
    }
 
    MyCharStack *newElement = stack;
 
    do {    
        printf("%s ",newElement ->data.code);               // <-- Console
        printf("%s ",newElement ->data.name);               // <-- Console
        printf("%s ",newElement ->data.nameD);              // <-- Console
        printf("%d ",newElement ->data.countDepartment);    // <-- Console
        printf("%d ",newElement ->data.countTeacher);       // <-- Console
        
        newElement = newElement->prev; 
    } while(newElement);
}
 
void clearStack(MyCharStack **stack){
    if (stack == NULL){
        printf("Stack is empty...");
    }
        
    do {    
        MyCharStack *newElement = *stack;
        *stack = (*stack)->prev;
        
        delete newElement;
 
    } while(*stack);
 
    *stack = NULL;
}
 
 
int getStackSize(MyCharStack *stack){
    if (stack == NULL){
        
        throw -1;
    }
 
    int count = 0;
 
    MyCharStack *newElement = stack;
 
    do {    
        count++;
        newElement = newElement->prev; 
    } while(newElement);
 
    return count;
}
 
void writeToFileAllStackElements(MyCharStack *stack,char* name){
    if (stack == NULL){
        printf("Stack is empty...");
    }
 
    MyCharStack *newElement = stack;
 
    do {    
        // <-- in file
        newElement = newElement->prev; 
    } while(newElement);
}
 
void deleteElementFromStack(MyCharStack **stack){
    if (*stack == NULL){
        return;
    }
 
    MyCharStack *element = *stack;
    
    *stack = (*stack)->prev;
 
    delete element;
}
 
void deleteInFileElementFromStack(MyCharStack **stack, char *fileName){
    if (*stack == NULL){
        return;
    }
 
    MyCharStack *element = *stack;
    
    *stack = (*stack)->prev;
 
    FILE *file = fopen(fileName,"a+"); ///
    
    fwrite(&element->data,sizeof(FACULTY),1,file);
 
    fclose(file);
 
 
    delete element;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 17:18. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru