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

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

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

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

17.05.2014, 14:34. Просмотров 240. Ответов 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, правильная организация многофайлового проекта
Посмотрите здесь:

Правильная организация файлов проекта, 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-х файлов. В программе использованы структуры и списки. Файл...

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

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

Организация проекта на C++ - C++
Как правильно организовать большой проект? Незная этого я создал так: stdafx.h включает в себя все заголовки один из включаемых...

Описать структуру MUSEUM - C++
Пожалуйста посмотрите это условие может вы сможете мне помочь..... Описать структуру MUSEUM (название музея, время работы, стоимость...


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

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

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