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

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

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 11, средняя оценка - 4.91
kot ss
0 / 0 / 0
Регистрация: 19.11.2012
Сообщений: 2
#1

Построить в динамической памяти линейный связанный список вещественного типа - C++

19.11.2012, 06:45. Просмотров 1416. Ответов 4
Метки нет (Все метки)

Всем привет! имеются 3 задачи на С++, надо срочно все написать и сдать. если есть чуток времени, очень прошу, помогите!
заранее спасибо.
п.с.: сижу с книжкой по си и пытаюсь разобраться, пока слабо получается.

ЗАДАЧА 1.

дана структура:

struct студент= ФИО: char [ ];
оценка1: int;
оценка2: int;
оценка3: int;

Работа состоит из двух программ.

1.) Программа, формирующая файл записей.
В качестве записей использовать эту структуру. Файл должен содержать
8-10 записей.

2.) Программа, обрабатывающая файл записей;
меню к программе должно включать следующие пункты:
а) просмотр файла;
б) 1-ый пункт этой структуры;
в) корректировку одного поля i-ой записи
(i ввести).

ЗАДАЧА 2.

Построить в динамической памяти линейный связанный список вещественного типа.
Количество элементов списка заранее неизвестно. Список строить в прямом порядке, окончание ввода – введение условного символа. Символ этот в список не включается.
Предусмотреть возможность добавления и удаления элемента в конце списка.

ЗАДАЧА 3.

1. Построить бинарное дерево одного строкового типа данных.
2. Выполнить обход дерева рекурсивным и нерекурсивным (стековым) способам в обратном порядке;
3. При обходе подсчитать количество листьев дерева.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.11.2012, 06:45
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Построить в динамической памяти линейный связанный список вещественного типа (C++):

Построить в динамической памяти линейный связанный список строкового типа данных - C++
Задание: Построить в динамической памяти линейный связанный список строкового типа данных. Количество элементов списка заранее неизвестно....

Линейный, однонаправленный, связанный список для структур - C++
Всем привет! Помогите пожалуйста переделать эту программу, так чтобы в нем использовались не массивы структурных переменных, а линейный,...

Двунаправленный связанный список, деструктор, утечка памяти - C++
Делаю свой двунаправленный связанный список, основу взял от сюда (сам код, там 3 списка, во всех деструкторы одинаковые) -...

Линейный список прямого доступа в связанной памяти - C++
Здравствуйте!Помогите пожалуйста. Не могу понять как сделать чтобы все заданные элементы не удалялись. Задание: Удалить последний по...

Построить линейный список из нескольких динамических переменных - C++
Построить линейный список из нескольких динамических переменных, содержащих вводимые целые числа. Вычислить количество совпадающих...

Вставить в линейный список перед элементом с заданным значением другой линейный список - C++
Как можно вставить в линейный список перед элементом с заданным значением другой линейный список? Как один элемент вставлять, я знаю, а вот...

4
MrGrig
177 / 160 / 2
Регистрация: 08.10.2012
Сообщений: 422
19.11.2012, 10:45 #2
Цитата Сообщение от kot ss Посмотреть сообщение
надо срочно все написать и сдать.
Обычно за такое прилагают ценник за одну задачу или за все вместе
0
Tiva
94 / 94 / 1
Регистрация: 25.04.2012
Сообщений: 429
19.11.2012, 11:00 #3
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
#include <iostream>
using namespace std;
#include <locale>
#include <string>
#include <fstream>
struct Stud
{
    string name;
    int mark[3];
};
int main(void)
{
    setlocale(0,"");
    ofstream ofst("test.txt", ios::app);
    
    Stud f;
    getline(cin,f.name);
    for(int i=0; i<3; i++)
        cin>>f.mark[i];
    ofst<<f.name<<" ";
    for(int i=0; i<3; i++)
        ofst<<f.mark[i]<<" ";
    ofst.close();
    ifstream ifst("test.txt");
    cout<<"Выберите пункт меню:\n";
    cout<<"1 - просмотреть все записи\n";
    cout<<"2 - просмотреть i-ую запись\n";
    cout<<"3 - редактировать i-ую запись\n";
    int temp;
    string tmp;
    cin>>temp;
    if(temp==1)
    {
        while(!ifst.eof())
        {
            getline(ifst, tmp);
            cout<<tmp<<endl;
        }
    }
    if(temp==2)
    {
        cout<<"введите номер записи: ";
        cin>>temp;
        int t=1, err=0;
        while(!ifst.eof() && err==0)
        {
            getline(ifst,tmp);
            if(t==temp) 
            {
                cout<<tmp<<endl;
                err=1;
            }
            else t++;
        }
 
    }
    if(temp==3)
    {
        cout<<"введите номер записи: ";
        cin>>temp;
        int t=1, err=0,count=0;
        int i=0;
        while(getline(ifst,tmp))       
        count++;
        while(!ifst.eof() && err==0)
        {
            getline(ifst,tmp);
            if(t==temp) 
            {
                cout<<tmp<<endl;
                err=1;
            }
            else t++;
        }
        cout<<"Введите новые данные:\n";
        Stud T;
        getline(cin, T.name);
        for(int i=0; i<3; i++)
            cin>>T.mark[i];
        /*
        чтоб сам чуть чуть подумал, допиши сам
        создать новый файл
        записать туда все до i-ой строки из исходного файла
        записать новую строку (структуру) T 
        записать туда все после i-ой строки их исходного файла
        */
    }
    ifst.close();
}
1
kot ss
0 / 0 / 0
Регистрация: 19.11.2012
Сообщений: 2
20.11.2012, 20:44  [ТС] #4
Цитата Сообщение от MrGrig Посмотреть сообщение
Обычно за такое прилагают ценник за одну задачу или за все вместе
Верно, но я не знаю, какие тут ценники, и вообще надеялась на простую помощь. может быть, не программами, но хотябы объяснением, что и в каком порядке надо сделать. чтобы стало немного понятнее.

Tiva, огромное спасибо за написанный код! сижу, разбираюсь что да как) пока еще не в полной мере сопоставила языки Си и С++
0
MrGrig
177 / 160 / 2
Регистрация: 08.10.2012
Сообщений: 422
21.11.2012, 09:39 #5
Цитата Сообщение от kot ss Посмотреть сообщение
ЗАДАЧА 2.
Построить в динамической памяти линейный связанный список вещественного типа.
Количество элементов списка заранее неизвестно. Список строить в прямом порядке, окончание ввода – введение условного символа. Символ этот в список не включается.
Предусмотреть возможность добавления и удаления элемента в конце списка.
по построению раз у вас окончанием ввода служит какой-то символ советую вводить данные сначала в строку поптом преобразовывать в число. алгоритм думаю найдете он не сложный, главное добавить туда условие с точкой т.к. список у вас вещественный. соответственно при вводе создать цикл while с условием пока не символ <ваш символ> вызывать a->add(<ваше значение>);
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
class list{
public:
    static int count;
    void delall(list *root);
    void del();
    void add(double value);
private;
    double data;
    list *next;
    list(){
        count=0;
        next=NULL;
    }
    ~list(){
         delall(this);
    }
public:
    void del(){//удаление последнего
        int i=0;
        list *buf=this;
        while(i<count)
            buf=buf->next;
        delete buf;
        buf=NULL;
    }
    void delall(list *root){//очищение (возможно работает криво)
        if(next!=NULL){
             list *buf=next;
             delall(buf);
        }
        count--;
        delete buf;
    }
    void add(double value){//добавление в конец
        int i=0;
        list *buf=this;
        while(i<count)
            buf=buf->next;
        buf=new list;
        buf->data=value;
        buf->next=NULL;
        count++;
    }
};
2
21.11.2012, 09:39
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
21.11.2012, 09:39
Привет! Вот еще темы с ответами:

Сколько значений переменных типа char можно записать в динамической памяти на место одной удаленной переменной - C++
3 задача с++ Сколько значений переменных типа char можно записать в динамической памяти на место одной удаленной переменной типа int?...

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

Что лучше для хранения БД в динамической памяти "Связный список" или же просто в массиве? - C++
Всем доброго времени суток! Получил тему курсовой, попалась тема база данных на файле. Не долго думая как хранить все данные в...

Связанный список. Создать, записать в связный список последовательность слов,обозначающих месяцы года,заданных пользователем - C++
Создать связанный список.Кроме информационных полей он должен обязательно содержать указатели на предыдущий и следующий за ним...


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

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

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