Форум программистов, компьютерный форум CyberForum.ru

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
eXnatiOnz
5 / 2 / 0
Регистрация: 23.11.2013
Сообщений: 42
#1

Class Museum, правильная организация многофайлового проекта - C++

17.05.2014, 14:34. Просмотров 236. Ответов 0
Метки нет (Все метки)

Нужна помощь, разбить этот код на отдельные файлы, к примеру Museum.h ; Museum.cpp ; Funcinfirmation.h ; Funcinformation.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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
#include <stdio.h> 
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <string.h>
 
using namespace std;
 
class Museum
{
    public:
    char *name;
        char *adres;
        char *time;
        int kategor;
        int stoi;
        char *stoim;
        char *naznach;
        Museum(){name=new char[256];
           adres=new char[256];
           time=new char[256];
           stoim=new char[256];
           naznach=new char[256];};
        ~Museum(){delete [] name;
              delete [] time;
              delete [] stoim;
              delete [] naznach;};
        void kateg(int d){
         switch(d){
          case 1:{cout<<"Вы выбрали категорию научно-исследовательские музеи"<<endl;break;}
          case 2:{cout<<"Вы выбрали категорию научно-просветительные музеи "<<endl;break;}
          case 3:{cout<<"Вы выбрали категорию учебных музеев "<<endl;break;}
          case 4:{cout<<"Вы выбрали категорию архитектуры культового музея"<<endl;break;}
          default:{cout<<"Ввели неверное значение"<<endl;}
        }
       }
        void stoimost(int d){
           switch(d){
            case 1:{cout<<"Стандарт, в него входит краткий курс по музею, стоимость которого составляет 100 рублей."<<endl;break;}
            case 2:{cout<<"Вип, в него входит полный курс по музею, стоимость которого составляет 300 рублей."<<endl;break;}
            case 3:{cout<<"Премиум, в него входит полный курс по музею+фото, стоимость которого составляет 600 рублей."<<endl;break;}
            default:{ cout<<"Ввели не правильное значение"<<endl;break;}
           } 
        }
};
void FuncHelp(string str);
 
int main (int argc, char* argv[]) 
{ 
     Museum A1;
     string str[10];
     for(int i = 0; i < argc; i++)
        str[i] = argv[i];
     if (argc<2||argc>4){
       cout<< "Введите название музея"<< endl;
        cin.getline (A1.name,256);
        cout<< "К какому из перечисленных назначений он относится(укажите номер):"<< endl;
        cout<< "1)Научно-исследовательские музеи(структурные подразделения)"<< endl;
        cout<< "2)Научно-просветительные музеи(выставки и мероприятия)"<< endl;
        cout<< "3)Учебных музеев(обеспечивает процесс получения знаний)"<< endl;
        cout<< "4)Архитектуры культового музею(архитектурные строения и памятники)"<< endl;
        cin>> A1.kategor; 
        cout<< "Введите адрес через запятую без пробелов в формате(город,улица,номер дома)"<< endl;
        cin>> A1.adres;
        cout<< "Укажите день и время через запятую без пробелов работы в формате(день(время(с-до)),день(время(с-до)))"<< endl;
        cin>> A1.time;
        cout<< "Выберите билет:"<< endl;
        cout<< "1)Стандарт(краткий курс)"<< endl;
        cout<< "2)ВИП(полный курс)"<< endl;
        cout<< "3)Премиум(полный курс+фото)"<< endl;
        cin>> A1.stoi;
        cout<<"Ваша информация:"<<endl;
        cout<<"Имя музея:"<<A1.name<<endl;
        cout<<"Назначение:";
        A1.kateg(A1.kategor);
        cout<<"Адрес музея:"<<A1.adres<<endl;
        cout<<"Время работы:"<<A1.time<<endl;
        cout<<"Стоимость билета:";
        A1.stoimost(A1.stoi);
        
  return 0;
    }
        if(str[1]=="-h"||str[1]=="--help")
       FuncHelp(argv[0]);
    if(argc=4){ 
      int i,k,N;
      string tmp;
      bool key_c = 0, key_r = 0;
      if(str[1]=="-c") key_c=1;
      if(str[1] == "-r") key_r = 1;
      if(key_c == 0 && key_r==0){
         cout<<"Неверный ключ - "<<str[1]<<endl;    
         FuncHelp(argv[0]);}
      N=atoi(argv[2]);
      if(key_c==1){
        ofstream File (argv[3]);
        if (File.fail()) cerr << "Opening Error" << endl;
        cout<<"Вводить для одного музея через пробел"<<endl;     
      //File<<"|\tНазвание\tНазначение|\tАдресс|\tСтоимость билета|\tВремя работы|"<<endl;
        cout<<" |\tНазвание\t|\tНазначение\t|\tАдресс\t|\tСтоимость билета\t|\tВремя работы\t|"<<endl;
        for(i=0; i<N; i++){
        cout<<i+1;
        cin>>A1.name;
        cin>>A1.naznach;
        cin>>A1.adres;
        cin>>A1.stoim;
        cin>>A1.time;   
        File<<"\t"<<A1.name;
        File<<"\t"<<A1.naznach;
        File<<"\t"<<A1.adres;
        File<<"\t"<<A1.stoim;
        File<<"\t"<<A1.time<<endl;}
      }
      if(key_r==1){
        ifstream File (argv[3]);
            cout<<" |\tНазвание\t|\tНазначение\t|\tАдресс\t|\tСтоимость билета\t|\tВремя работы\t|"<<endl;
            if (File.fail()) cerr << "Opening Error" << endl;
        for(i=0;i<N+2;i++){
        for(k=0;k<5;k++){       
            File>>tmp;
            cout<<tmp<<"\t\t\t";}
        cout<<endl;}
      }
    
    }
    else{
      FuncHelp(argv[0]);
    }    
} 
void FuncHelp(string str){
         cout<<"|----------------------------------------------------------------------------------------------|"<<endl;
         cout<<"|Программа педназначена для хранения и чтения данных о городах в виде таблицы                  |"<<endl;
     cout<<"|Использование:" << str << " <Ключ> [N] <Файл>  N-количество записей                                   |"<<endl;
     cout<<"|-h, --help  Вызов справки                                                                     |"<<endl;
     cout<<"|-c [N] [filename]      Запуск программы в режиме создания электронной таблицы записей.        |"<<endl;
     cout<<"|-r [N] [filename]    Запуск программы в режиме чтения содержимого текстового файла file_name. |"<<endl;
     cout<<"|Performed by Ulianov Sergey, 13-IVT-2, date: 16/05/2014                                       |"<<endl;
         cout<<"|----------------------------------------------------------------------------------------------|"<<endl;
    exit(0);
}
Добавлено через 50 минут
Вот разбил проверьте верно ли?
museum.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
#ifndef MUSEUM_H
#define MUSEUM_H
 
using namespace std;
 
class Museum
{
    public:
    char *name;
        char *adres;
        char *time;
        int kategor;
        int stoi;
        char *stoim;
        char *naznach;
        Museum(){name=new char[256];
           adres=new char[256];
           time=new char[256];
           stoim=new char[256];
           naznach=new char[256];};
        ~Museum(){delete [] name;
              delete [] time;
              delete [] stoim;
              delete [] naznach;};
        void kateg(int d){
         switch(d){
          case 1:{cout<<"Вы выбрали категорию научно-исследовательские музеи"<<endl;break;}
          case 2:{cout<<"Вы выбрали категорию научно-просветительные музеи "<<endl;break;}
          case 3:{cout<<"Вы выбрали категорию учебных музеев "<<endl;break;}
          case 4:{cout<<"Вы выбрали категорию архитектуры культового музея"<<endl;break;}
          default:{cout<<"Ввели неверное значение"<<endl;}
        }
       }
        void stoimost(int d){
           switch(d){
            case 1:{cout<<"Стандарт, в него входит краткий курс по музею, стоимость которого составляет 100 рублей."<<endl;break;}
            case 2:{cout<<"Вип, в него входит полный курс по музею, стоимость которого составляет 300 рублей."<<endl;break;}
            case 3:{cout<<"Премиум, в него входит полный курс по музею+фото, стоимость которого составляет 600 рублей."<<endl;break;}
            default:{ cout<<"Ввели не правильное значение"<<endl;break;}
           } 
        }
};
#endif
funchelp.h
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
#ifndef FUNCHELP_H
#define FUNCHELP_H
 
using namespace std;
void FuncHelp(string str);
 
void FuncHelp(string str){
         cout<<"|----------------------------------------------------------------------------------------------|"<<endl;
         cout<<"|Программа педназначена для хранения и чтения данных о городах в виде таблицы                  |"<<endl;
     cout<<"|Использование:" << str << " <Ключ> [N] <Файл>  N-количество записей                                   |"<<endl;
     cout<<"|-h, --help  Вызов справки                                                                     |"<<endl;
     cout<<"|-c [N] [filename]      Запуск программы в режиме создания электронной таблицы записей.        |"<<endl;
     cout<<"|-r [N] [filename]    Запуск программы в режиме чтения содержимого текстового файла file_name. |"<<endl;
     cout<<"|Performed by Ulianov Sergey, 13-IVT-2, date: 07/05/2014                                       |"<<endl;
         cout<<"|----------------------------------------------------------------------------------------------|"<<endl;
    exit(0);
}
#endif
museum.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
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#include <stdio.h> 
#include <stdlib.h>
#include <iostream>
#include <fstream>
#include <string.h>
#include "museum.h"
#include "funchelp.h"
 
using namespace std;
 
int main (int argc, char* argv[]) 
{ 
     Museum A1;
     string str[10];
     for(int i = 0; i < argc; i++)
        str[i] = argv[i];
     if (argc<2||argc>4){
       cout<< "Введите название музея"<< endl;
        cin.getline (A1.name,256);
        cout<< "К какому из перечисленных назначений он относится(укажите номер):"<< endl;
        cout<< "1)Научно-исследовательские музеи(структурные подразделения)"<< endl;
        cout<< "2)Научно-просветительные музеи(выставки и мероприятия)"<< endl;
        cout<< "3)Учебных музеев(обеспечивает процесс получения знаний)"<< endl;
        cout<< "4)Архитектуры культового музею(архитектурные строения и памятники)"<< endl;
        cin>> A1.kategor; 
        cout<< "Введите адрес через запятую без пробелов в формате(город,улица,номер дома)"<< endl;
        cin>> A1.adres;
        cout<< "Укажите день и время через запятую без пробелов работы в формате(день(время(с-до)),день(время(с-до)))"<< endl;
        cin>> A1.time;
        cout<< "Выберите билет:"<< endl;
        cout<< "1)Стандарт(краткий курс)"<< endl;
        cout<< "2)ВИП(полный курс)"<< endl;
        cout<< "3)Премиум(полный курс+фото)"<< endl;
        cin>> A1.stoi;
        cout<<"Ваша информация:"<<endl;
        cout<<"Имя музея:"<<A1.name<<endl;
        cout<<"Назначение:";
        A1.kateg(A1.kategor);
        cout<<"Адрес музея:"<<A1.adres<<endl;
        cout<<"Время работы:"<<A1.time<<endl;
        cout<<"Стоимость билета:";
        A1.stoimost(A1.stoi);
        
  return 0;
    }
        if(str[1]=="-h"||str[1]=="--help")
       FuncHelp(argv[0]);
    if(argc=4){ 
      int i,k,N;
      string tmp;
      bool key_c = 0, key_r = 0;
      if(str[1]=="-c") key_c=1;
      if(str[1] == "-r") key_r = 1;
      if(key_c == 0 && key_r==0){
         cout<<"Неверный ключ - "<<str[1]<<endl;    
         FuncHelp(argv[0]);}
      N=atoi(argv[2]);
      if(key_c==1){
        ofstream File (argv[3]);
        if (File.fail()) cerr << "Opening Error" << endl;
        cout<<"Вводить для одного музея через пробел"<<endl;     
      //File<<"|\tНазвание\tНазначение|\tАдресс|\tСтоимость билета|\tВремя работы|"<<endl;
        cout<<" |\tНазвание|\tНазначение|\tАдресс|Стоимость билета|Время работы|"<<endl;
        for(i=0; i<N; i++){
        cout<<i+1;
        cin>>A1.name;
        cin>>A1.naznach;
        cin>>A1.adres;
        cin>>A1.stoim;
        cin>>A1.time;   
        File<<"\t"<<A1.name;
        File<<"\t"<<A1.naznach;
        File<<"\t"<<A1.adres;
        File<<"\t"<<A1.stoim;
        File<<"\t"<<A1.time<<endl;}
      }
      if(key_r==1){
        ifstream File (argv[3]);
            cout<<" |\tНазвание\t|\tНазначение\t|\tАдресс\t|\tСтоимость билета\t|\tВремя работы\t|"<<endl;
            if (File.fail()) cerr << "Opening Error" << endl;
        for(i=0;i<N;i++){
        for(k=0;k<5;k++){       
            File>>tmp;
            cout<<tmp<<"\t\t\t";}
        cout<<endl;}
      }
    
    }
    else{
      FuncHelp(argv[0]);
    }    
}
или можно ещё как-то разбить и преобразовать?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2014, 14:34     Class Museum, правильная организация многофайлового проекта
Посмотрите здесь:

Описать структуру MUSEUM C++
C++ Организация проекта на C++
C++ Создание многофайлового проекта в Borland 5.02
Описать структуру MUSEUM C++
C++ Сложности с построением многофайлового решения
C++ Беда с наследованием. Организация многофайлового приложения
Правильная организация файлов проекта, CMake C++
Работа многофайлового проекта C++
Компиляция и сборка многофайлового проекта C++
Как разобраться со сборкой многофайлового проекта C++
Ошибка при компиляции многофайлового проекта C++
Правильная организация доступа классов к ресурсу C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru