Форум программистов, компьютерный форум, киберфорум
Наши страницы

Изменить файлы - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Массив структур из массивов. http://www.cyberforum.ru/cpp-beginners/thread558943.html
Доброго всем утра! Сразу извиняюсь за, скорее всего, не рациональное решение проблемы но: 1) требуется создать массив, состоящий из структур, в которых некоторые типы - массивы. 2) требуется...
C++ Массив: посчитать сколько раз в двумерном массиве встречается 0. Задача1. Дан массив размерность 4х4 найти сумму элементов его главной диагонали. Задача2. Дан массив размерностью 4х4. посчитать сколько раз в нём встречается 0. http://www.cyberforum.ru/cpp-beginners/thread558931.html
Вывести все простые числа от M до N включительно C++
Вывести все простые числа от M до N включительно. Ввод В первой строке находятся разделённые пробелом M и N. Вывод Вывести числа в порядке возрастания, по одному в строке. Если между M и N...
C++ Как пишутся оконные приложения?
Всем доброй ночи:) Друзья, решил вот создать первое оконное приложение, зашел значит в проэкт.. интуитивно прописал пару строк.. но ничего не появилось( просто окошко пустое( помогите.. хоть пару...
C++ Создание каталога через консольное приложение http://www.cyberforum.ru/cpp-beginners/thread558882.html
Написать программу которая-бы в консольном режиме Windows создавала новый каталог. Заранее спасибо
C++ error C2447: '{' : missing function header (old-style formal list?) #include <stdio.h> #include<conio.h> int main(int argc, char *argv); { FILE *in, *out; /* описывает два указателя типа FILE */ int ch; static char name ; /* память для имени выходного файла... подробнее

Показать сообщение отдельно
kristi1
10 / 10 / 1
Регистрация: 07.03.2010
Сообщений: 465

Изменить файлы - C++

26.04.2012, 13:52. Просмотров 387. Ответов 4
Метки (Все метки)

Доброе утро, для начала суть задания: Сформировать список l, включив в него по одному разу элементы, которые входят в один из списков l1 или l2. Но не входят в другой.

У меня есть цельная программа, которая работает идеально, НО:

Мне надо программу разбить след. образом (она почти разбита)

Elem.h - в ней хранится сама структура
Form.h - ней хранятся библиотеки, которые относятся к структуре Elem
Functions.h - в ней структура с заголовками функций
Все остальное должно в шапке иметь только #include "Form.h" и все... помогите пожалуйста ибо запутанно все(
Вот код:

Elem.h
C
1
2
3
4
5
6
7
8
#include <iostream>
#include <fstream>
#include <string>
struct list
{
    int information;
    list *next;
};
Form.h
C
1
2
3
4
5
6
7
#include "Elem.h"
 
 
struct SForm
{
    list *lst, *n, *list0, *lst1, *lst2, name, *res;//сюда надо все из структуры и обращаться только сюда
};
Functions.h
C
1
2
3
4
5
6
7
8
9
10
11
#include "form.h"
 
struct fun
{
    static void add(list *lts, int n );
    static void print ( SForm &frm );
    static bool is_exist( list *lst, int n );
    static void fillListFromFile( std::string &name, SForm &frm);
    static void getResultList( SForm &frm );
    static void to_file( std::ofstream &out, SForm &frm );
};
add.cpp
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "functions.h"
 
void fun::add ( list *lts, int n )
{
    list *pointer;
    if ( !lts)
    {
        lts = ( struct list * ) malloc ( sizeof ( struct list ) );
        pointer = lts;
    }
    else
    {
        pointer = lts;
        while ( pointer -> next )
            pointer = pointer -> next;
        pointer -> next = new list;
        pointer = pointer -> next;
    }
    pointer -> information    = n;
    pointer -> next = 0;
}
bool.cpp
C
1
2
3
4
5
6
7
8
9
10
11
12
#include "functions.h"
 
bool fun::is_exist(list *lst, int n )
{
    list *lst0 = lst;
    while(lst0)
    {
        if ( lst0 -> information == n ) return 1;
        lst0 = lst0 -> next;
    }
    return 0;
}
fillListFromFile.cpp
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
#include "functions.h"
 
void fun::fillListFromFile( std::string &name, SForm &frm )
{
    std::ifstream f( name, std::ios::in );
    std::string test;
    f >> test;
 
    if ( test == "" )
    {
        std::cout << "\tФайл " << name << " пуст" << std::endl;
        return;
    }
 
    f.seekg( 0, std::ios::beg );
    int number;
    while ( !f.eof() )
    {
        f >> number;
        fun::add(frm.lst1, number ); /// frm-> ??? в какой список???
    }
    f.close();
}
getResultList.cpp
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
#include "functions.h"
 
void fun::getResultList(SForm &frm )
{
    list *list1 = frm.lst1, *list2 = frm.lst2;
    while ( list1 )
    {
        int inf = list1 -> information;
        if ( !fun::is_exist( frm.lst2, inf ) && !fun::is_exist( frm.res, inf ) )
            fun::add( frm.res, list1 -> information );
        list1 = list1 -> next;
    }
 
    while ( list2 )
    {
        int inf = list2 -> information;
        if ( !fun::is_exist( frm.lst1, inf ) && !fun::is_exist( frm.res, inf ) )
            fun::add( frm.res, list2 -> information );
        list2 = list2 -> next;
    }
}
main.cpp
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include "functions.h"
 
 
int main()
{
    setlocale ( LC_ALL, "Russian" );
    
    SForm frm={0};
 
    list *firstList = 0, *secondList = 0, *resultList = 0;
    std::string first( "first.txt" ), second( "second.txt" );
    std::ofstream result( "result.txt" );
 
    fun::fillListFromFile( first, frm );
    std::cout << "Первый список:   ";
    fun::print( frm ); 
    
    fun::fillListFromFile( second, frm );
    std::cout << "Второй список:   ";
    fun::print( frm );
 
    fun::getResultList( frm );
 
    std::cout << "Итоговый список: ";
    fun::print( frm );
    
    fun::to_file( result, frm );
 
    result.close();
 
    return 0;
}
print.cpp
C
1
2
3
4
5
6
7
8
9
10
11
12
#include "functions.h"
 
void fun::print ( SForm &frm )
{
    list *pointer = frm.list0;
    while ( pointer != 0 )
    {
        std::cout << pointer->information << " ";
        pointer = pointer->next;
    }
    std::cout << std::endl;
}
to_file.cpp
C
1
2
3
4
5
6
7
8
9
10
11
#include "Functions.h"
 
void fun::to_file( std::ofstream &out, SForm &lst )
{
    list *current = lst.lst;
    while ( current )
    {
        out << current->information << " ";
        current = current->next;
    }
}
В структуре Form, возможно, переменные не все лежат, проверьте пожалуйста, запутанно все так, я уже не могу, не получается ничего(

Добавлено через 7 часов 3 минуты
Никто не поможет?(
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.