Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Оформить вывод в соответствии с образцом код есть. #include <iostream> #include <string> #include <sstream> #include <Windows.h> #include <locale> using namespace std; int number_of_words(string _str){ int count = 0; https://www.cyberforum.ru/ cpp-beginners/ thread901082.html Определить количество элементов матрицы меньших ее среднеарифметического элементов C++
Дана матрица А . Определить количество элементов матрицы, меньших среднеарифметического этой матрицы.
C++ Сделать масивом.Дано 5 действительных чисел. Вычислить сумму квадратных корней модулей этих чисел https://www.cyberforum.ru/ cpp-beginners/ thread901075.html
Дано 5 действительных чисел. Вычислить сумму квадратных корней модулей этих чисел
C++ упорядочить по четности (с использованием функции) //Пусть задана матрица. Рассматривая ее как вектор строк, //упорядочьте ее по количеству нечетных элементов в каждой строке #pragma argsused #include <iostream.h> #include <cmath> #include... https://www.cyberforum.ru/ cpp-beginners/ thread901068.html
C++ Определить количество рабочих, виконоалы плановое задание от 101% до 110% и более 110%, а также определить их порятковий номер
Дано процентный показатель выполнения планового задания каждым рабочим бригады (от 60% до 115%). Определить количество рабочих, виконоалы плановое задание от 101% до 110% и более 110%, а также...
C++ Рекурсивно обчислити добуток n ≥ 2 співмножників (n парне): у = (2/1)*(2/3)*(4/3)*(4/5)*(6/5)*(6/7).Рекурсивно обчислити добуток n ≥ 2 співмножників https://www.cyberforum.ru/ cpp-beginners/ thread901065.html
Рекурсивно обчислити добуток n ≥ 2 співмножників (n парне): у = (2/1)*(2/3)*(4/3)*(4/5)*(6/5)*(6/7)...
C++ Дан исходный текстовый файл. Записать его строки в выходной файл в перевёрнутом виде Дан исходный текстовый файл. Записать его строки в выходной файл в перевёрнутом виде https://www.cyberforum.ru/ cpp-beginners/ thread901060.html C++ Ввести з клавіатури число К. До елементів К-го рядка додати відповідні елементи 1-го рядка. Вивести га екран початкову і отриману матриці
Ввести з клавіатури число k. До елементів k-го рядка додати відповідні елементи 1-го рядка. Вивести га екран початкову і отриману матриці. Официальными языками форума являются русский и английский...
C++ 1. Структура "Фильм": - название; - режиссер; - страна; - приносимая прибыль. Удалить 2элемента из конца файла, добавить элемент после элемента с https://www.cyberforum.ru/ cpp-beginners/ thread901057.html
1. Структура "Фильм": - название; - режиссер; - страна; - приносимая прибыль. Удалить 2элемента из конца файла, добавить элемент после элемента с указанным названием 2. Структура...
C++ Найти самое короткое слово в файле F https://www.cyberforum.ru/ cpp-beginners/ thread901055.html
Найти самое короткое слово в файле F
C++ Визначити кількість слів в тексті, що мають один, два та три склади. Слова в тексті можуть бути розділені лише за допомогою одного символу пробілу
Визначити кількість слів в тексті, що мають один, два та три склади. Слова в тексті можуть бути розділені лише за допомогою одного символу пробілу. Официальными языками форума являются русский и...
C++ Сортировка 2-х одномерных массивов в 1 упорядоченный массив по возрастанию https://www.cyberforum.ru/ cpp-beginners/ thread901045.html
Задача такая, на форуме где то была уже. Но суть совсем другая. Есть два упорядоченных массива одномерных массива А(N) и B(M). Соединить эти массивы в один С(N+M) упорядоченный массив. Массивы А и В...
48 / 4 / 0
Регистрация: 09.10.2012
Сообщений: 66
0

Функции,файлы, структуры - C++ - Ответ 4716721

13.06.2013, 20:40. Показов 966. Ответов 2
Метки (Все метки)

Для хранения данных о планшетных сканерах описать структура вида:
C++
1
2
3
4
5
6
7
8
struct scan_info{
char model[25]; //наименование
int price; //цена
double x_size; //горизонтальный размер области сканирования
double y_size; //вертикальный размер области сканирования
int optr; оптическое разрешение
int grey; //число градаций серого
};
1)Написать функцию, которая записывает в бинарный файл данные о сканере из приведенной структуры. Структура файла: в первых двух байтах размещается значение типа int, определяющее количество сделанных в файл записей; далее без пропусков размещаются записи о сканерах.

2)Написать функцию, которая вводит данные о сканере с клавиатуры в структуру типа scan_info, и если данные об этом сканере отсутствуют в файле, помещает содержимое структуры в конец файла; в противном случае выдает соответствующее сообщение.

3)Привести пример программы, создающей файл с данными о сканерах (данные вводятся из текстового файла) - 6-8 записей и дополняющий файл с записями о 2-3 сканерах, вводимых с клавиатуры.
Все необходимые данные для функций должны передаваться им в качестве параметров. Использование глобальных переменных в функциях не допускается.

Вот что получилось... Нужна помощь.
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
137
138
139
140
141
142
143
144
145
146
147
148
#include "stdafx.h"
#include <iostream>
#include "stdio.h"
#include "stdlib.h"
using namespace std;
 
struct scan_info {
    char model[25]; // наименование модели
    int price;  // цена
    double x_size;  // горизонтальный размер области сканирования
    double y_size; // вертикальный размер области сканирования
    int optr; // оптическое разрешение
    int grey; // число градаций серого
};
int ShowMenu();
void CreateFile(int *n); 
void ViewFile();
void D(int *n);
 
int ShowMenu() {
    setlocale(0,"rus");
    char ch = '\0';
    cout << "1 : Создайте файл\n"; 
    cout << "2 : Просмотр файлов\n";
    cout << "3 : Добавить запись\n";
    cout << "4 : Выход\n";
    ch = getchar();     
    return atoi(&ch); // строка в целое число
}
int main() {
int n;
    while (1) { 
        switch( ShowMenu() ) {  
        case 1: CreateFile(&n); break;
        case 2: ViewFile(); break; 
        case 3: D(&n); break;
        case 4: return 0; 
        default: break;
        };
    };
}
void CreateFile(int *n) {   
    FILE *data;
    char *db = "file.bin";
    data = fopen(db, "wb");
    do {
        cout << endl << "Введите количество записей (6-8): ";    
        cin >> *n;
    }
    while((*n < 6) || (*n > 8));
    scan_info scan;
    fwrite(&n, sizeof(n), 1, data);
    for(int i = 1; i <= *n; i++) {
        cout << "Сканер N: " << i << endl;
        cout << "Модель: "; 
        cin >> scan.model;
        cout << "Цена: "; 
        cin >> scan.price;
        cout << "Горизонтальная размер области сканирования: "; 
        cin >> scan.x_size;
        cout << "Вертикальный размер области сканирования: "; 
        cin >> scan.y_size;
        cout << "Оптическое разрешение: "; 
        cin >> scan.optr;
        cout << "Число градаций серого: "; 
        cin >> scan.grey;
        cout << endl;
        fwrite(&scan, sizeof(scan), 1, data);
    };
    fclose(data);  
    cout << "Файл  file.bin  создан." << endl << endl;
    getchar();
    return;
}
 
void ViewFile() {
    FILE *data1;
    char *db1 = "file.txt";
    data1 = fopen(db1, "rb");
    if( data1 == NULL ) {
        cout << "Нельзя открыть файл для чтения." << endl << endl;
        getchar();
        return;
    } ;
    int n;
    // прочитали количество записей в файле
    fread(&n,sizeof(n),1,data1);
    //  выводим на экран через массив
    cout << endl << "Количество сканеров: " << n << endl << endl;
    scan_info* s = new scan_info[n];
    for(int g = 0; g < n; g++) 
        fread(&s[g],sizeof(scan_info),1,data1);
    for(int g = 0; g < n; g++) {
        cout << "Сканер N: " << g+1 << endl;
        cout << "Модель: " << s[g].model << endl;
        cout << "Цена: " << s[g].price << endl;
        cout << "Горизонтальный размер области сканирования: " << s[g].x_size << endl;
        cout << "Вертикальный размер области сканирования: " << s[g].y_size << endl;
        cout << "Оптическое разрешение: " << s[g].optr << endl;
        cout << "Число градаций серого: " << s[g].grey << endl;
        cout << endl;
    };
    fclose(data1);
    cout << endl << endl;
    getchar();
    return;
}
 
void D(int *n) {
    FILE *data;
    char *db = "file.bin";
    data = fopen(db, "ab+");
    if( data == NULL ) {     
        cout << "Не удалось открыть файл для добавления." << endl << endl;  
        return;
    };
    int k;
    do{
        cout << endl << "Введите количество дополнительных записей(2-3) ";    
        cin >> k;
    }
    while((k < 2) || (k > 3));
    n=n+k;
    scan_info scan;
    fwrite(&n, sizeof(n), 1, data);
    for(int i = 1; i <= k; i++) {
        cout << "Дополнительный сканер N: " << i<< endl;
        cout << "Модель: "; 
         cin.clear();cin.sync();gets(scan.model);
        cout << "Цена: "; 
        cin >> scan.price;
        cout << "Горизонтальная размер области сканирования: "; 
        cin >> scan.x_size;
        cout << "Вертикальный размер области сканирования: "; 
        cin >> scan.y_size;
        cout << "Оптическое разрешение: "; 
        cin >> scan.optr;
        cout << "Число градаций серого: "; 
        cin >> scan.grey;
        cout << endl;
        fwrite(&scan, sizeof(scan), 1, data);
    }
 
    fclose(data);  
    cout << "Запись добавлена." << endl << endl;
    getchar();
    return;
}


Вернуться к обсуждению:
Функции,файлы, структуры C++
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.06.2013, 20:40
Готовые ответы и решения:

Структуры, функции и файлы
Для хранения данных о ноутбуках описать структуру вида, описанного в варианте 10. Написать...

Функции,файлы, структуры
Для хранения данных о планшетных сканерах описать структура вида: struct scan_info{ char model;...

структуры, функции, файлы
Доброго времени суток всем, пожалуйста помогите! 1. В одном списке информация про студентов,...

Структуры,файлы,функции
Задача:дан массив структур с координатами точек x и y соответственно.При помощи функций определить:...

2
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.06.2013, 20:40
Помогаю со студенческими работами здесь

Структуры, функции и файлы
Для хранения данных о цветных планшетных сканерах описать структуру вида: struct scan_info{ ...

Оператор if и структуры. Возвращение структуры из функции
Здравствуйте, имеется такая вот функция. void InputStructEmployee (int StructSize) { ...

Структуры и файлы
Помогу решить проблему. С записью в файл все нормально, но когда считываю с файла возникает ошибка...

Структуры и файлы
Ребята, спасите!!! Используя структурный тип данных, создать базу данных и организовать с ней...

0
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru