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

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

Войти
Регистрация
Восстановить пароль
 
69Seph
0 / 0 / 0
Регистрация: 02.12.2011
Сообщений: 34
#1

Связной список - C++

15.12.2011, 11:32. Просмотров 696. Ответов 11
Метки нет (Все метки)

Вывод не работает, помогите найти проблему и можно как-нибудь через freopen осуществить ввод?

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
#include<iostream>
#include <stdio.h>
 
using namespace std;
 
struct grade{
        
        int id[7];
        double grades;
        grade *gradePtr;
    
};
void addNodes(grade *&startPtr,grade *&current,int j);
void displayList(grade *&startPtr);
 
 
 
 
int main()
{
    
    grade *startPtr=NULL;
    grade *current;
    int j=0;
    cout<<"Enter the number student's: ";
    cin>>j;
    addNodes(startPtr,current,j);
    displayList(startPtr);
    
    return 0;
}
 
void addNodes(grade *&startPtr,grade *&current, int j)
{
    grade *temp, *temp2;
    for(int i=0;i<j;i++)
    {
    system("cls");
    temp = new grade;
    cout<<"Enter the student's id ";
    cin>>temp->id[i];
    cout<<"Enter his grades ";
    cin>>temp->grades;
    temp->gradePtr=NULL;
    if(startPtr==NULL)
    {
        startPtr=temp;
        current=startPtr;
    
    }
    else
    {
        temp2=startPtr;
        while(temp2->gradePtr!=NULL)
            temp2=temp2->gradePtr;
        temp2->gradePtr=temp;
    }
 
 
    }
}
 
void displayList(grade *&startPtr)
{
grade * temp;
temp=startPtr;
system("cis");
cout<<"Candidate\t\tVotes\n";
while (temp!=NULL){
    cout<<temp->id<<"\t\t"<<temp->grades<<endl;
temp=temp->gradePtr;
 
 
}
 
 
 
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
15.12.2011, 11:50     Связной список #2
А кто такой
Цитата Сообщение от 69Seph Посмотреть сообщение
freopen
?
69Seph
0 / 0 / 0
Регистрация: 02.12.2011
Сообщений: 34
15.12.2011, 11:53  [ТС]     Связной список #3
через эту функцию осуществляется ввод данных с текстового файла находящийся в папке проекта
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
15.12.2011, 11:56     Связной список #4
Да ну?!
69Seph
0 / 0 / 0
Регистрация: 02.12.2011
Сообщений: 34
15.12.2011, 11:57  [ТС]     Связной список #5
как то странно ты себя ведешь...
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
15.12.2011, 11:59     Связной список #6
Странно - верить, что какая то функция способна ограничить девелопера одним каталогом, да ещё откуда откопать каталог проекта.
69Seph
0 / 0 / 0
Регистрация: 02.12.2011
Сообщений: 34
15.12.2011, 12:02  [ТС]     Связной список #7
если честно я не понял толком код...
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
15.12.2011, 12:05     Связной список #8
Ну запость её дословно сюда.
69Seph
0 / 0 / 0
Регистрация: 02.12.2011
Сообщений: 34
15.12.2011, 12:11  [ТС]     Связной список #9
In computer science, a linked list a data structure consisting of a group of nodes which together represent a sequence.
You task implement "singly linked lists" for the following structure:

C++
1
2
3
4
5
6
7
8
9
struct student{
int ID;
string fname;
string sname;
string groupName;
string subjectNames[];
double grades[];
 
};
Note: You can extend Student struct as much as you will need.
taras atavin
Ушёл с форума.
3569 / 1752 / 91
Регистрация: 24.11.2009
Сообщений: 27,619
15.12.2011, 12:50     Связной список #10
Сделать связный список, можно расширить структуру. Свзяный же список - это такой контейнер, в котором каждый элемент указывает на следующий. Надо написать функции: добавления элемента после того, на который указывает указатель (перед ним не получится, так как надо исправить указатель впрерёд в предыдущем, а его найти нельзя) вывода списка от элемента по указателю, поиска элемента от указателя по ключу. Надо также сделать указатель на начало списка. На счёт удаления отдельных элементов не уверен, но удаление всего списка надо сделать. И надо сделать ввод элемента. Но вот откуда вводить - ни слова.

Добавлено через 15 минут
Если файл, то какого фактического формата? Придётся ведь парсить.
Dr.Urban
63 / 58 / 7
Регистрация: 14.12.2011
Сообщений: 193
15.12.2011, 13:18     Связной список #11
Цитата Сообщение от 69Seph Посмотреть сообщение
Вывод не работает, помогите найти проблему и можно как-нибудь через freopen осуществить ввод?
Вывод работает только выводит ерунду полную. Для чего поле ID структуры делать целочисельным масивом? Если ето опечатка тогда ловите:

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
#include<iostream>
#include <stdio.h>
 
using namespace std;
 
struct grade{
        
        int id;
        double grades;
        grade *gradePtr;
    
};
void addNodes(grade *&startPtr,grade *&current,int j);
void displayList(grade *&startPtr);
 
 
 
 
int main()
{
    
    grade *startPtr=NULL;
    grade *current;
    int j=0;
    cout<<"Enter the number student's: ";
    cin>>j;
    addNodes(startPtr,current,j);
    displayList(startPtr);
    system("pause");
    return 0;
}
 
void addNodes(grade *&startPtr,grade *&current, int j)
{
    grade *temp, *temp2;
    for(int i=0;i<j;i++)
    {
    system("cls");
    temp = new grade;
    cout<<"Enter the student's id ";
    cin>>temp->id;
    cout<<"Enter his grades ";
    cin>>temp->grades;
    temp->gradePtr=NULL;
    if(startPtr==NULL)
    {
        startPtr=temp;
        current=startPtr;
 
    }
    else
    {
        temp2=startPtr;
        while(temp2->gradePtr!=NULL)
            temp2=temp2->gradePtr;
        temp2->gradePtr=temp;
    }
 
 
    }
}
 
void displayList(grade *&startPtr)
{
grade * temp;
temp=startPtr;
system("cis");
cout<<"Candidate\t\tVotes\n";
while (temp!=NULL){
    cout<<temp->id<<"\t\t"<<temp->grades<<endl;
temp=temp->gradePtr;
 
 
}
 
 
 
}
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.12.2011, 13:34     Связной список
Еще ссылки по теме:

C++ Необходимо создать связной список с записью в файл и восстановлением из файла
Связной список / дерево C++
Не получается очистить связной список C++
C++ Связной список
Указатели, связной список (Linked List) и динамическое выделение памяти C++

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

Или воспользуйтесь поиском по форуму:
69Seph
0 / 0 / 0
Регистрация: 02.12.2011
Сообщений: 34
15.12.2011, 13:34  [ТС]     Связной список #12
спасибо большое
Yandex
Объявления
15.12.2011, 13:34     Связной список
Ответ Создать тему
Опции темы

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