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

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

Войти
Регистрация
Восстановить пароль
 
demigod324
4 / 2 / 0
Регистрация: 17.03.2013
Сообщений: 102
#1

Построить однонаправленный список из элементов файла - C++

26.05.2014, 10:58. Просмотров 324. Ответов 3
Метки нет (Все метки)

Помогите составить программу, которая строит однонаправленный список из элементов файла. Элементы списка вывести на экран.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.05.2014, 10:58
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Построить однонаправленный список из элементов файла (C++):

Реализуйте однонаправленный список.Режим сортировки элементов списка без перестановки самих элементов - C++
Реализуйте задание .В каждом из вариантов должно быть реализованы следующие режимы работы: • добавление элементов; • просмотр...

Считать числа из файла в линейный однонаправленный список - C++
С++ Дан файл с цифрами. Надо занести их в линейный однонаправленный список и после макс элемента ввести число с клавиатуры. Потом всё...

Добавление элементов в однонаправленный список - C++
#include "stdafx.h" #include <iostream> #include <locale> using namespace std; struct listNode{ char data; listNode *next;...

Линейный односвязный (однонаправленный) список, запись и чтение из файла - C++
нужна помощь в организации чтения и записи списка из файла, #include <iostream> #include <string> #include <cstdlib> #include <ctime>...

Линейный однонаправленный список. Удаление элементов - C++
Создать линейный однонаправленный список. Удалить из него все символы 'p' перед символом 'a'. Вывести список после ввода символов и после...

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

3
1Вирт1
55 / 53 / 5
Регистрация: 25.08.2011
Сообщений: 449
26.05.2014, 11:10 #2
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#include <iostream>
#include <fstream>
#include <list>
#include <algorithm>
#include <iterator>
using namespace std;
int main()
{
  list<int> l;
  ifstream file;
  file.open("list.txt", ios::app);
  copy(istream_iterator<int>(file), istream_iterator<int>(), back_inserter(l));
  copy(l.begin(), l.end(), ostream_iterator<int>(cout, " "));
  cout << endl;
  return 0;
}
0
demigod324
4 / 2 / 0
Регистрация: 17.03.2013
Сообщений: 102
26.05.2014, 11:18  [ТС] #3
1Вирт1, А можно с использованием структуры?
0
demigod324
4 / 2 / 0
Регистрация: 17.03.2013
Сообщений: 102
26.05.2014, 12:30  [ТС] #4
1Вирт1, Есть примерно это:
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
//---------------------------------------------------------------------------
#include <vcl.h>
#include <ComObj.hpp>
#pragma hdrstop
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
 
struct Spisok
{
    int x;
    Spisok *next;
};
typedef Spisok *PSpisok;
PSpisok Beg, End, p;
 
TForm1 *Form1;
 
void add (PSpisok &O, int x)
{
    PSpisok NewSpisok;
    NewSpisok = new Spisok;
    NewSpisok -> x = x;
    NewSpisok -> next = NULL;
    if (End)
    End -> next = NewSpisok;
    End = NewSpisok;
    if (Beg == NULL)
    Beg = End;
}
 
void vuvod(PSpisok Beg)
{
    PSpisok q = Beg;
    int j = 0;
    while (q != NULL)
    {
        Form1 -> StringGrid2 -> Cells[j][0] = IntToStr(q -> x);
        q = q -> next;
        j++;
    }
};
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    int x;
    int i;
    x = StrToInt(Edit1 -> Text);
    add(p, x);
    StringGrid1 -> Cells[i][0] = IntToStr(x);
    i++;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
    vuvod (Beg);
}
//---------------------------------------------------------------------------
Добавлено через 34 минуты
Переделал вот так:
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
//---------------------------------------------------------------------------
 
#include <vcl.h>
#include <ComObj.hpp>
#pragma hdrstop
#include "Unit1.h"
 
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
 
struct Spisok
{
    int x;
    Spisok *next;
};
typedef Spisok *PSpisok;
PSpisok Beg, End, p;
 
TForm1 *Form1;
 
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button2Click(TObject *Sender)
{
    Variant var_Excel, var_Sheet;
    int Row_Counter = 0, Column_Counter = 0, Max_Column = 2, Max_Row = 15;
    WideString st;
    if (!OpenDialog1->Execute()) return;
 
    Edit2 -> Text = OpenDialog1 -> FileName;
    st = Edit2 -> Text;
 
    var_Excel = CreateOleObject("Excel.Application");
    var_Excel.OlePropertyGet("Application").OlePropertyGet("Workbooks").OleProcedure("Open", st);
    var_Excel.OlePropertySet("Visible", false);
    var_Sheet = var_Excel.OlePropertyGet("ActiveSheet");
 
    for (Row_Counter; Row_Counter <= Max_Row; Row_Counter++)
    {
      for (Column_Counter; Column_Counter <= Max_Column; Column_Counter++)
          {
           StringGrid2->Cells[Column_Counter][Row_Counter] =
               var_Sheet.OlePropertyGet("Cells").OlePropertyGet("Item", Row_Counter + 1, Column_Counter + 1);
          }
          Column_Counter = 0;
    }
 
    var_Excel.OlePropertyGet("Application").OleProcedure("Quit");
    var_Sheet = Unassigned;
    var_Excel = Unassigned;
}
//---------------------------------------------------------------------------
Но почему то выводит только первые 3 элемента. Подскажите в чем ошибка?
0
26.05.2014, 12:30
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
26.05.2014, 12:30
Привет! Вот еще темы с ответами:

Однонаправленный список элементов (удвоить каждый элемент списка) - C++
Сформировать однонаправленный список элементов типа char и написать программу следующих операций над ним: а) удвоить каждый элемент списка.

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

Добавить в список элемент после элемента с заданным инф.полем [Однонаправленный список] - C++
Вообщем есть: Функция создание списка Функции вывода на экран Функция добавление элемента с номером k А нужно ввести...

Однонаправленный список - C++
Есть задание - перегрузка операций. Дается 3 штуки Однонаправленный список с элементами типа char доступ к элементу в...


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

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

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