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

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

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

Подскажите как доделать программу (хранение данных о сканерах) - C++

12.11.2012, 22:59. Просмотров 413. Ответов 0
Метки нет (Все метки)

Помогите довести до ума программу, буду оч благодарен!
**************************
Для хранения данных о планшетных сканерах описать структуру вида:
struct sc_inf
{
char model[100]; //наименование модели
int price; //цена
double x_size; //горизонтальный размер области сканирования
double y_size; //вертикальный размер области сканирования
int optr; //оптическое разрешение
int grey; //число градаций серого
};
Написать функцию, которая записывает в бинарный файл данные о сканере из приведенной структуры. Структура файла: в первых двух байтах размещается значение типа int, определяющее количество сделанных в файл записей; далее без пропусков размещаются записи о сканерах.
Написатьь функцию, которая вводит данные о сканере с клавиатуры в структуру типа scan_infa, и если данные оь этом сканере отсутствуют в файле, помещает содержимое структуры в конец файла; в противном случае выдает соответствующее сообщение.
Привести пример программы, создающей файл с данными о сканерах (данные вводятся из текстового файла) - 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
//---------------------------------------------------------------------------
#include <iostream.h>
#include <tchar.h>
#include <conio.h>
#include <stdio.h>
#include <io.h>
#include <dos.h>
#include <cstring>
#include <system.hpp>
#include <string.h>
#include <vcl.h>
 
#pragma hdrstop
 
//---------------------------------------------------------------------------
 
#pragma argsused
int i,k;
int const n = 100;
struct sc_inf
{
    char model[100];    //наименование модели
    int price;          //цена
    double x_size;      //горизонтальный размер области сканирования
    double y_size;      //вертикальный размер области сканирования
    int optr;           //оптическое разрешение
    int grey;           //число градаций серого
};
 char *price = new char[100];
 char *x_size = new char[10];
 char *y_size = new char[10];
 char *optr = new char[100];
 char *grey = new char[100];
 
char *d = new char[100];
char *s = new char[100];
 
sc_inf scan;
FILE *LOGFILE;
 
void input (char Model[100])
    {
    sc_inf scan_info;
 
    LOGFILE = fopen("d:\\Documents\\note.txt", "a+");
 
    fputs (Model, LOGFILE);
 
    fputs ("\n", LOGFILE);
 
    cout << "Vvedite tsenu: ";
    cin >> scan_info.price;
    itoa (scan_info.price, price, 10);
    fputs(price, LOGFILE);
 
    fputs ("\n", LOGFILE);
 
    cout << "Vvedite gorizontalniy razmer obl. scanirovaniya: ";
    cin >> scan_info.x_size;
    x_size = gcvt (scan_info.x_size, 10, d);
    fputs(x_size, LOGFILE);
 
    fputs ("\n", LOGFILE);
 
    cout << "Vvedite vertikalniy razmer obl. scanirovaniya: ";
    cin >> scan_info.y_size;
    y_size = gcvt (scan_info.y_size, 10, s);
    fputs(y_size, LOGFILE);
 
    fputs ("\n", LOGFILE);
 
    cout << "Vvedite opticheskoe razreshenie: ";
    cin >> scan_info.optr;
    itoa (scan_info.optr, optr, 10);
    fputs(optr, LOGFILE);
 
    fputs ("\n", LOGFILE);
 
    cout << "Vvedite chislo gradaciy serogo: ";
    cin >> scan_info.grey;
    itoa (scan_info.grey, grey, 10);
    fputs(grey, LOGFILE);
 
    fputs ("\n", LOGFILE);
    fclose(LOGFILE);
    }
 
int _tmain(int argc, _TCHAR* argv[])
{
    char* s_model = new char[100];
    char snull[100];
 
    FILE *F = fopen("d:\\Documents\\note.txt", "a+");
 
    //for (int i = 0; i < k; i++)
    {
 
    cout << "Vvedite naimenovanie modeli: ";
    cin >> s_model;
 
    cout << endl << "vvedeno: " << s_model << endl;
    cout << "\n";
 
    while (!(feof(F)))
    {
 
    if (!(feof(F))) fgets(scan.model, 100, F); else break;
 
    cout << "Model: " << scan.model << endl;
 
    if (!(feof(F)))  fgets(snull, 100, F);
    if (!(feof(F)))  fgets(snull, 100, F);
    if (!(feof(F)))  fgets(snull, 100, F);
    if (!(feof(F)))  fgets(snull, 100, F);
    if (!(feof(F)))  fgets(snull, 100, F);
 
    if (strcmp(s_model, scan.model) == 0) {
    cout << "Dannaya model' yzhe zapisana" << endl;
 
    getch();
    { fclose(F); return 0; }
    }
 
    }
    input(s_model);
 
    }
 
    fclose(F);
 
    getch();
 
    return 0;
}
//---------------------------------------------------------------------------
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2012, 22:59
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Подскажите как доделать программу (хранение данных о сканерах) (C++):

подскажите как доделать программу - C++
#include&lt;iostream.h&gt; #include&lt;conio.h&gt; #include&lt;string.h&gt; using namespace std ; main() { int i=0,j=0; string...

Подскажите как доделать прогу - C++
Доброго времени суток) Помогите довести до ума программу, чтобы она работала в рамках одной проги 1) Находила наибольшую нечетную цифру....

Застрял.Подскажите как доделать. - C++
Напишите программу на &quot;родном&quot; С++, которая позволит ввести неограниченное количество значений и сохранить их в массив, размещенный в...

Доделать ввод исходных данных в программу - C++
Программа для решения нелинейных уравнений, методом дихотомии, касательных хорд, простых итераций. Ввод коэфициентов как ввод масива. То...

Cделать программу, реализующую учет, подсчет и хранение данных - C++
Подскажите! Закончил изучение книги - Дейтел: Как программировать на С++, в основном все ясно, а что не ясно - не критично, со временем...

Не понимаю как доделать программу - C++
Требования: нужно,организовать массив из тех чисел, которые входят в последовательность более одного раза. Вот я создал 2 массива,...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.11.2012, 22:59
Привет! Вот еще темы с ответами:

Объясните как доделать программу - C++
Вывести элементы последовательности целых чисел от 1 до 1000 сумма цифр в которых больше заданного значения. Фрагмент кода который удалось...

Киносеанс - хранение данных, замена данных, добавленных новых - C++
Вообщем задача : На киносеанс популярного кинофильма осуществляетсябронирование билетов. С помощью списка организовать продажу N билетов....

Доделать программу С++ - C++
Помогите пожалуйста доделать программу. Нужно , чтобы при вводе дробных чисел программа выдавала сообщение &quot;Нужно ввести целое число&quot; ...

Доделать программу - C++
Задание : Фамилия и инициалы, должность, год поступления на работу, зарплата. Создать массив объектов. Вывести: а) список работников,...


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

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Опции темы

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