IPB
ЛогинПароль:

> Внимание!

1. Пользуйтесь тегами кода. - [code] ... [/code]
2. Точно указывайте язык, название и версию компилятора (интерпретатора).
3. Название темы должно быть информативным. В описании темы указываем язык!!!

> структуры и функции, C++
Tribunal
сообщение 23.10.2006 9:10
Сообщение #1


Бывалый
***

Группа: Пользователи
Сообщений: 233
Пол: Женский
Реальное имя: Dasha

Репутация: -  0  +


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

то,что у меня получилось к сожалению не работает...
может посмотрите и исправите какие-то ошибки?
заранее благодарна..
#include <iostream.h>
#include <fstream.h>

typedef struct tagT
{
int disp_res_x; //разрешающая способность дисплея по горизонтали
int disp_res_y; //по вертикали

int f; //тактовая частота
float d; //размер диагонали дисплея
float hdd; //объем жесткого диска
char mode [20]; //наименование
float price; //цена
}T;

void f_read(T notebook[20])
{
ifstream fin ("file.txt");
if (!fin)
{
cout << "File file.txt don't found." << endl;
return 1;
};
int n;
fin >> n;
for (int i=0;i<n;i++)
{
fin >> notebook[i].mode >> notebook[i].hdd >> notebook[i].f >> notebook[i].d >>
notebook[i].disp_res_x >> notebook[i].disp_res_y >> notebook[i].price;
};
return;
};

void f_write(T notebook[20],int i)
{
ifstream fout ("file.txt");
if (!fout)
{
cout << "File can't open for writing." << endl;
return 1;
};
int n;
fin >> n;
fout << notebook[i].mode << notebook[i].hdd << notebook[i].f << notebook[i].d <<
notebook[i].disp_res_x << notebook[i].disp_res_y << notebook[i].price << endl;
return;
};
int main()
{
T notebook[20];

f_read(notebook[20]);
int n;
fin >> n;

T buf;
for (int i=0;i<n;i++)
for (int j=n-1;j>=i+1;j--)
{
if (notebook[j-1].price > notebook[j].price)
{
memmove (&buf, &notebook[j-1], sizeof(T));
memmove (&notebook[j-1],&notebook[j], sizeof(T));
memmove (&notebook[j], &buf, sizeof(T));
};
};

for (int i=0;i<n;i++)
{
if (notebook[i].f>120) f_write(notebook[20],i);
};
}



--------------------
irreparabilium felix olivio rerum
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
Tribunal
сообщение 12.11.2006 11:00
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 233
Пол: Женский
Реальное имя: Dasha

Репутация: -  0  +


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

хммм...а ведь у меня в программе получается должен выводиться весь файл.
ух...кажется,я совсем запуталась=(


Прикрепленные файлы
Прикрепленный файл  main.rar ( 794 байт ) Кол-во скачиваний: 159


--------------------
irreparabilium felix olivio rerum
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме
Tribunal   структуры и функции   23.10.2006 9:10
volvo   Тебе здесь (это С++ программа) лучше всего сделать...   23.10.2006 13:52
Tribunal   честно говоря не знаю что за "operator=...   23.10.2006 13:59
volvo   Смотри... Ты переопределяешь для класса оператор п...   23.10.2006 15:39
Tribunal   в принципе...я могу с этим разобраться...видимо эт...   23.10.2006 15:46
volvo   Ну, нельзя классы, так поменяй class на struct - б...   23.10.2006 15:54
Tribunal   ок... нет,ну всё равно ... что не так с моей прогр...   23.10.2006 15:59
volvo   Если конкретно - то я тебе уже сказал: 1. Ты не ...   23.10.2006 16:11
Tribunal   теперь программа даже запускается) так вот...а фай...   23.10.2006 16:50
volvo   Ну, запускается -то оно запускается, только вот ЧТ...   23.10.2006 20:37
Tribunal   в общем я решила всё же сделать вот так... а как ...   30.10.2006 10:06
volvo   "Меня терзают смутные сомнения..." (С) Я...   30.10.2006 16:05
Tribunal   воспользовалась вашими функциями.вроде довольно ус...   4.11.2006 10:44
Tribunal   помогите.. :unsure: не могу найти ошибку...=(   7.11.2006 17:34
Tribunal   я вот попробовала написать ф-ии вот так,но заступо...   10.11.2006 18:02
Алена   Потому, что перед чтением из файла: while (re...   11.11.2006 22:06
Tribunal   спасибо,конечно, но мне это к сожалению не помогло...   12.11.2006 10:35
Алена   Присоедини сюда окончательный вариант программы, с...   12.11.2006 10:50
Tribunal   я ввожу кол-во записей,затем по порядку все поля з...   12.11.2006 11:00
Алена   Если бы ты не стала переделывать то, что было прив...   12.11.2006 12:06
Tribunal   получается нужна полная функция...хорошо,так и сде...   12.11.2006 12:16
Алена   Вот так: bin.close(); bin.open("note....   12.11.2006 12:40
Tribunal   решила я всё-таки не стирать ничего из файла. а пр...   12.11.2006 13:09
Алена   Да что же тебя так тянет КАЖДЫЙ РАЗ менять что-то ...   12.11.2006 13:38
Tribunal   огромное спасибо за уделённое время и помощь! ...   12.11.2006 13:50


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 22.07.2025 13:25
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"