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

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

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

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

17.05.2014, 14:34. Просмотров 253. Ответов 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]);
    }    
}
или можно ещё как-то разбить и преобразовать?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
17.05.2014, 14:34
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Class Museum, правильная организация многофайлового проекта (C++):

Правильная организация файлов проекта, CMake - C++
Здравствуйте... Из прочитанной информации по всему простору интернета у меня теперь в голове каша... Прошу ответить людей, работающих над...

Беда с наследованием. Организация многофайлового приложения - C++
Вот написал такое вот чудо, работает если за коментировать любой из #include &quot;kvadrat.h&quot; #include &quot;kolo.h&quot; и соотвецтвенно их исполнения....

Работа многофайлового проекта - C++
С++ позволяет создавать многофайловые проект. Это повышает производительность, так как программа стает модульной и ее легко изменить и тд....

Создание многофайлового проекта в Borland 5.02 - C++
Кто знает как создать многофайловый проект в среде Borland 5.02

Компиляция и сборка многофайлового проекта - C++
Допустим, у меня есть такие файлы. SuperClass h - объявление, SuperClass cpp - реализация SubClass h - объявление, SubClass cpp -...

Ошибка при компиляции многофайлового проекта - C++
Добрый вечер. Возникает ошибка при компиляции проекта, состоящего из 3-х файлов. В программе использованы структуры и списки. Файл...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
17.05.2014, 14:34
Привет! Вот еще темы с ответами:

Как разобраться со сборкой многофайлового проекта - C++
В теории я считал что понимаю как происходят подключения файлов, их сборка (те работа линковщика, компоновщика...) Но вот на практике это...

Компиляция многофайлового проекта: Unexpected end of file while looking for precompiled header - C++
Здравствуйте! Почему когда компилирую такой проект: testHeader.h #ifndef _TEST_HEADER_H_ #define _TEST_HEADER_H_ int...

Правильная организация доступа классов к ресурсу - C++
Доброго времени суток, уважаемые программисты. У меня возникла проблема по организации доступа разных классов к одному ресурсу (объекту) ...

Ошибка при сборке многофайлового проекта: "невозможно преобразовать "int" в "const golf" - C++
Сделал многофайловую программу программу, вот она: //golf.h #include &lt;iostream&gt; #ifndef golg_h_ #define golf_h_ const int Len =...


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

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

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