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

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

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

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

24.05.2011, 22:04. Просмотров 521. Ответов 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];
Вопрос, каким образом считать ее, чтобы можно было с ней дальше работать? Подскажите пожалуйста
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
24.05.2011, 22:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа со структурой (C++):

Работа со структурой - C++
#include <iostream> #include <vector> #include <string> using namespace std; struct Student { string Name; int...

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

Работа со структурой - C++
Прошу помочь с программой. Сам в программировании чуть выше пола. Если можно с комметами. Для определенной пользователем структуры...

Работа со структурой - C++
1. Описать структуру с именем DATA, содержащую следующие поля: • Number – число; • Month – месяц; • Year – год. 2. Написать...

Работа со структурой - C++
Нужна ваша помощь Очень срочно!1 ПОмогите пожалуйста) ПРоблема в следующем :даны точки : (0,0),(0,2),(1,1),(4,2),(2,4)(5,3). Нужно...

Работа со структурой - C++
#include <stdio.h> #include <stdlib.h> #include <math.h> struct pre { char a;//familiya double b;//god rogdeniya ...

9
ЛеЖиК)
157 / 60 / 1
Регистрация: 29.04.2011
Сообщений: 633
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;
0
mkth
0 / 0 / 0
Регистрация: 07.02.2010
Сообщений: 18
24.05.2011, 23:12  [ТС] #3
Спасибо, я сам знаю, что это бред... Но, так звучит задание - считать структуру с файла, поработать с ней (запись, удаление,добавление, сортировка)... И, кстати, есть ли норм. альтернативы функциям gotoxy и очистка консоли в vc2010 c++?
0
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")
не предлагать?))
0
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
0
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;
0
mkth
0 / 0 / 0
Регистрация: 07.02.2010
Сообщений: 18
25.05.2011, 04:54  [ТС] #7
Прошу прощения, я неточно выразился, я имел ввиду, чтобы это записывалось в файл, а не выводилось в консоль
0
dampir_sanek
150 / 148 / 21
Регистрация: 09.02.2010
Сообщений: 407
25.05.2011, 05:04 #8
mkth, тогда лучше используй Си++ способ работы с файлами, то есть fstream. Ты же используешь способ Си FILE *fp в программе на Си++. Это неверно.
0
pito211
186 / 173 / 8
Регистрация: 22.03.2010
Сообщений: 612
25.05.2011, 05:51 #9
в консоли можешь перенаправить stdout в файл, так даже лучше будет
0
mkth
0 / 0 / 0
Регистрация: 07.02.2010
Сообщений: 18
25.05.2011, 22:49  [ТС] #10
Спасибо, мне нужно и в консоль и в файл одновременно... А как считать данные из файла, не подскажите?
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
25.05.2011, 22:49
Привет! Вот еще темы с ответами:

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

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

Работа со структурой - C++
Здравствуйте. Есть структура с данными о поезде. #include &quot;stdio.h&quot; #include &quot;conio.h&quot; #include &lt;iostream&gt; using namespace std; ...

Работа с файлами и структурой - C++
Разработать программу на С, позволяющую: 1. Добавлять данные структуры с указанными полями в файл 2. Просматривать структуры из файла ...


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

Или воспользуйтесь поиском по форуму:
10
Yandex
Объявления
25.05.2011, 22:49
Ответ Создать тему
Опции темы

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