Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 26.05.2013, 16:23   #21
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,429
По умолчанию

"typedef? зачем?" - Я же не вижу, что у Вас и как написано, так как Вы не выкладывали весь код, поэтому написал так, чтобы программа скомпилировалась.
"кстати уже раздражает везде char, почему нельзя просто как в делфи сделать тип string?" - Во-первых, тип string есть, но в C++. Во-вторых, просто так string не запишешь в файл из структуры (насколько понимаю). В-третьих, в том же Delphi нужно писать string[N], то есть ограничивать длину, а иначе нельзя использовать в записях. Так что отличия от Delphi в плане записи минимальны.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 26.05.2013, 17:12   #22
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 428
По умолчанию

еще такой вопрос, в общем основной функционал реализован, вот думаю теперь как все это оформить? ну это типа бд же, что юзер должен сделать чтобы добавить в бд запись? (например) просто это же консоль, тут кнопки не присобачишь, точнее правда я что то видел, про то что можно рисовать в консоле, но там такой гемор как я понял... а времени совсем мало осталось, желательно в понедельник сдать подскажите как оформить, может ввести что то типа консольных команд? отлавливать как то и соответствующую функцию запускать? или что?
NewLamer&Programer вне форума Ответить с цитированием
Старый 26.05.2013, 17:21   #23
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,429
По умолчанию

Когда я писал БД на паскале, то рисовал в графическом режиме меню, отлавливал нажатие стрелочек и ентера, и в зависимости от нажатой клавиши перерисовывал меню или вызывал процедуру. Самый простой вариант: выводить список команд и запрашивать у пользователя номер команды, а по нему уже вызывать другое меню или функцию.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 26.05.2013, 20:06   #24
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 428
По умолчанию

BDA, сделал так, понимаю пока еще сыро, но как то так это будет выглядеть:

Код:
#include "Functions.h"

#define _CRT_SECURE_NO_WARNINGS

using namespace std;

TPhoneBook *PB = NULL;
int COUNT = 0;

void main()
{
	setlocale(LC_ALL, "RUSSIAN");
	TPhoneBook EPB;
	int Key = 0;
	int Index= 0;
	system("mode con cols=137 lines=50");
	
	Menu:
	printf("Введите номер пункта меню и нажмите ENTER:\n\n");
	printf("1. Показать БД\n");
	printf("2. Добавить запись\n");
	printf("3. Изменить запись\n");
	printf("4. Удалить запись\n");
	printf("5. Сохранить БД\n");
	printf("6. Загрузить БД\n");
	printf("7. Выход\n\n");
	printf("Меню: ");

	scanf("%d",&Key);

	switch (Key)
	{

	case 1: 
		{
			if (PB=NULL)
			{
				system("cls");
				printf("БД пуста");
				goto Menu;
			}
			ShowAll(PB,COUNT);
		}

	case 2:
		{
			EPB = Interview();
			Add(EPB,&PB,&COUNT);
			printf("Запись добавлена");
		}

	case 3:
		{
			system("cls");
			printf("Введите номер изменяемой записи: ");
			scanf("%d\n",Index);
			printf("Введите заного данные %d записи: \n\n",Index);
			EPB = Interview();
			Change(EPB,PB,Index);
			printf("Запись %d изменена",Index);
		}

	case 4:
		{
			system("cls");
			printf("Введите номер удаляемой записи: ");
			scanf("%d",Index);
			Delete(&PB,Index,&COUNT);
			printf("Запись %d удалена");
		}

	case 5:
		{
			system("cls");
			Save(PB,COUNT);
			printf("БД сохранена");
		}

	case 6:
		{
			system("cls");
			Load(&PB,&COUNT);
			printf("БД загружена");
		}

	case 7:
		{
			free(PB);
			getch();
		}
	}

	free(PB);
	getch();
}
п.с. только почему то выполняются не те пункты меню которые выбраны, что за фигня о_О
п.с. 2. еще не реализован возврат в меню
NewLamer&Programer вне форума Ответить с цитированием
Старый 26.05.2013, 20:10   #25
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,429
По умолчанию

Код:
void main()
{
	setlocale(LC_ALL, "RUSSIAN");
	TPhoneBook EPB;
	int Key = 0;
	int Index= 0;
	system("mode con cols=137 lines=50");
	
	Menu:
	printf("Введите номер пункта меню и нажмите ENTER:\n\n");
	printf("1. Показать БД\n");
	printf("2. Добавить запись\n");
	printf("3. Изменить запись\n");
	printf("4. Удалить запись\n");
	printf("5. Сохранить БД\n");
	printf("6. Загрузить БД\n");
	printf("7. Выход\n\n");
	printf("Меню: ");

	scanf("%d",&Key);

	switch (Key)
	{

	case 1: 
		{
			if (PB=NULL)
			{
				system("cls");
				printf("БД пуста");
				goto Menu;
			}
			ShowAll(PB,COUNT);
			goto Menu;
		}

	case 2:
		{
			EPB = Interview();
			Add(EPB,&PB,&COUNT);
			printf("Запись добавлена");
			goto Menu;
		}

	case 3:
		{
			system("cls");
			printf("Введите номер изменяемой записи: ");
			scanf("%d\n",Index);
			printf("Введите заного данные %d записи: \n\n",Index);
			EPB = Interview();
			Change(EPB,PB,Index);
			printf("Запись %d изменена",Index);
			goto Menu;
		}

	case 4:
		{
			system("cls");
			printf("Введите номер удаляемой записи: ");
			scanf("%d",Index);
			Delete(&PB,Index,&COUNT);
			printf("Запись %d удалена");
			goto Menu;
		}

	case 5:
		{
			system("cls");
			Save(PB,COUNT);
			printf("БД сохранена");
			goto Menu;
		}

	case 6:
		{
			system("cls");
			Load(&PB,&COUNT);
			printf("БД загружена");
			goto Menu;
		}
	}

	free(PB);
	getch();
}
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 26.05.2013, 20:26   #26
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 428
По умолчанию

чего то при попытке показать все записи выдает ошибку "Необработанное исключение в "0x004126ac" в "KR_2S.exe": 0xC0000005: Нарушение прав доступа при чтении "0x00000000"." (уже после добавления записей) при этом дебаггер указывает на функцию Show

Код:
void Show(TPhoneBook EPB, int Index)
{
	setlocale(LC_ALL, "RUSSIAN");
	int cp = GetConsoleCP();

	{
		printf("|---------------------------------------------------------------------------------------------------------------------------------------|\n");
		SetConsoleCP(1251);
		printf("|%-3d|%-10s|%-10s|%-15s|%-6s|%-6s|%-12s|%-10s|%-10s|%-15s|%-3s|%-3s|%-20s|\n", Index++, EPB.Family, EPB.Name, 
			EPB.Patronymic, EPB.Phone.Home, EPB.Phone.Work, EPB.Phone.Mobile, EPB.Address.Country, EPB.Address.City, 
			EPB.Address.Street, EPB.Address.N_Home, EPB.Address.N_Apartment, EPB.Email);
		SetConsoleCP(cp);
		printf("|---------------------------------------------------------------------------------------------------------------------------------------|\n");
	}
}
NewLamer&Programer вне форума Ответить с цитированием
Старый 26.05.2013, 20:54   #27
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,429
По умолчанию

Ну так в структуре есть char и int, а в спецификаторах вывода остались одни строки.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 26.05.2013, 21:41   #28
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 428
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Ну так в структуре есть char и int, а в спецификаторах вывода остались одни строки.
это где же вы там int увидели?

http://programmersforum.ru/showthrea...80#post1234480
NewLamer&Programer вне форума Ответить с цитированием
Старый 26.05.2013, 21:54   #29
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,429
По умолчанию

Цитата:
Сообщение от NewLamer&Programer Посмотреть сообщение
это где же вы там int увидели?
И правда нету
Приведите получивший код полностью, так как в Show я лично проблем не вижу.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 26.05.2013, 21:59   #30
NewLamer&Programer
Форумчанин
 
Регистрация: 23.11.2012
Сообщений: 428
По умолчанию

насколько полностью там несколько модулей...

п.с. весь проект тут
Вложения
Тип файла: rar KR_2S.rar (3.10 Мб, 8 просмотров)

Последний раз редактировалось NewLamer&Programer; 26.05.2013 в 22:01.
NewLamer&Programer вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Загрузка из файла динамического массива структур Astronomy Общие вопросы C/C++ 1 27.12.2011 21:32
запись и загрузка с бинарного файла массива структур zetaBiT Общие вопросы C/C++ 14 28.08.2011 23:24
Сохранение и загрузка динамического массива. SkAndrew Общие вопросы Delphi 0 05.05.2010 15:54
Заполнение массива структур данными из файла Brutallus Общие вопросы C/C++ 0 26.11.2009 19:01