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

Сформировать односвязный кольцевой линейный список по файлу целых чисел - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Здесь есть удаление столбца, как добавить удаление строки http://www.cyberforum.ru/cpp-beginners/thread1092937.html
#include <iostream> #include <conio.h> using namespace std; int main() { int n; do {cout << "Razmer massiva: "; cin >> n; system("cls");} while (n<2); cout << "osnovnoi massiv : \n";
C++ Задача "тетрис" Здравствуйте. В общем есть такая задача. Логические построения Гарри выглядят для него как обычный тетрис, только все падающие объекты-факты ― прямоугольные. Если нижняя строка полностью заполнена, она исчезает. Нужно смоделировать ход игры: после каждого падения прямоугольника нужно вывести текущую высоту. Если высота превысит высоту экрана H, то игра завершается. Падающий прямоугольник... http://www.cyberforum.ru/cpp-beginners/thread1092936.html
клиент-серверные приложения C++
Здравствуйте! Подскажите, есть задача НАУЧИТЬСЯ писать клиент-серверные приложения(на с++ с помощью Rar Studio) Вопрос : 1.что для этого необходимо знать?кроме языка 2.как с имитировать север?(есть 2 комп) 3.помогут в этом книги Эндрю Таненбаум-Компьютерные сети(Классика Computer Science), Йон Снейдер Эффективное программирование TCP IP? Зарание благодарю)
C++ Структура "Владелец автомобиля": - фамилия, имя, отчество; - номер автомобиля; - телефон; - номер техпаспорта. Удалить элемент с заданным номером, доб
Структура "Владелец автомобиля": - фамилия, имя, отчество; - номер автомобиля; - телефон; - номер техпаспорта. Удалить элемент с заданным номером, добавить 2 элемента перед элементом с заданной фамилией.
C++ Почему компилятор выдает ошибку? http://www.cyberforum.ru/cpp-beginners/thread1092923.html
#include <stdio.h> #include <clocale> typedef enum{ COUNT, POUNDS, PINTS }unit_of_measure; typedef union{ short count; float weight;
C++ Сформировать массив строк. Удалить из него самую короткую строку Помогите пожалуйста. Сформировать массив строк. Удалить из него самую короткую строку подробнее

Показать сообщение отдельно
KyKi
3 / 3 / 0
Регистрация: 12.09.2013
Сообщений: 129
11.02.2014, 14:43  [ТС]     Сформировать односвязный кольцевой линейный список по файлу целых чисел
Вот у меня вышло такое безобразие,подскажите пожалуйста,что не так
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
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
struct List
{
    int data;       //информационное поле, данные, любой порядковый тип
    List *next;    //указатель на следующий элемент
};
typedef List *pList;  //ссылка на структуру
void main()
{
    setlocale(LC_ALL, "Russian");
    fstream fout,fin,finout;
    pList first, last,q;
    char namefile[30],c;
    int x,n;
    do{
    cout << "Введите название файла: ";
    cin >> namefile;
    cout << endl;
    CreateFile(fout,namefile);
    ReadFile(fin,namefile);
    Create_list (finout, namefile, first,last);
    Read_list(first);
    cout<<"\n Введите х:"<<endl;
    cin>>x;
    cout<<"\n Введите № элемента который будет удаляться последовательно:"<<endl;
    cin>>n;
    Del(q,first,n);
    cout<<"\n Если хотите повторить программу нажмите Y:"<<endl;
    cin>>c;
    }while(c=='Y');
}
    
//--------------------------------------------------------------------------------------------------
void Create_list(fstream &finout, char *namefile, pList &first, pList &last)
{
    int a;
    pList q;
    finout.open(namefile, ios::in | ios::binary);
    if (! finout.is_open())
    {
        cout<<"Ошибка,"<<namefile<< "файл не открыт."; exit(1);
    }
    first = nullptr;            //вначале список пуст
    finout.clear();
    while (finout.read((char *) &a, sizeof a))  
    {
        if  (first == nullptr) 
        { 
            Add_last(q, a,first);
            last = first;
        }
        else Add_last(q, a,first);
    }
    finout.close();
}
 
void Read_list(pList first)
{
    pList p;
    p = first;
    while (p)   //пока указатель на следующий не пуст
    {
        cout<<p -> data<<" ";
        p = p->next;        //установить на следующий
    }
}
 
void Add_last(pList&q, int a, pList first) //q-показатель на последний
{
    pList p;
    p=new List;
    p->data=a;
    p->next=first;
    q->next=p;
    q=p;
}
 
void Del(pList&q, pList first, int n)
{
pList p;
p=first;
while(p->next!=p)
{
    while(n--)
    {
        q=p;
        p=p->next;
    }
    q->next=p->next;
    q=q->next;
    cout<<"\n Удаляемый элемент:"<<p->data<<endl;
    delete p;
    p=q;
}
}
//--------------------------------------------------------------------------------------------------
void CreateFile(fstream &fout, char *namefile)  //функция создания файла
{
    int x;
    fout.open(namefile, ios::binary|ios::out);  //открытие файла file
    if (!fout.is_open())
    {
        cout << "Ошибка,"<<namefile<< "файл не открыт." << endl;
    }
    else
    {
        cout << "Введите данные в файл. Для окончания ввода введите 1111:" << endl;
        cin>>x;
        while (x!=1111)
        {
            fout.write((char*)&x, sizeof x);
            cin >>x;
        }
    }
    fout.close();       //закрыть файл
}
 
void ReadFile(fstream &fin, char *namefile)
{
    int x;
    fin.open(namefile, ios::binary|ios::in);
    if (!fin.is_open())
    {
        cout << "Ошибка,"<<namefile<< "файл не открыт." << endl;
    }
    else
    {
        while (fin.read((char*)&x, sizeof x))
        {
            cout<<x<<", ";
        }
        fin.close();
    }
}
 
Текущее время: 18:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru