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

Составить грамотный интерфейс и стиль программы. (ООП) - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ написания проги для вивода ключа в ком порт http://www.cyberforum.ru/cpp-beginners/thread441001.html
Прошу помощи по написанию програми, суть проги : при нажатии клавиши отправляло на ком порт № 9 8-ми битний ключ. клавиша ключ w F88F02FF0000000001 d F88F0200FF00000001 a F88F020000FF000001 s F88F02FF00FF000000 Буду признателен вашей помощи.
C++ Отловить нажатие Enter Доброй всем ночи, у меня вопрос. Я написал код который должен отловить нажатие Ентера, вот он: void main() { char ch; ch = cin.get(); if(ch==10) cout<<"Enter"; else cout<<"Not enter"; http://www.cyberforum.ru/cpp-beginners/thread440998.html
C++ Заюзанный вектор в конструкторе взрывается, самоуничтожается, очищается, отправляется в адд
#include <iostream> #include <vector> #include <cstdlib> #include <set> using namespace std; #define F_SIZE 30 #define DICE 6
работа между функциями C++
в функции func_1 я вычислил массив p1. Как мне использовать данные этого массива в другой функции?
C++ Задача на обработку массивов http://www.cyberforum.ru/cpp-beginners/thread440974.html
Здравствуйте. Помогите пожалуйста с программой. Нужно написать программу без использования указателей и с использованием указателей. Дана действительная матрица , где i, j = 1..n. Получить действительную матрицу , где i, j = 1..n, элемент bij которой равен сумме элементов данной матрицы, расположенных в области, определяемой индексами i, j (область заштрихована):
C++ Окно вывода в Visual Studio Здравствуйте, у меня такой вопрос: Создаю консольное приложение Win32. Пишу код, выполняю и у меня окно(консоль) сразу исчезает. Был раньше компилятор от Борланд, там, кажется, не исчезало окно, а нужно было самому закрывать. Можно ли где-нибудь там поставить, чтобы я сам закрывал окно. А то оно само закрывается при окончании выполнения. подробнее

Показать сообщение отдельно
res
56 / 9 / 1
Регистрация: 05.04.2010
Сообщений: 143
05.02.2012, 07:18     Составить грамотный интерфейс и стиль программы. (ООП)
Всем доброго времени суток.
На этом форуме есть люди, которые разрабатывали крупные проекты.
Мне нужны советы по грамотному составлению программы.

Специально для примера придумал простую маленькую программу: "Телефонная книга".
Пользовательским интерфейсом будет консоль и библиотека conio.h. В качестве базы данных используется текстовый файл.
У меня получился вот такой интерфейс:

MemberList.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
#include <string>
#include <list>
 
enum eNameTypes { NT_LNAME, NT_FNAME, NT_MNAME };
 
struct Member
{
    std::string lname; // фамилия
    std::string fname; // имя 
    std::string mname; // отчество
    std::string phoneNumber; // телефонный номер
};
 
class MemberList : public std::list <Member*>
{
public:
    // поиск члена
    Member* GetBy(eNameTypes nameType, std::string xName);
    bool Replace(Member* pOldMember, Member* pNewMember);
 
    // импорт данных из базы
    bool ImportFromDB();
    // экспорт данных в базу
    bool ExportToDB();
};
 
// методы сортировки. Статические члены, для метода доступа без создания экземпляра. 
struct MemberOrderPredicate 
{
    // функтор, сортирует по ФИО
    bool operator() (const Member *first, const Member *second);
 
    static bool ByLName(const Member* first, const Member *second);
    static bool ByFName(const Member* first, const Member *second);
    static bool ByMName(const Member* first, const Member *second);
};
Menu.h

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// #include <conio.h> включить в .cpp
// #include <iostream> включить в .cpp
#include "MemberList.h"
class Menu
{
public:
    // главное меню
    void MainMenu();
 
    void FindMember();
    void CreateMemer();
    void ShowAllMembers();
private:
    MemberList* pMemberList;
};
Но у меня остались лишние типы, которые не имеют отношения, но нужны для работы с Menu и MemberList
Работа со строками:
C++
1
2
3
4
5
6
7
8
9
10
struct НезнаюКакНазвать
{
    // функция для стандартизаций строки 
    void NormalizeString(std::string& str);
    // сравнивание строк без учёта регистра
    bool CompareString(std::string firstStr, std::string secondStr) ;
    // проверка строки на буквы в алфавите
    bool IsInABC(std::string str);
    ...
};
Его включать или создавать экземпляр? Или?

Версия программы:
C++
1
2
3
4
5
6
7
8
struct Version
{
    // номер ревизий программы
    std::string GetRevisionNumber();
    // хеш ревизий программы
    std::string GetRevisionHash();
    ...
};
Включать или как синглтон? Или?

Лог ошибок в файл:
C++
1
2
3
4
5
6
struct LogFile
{
    bool SetErrorLevel(int levelId);
    bool GetErrorLevel();
    void OutError(std::string str);
};
Как синглтон или включать? Или?

Стоить ли использовать namespace? И в каких целях?
И нужно ли создавать базовый класс? И какие объекты там должны быть?
C++
1
2
3
4
class Phonebook
{
    // ?
};


Вообщем вопрос, как всё это правильно составить?
До самого:
C++
1
int main() {}
И где можно почитать на эту тему?
Вложения
Тип файла: rar cyberforum(phonebook).rar (1.7 Кб, 12 просмотров)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 04:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru