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

> Внимание!

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

Наладить общение поможет, если вы подпишитесь по почте на новые темы в этом форуме.

> структуры и функции, C++
сообщение
Сообщение #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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
сообщение
Сообщение #2


Гость






Цитата
может посмотрите и исправите какие-то ошибки?
Тебе здесь (это С++ программа) лучше всего сделать сортировку не через memmove, а через "operator =", что будет проще и красивей... Тоже самое касается и ввода/вывода: делаешь переопределение "operator <<" и "operator >>" и все прекрасно работает...

Если тебя такое решение устроит, скажи, я помогу (чтоб просто так не делать, вдруг тебе нужно именно так, как ты начала unsure.gif )

А ошибки начинаются с того, что ты из void-функции пытаешься вернуть значение, как это? blink.gif
 К началу страницы 
+ Ответить 

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


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

 





- Текстовая версия 28.06.2022 10:31
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name