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

Реализовать работу с таблицей через структуры

02.04.2018, 14:13. Показов 3135. Ответов 15
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброе. Есть некоторое задание, в котором необходимо реализовать работу с таблицей через структуры. Удаление/добавление строк и тд. Что следует использовать при выполнении сего задания (и что является более простым/эффективным)?

Полагаю, что ряд данных в таблице правильно реализовать через вектор. Так? И тем самым удаление той или иной строки сводится к удалению нужного вектора.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.04.2018, 14:13
Ответы с готовыми решениями:

Реализовать структуру моделирующую работу аэропорта; реализовать поиск по заданному полю в массиве таких структур
Здравствуйте. Каким образом можно сделать ввод данных через массив, а так же все последующие действия в соответствии с заданием? То есть, я...

Возможно ли через fstream работать с таблицей xls?
Hello! Возможно ли через библиотеку fstream работать с таблицей.xls. Т.е. ну например мне нужно составить таблицу о подчиненных на...

Нужно реализовать работу с Mysql через java
нужно реализовать работу с Mysql через java (желательно через javascript только вряд ли получиться) как это реализовать? я не знаю,...

15
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
02.04.2018, 14:14
Цитата Сообщение от limas94 Посмотреть сообщение
Что следует использовать при выполнении сего задания
C++
1
2
3
4
struct nameStruct
{
    params
}
В принципе всё.
0
0 / 0 / 1
Регистрация: 03.03.2018
Сообщений: 64
02.04.2018, 16:15  [ТС]
Часть кода написано. Красиво, но верной ли дорогой?
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
#include <iostream>
#include <vector>
 
int n = 4; //элементов в векторе
 
struct tabl {
    std::string name; //название таблицы
    std::string spekt; //спектральный класс
    std::string massa; //приблизительная масса (отн.Солнца)
    std::string chast; //часть %
    std::string chislennost; //численность
};
 
int main () {
    
    tabl page1 = {
    "Приблизительное количество звёзд разных спектральных классов в Галактике",    
    "Спектральный класс", "Приблизительная масса (отн.Солнца)",
    "Часть %", "Численность"
    };
 
    std::vector <std::string> mass_o(n);
    std::vector <std::string> mass_f(n);
    std::vector <std::string> mass_m(n);
    
    mass_o[0] = "O";
    mass_o[1] = "32";
    mass_o[2] = "0.00002";
    mass_o[3] = "55.000";
    
    mass_f[0] = "F";
    mass_f[1] = "1.25";
    mass_f[2] = "2.9";
    mass_f[3] = "12.000.000.000";   
 
    mass_m[0] = "M";
    mass_m[1] = "0.2";
    mass_m[2] = "73.2";
    mass_m[3] = "293.000.000.000";
}
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
02.04.2018, 16:26
Дорога почти верная, но немного не так.
Предполагаю, что работа с таблицей через Структуру подразумевает наличие структуры, содержащий конкретно значения параметров, а не шапку таблицы.
Т.е. создаешь структуру, в ней находятся 4 параметра, которые отвечают конкретно за значения.
А "Таблица" лишь имитация вывода в консоли. Работа осуществляться будет непосредственно со структурами, т.е. добавление, удаление, и тп.
Можно организовать как списком, так и вектор - это уже как сочтешь нужным и более близким тебе.
Если не понятно объяснил, отпиши, я поясню
0
0 / 0 / 1
Регистрация: 03.03.2018
Сообщений: 64
02.04.2018, 16:33  [ТС]
SuperKir, возможно стоит уточнить. Структура у меня есть, то есть шапка. Для этой этой структуры есть значения, записанные в векторе. Или чего-то не так понимаю?
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
02.04.2018, 16:35
limas94, вот именно, что не шапка должна быть в структуре, а данные, которые будут потом выводиться.
А вот сами структуры с данными уже можно хранить в векторе, дабы не мучиться с выделением памяти.
0
0 / 0 / 1
Регистрация: 03.03.2018
Сообщений: 64
02.04.2018, 16:46  [ТС]
SuperKir, то есть мы создаём 3 структуры (всего 3 класса). В каждой структуре есть ряд значений для того или иного класса. Например вот вместо вектора mass_o есть данная структуру. Так?
C++
1
2
3
4
5
6
struct znach_o {
    char spekt_o;
    float massa_o;
    float chast_o;
    int chislennost_o;
};
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
02.04.2018, 16:52
limas94, так, представь само задание, пожалуйста (именно что должно быть), а то ты оперируешь какими-то 3 непонятными мне классами и значениями.
0
0 / 0 / 1
Регистрация: 03.03.2018
Сообщений: 64
02.04.2018, 16:53  [ТС]
SuperKir,
Миниатюры
Реализовать работу с таблицей через структуры  
0
Форумчанин
Эксперт CЭксперт С++
 Аватар для MrGluck
8216 / 5047 / 1437
Регистрация: 29.11.2010
Сообщений: 13,453
02.04.2018, 17:00
Цитата Сообщение от limas94 Посмотреть сообщение
работу с таблицей
Что вы вкладываете в понятие таблица? Откуда она берётся? БД/Excel?
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
02.04.2018, 17:07
limas94, Вот, теперь всё понятно. Все поля для каждого класса (подразумевается спектрального) имеют совершенно одинаковые параметры: масса, %, численность. Посему, нам хватит всего одной структуры для всех.
Вот как пример, а вывод имитированной таблицы уже на твоих плечах, как собственно добавление/удаление (но оно элементарное).
P.s. для вывода конкретных значение не в форме с "e+" нужно манипулятор вывода сделать (гугли в сторону iomanip).

Если конкретно данные тянуть из каких-то таблиц, то суть остается такой же, но подтягивать данные извне.

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
#include "iostream"
#include <string>
#include <vector>
 
using namespace std;
 
struct Spectrum
{
    string className;
    double weight;
    double percent;
    double strength;
};
 
int main()
{
    setlocale(LC_ALL, "");
    vector<Spectrum> specs;
    Spectrum temp;
    temp.className = "A";
    temp.weight = 32.0;
    temp.percent = 0.00002;
    temp.strength = 25500.0;
    specs.push_back(temp);
 
    temp.className = "B";
    temp.weight = 1.25;
    temp.percent = 2.9;
    temp.strength = 12000000000.0;
    specs.push_back(temp);
 
    cout << "Приблизительное количество звёзд разных спектральных классов в Галактике" << endl;
    cout << "Спектральный класс\t" << "Приблизительная масса (отн.Солнца)\t" << "Часть %\t" << "Численность" << endl;
 
    for (int i=0; i<specs.size(); i++)
    {
        cout << specs[i].className << "\t\t\t" << specs[i].weight << "\t\t\t\t\t" << specs[i].percent << "\t" << specs[i].strength << endl;
    }
    return 0;
}
Миниатюры
Реализовать работу с таблицей через структуры  
0
0 / 0 / 1
Регистрация: 03.03.2018
Сообщений: 64
02.04.2018, 17:12  [ТС]
SuperKir, спасиб, но не стоило код писать, надо чтоб человек сам это делал, при этом давая ему подсказки
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
02.04.2018, 17:16
limas94, да-к тут по сути-то, и нет ничего. Структура объявлена да ее поля заполнены.
Дальше дело за тобой, необходимо сделать то следующее:
1. Меню (ведь подразумевается постоянное добавление/удаление/вывод).
2. Собственно методы Удаление/Добавление/Вывода
3. Формирование таблицы (здесь так скажем "красиво вывести").

Так что, работка еще есть, хоть и быстрая по сути)
0
0 / 0 / 1
Регистрация: 03.03.2018
Сообщений: 64
02.04.2018, 17:19  [ТС]
SuperKir, по поводу меню. Получается, что мне надо реализовать несколько команд для управления таблицей, так?
0
475 / 427 / 290
Регистрация: 10.03.2015
Сообщений: 1,782
02.04.2018, 17:21
limas94, да, оберни в цикл (например while (event) ...), который будет выводить пункты меню и ожидать ввод команды, потом switch`ем по event смотришь, что за команда введена и вызываешь нужный метод, пока, допустим, событие не будет равно 0.
Как самый простой вариант.
0
0 / 0 / 1
Регистрация: 03.03.2018
Сообщений: 64
02.04.2018, 17:26  [ТС]
SuperKir, хорошо, попробую ,если что - напишу
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.04.2018, 17:26
Помогаю со студенческими работами здесь

Как правильно реализовать работу клиентских машин через IP прокси?
Дано Сервер Windows Server 2012R2 с Hiper-V, на нём настроено несколько виртуальных машин - Windows 7макс. Сеть между виртуальными...

Вывод структуры таблицей
Добрый день. Как можно реализовать вывод структуры таблицей? Структура: struct avto{ char *name; char *fam; char...

Организавать работу с таблицей розыгрыша лотереи
Ввести таблицу розыгрыша, упорядочить ее по убыванию серии, вывести упорядоченную таблицу на экран, циклически запрашивать серию и для...

Как организовать работу с таблицей связанной с самой сабой
Есть таблица &quot;Человек&quot;, с атрибутами (кроме всего прочего) мать и отец. Это ссылки на данные из этой же таблицы. Хотелось бы организовать...

Реализовать форму с таблицей на сайте привязаную к базе
Всем привет, Нужен совет опытных людей сам в этом не шарю. Задача: Нужно как-то реализовать некую форму с таблицой на сайте...


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

Или воспользуйтесь поиском по форуму:
16
Ответ Создать тему
Новые блоги и статьи
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru