0 / 0 / 0
Регистрация: 19.11.2012
Сообщений: 2
1

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

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

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

ЗАДАЧА 1.

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

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

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

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

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

ЗАДАЧА 2.

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

ЗАДАЧА 3.

1. Построить бинарное дерево одного строкового типа данных.
2. Выполнить обход дерева рекурсивным и нерекурсивным (стековым) способам в обратном порядке;
3. При обходе подсчитать количество листьев дерева.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
19.11.2012, 06:45
Ответы с готовыми решениями:

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

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

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

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

4
178 / 161 / 38
Регистрация: 08.10.2012
Сообщений: 423
19.11.2012, 10:45 2
Цитата Сообщение от kot ss Посмотреть сообщение
надо срочно все написать и сдать.
Обычно за такое прилагают ценник за одну задачу или за все вместе
0
96 / 96 / 21
Регистрация: 25.04.2012
Сообщений: 449
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
0 / 0 / 0
Регистрация: 19.11.2012
Сообщений: 2
20.11.2012, 20:44  [ТС] 4
Цитата Сообщение от MrGrig Посмотреть сообщение
Обычно за такое прилагают ценник за одну задачу или за все вместе
Верно, но я не знаю, какие тут ценники, и вообще надеялась на простую помощь. может быть, не программами, но хотябы объяснением, что и в каком порядке надо сделать. чтобы стало немного понятнее.

Tiva, огромное спасибо за написанный код! сижу, разбираюсь что да как) пока еще не в полной мере сопоставила языки Си и С++
0
178 / 161 / 38
Регистрация: 08.10.2012
Сообщений: 423
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
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
21.11.2012, 09:39
Помогаю со студенческими работами здесь

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

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

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

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


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru