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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Строки в С++ http://www.cyberforum.ru/cpp-beginners/thread1195814.html
Ребят кто нибудь знает как это сделать? Выполнить работу со строками согласно варианту. Строки вводить с клавиатуры и из заранее созданного текстового файла. Результаты выводить на экран. Вариант 1 1. Ввести строку с клавиатуры. Определить, является ли она целым числом. 2. Ввести с клавиатуры строку, в которой слова разделены пробелами и запятыми. Необходимо: а) определить количество...
C++ Описать Функцию RadToDeg(R) вещественного типа, находящую величину угла в градусах Описать Функцию RadToDeg(R) вещественного типа, находящую величину угла в градусах, если дана его величина R в радианах ( R- вещественное число, 0<R<2pi) Воспользоваться следующим соотношением: 180=pi радианов В качестве значения pi использовать 3.14 . С помощью функции RadToDeg перевести из радианов в градусы пять данных углов. http://www.cyberforum.ru/cpp-beginners/thread1195810.html
C++ Дана строка. словом считается последовательность латинских букв. Оставить слова начинающиеся с заглавной буквы
#include <iostream> #include <cstring> using namespace std; int main() { char string; char result=""; char *token;
Методы получения значения элемента контейнера (лист) C++
class flat { protected: int price; int metric; int square; int number_room; string adres; string city; string area;
C++ Описать процедуру http://www.cyberforum.ru/cpp-beginners/thread1195802.html
Описать процедуру DigitCountSum(K,C,S), находящую количество С цифр целого положительного числа К, а также их сумму S(K- входной, С, S- выходные параметры целого типа). С помощью этой процедуры найти количество и сумму цифр для каждого з пяти данных целых чисел.
C++ Ежедневник. С чего начать? Нужно написать курсовую работу на тему ежедневник. Помогите пожалуйста с чего начать и как легче ее сделать? Какие компоненты еще нужны, кроме monthcalendar? Чтобы можно было редактировать записи и удалять. Например, как в monthcalendar выделять числа разными цветами. (Например: важные(красные), обычные(зеленые)). Работаю на C++Builder 6 подробнее

Показать сообщение отдельно
demigod324
4 / 2 / 0
Регистрация: 17.03.2013
Сообщений: 102

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

01.06.2014, 20:08. Просмотров 172. Ответов 0
Метки (Все метки)

Мне нужно было составить программу, которая строит однонаправленный список из элементов файла. Элементы списка вывести на экран.
Сделал вот так:
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
90
91
92
93
94
95
96
97
98
99
//---------------------------------------------------------------------------
 
#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 output(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::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;
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
//Кнопка для вывода списка
{
    output (Beg);
}
//---------------------------------------------------------------------------
Если составлять список сразу и выводить его на экран, то всё нормально. Но если загружать из файла, то отображаются только первые 3 элемента. Помогите исправить данную ошибку.
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru