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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
Антоний
Сообщений: n/a
#1

Учу линейные списки, программа не работает... - C++

11.05.2010, 03:40. Просмотров 401. Ответов 0
Метки нет (Все метки)

Задача:
Ввести Имя и сумму пожертвования.
Вывести на печать в порядке убывания по сумме пожертвования.

Программа компелируется, но логика подкочала

Пример:
-------------------------
Дано меню:
1. Введите инфо
2. Вывести инфо
3. Выход

Выбираем 1
Введите имя: антон
Сумма пожертвовония: 5

Выбираем 1
Введите имя: дима
Сумма пожертвовония: 12

Выбираем 2
дима - 12
антон - 5

То что я написал для класса
-------------------------------

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
#include <iostream>
#include "personlist.h"
using namespace std;
 
struct PersonRec {
    char name[20];
    int bribe;
    PersonRec *link;
};
 
PersonList::PersonList()
{
    head = NULL;
}
//PersonList::~PersonList()
//{ 
//}
 
// Add to list function
void PersonList::AddToList() 
{
    PersonRec *newPerson, *currentNode, *prevNode;
    newPerson = new PersonRec;
    
    cout << "\nВведите имя: ";
    cin >> newPerson->name;
    cout<< "Сумма пожертвовония: ";
    cin >> newPerson->bribe;
 
    
    if (head == NULL) 
    {
        ead = newPerson;
    }
    else 
    {
        currentNode = head; 
        prevNode = NULL;
 
        //сортировка
        while (newPerson->bribe <= currentNode->bribe && currentNode->link == NULL)
        {
            prevNode = currentNode;
            currentNode = currentNode->link;
        }
            
        if (prevNode == NULL)
        {
            head = newPerson;
            newPerson->link = currentNode;
        }
        else 
        {
            prevNode->link = newPerson;
            newPerson->link = currentNode;
        }
    }
}
void PersonList::ViewList()
{
    PersonRec *temp;
    temp = head->link;
    int count = 1;
 
    cout << "\n# Список: \n";
    cout << "=======================================\n";
    if(temp == NULL)
    {
        cout << " Список пустой \n";
    }
    while(temp != NULL)
    {
            cout << count << " ";
            cout << temp->name;
            cout << " $";
            cout << temp->bribe;
            count++;
            temp = temp->link;          
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.05.2010, 03:40
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Учу линейные списки, программа не работает... (C++):

Линейные списки - C++
Ребят, подскажите в чем ошибка:( Компилятор не находит, а при запуске вылетает. Я подозреваю, что проблема с памятью... Искал информацию в...

однонаправленые линейные списки - C++
много смотрел в инете, но ничего путного так и не нашел, в чем отличие списка от структур как их задавать, как сортировать, может есть...

Односвязные линейные списки - C++
Помогите пожалуйста с задачей со списками, т.к вообще не могу в них разобраться. Задача такая: даны текстовый файл и натуральное число n....

Задача на линейные списки - C++
Задание : в файловой системе каталог файлов организован как линейный список. Для каждого файла в каталоге содержатся следующие сведения :...

Односвязные линейные списки - C++
Здравствуйте! Помогите пожалуйста. Даны текстовый файл и строка s. Группы символов, разделенные пробелами, будем называть ...

Односвязные линейные списки - C++
Доброго времени суток. Передо мной стоит задача написание программы, которая принимает два списка, вводимых с клавиатуры и проверяет их на...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
11.05.2010, 03:40
Привет! Вот еще темы с ответами:

Линейные двусвязные списки - C++
Проверьте пожалуйста. 1.Дан список. Найти указатель на его последний элемент. template&lt;typename T&gt; node&lt;T&gt; * FindLastElem(node&lt;T&gt;...

Линейные Односвязные Списки С++ - C++
Разработать и реализовать программу создания и обработки линейного односвязного списка с одним информационным полем, которое содержит целое...

Односвязные линейные списки - C++
Подскажите пожалуйста, как заменить содержимое файла перечнем символов, которые в нем встречаются, упорядоченным в порядке убывания...

Стек, очередь (линейные списки) - C++
Привет! Мне нужно поместить четные элементы стека в динамический массив, затем вывести содержимое этого массива и поместить элементы стека...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru