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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Вычислить значения функции F на интервале http://www.cyberforum.ru/cpp-beginners/thread898129.html
Добрый вечер, ув. программисты! Мне осталась последняя программа, которую нужно написать. Но появилась такая проблема - я не могу её написать на C++. Помогите, пожалуйста, очень надо на завтра, последняя сдача программ. Заранее спасибо. Вот сама программа: Вычислить и вывести на экран в виде таблицы значения функции F на интервале от Хнач. до Хкон. с шагом dX....
C++ Дана целочисленная квадратная матрица 9х9. Определить: (2) Дана целочисленная квадратная матрица 9х9. Определить: 1) сумму элементов в тех строках, которые содержат хотя бы один отрицательный элемент; 2) минимум среди сумм элементов диагоналей, параллельных главной диагонали матрицы. http://www.cyberforum.ru/cpp-beginners/thread898123.html
C++ Вычислить по формуле
Добрый вечер, ув. программисты! Очень нужна Ваша помощь. Программа легкая, но я не знаю как написать её на C++. Заранее спасибо. Тема такая: Дано натуральное n. Вычиcлить:
C++ Коментарии
#include <locale> #include <stdio.h> #include <stdlib.h> #include <conio.h> void main() { setlocale(LC_ALL,"Russian"); int N,i,kmax,numplay,numk,kol,*A; bool flag1,flag2,flag;
C++ Дана матрица. Переставляя ее строки и столбцы, переместить наибольший элемент в верхний левый угол http://www.cyberforum.ru/cpp-beginners/thread898101.html
Помогите пожалуйста студенту выйти на стипендию)) напишите программу Дана матрица NxM. Переставляя ее строки и столбцы, переместить наибольший элемент в верхний левый угол. Определить можно ли таким же образом поместить минимальный элемент в нижний правый угол.
C++ Почему запускаемый файл (.exe) на другом ПК не запускается? Добрый вечер! Собственно, по сабжу Написанная программка не запускается на чужом ПК, кидаю exe-шный файл с папки "Projects", что в "Моих документах". Выдаёт ошибку. Что сделать, чтобы запускаемый файл запускался на посторонних ПК? подробнее

Показать сообщение отдельно
gulllak
44 / 0 / 0
Регистрация: 09.10.2012
Сообщений: 66
11.06.2013, 01:31     Функции,файлы, структуры
Для хранения данных о планшетных сканерах описать структура вида:
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;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 19:58. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru