Модераторы: Poseidon
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> [C++] структура, файл 
:(
    Опции темы
a1b2
Дата 17.4.2007, 19:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 6
Регистрация: 17.4.2007

Репутация: нет
Всего: нет



Здравсвуйте!Дело вот в чем:задачу я свою решила, но немного не так, а как переделать не знаю, поэтому мне просто необходима ваша помощь smile 
Кстати, точно такую же задачу недавно у вас решали, но там тож немного не так..
Условие:из текстового файла считать данные о ноутбуках в структуру типа
Код

Struct NOTEBOOK{
struct disp_res{    // разрешающая способность дисплея 
int x;           // по горизонтали 
int у;           // по вертикали
};
int f;              // частота регенерации
float d;            // размер диагонали дисплея
int price;          // цена
char model[21];     // наименование 


   а потом отсортировать данные по убыванию веса, записать в конец бин.файла информацию о тех ноутбуках, у которых тактовая частота процесора больше 120.
Я все сделала, единственная загвоздка-я не так как надо описала структуру.. у меня в решении она выглядит так, нет требуемой вложенной структуры disp_res..
Код

Struct NOTEBOOK{
int x;           // по горизонтали 
int у;           // по вертикали
int f;              // частота регенерации
float d;            // размер диагонали дисплея
int price;          // цена
char model[21];     // наименование 




а вот , собственно говоря, мое решение...
Код

#include<iostream.h>
#include<fstream.h>
#include<conio.h>
#include<stdio.h>
const int n=9;

struct NOTEBOOK
{ char model [20];//модель
  int price;      //цена 
  float massa;    //масса
  int x;          //разрешение по горизонтали
  int y;          //разрешение по вертикали
  int f;          //частота регенрации
  int mg;         //тактовая частота процессора
  float d;        //диагональ
};
fstream cht,zap;


NOTEBOOK IsFaila(NOTEBOOK not[],int i)
{
   char c;
   for (int j=0;j<20;j++)
   {cht.get(c);
   not[i].model[j]=c;
   };
   not[i].model[19]='\0';
   cht>>not[i].price;
   cht>>not[i].massa;
   cht>>not[i].x;
   cht>>not[i].y;
   cht>>not[i].f;
   cht>>not[i].mg;
   cht>>not[i].d;
   return not[i];
}

void Vivod(NOTEBOOK not[],int i)
{
cout<<not[i].model<<"\t";
cout<<not[i].price<<"\t";
cout<<not[i].massa<<"\t";
cout<<not[i].x<<"\t";
cout<<not[i].y<<"\t";
cout<<not[i].f<<"\t";
cout<<not[i].mg<<"\t";
cout<<not[i].d<<"\t";
}

void sortirovka(NOTEBOOK not[])
{int i,fla;
for(i=0,fla=0;i<n-1;i++)
   if(not[i].massa<not[i+1].massa)
   {float t=not[i+1].massa;
   not[i+1].massa=not[i].massa;
   not[i].massa=t;
   fla=1;
   }
   if (fla==1) sortirovka(not);
}

void Zapis_V_Fail(fstream &zap,const NOTEBOOK &ptr)
{zap.seekp(0,ios::end);
zap.write((char *)&ptr,sizeof(NOTEBOOK));
zap.flush();
}



void main (void)
{  clrscr();

   cht.open("note.txt",ios::in);
   cht.seekg(0,ios::beg);

   NOTEBOOK not[n];
   for(int i=0;i<n && !cht.eof();i++)
     IsFaila(not,i);
   cht.close();

cout<<"   MODEL\t"<<"\t"<<"PRICE"<<"\t"<<"MASSA"<<"\t"<<"GOR."<<"\t"<<"VERT."<<"\t"<<"REG."<<"\t"<<"TAKT"<<"\t"<<"DIAG"<<"\n";
cout<<"\n";
  for (i=0;i<n;i++)
   Vivod(not,i);
  getchar();
  sortirovka(not);
  cout<<"\n\t\t-------------SORTIROVKA-----------------------\n";
   for(i=0;i<n;i++)
   Vivod(not,i);
   getchar();

NOTEBOOK *ptr;
ptr=new NOTEBOOK[n];
  zap.open("note.dat",ios::app | ios::binary);
  zap.write((char *)n,2);
    for(i=0;i<n;i++)
      {
      if (not[i].mg>120)
      Zapis_V_Fail(zap,ptr[i]);
      };
zap.close();
cout<<"Gotovo.Press ENTER.";
getchar();
}


а вот файл из которого надо считывать(note.txt)
Samsung SENS 810    3667 5.6 1024 768 75 100 11.4
Aser Note Light     2699 5.6 1024 768 60 100 10.4
ASW ND5123T         3489 7.2 1024 768 70 133 12.1
ArmNote TS80CD      3699 7.2 1024 768 75 133 11.3
Digital H-iNote     4799 4.0 800 600 56 120 10.4
Polywell Poly 500   3300 7.9 1024 768 72 120 10.4
Gateway Solo S5     4499 5.6 1024 768 60 133 11.3
HP OmmBook 5500     6120 7.1 1024 768 75 133 11.4
IBM ThinkPad 560    3749 4.1 1024 768 85 120 12.1      

помогите пожалуйста переделать задачку , буду очень-очень благодарна!!!!


PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Центр помощи"

ВНИМАНИЕ! Прежде чем создавать темы, или писать сообщения в данный раздел, ознакомьтесь, пожалуйста, с Правилами форума и конкретно этого раздела.
Несоблюдение правил может повлечь за собой самые строгие меры от закрытия/удаления темы до бана пользователя!


  • Название темы должно отражать её суть! (Не следует добавлять туда слова "помогите", "срочно" и т.п.)
  • При создании темы, первым делом в квадратных скобках укажите область, из которой исходит вопрос (язык, дисциплина, диплом). Пример: [C++].
  • В названии темы не нужно указывать происхождение задачи (например "школьная задача", "задача из учебника" и т.п.), не нужно указывать ее сложность ("простая задача", "легкий вопрос" и т.п.). Все это можно писать в тексте самой задачи.
  • Если Вы ошиблись при вводе названия темы, отправьте письмо любому из модераторов раздела (через личные сообщения или report).
  • Для подсветки кода пользуйтесь тегами [code][/code] (выделяйте код и нажимаете на кнопку "Код"). Не забывайте выбирать при этом соответствующий язык.
  • Помните: один топик - один вопрос!
  • В данном разделе запрещено поднимать темы, т.е. при отсутствии ответов на Ваш вопрос добавлять новые ответы к теме, тем самым поднимая тему на верх списка.
  • Если вы хотите, чтобы вашу проблему решили при помощи определенного алгоритма, то не забудьте описать его!
  • Если вопрос решён, то воспользуйтесь ссылкой "Пометить как решённый", которая находится под кнопками создания темы или специальным флажком при ответе.

Более подробно с правилами данного раздела Вы можете ознакомится в этой теме.

Если Вам помогли и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, Poseidon, Rodman

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Центр помощи | Следующая тема »


 




[ Время генерации скрипта: 0.0939 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.