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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
mkth
0 / 0 / 0
Регистрация: 07.02.2010
Сообщений: 18
#1

Работа со структурой - C++

24.05.2011, 22:04. Просмотров 514. Ответов 9
Метки нет (Все метки)

Приветствую Всех. Вот какая проблема у меня возникла... Есть структура вида
Bash
1
2
3
4
5
PC RAM 4096 HDD 750 SSD 120 FLASH 4 DVD-RAM 8
 
NOTEBOOK RAM 2048 HDD 500 SSD 80 FLASH 2 DVD-RAM 4
 
NETBOOK RAM 1024 HDD 250 SSD 40 FLASH 1 DVD-RAM 2
Я ее определяю так
C++
1
2
3
4
5
6
7
struct computer
{
    char PC [2];int PCValue;char HDD [3];int HDDValue;char SSD [3];int SSDValue;char FLASH[5];int FLASHValue;char DVDRAM[7];int DVDRAMValue;
    char NOTE [8];int NOTEValue;char HDD2 [3];int HDDValue2;char SSD2 [3];int SSDValue2;char FLASH2[5];int FLASHValue2;char DVDRAM2[7];int DVDRAMValue2;
    char NET [7];int NETValue;char HDD3 [3];int HDDValue3;char SSD3 [3];int SSDValue3;char FLASH3[5];int FLASHValue3;char DVDRAM3[7];int DVDRAMValue3;
 
} comp [30];
Вопрос, каким образом считать ее, чтобы можно было с ней дальше работать? Подскажите пожалуйста
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2011, 22:04     Работа со структурой
Посмотрите здесь:

Работа со структурой - C++
И так я написал одну из очередных программ для лабораторных работ, но опять возникла проблема. Сам код: #include "stdafx.h" #include...

работа со структурой - C++
Создать две структуры Time и Time2 с полями "часы", "минуты", "секунды" и посчитать, в какой из структур больше...

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

Работа со структурой при вычислении нормали - C++
Есть структура, которая вычисляет нормаль к треугольной поверхности. Вобщем-то таких поверхностей, для которых нужно посчитать нормали -...

Работа со структурой, не знаю как исправить - C++
помогите пожалуйста есть структура и массив структуры надо данные массива передать в функцию помогите исправить ошибки, в работе со...

Работа со структурой для хранения данных о ноутбуках - C++
Здравствуйте, уважаемые программисты. Очень нужна помощь. Попытался написать программу и там куча ошибок Для хранения данных о...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
ЛеЖиК)
157 / 60 / 1
Регистрация: 29.04.2011
Сообщений: 631
24.05.2011, 22:26     Работа со структурой #2
помоему (не знаю что ты хочешь делать)-это бред
я бы делал так:
C++
1
2
3
4
5
6
7
8
9
struct komp
{
char* NAME;
int RAM;
int HDD;
int SSG;
int FLASH;
int DVD-RAM;
}comp[20];
а дальше уже ее заполняешь:
C++
1
2
3
4
5
6
comp[0].NAME="PS";
comp[0].RAM=4096;
// .... и так далее
// ... потом
comp[1].NAME="NOTEBOOK";
comp[1].RAM=2048;
mkth
0 / 0 / 0
Регистрация: 07.02.2010
Сообщений: 18
24.05.2011, 23:12  [ТС]     Работа со структурой #3
Спасибо, я сам знаю, что это бред... Но, так звучит задание - считать структуру с файла, поработать с ней (запись, удаление,добавление, сортировка)... И, кстати, есть ли норм. альтернативы функциям gotoxy и очистка консоли в vc2010 c++?
fidzhi
5 / 5 / 1
Регистрация: 16.02.2011
Сообщений: 45
25.05.2011, 00:56     Работа со структурой #4
Цитата Сообщение от mkth Посмотреть сообщение
Спасибо, я сам знаю, что это бред... Но, так звучит задание - считать структуру с файла, поработать с ней (запись, удаление,добавление, сортировка)... И, кстати, есть ли норм. альтернативы функциям gotoxy и очистка консоли в vc2010 c++?
C++
1
2
3
4
5
6
7
void gotoxy( int col, int row ) {
   
   COORD pos;
   pos.X = col; pos.Y = row;
   SetConsoleCursorPosition( hOut, pos );
 
}
C
1
 и system("cls")
не предлагать?))
mkth
0 / 0 / 0
Регистрация: 07.02.2010
Сообщений: 18
25.05.2011, 04:33  [ТС]     Работа со структурой #5
C++
1
gotoxy( 1, 1 );
В борланд си++, а в висуал студио просто извращение какое то... Придется как то по другому выкручиваться, блин...

Добавлено через 1 час 11 минут
Вот как пока выкрутился из положения, но в коде реализовано не все (прмиер нашел тут на форуме)
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
#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <fstream>
#include <ctime>
#include <iomanip>
#include "stdio.h"
#include "windows.h"
 
using namespace std;
 
int kolvozapis;
 
void sozd();
void vvod();
void sort();
void poisk();
void udalenie();
 
void SetColor(int text, int background)
{
   HANDLE hStdOut = GetStdHandle(STD_OUTPUT_HANDLE);
   SetConsoleTextAttribute(hStdOut, (WORD)((background << 4) | text));
}
 
struct computer
{
    char NAME [8];int RAM;char HDD [3];int HDDValue;char SSD [3];int SSDValue;char FLASH[5];int FLASHValue;char DVDRAM[7];int DVDRAMValue;
 
} comp [20];
 
void main()
{
    setlocale (0,"");
 
char a;
 
    while( 1 )
    {
        cout << "\tГЛАВНОЕ МЕНЮ\n";
        cout << "1-Создать файл\n\r2-Добавить запись в файл\n\r3-Отсортировать записи\n\r4-Поиск\n\r5-Удаление\n\r6-Выход\n";
 
        cin >> a;
 
        switch( a )
        {
            case '1':
                sozd();
                break;
            case '2':
                vvod();
                break;
            /*case '3':
                sort();
                break;
            case '4':
                poisk();
                break;
            case '5':
                udalenie();
                break;*/
            case '6':
                exit(1);
        }
    }
}
 
void sozd()
{
    cout << "Создан файл - out.txt";
    cout << "\n\Введите количество записей, которые будут помещены в файл";
    cin >> kolvozapis;
    FILE *zap;
 
    zap = fopen( "Zap.txt", "w" );
    fprintf( zap, "%i", kolvozapis );
    fclose( zap );
 
    FILE *my;
    my = fopen( "out.txt", "w" );
    for( int i = 0; i < kolvozapis; i++ )
    {
        cout << "\n Введите тип ПК ";
        cin >> comp[i].NAME;
        cout << "\n Введите объем оперативной памяти ";
        cin >> comp[i].RAM;
        cout << "\n Введите объем жесткого диска ";
        cin >> comp[i].HDD;
        cout << "\n Введите объем быстрой твердотельной памяти ";
        cin >> comp[i].SSD;
        cout << "\n Введите объем флеш устройства ";
        cin >> comp[i].FLASH;
        cout << "\n Введите объем оптического диска в компьютере ";
        cin >> comp[i].DVDRAM;
        fwrite( &comp[i], sizeof( comp[i] ), 1, my );
        system ("cls");
    };
    fclose( my );
}
 
void vvod()
{
int n, i;
    cout << "\n\Введите количество добавляемых записей";
    cin >> n;
    FILE *my;
    my = fopen( "input.txt", "a" );
    for( i = 0; i < n; i++ )
    {
        cout << "\n Введите тип ПК ";
        cin >> comp[i].NAME;
        cout << "\n Введите объем оперативной памяти ";
        cin >> comp[i].RAM;
        cout << "\n Введите объем жесткого диска ";
        cin >> comp[i].HDD;
        cout << "\n Введите объем быстрой твердотельной памяти ";
        cin >> comp[i].SSD;
        cout << "\n Введите объем флеш устройства ";
        cin >> comp[i].FLASH;
        cout << "\n Введите объем оптического диска в компьютере ";
        cin >> comp[i].DVDRAM;
        fwrite( &comp[i], sizeof( comp[i] ), 1, my );
        system("cls");
    };
    fclose( my );
 
    FILE *zap;
    zap = fopen( "Zap.txt", "r+" );
    fscanf( zap, "%i", &kolvozapis );
    fclose( zap );
 
    zap = fopen("Zap.txt","w");
    kolvozapis = kolvozapis + n;
    fprintf( zap, "%i", kolvozapis );
    fclose( zap );
}
Вопрос у меня такого рода, как добавить к значениям собственно HDD, SSD, RAM сами эти слова, ну то есть, чтобы выводилось в виде
Bash
1
NOTEBOOK RAM 2048 HDD 500 SSD 80 FLASH 2 DVD-RAM 4
dampir_sanek
150 / 148 / 21
Регистрация: 09.02.2010
Сообщений: 407
25.05.2011, 04:44     Работа со структурой #6
Цитата Сообщение от mkth Посмотреть сообщение
Вопрос у меня такого рода, как добавить к значениям собственно HDD, SSD, RAM сами эти слова, ну то есть, чтобы выводилось в виде
Bash
1
NOTEBOOK RAM 2048 HDD 500 SSD 80 FLASH 2 DVD-RAM 4
C++
1
cout << comp[i].NAME << "RAM" << comp[i].RAM << "HDD" << comp[i].HDD << "SSD" << comp[i].SSD << "FLASH" << comp[i].FLASH << DVD-RAM << comp[i].DVD-RAM;
mkth
0 / 0 / 0
Регистрация: 07.02.2010
Сообщений: 18
25.05.2011, 04:54  [ТС]     Работа со структурой #7
Прошу прощения, я неточно выразился, я имел ввиду, чтобы это записывалось в файл, а не выводилось в консоль
dampir_sanek
150 / 148 / 21
Регистрация: 09.02.2010
Сообщений: 407
25.05.2011, 05:04     Работа со структурой #8
mkth, тогда лучше используй Си++ способ работы с файлами, то есть fstream. Ты же используешь способ Си FILE *fp в программе на Си++. Это неверно.
pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
25.05.2011, 05:51     Работа со структурой #9
в консоли можешь перенаправить stdout в файл, так даже лучше будет
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2011, 22:49     Работа со структурой
Еще ссылки по теме:

Работа со структурой данных, чтение/сохранение во внешний файл - C++
помогите разобраться с задачкой!! {Написать программу, представляющую собой простейшую систему для управления данными. Исходные данные...

Работа с динамической структурой: Числа записываются в обратном порядке - C++
ПРоблема в следующем я отбираю нужные мне числа и записываю их, но, к сожалению, эти числа записываюются в обратном порядке. И при выводе...

Работа с структурой в С++ (код есть, нужно немного доработать) - C++
Приветствую. Есть задание: Создать структуру STUDENT, которая имеет поля: 1. NAME. ФИО. 2. GROUP - номер группы. 3. SES -...

Работа со структурой "Библиотека" - C++
Приветствую друзья. Пишу курсовую работу &quot;Библиотека&quot; и забыл один момент. Например у меня есть меню, если я нажимаю кнопку 1, я работаю с...


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

Или воспользуйтесь поиском по форуму:
mkth
0 / 0 / 0
Регистрация: 07.02.2010
Сообщений: 18
25.05.2011, 22:49  [ТС]     Работа со структурой #10
Спасибо, мне нужно и в консоль и в файл одновременно... А как считать данные из файла, не подскажите?
Yandex
Объявления
25.05.2011, 22:49     Работа со структурой
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru