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

Массив классов поиск удаление и добавление

26.07.2015, 11:22. Показов 4204. Ответов 7
Метки нет (Все метки)

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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
#define MAX_SIZE 100
#define RAND_MAX 20
#include <stdio.h>
#include <math.h>
#include <string>
#include <iostream>
#pragma warning (disable :4996)
 
 
class news
{
private:
    char N[200];
    
public:
    int d, m, y;
    void set()
    {
        gets(N);
        scanf("%d%d%d", &d, &m, &y);
    }
    void out()
    {
        cout << N << " Дата: " << d << "/" << m << "/" << y;
    }
};
class week_news
{
private:
    news A[10];
    int len;
public:
    week_news(int L)
    {
        len = L;
        for (int i = 0; i < len; i++)
        {
            A[i].set();
        }
    }
    void Out()
    {
        printf("Новости:\n");
        for (int i = 0; i < len; i++)
            A[i].out();
    }
 
    int add()
    {
        news C;
        C.set();
        if (len < MAX_SIZE)
        {
            A[len] = C;
            len++;
            return 1;
        }
        else
            return 0;
    }
 
    int Del()
    {
        int k = search();
        for (int i = k; i < len - 1; i++)
            A[i] = A[i + 1];
        len--;
        return 1;
    }
 
    int search()
    {
        int d, m, y;
        scanf("%d%d%d", &d, &m, &y);
        int flag = 0;
        for (int  i = 0; i < len; i++)
        {
            if (flag == 0 && A[i].d == d && A[i].m == m && A[i].y == y);
            flag = i;
            return flag;
        }
    }
};



и main:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
    
#include "www.h"
#include <stdio.h>
#include <iostream>
#include <math.h>
#include <locale>
#pragma warning (disable :4996)
#define MAX_SIZE 100
 
week_news B(3);
    news A;
    A.set();
    A.out();
 
    //B.search();
    B.add();
    B.Out();
    B.search();
    B.Del();
    B.Out();
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
26.07.2015, 11:22
Ответы с готовыми решениями:

Создать массив структур, который можно редактировать: поиск по заданному полю, удаление и добавление элементов
Создать структуру и именем sklad, которая содержит следующие поля: NAME- Название товара TYPE-...

Телефонный справочник: добавление/удаление/поиск номера телефона
Есть вот такое задание: Написать программу «расширенный телефонный справочник». Создайте массив...

Одномерный динамический массив, передача в функции, добавление и удаление элемента
Разбираю одномерные динамические массивы. Пока всё просто, пока и не возникает вопросов. Массив...

Реализовать добавление/удаление элементов в массив объектов типа PhoneBook
Есть небольшая задача создать телефонную книгу с возможностью записи контакта. выводом контактов...

7
2782 / 1935 / 570
Регистрация: 05.06.2014
Сообщений: 5,600
26.07.2015, 20:03 2
Лучший ответ Сообщение было отмечено JrsY как решение

Решение

void set() news()
gets(N); scanf("%d%d%d", &d, &m, &y); cin>>N>>d>>m>>y;
news A[10]; vector<news>A;
int add() void add(){A.emplace_back();}
1
419 / 418 / 167
Регистрация: 28.11.2010
Сообщений: 1,183
26.07.2015, 20:10 3
Раз уж взялись за классы, то создайте и класс "Дата". Определите операции с ним, а потом просто используйте его в своем классе.
1
Модератор
Эксперт CЭксперт С++
5284 / 2371 / 342
Регистрация: 20.02.2013
Сообщений: 5,770
Записей в блоге: 20
26.07.2015, 20:14 4
#include <stdio.h> #include <cstdio>
#include <math.h> #include <cmath>
#define MAX_SIZE 100 const int MAX_SIZE = 100;
1
0 / 0 / 0
Регистрация: 26.07.2015
Сообщений: 3
27.07.2015, 08:07  [ТС] 5
Спасибо большое!
0
4226 / 1795 / 211
Регистрация: 24.11.2009
Сообщений: 27,562
27.07.2015, 08:08 6
JrsY, не может быть массива классов.
1
0 / 0 / 0
Регистрация: 26.07.2015
Сообщений: 3
27.07.2015, 08:17  [ТС] 7
Хорошо, понял
0
Модератор
Эксперт CЭксперт С++
5284 / 2371 / 342
Регистрация: 20.02.2013
Сообщений: 5,770
Записей в блоге: 20
27.07.2015, 08:49 8
Цитата Сообщение от taras atavin Посмотреть сообщение
не может быть массива классов.
Это да. Массив экземпляров класса (массив объектов одного типа) - другое дело.
0
27.07.2015, 08:49
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
27.07.2015, 08:49
Помогаю со студенческими работами здесь

Массив (добавление, перестановка, поиск)
1) добавление N элементов, начиная с номера К 2) Перестановка положительные элементы переставить в...

Поиск всех файлов с заданным расширением и добавление их в массив
Здравствуйте, уважаемые программисты! Существует задача, найти имена всех файлов, с расширением...

Добавление элементов к дереву, удаление элементов и поиск уровня с наибольшей суммой элементов
Помогите пожалуйста! нужно разработать программу для работы с деревом. В узлах дерева содержатся...

Сделать добавление элемента в массив и удаление элемента из массива используя STL
Всем привет. Помогите пожалуйста написать. Нужно использовать STL. Необходимо сделать добавление...


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

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