С Новым годом! Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
0 / 0 / 0
Регистрация: 21.04.2012
Сообщений: 3
1

При создании территориальной единицы выдает "System.AccessViolationException"

05.05.2012, 21:05. Показов 765. Ответов 1
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
При создании территориальной единицы выдает такую ошибку


Описание классов
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
class TPlant
{
public:
static int kolp;
int year; // Возраст растения
int godposadki; // Год посадки растения
char mes[20];
char type [20];
char vid [20];
TPlant(char *ty);
~TPlant();
virtual void PrintPlant()=0;
virtual int selection(char *f)=0;
};
class TTree: public TPlant
{public:
char tip [20]; //ягодное или нет
char plod[15]; // Плодородное дерево или нет
static int kolt;
TTree(char *ty);
~TTree();
void PrintPlant();
int selection(char *f);
};
class TFlower:public TPlant
{public:
static int kolf;
char color[20]; //цвет цветка
int lepestok; // количество лепестков
char moreyear [5]; // поле многолетних цветков
TFlower(char *ty);
~TFlower();
void PrintPlant();
int selection(char *f);
};
class TTerrit
{
public:
int maxkolvorast;  // Максимальное количесво растений
TPlant *plants [10];
static int kolter;
char vidt [20];
char name[20]; // название территориальной единицы
float s; //Площадь территориальной единицы
TPlant *rast[10];
void PrintPerechen();
void Mnogolet(char *s,char *ty);
TTerrit();
~TTerrit();
};
class TStrana: public TTerrit
{public:
static int kols;
char prezident [20]; // Имя текущего президента страны
int godkonst; // Год принятия конституции
TStrana();
~TStrana();
};
class TOblast: public TTerrit
{public:
int prot; // Протяженнотсь границ
char gub[20]; // Фамилия губернатора области
static int kolo;
TOblast();
~TOblast();
};
Реализация методов
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
#include "Kurs.h"
#include <stdio.h>
#include <string>
TPlant::TPlant(char *ty)
{
printf("Добавление записи растение:");
strcpy (type,ty);
printf("Введите возраст");
scanf("%d",&year);getchar();
printf("Введите год посадки");
scanf ("%d",godposadki);getchar();
kolp++;
}
TPlant::~TPlant()
{
printf("Удаление объекта растения со следующими параметрами");
printf("Возраст растения %d",year);
printf("Год посадки %d",godposadki);
kolp--;
}
TTree::TTree(char *ty):TPlant(ty)
{
printf("Укажите,ягодное ли дерево или нет (введите yes or no)");
scanf("%s",tip);
printf("Укажите, плодородное ли дерево");
scanf("%s",plod);
kolt++;
}
TTree::~TTree()
{
printf("Удаление обекта дерево со следующими параметрами");
printf("Дерево %s и %s",tip,plod);
kolt--;
}
TFlower::TFlower(char *ty):TPlant(ty)
{
printf("Введите цвет цветка");
scanf("%s",color);
printf("Введите количество лепестков");
scanf("%d",lepestok);getchar();
printf("Укажите многолетний ли цветок (введите yes or no)");
scanf("%s",moreyear);
kolf++;
}
TFlower::~TFlower()
{
printf("Удаление объекта цветок со следующими параметрами/n");
printf("Цвет цветка - %s",color);
printf("Количество лепестков - %d",lepestok);
printf("Цветок многолетний? - %s",moreyear);
kolf--;
}
TTerrit::TTerrit()
{
printf("Создание территориальной единицы под названием:");
scanf("%s",name);
printf("Введите площадь территории");
scanf("%f",s);getchar();
kolter++;
}
TTerrit::~TTerrit()
{
printf("Удаление территориальной единицы со следующими параметрами");
printf("Название - %s",name);
printf("Площадь - %f",s);
kolter--;
}
TOblast::TOblast():TTerrit()
{
printf("Введите имя губернатора");
scanf("%s",gub);
printf("Введите протяженность границы области в метрах");
scanf("%d",prot);getchar();
kolo++;
}
TOblast::~TOblast()
{
printf("Удаление объекта область со следующими параметрами");
printf("Губернатор - %s",gub);
printf("протяженность границ в метрах - %d",prot);
kolo--;
}
TStrana::TStrana():TTerrit()
{
printf("Введите имя президента");
scanf("%s",prezident);
printf("Введите год приняти конституции");
scanf("%d",godkonst);getchar();
kols++;
}
TStrana::~TStrana()
{
printf("Удаление объекта страна со следующими параметрами");
printf("Президент - %s",prezident);
printf("Принятие конституции - %d",godkonst);
}
void TTerrit::PrintPerechen()
{int i;
if (maxkolvorast==0) {printf("\nНет растений\n"); return;}
for(i=0;i<maxkolvorast;i++)
    rast[i]->PrintPlant();
}
 
void TTree::PrintPlant()
{printf("\n********************************");
printf("\nВозраст растения: %d   \nГод посадки: %d  \nДерево %s и %s ",year,godposadki,tip,plod);
}
 
void TFlower::PrintPlant()
{printf("\n********************************");
printf("\nВозраст растения: %d   \nГод посадки: %d  \nЦвет цветка %s \nКоличество лепестков %d \nРастение (yes - многолетнее, no - немноголетнее)",year,godposadki,color,lepestok,moreyear);
}
void TTerrit::Mnogolet(char *s,char *ty)
{int i,k=0;
if (maxkolvorast==0) {printf("\nНет растений\n"); return;}
for(i=0;i<maxkolvorast;i++)
  if (strcmp(rast[i]->type,ty)==0) 
        {rast[i]->selection(s);
           if (rast[i]->selection(s)==0) k++;}
if (k==0) printf("\nНет растений\n");}
 
int TTree::selection(char *s)
{if(tip=="yes") {PrintPlant(); return 0;}
 return 1;}
 
int TFlower::selection(char *s)
{ if(moreyear=="yes") {PrintPlant(); return 0;}
return 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
#include "Kurs.h"
#include <stdio.h>
#include <iostream>
#include <string.h>
#include <locale>
int TPlant::kolp=0;
int TTree::kolt=0;
int TFlower::kolf=0;
int TTerrit::kolter=0;
int TStrana::kols=0;
int TOblast::kolo=0;
TTerrit *TTer[10]={0};
void AddPlant();
void AddTerrit();
void DelPlant();
void DelTerrit();
int  PrintPer();
void PrintTree();
void PrintFlower();
//int KolvoPlants();
void Kolichestvo();
int PrintMenu();
void main()
{setlocale( LC_ALL,"Russian");
while(PrintMenu());
printf("\nДо свидания!");
getchar();
}
 
int PrintMenu()
{int ch;
system("cls");
printf("\nПользовательское меню\n");
printf("\n 1-Добавление растений (Не более 10)");
printf("\n 2-Добавление территории (Не более 10)");
printf("\n 3-Удаление растений (Всего растений: %d)",TPlant::kolp);
printf("\n 4-Удаление территорий: (Всего территорий %d)",TTerrit::kolter);
printf("\n 5-Вывод перечня растений в данной территориториальной единице");
printf("\n 6-Вывод перечня ягодных деревьев, произрастающих в данной территориальной единице");
printf("\n 7-Вывод перечня многолетних цветков, произрастающих в данной территориальной единице");
//printf("\n 8-Вывод количества растений, указанного вида, произрастающих в данной территориальной единице");
printf("\n 8-Вывод количества созданных объектов");
printf("\nВведите номер меню, 0 - Выход\n");
scanf("%d",&ch); 
getchar();
switch(ch)
{case 1:{AddPlant();system("pause");break;}
case 2:{AddTerrit();system("pause");break;}
case 3:{DelPlant();system("pause");break;}
case 4:{DelTerrit();system("pause");break;}
case 5:{PrintPer();system("pause");break;}
case 6:{PrintTree();system("pause");break;}
case 7:{PrintFlower();system("pause");break;}
//case 8:{KolvoPlants();system("pause");break;}
case 8:{Kolichestvo(); system("pause"); break;}
default:break;
}
return(ch);
}
 
void Kolichestvo()
{printf("\n Растения: %d",TPlant::kolp);
printf("\n Деревья: %d",TTree::kolt);
printf("\n Цветы: %d",TFlower::kolf);
printf("\n Территории: %d",TTerrit::kolter);
printf("\n Страны: %d",TStrana::kols);
printf("\n Области: %d\n",TOblast::kolo);
}
 
void AddTerrit()
{int c;
printf("\nВыберите вид территориальной единицы: ");
printf("\n 1-Страна \n 2-Область\n");
scanf("%d",&c);
if (c!=1 && c!=2) {printf("\n Неправильный ввод\n"); return;}
getchar();
switch(c)
{
case 1: {TTer[TTerrit::kolter-1] = new TStrana; break;}
case 2: {TTer[TTerrit::kolter-1] = new TOblast; break;}
default: break;
}
}
 
void AddPlant()
{int i,c;
if(TTerrit::kolter==0)
{printf("\nНет территориальных единиц!");
getchar();
return;}
printf("\nВыберите номер территориальной единицы: ");
for(i=0;i<TTerrit::kolter;i++)
{printf("\n%d - %s",i+1,TTer[i]->name);}
printf("\n");
scanf("%d",&i);
getchar();
if ((i>TTerrit::kolter)||i<0) {printf("\n Неправильный ввод\n"); return;}
while(1){
printf("\nВыберите вид растения: \n1-дерево \n2-цветок \n0-Выход\n");
scanf("%d",&c);getchar();
switch(c){
case 1: {TTer[i-1]->plants[TTer[i-1]->maxkolvorast]=new TTree("Tree"); 
    TTer[i-1]->maxkolvorast++;
    break;}
case 2: {TTer[i-1]->plants[TTer[i-1]->maxkolvorast]=new TFlower("Flower"); 
    TTer[i-1]->maxkolvorast++; 
    break;}
case 0: return;
default : break;}
}
}
 
void DelTerrit()
{int i,j;
if (TTerrit::kolter==0) {printf("\nНет территорий\n"); return;}
printf("\nВыберите номер территории");
for(i=0;i<TTerrit::kolter;i++)
{printf("\n%d - %s",i+1,TTer[i]->name);}
printf("\n");
scanf("%d",&i);
if ((i>TTerrit::kolter)||i<0) {printf("\n Неправильный ввод\n"); return;}
if(TTer[i-1]->maxkolvorast!=0) 
    {
    for(j=0;j<TTer[i-1]->maxkolvorast+1;j++)
    {delete TTer[i-1]->plants[j];
    TTer[i-1]->maxkolvorast--;}
    }
delete TTer[i-1];
TTer[i-1]=0;
for(j=i-1;j<TTerrit::kolter;j++)
{TTer[j]=TTer[j+1];
TTer[j+1]=0;}
}
 
void DelPlant()
{int i,j,c;
i=PrintPer();
if (i==0) return;
printf("\nВведите год посадки растения: ");
scanf("%d",&c); getchar();
if(c==0) return;
for(j=0;j<TTer[i-1]->maxkolvorast;j++)
{if (TTer[i-1]->plants[j]->godposadki==c) 
         {delete TTer[i-1]->plants[j];
                 TTer[i-1]->maxkolvorast--;
          for(c=j;c<TTer[i-1]->maxkolvorast;c++)
          {TTer[i-1]->plants[j]=TTer[i-1]->plants[j+1]; 
           TTer[i-1]->plants[j+1]=0;}}
else printf("\nВведен не существующий год посадки!\n");
}
}
 
int PrintPer()
{int j,i;
if (TTerrit::kolter==0||TPlant::kolp==0) {printf("\nНет растений или территориальных единиц\n"); return 0;}
printf("\nВыберите номер территории");
for(i=0;i<TTerrit::kolter;i++)
{printf("\n%d - %s",i+1,TTer[i]->name);}
printf("\n");
scanf("%d",&i); getchar();
if ((i>TTerrit::kolter)||i<0) {printf("\n Неправильный ввод\n"); return 0;}
printf("\nНазвание территории : %s",TTer[i-1]->name);
TTer[i-1]->PrintPerechen();
return i;
}
void PrintFlower()
{int i;
char *s;
if (TTerrit::kolter==0 || TFlower::kolf==0) {printf("\nНет территорий или цветков\n"); return;}
printf("\nВыберите номер территории");
for(i=0;i<TTerrit ::kolter;i++)
{printf("\n%d - %s",i+1,TTer[i]->name);}
printf("\n");
scanf("%d",&i); getchar();
if ((i>TTerrit::kolter)||i<0) {printf("\n Неправильный ввод\n"); return;}
printf("\nВведите многолетний ли цветок: ");
scanf("%s",s); getchar();
if (TPlant::kolp==0) {printf("\nНет растений\n"); return;}
TTer[i-1]->Mnogolet(s,"Flower");
}
void PrintTree()
{int i;
char *s;
if (TTerrit::kolter==0 || TTree::kolt==0) {printf("\nНет территорий или цветков\n"); return;}
printf("\nВыберите номер территории");
for(i=0;i<TTerrit::kolter;i++)
{printf("\n%d - %s",i+1,TTer[i]->name);}
printf("\n");
scanf("%d",&i); getchar();
if ((i>TTerrit::kolter)||i<0) {printf("\n Неправильный ввод\n"); return;}
printf("\nУкажите, плодородное ли дерево: ");
scanf("%s",s);
if (TPlant::kolp==0) {printf("\nНет растений\n"); return;}
TTer[i-1]->Mnogolet(s,"Tree");
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.05.2012, 21:05
Ответы с готовыми решениями:

System.AccessViolationException при открытии OpenFileDialog
Здрасте. Вылазит вот такая ошибка при открытие openfile dialog при попытки прикрепить второй фаил?...

System.AccessViolationException при передвижении Формы
Есть форма на ней три элемента picturebox в которых отрисовка происходит по таймеру. При...

System.AccessViolationException при GL.DrawElements (OpenTK)
Здравствуйте. Делаю пиксельный движок на OpenTK (да, так делать не совсем правильно, но мне очень...

System.AccessViolationException при работе с BitMap LockBits
Здравствуйте, у меня есть код, который получает цвет пикселя с битмапа, обычный GetPixel мне не...

Попытка записи System.AccessViolationException при работе со шрифтом
Здравствуйте, есть такой код: using System; using System.Drawing; using System.Windows.Forms;...

1
29 / 31 / 2
Регистрация: 14.04.2012
Сообщений: 152
05.05.2012, 21:32 2
мне кажется,или это с++?
0
05.05.2012, 21:32
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.05.2012, 21:32
Помогаю со студенческими работами здесь

Важно!При нажатии на кнопке выдает: using System; using System.Collections.Generic; using System
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data;...

Необработанное исключение типа "System.AccessViolationException" при добавлении Datagridview
Прошу помощи. Создаю проект &quot;приложение Windows Forms&quot; в Visual Studio 2008. Добавляю компонент...

При запуске выдает ошибку System.InvalidOperationException: "The specified cast from a materialized 'System.Decimal'
ошибка выдается на этом моменте ObservableCollection &lt; Plane &gt; planes = new...

Необработанное исключение типа "System.AccessViolationException" произошло в System.Drawing.dll
Всё компилируется, но при запуске выдаёт это: /* Необработанное исключение типа...

исключение типа "System.AccessViolationException" произошло в System.Drawing.dll
Добрый вечер Помогите с ошибкой в VISUAL C# (она же и в VISUAL C++) Ошибка происходит когда я в...

System.AccessViolationException
Есть текстбокс на форме, при изменении текста в нем происходит запрос к бд и заполняется...


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

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