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

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

Восстановить пароль Регистрация
 
zhoonyo
Сообщений: n/a
12.11.2012, 22:59     Подскажите как доделать программу (хранение данных о сканерах) #1
Помогите довести до ума программу, буду оч благодарен!
**************************
Для хранения данных о планшетных сканерах описать структуру вида:
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;
}
//---------------------------------------------------------------------------
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.11.2012, 22:59     Подскажите как доделать программу (хранение данных о сканерах)
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

Текущее время: 21:08. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru