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

Ошибка в программе - C++

Восстановить пароль Регистрация
 
Kristi-na
0 / 0 / 0
Регистрация: 29.10.2012
Сообщений: 57
26.12.2012, 21:31     Ошибка в программе #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
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
#include "stdafx.h"
#include <stdio.h>
#include <conio.h>
#include <iomanip>
#include <string.h>
#include <iostream>
#include <string.h>
using namespace std;
FILE*fp;      // файлова змінна  
//Опис батьківського класу
class vin{
//Захишені члени класу
protected:
     int zag;   // загальний розмір диску
     int vil;   // розмір вільного простору диска
//Відкрити члени класу
public:
    vin(void){}     //Конструктор
    virtual void installation(int a, int b);  // Встановлення полів (Віртуальна ф-ція)
    virtual void conclusion (void);           // Вивід полів на екран (Віртуальна ф-ція)
    virtual void record (void);               // Запис полів в файл (Віртуальна ф-ція)
    ~vin(void){}                              // Деструктор
    vin*next;                                 // Посилання на наступний елемент
};
//Опис класу спадкоємця
class vinl:public vin{
private:
      char name[10];                          // назва диску
public:
    vin(void){}                               // Конструктор класу спадкоємця 
    void installation(char name[10],int a,int b);//Встановдення полів
    void conclusion(void);                       //Вивід полів на екран
    void record(void);                           //Запис полів в файл
    int search(int s, vinl q);                   //Перевірка на схожість по ключу пошуку
    ~vin1(void){};                               //Деструктор класу спадкоємця
 friend void sort_vedomost(vinl *q);             //Дружня функція сортування об'єктів 
 friend void record_to_file(vinl *q);            //Дружня функція запису БД до файлу
 vinl *next;                                     //Посилання на наступний об'єкт
};
//Реалізація методів - членів класу 
void vin::installation(int a, int b)
{
    zag=a; vil=b;
}
void vin::conclusion(void);
{
    cout<<setw(8)<<zag<<" ";
    cout<<setw(15)<<vil<<"\n";
}
void vin::record(void)
{ 
    fprintf(fp,"%d",zag);
    fprintf(fp,"%d", vil);
}
void vil::installation(char c[10], int a,int b)
{
    strcpy(name,c); zag=a; vil=b;
}
void vinl::conclusion(void)
{
    cout<<setw(8)<<name<<" ";
    cout<<setw(8)<<zag<<" ";
    cout<<setw(15)<<vil<<"\n";
}
void vinl::record(void)
{
    fprintf(fp,"%s", name);
    fprintf(fp,"%d", zag);
    fprintf(fp,"%d", vil);
}
int vinl::search(int s, vinl g)
{
    if (q.vil==s)
            return 1;
    else return 0;
}
//Прототипи функцій
int read_vedomost(vinl *q);                   //Читання з файлу відомості             
void out_vedomost(vinl *q);                   //Вивід на екран відомості
void search_object(int c, vinl *q);           //Пошук об'єктів відомості 
void sort_vedomost(vinl *q);                  //Сортування відомості
void insert_object(vinl *q);                  //Додавання об'єктів до відомості
void delete_object(vinl *q, int k);           //Видалення об'єктів з відомості
void record_to_file(vinl *q);                 //Запис відомості у файл
//Головна програма
int main(void)
{ 
    vinl *tp;
    int kol,menu=-1,n,m;
    tp=new vinl;
    //Вивід меню
    while (menu!=0)
    {
        cout<<setw(15)<<"MENU\n\n";
        cout<<"0-> Exit\n";
        cout<<"1-> Read Vedomost\n";
        cout<<"2-> Output Vedomost\n";
        cout<<"3-> Sort Vedomost\n";
        cout<<"4-> Search in Vedomost\n";
        cout<<"5-> Insert object in Vedomost\n";
        cout<<"6-> Delete object in Vedomost\n";
        cout<<"7-> Record Vedomost to FILE\n";
        cout<<endl<<"Input number menu: ";
        cin>>menu;                         //Вибір пункту меню
        switch (menu)
    {
        case 1:kol=read_vedomost(tp);cout<<"Read successfully\n\n";getch();break;
        case 2:cout<<endl<<setw(30)<<"Table HDD (Winchesters)\n"<<endl;
               cout<<"N Name Common sizes  Public sizes\n";out_vedomost(tp);
               cout<<endl<<kol<<" elements in Vedomost \n"<<endl; getch();break;
        case 3:sort_vedomost(tp); cout<<"Sorting in Vedomost \n\n";getch();break;
        case 4:cout<<endl<<endl<<"Input Public sizes for search: ";
               cin>>m; search_object(m,tp);break;
        case 5:insert_object(tp);kol++;cout<<"\n Object insert to Vedomost\n\n";getch();break;
        case 6:cout<<"Input number object for delete: ";
            cin>>n; delete_object(tp,n);cout<<"Object delete\n\n";getch(); break;
        case 7:record_to_file(tp);cout<<"Vedomost record to the file\n";getch();break;
        }
      }
        return 0;
}
//Функція читання відомості (Бази данних)
int read_vedomost(vinl *q)
{
    char name1 [10];
    int zag1,k=0;
    int vill;
    vin1 *w=q;
    fp=fopen("vedomost.txt","r");     //Відкриття файлу для читання
    fscanf(fp,"%s\n", name1);
    fscanf(fp,"%d\n", &zag1);
    fscanf(fp,"%d\n", &vill);
    w->installation(name1,zag1,vill);//Вмклик методу установки полів
    w->next=NULL;
    k++;  
    while(!feof(fp))                 //Читання до кінця файлу
    {
        k++;
        w->next=new vinl;
        w=w->next;
        fscanf(fp,"%s\n",name1);
        fscanf(fp,"%d\n",&zag1);
        fscanf(fp,"%d\n",&vill);
        w->installation(name1,zag1,vill);
        w->next=NULL;
    }
    fclose(fp);                    //Закриття файлу
    return k;
}
//Функція виводу полів об'єкта
void out_vedomost(vinl *q)
{ 
    vin1 *w=q;
    int k=0;
    while(w!=NULL)
    {
       k++;
       cout<<k<<" ";
       w->conclusion();
       w=w->next;
    }
}
//Функція пошуку полів об'єкта
void search_object(int c, vinl *q)
{
    vinl *w=q;
    int school=0,i;
    while (w!=NULL)
    {  
        i=w->search(c,*w);
        if(i==1)
        {
            schot++;
            cout<<"\nDetected object:\n";
            w->conclusion();
        }
        w=w->next;
    }
    getch();
    if (schot==0)cout<<"This object was not detected\n";
}
//Дружня функція сортування об'єктів
void sort_vedomost(vinl *q)
{
    vinl *w=g;
    int zag1,b=1;
    int vill;
    char s[10];
    while(b)
    {
        b=0;
        w=q;
        while(w->next)
        {
            if(w->vil>w->next->vil)
            {
                vill=w->vil;
                w->vil=w->next->vil;
                w->next->vil=vill;
                zag1=w->zag;
                w->zag=w->next->zag;
                w->next->zag=zag1;
                strcpy(s,w->name);
                strcpy(w->name,w->next->name);
                strcpy(w->next->name,s);
                b=1;
            }
            w=w->next;
        }
    }
}
 
void insert_object(vinl *q)  //Функція додавання полів об'єктів 
{
     vinl *w=q;
     int zag1;
     int vill;
     char name1[10];
     while (w->next!=NULL)
     w=w->next;
     w->next=new vinl;
     w=w->next;
     w->next=NULL;
     cout<<"Input HDD name\n";
     scanf("%s",name1);
     cout<<"Input Common sizes\n";
     cin>>zag1;
     cout<<"Input Public sizes\n";
     cin>>vill;
     w->installation(name1,zag1,vill);
}
//Функція видалення полів об'єкта
void delete_object(vinl *q, int k)
{
    vinl *w=q,*d;
    int i;
    for (i=1;i<k-2;i++) w=w->next;
    d=w->next;
    w->next=w->next->next;
    delete d;
}
//Функція запису всієї відомості у файл record.txt
void record_to_file(vinl *q)
{
    vinl *w=q;
    fp=fopen("record.txt","w");   //Створення файлу для запису
    while(w!=NULL)
    {
        fprintf(fp,"%s\n", w->name);
        fprintf(fp,"%d\n", w->zag);
        fprintf(fp,"%d\n", w->vil);
        w=w->next;
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
26.12.2012, 21:31     Ошибка в программе
Посмотрите здесь:

C++ Ошибка в программе
C++ Ошибка в программе
ошибка в программе C++
Ошибка в программе C++
Ошибка в программе C++
ошибка в программе C++
Ошибка в программе C++
Ошибка в программе C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 15:33. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru