0 / 0 / 0
Регистрация: 04.03.2017
Сообщений: 22
1

как разделить код на файлы?

17.03.2017, 17:08. Показов 2633. Ответов 5
Метки нет (Все метки)

Class.h
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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
#include <iostream>
#include <string.h>
using namespace std;
 
class File
{
private:
    char *name, *date;
    int  number, size;
public:
    void printdata()
    {
        cout << "Description of the file:\n";
        cout << name << endl;
        cout << date << endl;
        cout << size << endl;
        cout << number << endl;
    }
    // створення конструктора
    File(char *curname, char *curdate, int cursize, int curnumber) :
        name(curname), date(curdate), size(cursize), number(curnumber)
    {
        int n = strlen(curname);
        int z = strlen(curdate);
 
        name = new char[n];
        date = new char[z];
 
        strcpy(name, curname);
        strcpy(date, curdate);
        size = cursize;
        number = curnumber;
    }
    //set
 
    void set_name(char *curname)
    {
        strcpy(name, curname);
    };
    void set_date(char *curdate)
    {
        strcpy(date, curdate);
    };
    void set_size(int cursize)
    {
        number = cursize;
    };
    void set_number(int curnumber)
    {
        number = curnumber;
    };
    //get
    char *get_name() { return name; };
    char *get_date() { return date; };
    int get_size() { return size; };
    int get_number() { return number; }
    File()
    {};
    ~File()
    {
        delete name; delete date;
    }
    void Dataout(File *object, char *a);
    void Size(File *object);
    void Name(File *object, char *b, char *c);
};
func.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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
#define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <stdio.h>
#include <string.h>
#include "Class.h"
void File::Name(File *object, char *b, char *c)
{
    for (int i = 0; i < 4; i++)
    {
        c = object[i].get_name();
        if (c[0] == *b)
        {
            cout << object[i].get_name() << endl;
        }
    }
}
void File::Dataout(File *object, char *a)
{
 
    char *k;
    for (int i = 0; i < 4; i++)
    {
        k = object[i].get_date();
        if (strcmp(a, k) == 0)
        {
            cout << "Data of the file " << i + 1 << ":\n";
            cout << object[i].get_name() << endl;
            cout << object[i].get_date() << endl;
            cout << object[i].get_size() << " Mb" << endl;
            cout << object[i].get_number() << "\n\n";
        }
    }
}
void File::Size(File *object)
{
    int k, a;
    cout << "Input size of the file:";
    cin >> a;
    for (int i = 0; i < 4; i++)
    {
        k = object[i].get_size();
        if (a<k)
        {
            cout << "Data of the file " << i + 1 << ":\n";
            cout << object[i].get_name() << endl;
            cout << object[i].get_date() << endl;
            cout << object[i].get_size() << " Mb" << endl;
            cout << object[i].get_number() << "\n\n";
        }
    }
}
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
33
34
35
36
37
38
39
40
41
42
43
 #define _CRT_SECURE_NO_WARNINGS
#include <iostream>
#include <conio.h>
#include <stdio.h>
#include <string.h>
#include "Class.h"
 
void main()
{
    char *a, *k,*b,*c;
    a = new char[256];
    b = new char[256];
    c = new char[256];
    setlocale(LC_CTYPE, "rus");
    File object[4] =
    {
        { "File_1", "25.02.15", 135 , 5 }
        ,{ "File_2", "17.03.15", 125 , 54 }
        ,{ "doc_3", "28.05.16", 150 , 55 }
        ,{ "doc_4", "27.02.17", 115, 4 }
    };
 
    for (int i = 0; i < 4; i++)
    {
        cout << "Data of the file " << i + 1 << ":\n";
        cout << object[i].get_name() << endl;
        cout << object[i].get_date() << endl;
        cout << object[i].get_size() << " Mb" << endl;
        cout << object[i].get_number() << "\n\n";
    }
    cout << "Input date of creating file:";
    cin >> a;
    Dataout(object, a);
    Size(object);
    cout << "Input first character of the file:";
    cin >> b;
    Name(object, b, c);
    delete[]a;
    delete[]b;
    system("pause");
    _getch();
 
}
если функции все объявляю в main.cpp то все работает, когда делю на файлы куча ошибок
__________________
Помощь в написании контрольных, курсовых и дипломных работ, диссертаций здесь
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
17.03.2017, 17:08
Ответы с готовыми решениями:

Как разделить программу ну файлы
Можете объяснить на любом простеньком примере)

Как разделить код по классам?
Программа имеет слишком долгий код, можно его его как-то разбить на части по тематике, например, и...

Подскажите, как разделить код на несколько файлов
• Имеем основной cpp файл с main. • Имеем код нужных функций • Есть указание реализовать эти...

C++ модульная структура. Как разделить код на разные самостоятельные части и подключить их
1. У меня задача стоит в том чтоб разбить код на отдельные куски и подключить с помощью файла...

5
nd2
3433 / 2812 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
17.03.2017, 17:27 2
Вот это ты прописал как методы класса:
C++
1
2
3
    void Dataout(File *object, char *a);
    void Size(File *object);
    void Name(File *object, char *b, char *c);
В main() вызываешь их как простые функции. Определись, как-то, что это должно быть.

Добавлено через 3 минуты
Цитата Сообщение от StarK_05 Посмотреть сообщение
C++
1
2
3
4
5
6
7
8
        int n = strlen(curname);
        int z = strlen(curdate);
 
        name = new char[n];
        date = new char[z];
 
        strcpy(name, curname);
        strcpy(date, curdate);
Здесь памяти мало выделяешь под строки, под '\0' нужно добавить.
0
0 / 0 / 0
Регистрация: 04.03.2017
Сообщений: 22
17.03.2017, 17:28  [ТС] 3
я хочу их вызвать как простые функции, просто смотрел пример и там было так, подскажи что не так
0
nd2
3433 / 2812 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
17.03.2017, 17:30 4
Цитата Сообщение от StarK_05 Посмотреть сообщение
я хочу их вызвать как простые функции,
Тогда вынеси их прототипы из класса (но оставь в .h), и не добавляй к реализациям File:: .
0
0 / 0 / 0
Регистрация: 04.03.2017
Сообщений: 22
17.03.2017, 17:40  [ТС] 5
сделал, выдает кучу ошибок,большинство связаны с get функциями
0
nd2
3433 / 2812 / 1249
Регистрация: 29.01.2016
Сообщений: 9,426
17.03.2017, 17:45 6
Цитата Сообщение от StarK_05 Посмотреть сообщение
выдает кучу ошибок,большинство связаны с get функциями
Текст ошибок всегда показывай.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.03.2017, 17:45
Помогаю со студенческими работами здесь

Разделить файлы по заголовкам
После восстановления файлов с диска R-Studio образовалось большое количество .mp4 файлов &gt;100 MB,...

Разделить программу на файлы
Помогите мне разделить программу на три файла: сам класс, функции к нему, и функция main. Сам...

Разделить код на файлы
Расскажите, как в Python можно разделить код на файлы. К примеру, один класс описан в другом файле...

Как правильно разделить код по функциям
Проект VBA ACCESS 2003 Я построил код следующим образом: Private Sub Start_Click() For i = 0 to...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru