Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 23.11.2009, 22:02   #11
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

а какие ошибки выдаёт? покажите весь код.
Цитата:
И следуюший вопрос: тогда я задания вообще непонимаю...
задание в том, чтобы хранить в файле данные. записываете информацию о сканерах, а потом по ключу ищете среди существующих структур в файле нужную вам
netrino вне форума Ответить с цитированием
Старый 23.11.2009, 23:17   #12
bpystep
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 180
По умолчанию

В принципе разобрался, только не могу понять почему не компилится:

Код:
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>

struct scan_info
{
	char model[25];	
	int price;	// цена
	double x_size;	
	double y_size;	
	int optr;	
	int grey;	
};

int ShowMenu()
{
    char ch = '\0';
    // рисуем меню
    puts("1 : Create a file"); 
    puts("2 : View a file");
    puts("3 : Search");
    puts("4 : Exit");
    // считываем выбор пользователя
    ch = getch();
    // возвращаем код выбранного меню
    return atoi(&ch);
}

int main()
{
   while (1) // выполняем в бесконечном цикле
   {  
      switch( ShowMenu() ) // показываем меню и проверяем что выбрал пользователь
      {  
         case 1: CreateFile(); break; // если 1 то создаём файл и заносим информацию
         case 2: ViewFile(); break; // если 2 то показываем содержимое файла
         case 3: Search(); break; // если три, то выполняем поиск
         case 4: return 0; // если 4 то выходим из программы
         default:  // если другая кнопка, ничего не делаем
              break;
      }
   }
}

void CreateFile()
{
	scan_info scan;
	int n = 0;

	FILE *data = fopen( db, "wb" );  // открываем файл на запись
    if( data == NULL )
    {
       // Если файл открыть/создать не удалось, то выводим соответствующую ошибку и выходим.
       puts("Could not open file for write."); getch();
       return;
    }

	// Запрашиваем количество записей
	printf("Skolko zapisey budem delat? ");    
	scanf("%d", &n);
		for(int i = 1; i <= n; i++)
		  {
			printf("\n Scaner #%d\n", i);
			ReadField("Model: ", &(scan.model)); // Считываем модель
			ReadField("Price: ", &(scan.price)); // Считываем цену
			ReadField("Gorizont: ", &(scan.x_size)); // Считываем горизонтальный размер области сканирования
			ReadField("Vertical: ", &(scan.y_size)); // Считываем вертикальный размер области сканирования
			ReadField("Optica: ", &(scan.optr)); // Считываем оптическое разрешение
			ReadField("Gradaciya: ", &(scan.grey)); // Считываем число градаций серого
			fwrite(&scan, sizeof(scan), 1, data);
		  }
    fclose(data); // закрываем файл
    printf("Data saved. Press any to continue...");
    getch();
}

void ViewFile()
{
	scan_info scan;
	FILE *data = fopen( db, "rb" ); // открываем файл на чтение
   if( data == NULL )
   {
      // Если файл открыть не удалось, то выводим соответствующую ошибку и выходим.
      puts("Could not open file for read. Press any to continue..."); getch();
      return;
   }

	// выводим шапку таблицы
   printf(" Model       Price       Gorizont       Vertical       Optica       Gradaciya");
while( 1 )
   {   
       // Считываем все структуры, пока не конец файла
       fread(&scan, sizeof(scan), 1, data);
       // Выводим считанные данные
       if( !feof(data))
       {
		   printf("\n %3s %15s %32s %10s %8s", scan.model, scan.price, scan.x_size, scan.y_size, scan.optr, scan.grey);
       }
       else
       {
           break;
       }
   }
   fclose(data); // закрываем файл
   printf("\n\nPress any to continue...");
   getch();
}

void Search()
{
	scan_info scan;
   char mod1[25];
   FILE *data = fopen( db, "rb" ); // открываем файл на чтение
   if( data == NULL )
   {
      // Если файл открыть не удалось, то выводим соответствующую ошибку и выходим.
      puts("Could not open file for read. Press any to continue..."); getch();
      return;
   }
   // Запрашиваем Название модели сканера. Для поиска всех его параметров.
   printf("Input Model Scaner: "); scanf(mod1); 
   
   // выводим шапку таблицы
   printf("\n Model       Price       Gorizont       Vertical       Optica       Gradaciya");
   while( 1 )
   {   
       // Считываем все структуры, пока не конец файла
       fread(&scan, sizeof(scan), 1, data);
       if( !feof(data) )
       {
            if( !strcmp( scan.model, mod1 ))
            {
                printf("\n %3s %15s %32s %10s %8s", scan.model, scan.price, scan.x_size, scan.y_size, scan.optr, scan.grey);
            }
       }
       else
       {
                break;
       }
   }
   fclose(data);
   printf("\n\nSearch completed. Press any to continue...");
   getch();
}
Ошибки:
Код:
(57) : error C2065: db: необъявленный идентификатор
(71) : error C3861: ReadField: идентификатор не найден
(31) : warning C4996: 'getch': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _getch. See online help for details.
по строкам:
31 строка:
Код:
// считываем выбор пользователя
    ch = getch();
57 строка:
Код:
FILE *data = fopen( db, "wb" );  // открываем файл на запись
71 строка:
Код:
ReadField("Model: ", &(scan.model)); // Считываем модель
Запомните, вы едете в Россию, поэтому когда компьютер попросит вас набрать пароль, наберите слово "Пароль"
bpystep вне форума Ответить с цитированием
Старый 24.11.2009, 00:28   #13
bpystep
Форумчанин
 
Регистрация: 25.02.2009
Сообщений: 180
По умолчанию

Код:
#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
#include <iostream>
#include <time.h>
using namespace std;

struct scan_info
{
	int model;	
	int price;	
	double x_size;	
	double y_size;
	int optr;	
	int grey;	
}scan;

int ShowMenu();
void CreateFile(); 
void ViewFile();
void Search(); 

int ShowMenu()
{
    char ch = '\0';

    puts("1 : Create a file"); 
    puts("2 : View a file");
    puts("3 : Search");
    puts("4 : Exit");

    ch = getch(); 
    
    return atoi(&ch); 
}

int main()
{
   while (1) 
   {  
      switch( ShowMenu() )
      {  
         case 1: CreateFile(); break;
         case 2: ViewFile(); break; 
         case 3: Search(); break; 
         case 4: return 0; 
         default: 
              break;
      }
   }
}

void CreateFile()
{
	
	int n = 0;

	FILE *data;
	char* db = "file.dat";
		data = fopen(db, "wb"); 
    if( data == NULL )
    {
      
       puts("Could not open file for write."); getch();
       return;
    }

	
	cout << endl << "Skolko zapisey budem delat? ";    
	cin >>n;
		for(int i = 1; i <= n; i++)
		  {
			printf("\n Scaner #%d\n", i);
			cout << endl << "Vvedite Model: \n"; cin >> scan.model;
			cout << endl << "Vvedite Price: \n"; cin >> scan.price;
			cout << endl << "Vvedite Gorizont: \n"; cin >> scan.x_size;
			cout << endl << "Vvedite Vertical: \n"; cin >> scan.y_size;
			cout << endl << "Vvedite Optica: \n"; cin >> scan.optr;
			cout << endl << "Vvedite Gradaciya: \n"; cin >> scan.grey;
			fwrite(&scan, sizeof(scan), 1, data);
		  }
    fclose(data); 
    printf("Data saved. Press any to continue...");
    getch();
}

void ViewFile()
{
	
	FILE *data;
	char* db = "file.dat";
		data = fopen(db, "rb"); 
   if( data == NULL )
   {
      puts("Could not open file for read. Press any to continue..."); getch();
      return;
   }

   cout << endl << "\n Model       Price       Gorizont       Vertical       Optica       Gradaciya";
while( 1 )
   {   
    
       fread(&scan, sizeof(scan), 1, data);
   
       if( !feof(data))
       {
		cout << endl << "  " << scan.model << "           " << scan.price << "           " << scan.x_size << "              " << scan.y_size << "              " << scan.optr << "            " << scan.grey;
       }
       else
       {
           break;
       }
   }
   fclose(data);
   cout << endl <<"\n\nPress any to continue...";
   getch();
}

void Search()
{
	
   int mod;
   FILE *data;
	char* db = "file.dat";
		data = fopen(db, "rb");
   if( data == NULL )
   {

      puts("Could not open file for read. Press any to continue...");
	  getch();
      return;
   }
   
   cout << endl << "Input Model Scaner: \n"; cin >> mod;
   
  
   cout << endl << "\n Model       Price       Gorizont       Vertical       Optica       Gradaciya";
   while( 1 )
   {   
       fread(&scan, sizeof(scan), 1, data);
	   if( !feof(data))
	   {
            if (scan.model == mod)
            {
                cout << endl << "  " << scan.model << "           " << scan.price << "           " << scan.x_size << "              " << scan.y_size << "              " << scan.optr << "            " << scan.grey;
            }
	   }
       else
       {
                break;
       }
   }
   fclose(data);
   cout << endl <<"\n\nSearch completed. Press any to continue...";
   getch();
}
Спасибо за помощь!
Запомните, вы едете в Россию, поэтому когда компьютер попросит вас набрать пароль, наберите слово "Пароль"
bpystep вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Структура Superlotles Помощь студентам 5 14.09.2009 23:29
структура hungry Общие вопросы C/C++ 11 25.06.2009 20:31
структура Cpluser Общие вопросы C/C++ 4 16.06.2009 17:42
Структура IF в С++ lebrosha Помощь студентам 3 22.05.2009 00:09
структура cr1mson Общие вопросы C/C++ 3 14.01.2009 18:08