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

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

Восстановить пароль Регистрация
Другие темы раздела
C++ Найти в строке минимальные слова http://www.cyberforum.ru/cpp-beginners/thread1178682.html
Здравствуйте,помогите пожалуйста.Не могу придумать как найти в строке минимальные слова,учитывая,что их может быть несколько.Хотя бы принцип
C++ Получить открытый текст Есть код,нужно получить открытый текст #include "stdafx.h" #include <iostream> #include <fstream> using namespace std; char asciiTOhex1(char x) { http://www.cyberforum.ru/cpp-beginners/thread1178675.html
C++ Как сравнить символы
Как сравнить символы так, чтобы не писать такое большое условие if (Obbit.arrayBit == '+'||Obbit.arrayBit == '-'||Obbit.arrayBit == '*'||Obbit.arrayBit == '/') хотел так но не работает if (Obbit.arrayBit == '+'||'-'||'*'||'/') Как это можно сделать ?
В строке найдите группы слов, имеющие одинаковый состав букв C++
Вообщем суть задания: "Дана строка (char str), состоящая из слов и разделителей. Слово – это непрерывная последовательность букв. Разделителями слов могут быть следующие символы: ! '' (двойные кавычки) ; : ? - . , . Последовательности символов, не являющиеся словами (т.е. содержащие недопустимые символы), игнорировать. В строке найдите группы слов, имеющие одинаковый состав букв (количество...
C++ Перемещающий буффер http://www.cyberforum.ru/cpp-beginners/thread1178648.html
Всем Привет! делаю собственный класс строк. там в конкаенации строк по несколько раз перевыделяю память .... вот . Слышал что можно сделать что то типа перемещающегго буффер , но вообще не понимаю как его так можно сделать вот пример моей конкатенации строк CMyString CMyString::operator+(CMyString const & str) { CMyString tmpStr(*this); // вот что то типа здесь можно сделать без копии...
C++ Отсортировать по имени Помогите!Надо отсортировать по имени. C типом int проблема в сортировки нету. c char не могу разобраться. Нашел похожие примеры, не вышло. Я открыл файл для чтения. Как быть дальше? Отсортировать по имени. char Name_Stu подробнее

Показать сообщение отдельно
eXnatiOnz
5 / 2 / 0
Регистрация: 23.11.2013
Сообщений: 42
17.05.2014, 14:34     Class Museum, правильная организация многофайлового проекта
Нужна помощь, разбить этот код на отдельные файлы, к примеру 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]);
    }    
}
или можно ещё как-то разбить и преобразовать?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 14:16. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru