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

Удалить элементы из структуры - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ error LNK2001 http://www.cyberforum.ru/cpp-beginners/thread327728.html
беда, совсем беда. день тяжелый, мозг не работает. в общем пример из книжки. непосредственно мейн.цпп //_011.cpp #include <iostream> using std::cout; using std::endl; #include <iomanip>
C++ Что означает строчка ??? Что озночает строчка double *x = new double; Заранее спасибо http://www.cyberforum.ru/cpp-beginners/thread327723.html
C++ Конвертация строки в число
библиотека string, присваиваю целой переменной элемент строки, а он присваивает кодировку, тобишь если элемент строки '0' то переменная равна 48. Как сделать так чтобы она равнялась 0.
Найти самую длинную строку в файле C++
Вроде все норм, вот только когда пытаюсь вывести через puts() - выводит все содержимое файла посимвольно и в столбик, а через Printf() - выводит какие то квадраты. Компилятор Borland C++ 3.11 #include <string.h> #include <conio.h> #include <stdio.h> FILE *f; char s;
C++ Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над векторами http://www.cyberforum.ru/cpp-beginners/thread327689.html
Нужно написать это на СИ! Реализовать в виде модуля набор подпрограмм для выполнения следующих операций над векторами: 1)сложения; 2)вычитания; 3)скалярного умножения векторов; 4)умножения вектора на число; 5)нахождение длины вектора. Используя этот модуль, решить задачу. Дан массив A - массив векторов. Отсортировать его в порядке убывания длин векторов.
C++ Напишите программу на СИ! снова геометрия(((( Нужно написать программу на си, которая это выполнит... Задано множество точек на плоскости, не лежащих на одной прямой. Определить минимальное количество точек, после удаления которых остаются точки, лежащие на одной прямой. подробнее

Показать сообщение отдельно
Mischanja
Всегда не хватает времени
118 / 118 / 7
Регистрация: 15.10.2009
Сообщений: 493

Удалить элементы из структуры - C++

29.06.2011, 17:33. Просмотров 3479. Ответов 2
Метки (Все метки)

Дали вот такое задание на С++
1. сделать Структура "Владелец автомобиля":
- Фамилия, имя, отчество;
- Номер автомобиля;
- Номер техпаспорта;
- Отделение регистрации ГАИ.
2. Удалить элемент с указанным номером авто,
3. добавить 2 элемента перед элементом с указанным именем.

первое я сделал без проблем а вот во вторым и третьим не разберусь никак

Вот мой код, где функция deleted пытается удалить запись из структуры но что-то ничего из этого не вышло.

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
#include <iostream.h>
#include <string.h>
#include <conio.h>
 
struct Auto
{
    char* name;
    char* number;
    char* otdel;
    char* tehnumber;
};
 
void input(Auto& Obj)
{
    const int max_size=200;
    char str[max_size];
    cout<<"Введите Имя и Фамилию\n";
    cin.getline(str, max_size);
    Obj.name=new char[strlen(str)+1];
    strcpy(Obj.name, str);
    cout<<"Введите номер машины\n";
    cin.getline(str, max_size);
    Obj.number=new char[strlen(str)+1];
    strcpy(Obj.number, str);
    cout<<"Введите отдел регистрации ДАИ\n";
    cin.getline(str, max_size);
    Obj.otdel=new char[strlen(str)+1];
    strcpy(Obj.otdel, str);
    cout<<"Введите номер тех паспорта\n";
    cin.getline(str, max_size);
    Obj.tehnumber=new char[strlen(str)+1];
    strcpy(Obj.tehnumber, str);
    cout<<'\n';
    cin.get();
}
 
void output(Auto& Obj)
{
    cout<<"Фамилия Имя Отчество: "<< Obj.name <<'\n'
        <<"Номер машины: "<< Obj.number <<'\n'
        <<"Отдел регистрации ДАИ: "<< Obj.otdel <<'\n'
        <<"Номер тех паспорта: "<< Obj.tehnumber <<'\n';
    cout<<'\n';
}
 
void deleted(Auto* Obj, int n)
{
    int cnt=0;
 
    const int size_find_str=7;
    const char str[size_find_str]="123QWE";
    for(int i=0; i<n; ++i)
    {
        if(!(strcmp(Obj[i].number, str)))
        {
            Obj[i].name=Obj[i+1].name;
            Obj[i].number=Obj[i+1].number;
            Obj[i].otdel=Obj[i+1].otdel;
            Obj[i].tehnumber=Obj[i+1].tehnumber;
            ++cnt;
        }
    }
    if (cnt==0)
    {
        cout<<"Нет информации о водителях с номером "<<str;
    }
}
 
int main()
{       clrscr();
    const int size=2;
    Auto* AuArr;
    AuArr=new Auto[size];
    for(int i=0; i<size; ++i)
    {
        cout<<"Введите информацию о "<< i+1 <<" водителе\n";
        input(AuArr[i]);
    }
    for( i=0; i<size; ++i)
    {
        cout<<"Информация о "<< i+1 <<" водителе\n";
        output(AuArr[i]);
    }
 
    deleted(AuArr, size);
 
    cout<<"Архив водителей:\n";
    for( i=0; i<size; ++i)
    {
        cout<<"Информация о "<< i+1 <<" водителей\n";
        output(AuArr[i]);
    }
 
    delete[] AuArr;
    getch();
    return 0;
}
получилось что и-тый элемент просто стал равен и+1 элементу. а вот как вообще удалить его я не пойму. и потом еще добавить два после указанной фамилии
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru