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

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

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 19.06.2011, 07:01   #1
inc
Пользователь
 
Аватар для inc
 
Регистрация: 23.05.2011
Сообщений: 14
По умолчанию Многофайловые проекты.

Написать функцию, которая читает данные о ноутбуках из файла note.txt в структуру приведенного вида. Написать функцию, которая записывает содержимое структуры в конец бинарного файла. Структура бинарного файла: первые два байта – число записей в файле, далее записи в формате структуры NoteBook.

Пример файла note.txt. Каждая строка содержит данные об одной модели. Данные размещаются в следующих полях (все неописанные позиции заполнены пробелами):










Описание структуры разместить в заголовочном файле, а определения функций и главную функцию – в двух отдельных файлах.

Для хранения данных о ноутбуках описать структуру вида:

struct NoteBook

{

char model[21]; // наименование

struct size // габаритные размеры

{

float x;

float y;

float z;

};

float w; // вес

float d; // размер диагонали дисплея

float hdd; // объем диска

int price; // цена

};

Вариант

Написать программу, в которой на основе разработанных функций осуществляется чтение данных только для тех ноутбуков, объем видеопамяти которых 2 Мбайта, и запись считанных данных в бинарный файл по убыванию тактовой частоты процессора.

Я плохо понимаю как это сделать вроде второй файл должен быть

вот мой код

Код:
#include <iostream>
#include <fstream>
#include <conio.h>

#include <func.h>

using namespace std;


struct Tree{
    NoteBook nb;
    Tree *left;
    Tree *right;
};


Tree *root = NULL;
short counter = 0;

void Add (NoteBook &);
void Clear (Tree *);
void WriteBinary (fstream &);


int main()
{
    NoteBook nb;
    fstream fIn ("note.txt", ios::in)
    if (fIn.fail ())
    {
        cerr << "Nemogy otkritb fail note.txt." << endl;
        getch ();
        return 0;
    }
    while (ReadTextFile (fIn, nb))
    {
        if (nb.w < 10)
        {
            Add (nb);
        }
    }
    fIn.close ();

    fstream fOut ("note.bin", ios::out | ios::binary);
    if (fOut.fail ())
    {
        cerr << "Nemogy otkritb fail note.bin." << endl;
        getch()
        return 0;
    }


    WriteBinary (fOut);
    fOut.close ();
    Clear (root);
    getch ();
    return 0;


    void Add (NoteBook &nb)
    {
        Tree *node = new Tree;
        memcpy (&node -> nb, &nb, sizeof (NoteBook));
        node -> left = NULL;
        node -> right = NULL;
        if (!root)
        {
            root = node;
        }
        else
        {
            Tree *p = root;
            Tree *parent = 0;
            while (p)
            {
                parent = p;
                if (nb.price < p -> nb.price) p = p->left;
                else p = p->right;
            }
            counter++;
        }



        void Clear (Tree *t)
        {
            if (t)
            {
                Clear (t->left);
                Clear (t->right);
                delete t;
            }
        }



        void Write (Tree *p, fstream &outFile)
        {
            if (p)
            {
                Write (p->left, outFile);
                WriteBinaryFile (outFile, p->nb);
                Write (p->right, outFile);
            }
        }




        void WriteBinary (fstream &outFile)
        {
            outFile.write ((char*) &counter, sizeof (counter));
            if (!root)
            {
                cout << "Takih noytbykov net." << endl;
                return 0;
            }

            Write (root, outFile);
        }
    }
}

Последний раз редактировалось inc; 19.06.2011 в 07:03.
inc вне форума Ответить с цитированием
Старый 25.04.2012, 16:57   #2
rmv240899
Форумчанин
 
Регистрация: 18.02.2012
Сообщений: 155
По умолчанию

Если вам нужно помочь именно с многофайловым проектом, то делайте так:
создайте хэдер
поместите в его начало #pragma once
поместите туда объявление структуры и прототипы функций
создайте два исходника
в оба включите хэдер
в один поместите реализацию функций, а во второй - main.
rmv240899 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проекты Компаса в Делфи Versifikator Помощь студентам 10 03.06.2011 14:19
РЕКЛАМА И ИНТЕРНЕТ ПРОЕКТЫ ДЕНИС ЕЛИСЕЕВ Фриланс 0 14.03.2011 15:03
Модули. Многофайловые проекты . Zalik Помощь студентам 3 01.03.2011 06:04
разработать проекты.... Virus Помощь студентам 2 20.06.2007 17:53