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

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

Восстановить пароль Регистрация
 
eXnatiOnz
5 / 2 / 0
Регистрация: 23.11.2013
Сообщений: 42
17.05.2014, 14:34     Class Museum, правильная организация многофайлового проекта #1
Нужна помощь, разбить этот код на отдельные файлы, к примеру 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, правильная организация многофайлового проекта
Посмотрите здесь:

C++ Организация проекта на C++
C++ создание многофайлового проекта в Borland 5.02
Описать структуру MUSEUM C++
Разъясните код пжлст(выдает ошибку:cannot convert from 'class std::list<class c_bullet *,class std::allocator<class c_bullet *> >::iterator' to 'int') C++
C++ Беда с наследованием. Организация многофайлового приложения
Правильная организация файлов проекта, CMake C++
Работа многофайлового проекта C++
Компиляция и сборка многофайлового проекта C++

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

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

Текущее время: 04:46. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru