C++ Builder
| Главная | Уроки | Статьи | FAQ | Форум | Downloads | Литература | Ссылки | RXLib | Диски |

 
на C++ делаю телефонный справочник (курсовой), Мои вопросы к вам )
mKostya
Отправлено: 07.04.2005, 00:59


Ученик-кочегар

Группа: Участник
Сообщений: 17



пока зделал меню!
1.мое меню будет работать?
2.какой проседурой можно менять цвет текста?
3.какой проседурой очешяется екран?

пока все )


User Attached Image Скачать файл
KYRSA4.CPP


Rius
Отправлено: 07.04.2005, 07:06


Мастер участка

Группа: Участник
Сообщений: 321



1. нету передвижения по пунткам меню курсорными клавишами
2. textattr
3. clrscr();
Konstantine
Отправлено: 07.04.2005, 08:31


Мастер участка

Группа: Модератор
Сообщений: 545



курсор — не курсор, а вот зациклить нада бы и пункт меню Exit
mKostya
Отправлено: 07.04.2005, 10:02


Ученик-кочегар

Группа: Участник
Сообщений: 17



спасибо за ответы!
есть еще вопрос как после завершения функций зделать чтоб програма переходила в меню а не закрывалась?

User Attached Image Скачать файл
KYRSA4.CPP


mKostya
Отправлено: 07.04.2005, 11:34


Ученик-кочегар

Группа: Участник
Сообщений: 17



как правильно зделать сортировку?
функция save() правильно работает?
как правильно зделать функцию load() ?
как после завершения функций зделать чтоб програма переходила в меню а не закрывалась?

Отредактировано mKostya — 07/04/2005, 11:35

User Attached Image Скачать файл
KYRSA4.CPP


Георгий
Отправлено: 07.04.2005, 12:13


Почетный железнодорожник

Группа: Модератор
Сообщений: 874



Вы с Nox одну и ту же работу делаете?
Посмотри код, который Nox выложил (в закрытой теме) — очень сильно на твоё задание смахивает
mKostya
Отправлено: 07.04.2005, 12:19


Ученик-кочегар

Группа: Участник
Сообщений: 17



ето я под ником Nox и постил! и потом зарегестрировался!

мне просто надо сделать понятние код! и я незнаю как зделать загрузку данных из файла ((

Отредактировано mKostya — 07/04/2005, 12:21
** Harold
Отправлено: 07.04.2005, 20:30


Не зарегистрирован







Самый хороший (быстрый) подход — взять книжку Архангельского (не реклама, просто хороший справочник) и прочесть меню (оглавление) — большая половина вопросов отпадет сама собой... Еще и смеяться будешь, как все просто...
mKostya
Отправлено: 07.04.2005, 20:48


Ученик-кочегар

Группа: Участник
Сообщений: 17



Книги есть но я там немогу найти тему списки!
У меня есть Дейтел и Шилдт )

Отредактировано mKostya — 07/04/2005, 20:49
** Harold
Отправлено: 07.04.2005, 21:01


Не зарегистрирован







Если MSK — то "дом Книги" на Новом Арбате. Не пожалеешь. Ну и "велик могучем руссков языка"((с)- Александр Иванов — был такой пародист) приветствуется, конечно, а то: 1) читать неудобно, 2) "Мы его теряем..."(с)....
Если нужен просто КОД ещё "вчера", то так и пиши...
** Harold
Отправлено: 07.04.2005, 21:15


Не зарегистрирован







CODE

String sMyFileName = "MyFileName";

    sMyFileName=OpenDialog->FileName;
    Memo1(ну, или куда нужно)->Lines->LoadFromFile( OpenDialog->FileName );

Что-то типа такого, в процессе печатания букв тебе Borland подскажет...
Наверняка, все это есть в Help'е (хотя, конечно, у Борланда help НАИКРИВЕЙШИЙ, но тем не менее...)
mKostya
Отправлено: 07.04.2005, 21:31


Ученик-кочегар

Группа: Участник
Сообщений: 17



Пожалуйста помогите организовать меню(не работает подменю)!
А то оно работает с ошибками!



User Attached Image Скачать файл
KYRSA4.CPP


** Harold
Отправлено: 08.04.2005, 00:09


Не зарегистрирован







Ну, пощелкай мышкой-то... И все будет. Тебе же VCL Борланд в руки дал! Куда уж проще-то! Даже мне, дятлу, и то понятно... Расслабся. На свежую голову книжки почитай. ВСЕ ПРОСТО — КАК 2х2...
Rius
Отправлено: 08.04.2005, 07:41


Мастер участка

Группа: Участник
Сообщений: 321



Harold По-моему речь идет о Borland C++ 3.1 под DOS.
mKostya
Отправлено: 08.04.2005, 08:39


Ученик-кочегар

Группа: Участник
Сообщений: 17



QUOTE (Rius @ 08/04/2005, 07:41)
Harold По-моему речь идет о Borland C++ 3.1 под DOS.

Harold я пишу на Borland C++ 3.1 под DOS!
Пожалкйста посмотрите и подскажите что делать!
Rius
Отправлено: 08.04.2005, 10:14


Мастер участка

Группа: Участник
Сообщений: 321



Вот мой курсач на сходную (издали) тему.

User Attached Image Скачать файл
Kursov_2005.04.08___13.13.rar


mKostya
Отправлено: 08.04.2005, 11:12


Ученик-кочегар

Группа: Участник
Сообщений: 17



Как зделать загрузку из файла???
а то я не пойму как загружать структуры (((

CODE
void save()
{
FILE *f;
  f = fopen("phonedata.lst", "a");
  if (!f)
  {
cprintf("ЋиЁЎЄ . ЌҐ ¬®¦Ґв ®вЄалвм д ©« phonedata.lst ...");
     getch();
     return;
  }
  printf("ЌҐў®§¬®¦­® ®вЄалвм д ©«.\n");
cur = beg;



while (cur)
{
 fprintf(f, "I %6d I", cur->num);
 fprintf(f, " %23s I", cur->name);
 fprintf(f, " %21s I", cur->address);
 fprintf(f, " %17s I\n", cur->tel);
 cur = cur->next;
}
fclose(f);

}
/**************************************************************************/

void load()
{
FILE *f;
  f = fopen("phonedata.lst", "r");
  if (!f)
  {
cprintf("ЋиЁЎЄ . ЌҐ ¬®¦Ґв ®вЄалвм д ©« phonedata.lst ...");
     getch();
     return;
  }
  printf("ЌҐў®§¬®¦­® ®вЄалвм д ©«.\n");
cur = beg;



while (cur)
{
 fgetc(f, "I %6d I", cur->num);
 fprintf(f, " %23s I", cur->name);
 fprintf(f, " %21s I", cur->address);
 fprintf(f, " %17s I\n", cur->tel);
 cur = cur->next;
}
fclose(f);

}


Konstantine: теги кода ставь smile.gif

Отредактировано Konstantine — 08/04/2005, 11:58
mKostya
Отправлено: 08.04.2005, 11:19


Ученик-кочегар

Группа: Участник
Сообщений: 17



QUOTE (Rius @ 08/04/2005, 10:14)
Вот мой курсач на сходную (издали) тему.

спасибо! )
но для меня ето сложно (
mKostya
Отправлено: 09.04.2005, 20:40


Ученик-кочегар

Группа: Участник
Сообщений: 17



Какая функция ждет нажатия любой клавиши для продолжения програмы?
Rius
Отправлено: 09.04.2005, 20:52


Мастер участка

Группа: Участник
Сообщений: 321



mKostya
getch(), какой-то её аналог без вывода на экран, и bioskey(int)

В моем курсаче есть все что ты спросил и ещё спросишь, хотя бы просмотри незнакомые тебе пока функции (из моего файла) в хэлпе.
mKostya
Отправлено: 10.04.2005, 19:11


Ученик-кочегар

Группа: Участник
Сообщений: 17



а как читать из файла список?
Guest
Отправлено: 11.04.2005, 06:11


Не зарегистрирован







Создаешь в файле данные, которые можно легко считывать, затем заполняешь список поэлементно.
mKostya
Отправлено: 11.04.2005, 07:20


Ученик-кочегар

Группа: Участник
Сообщений: 17



Я так и делаю!
Вот заполняю:
CODE
void save()
{
FILE *f;
  f = fopen("phonedata.lst", "a");
  if (!f)
  {
cprintf("ЋиЁЎЄ . ЌҐ ¬®¦Ґв ®вЄалвм д ©« phonedata.lst ...");
     getch();
     return;
  }
cur = beg;



while (cur)
{
 fprintf(f, "I %6d I", cur->num);
 fprintf(f, " %23s I", cur->name);
 fprintf(f, " %21s I", cur->address);
 fprintf(f, " %17s I\n", cur->tel);
 cur = cur->next;
}



Но только я не пойму как считывать! все пробывал и не че не получается ((!
Подскажите как считывать?
vvoid
Отправлено: 11.04.2005, 15:50


Машинист паровоза

Группа: Участник
Сообщений: 171



Попробуй убрать из файла все лишние разделитетли (у тебя они, если я не ошибаюсь, представлены в виде символов "I"). Тогда и читать из файла будет значительно проще:
CODE
fscanf(FilePtr,
"%d%s%s%s",
&(cur->num), // Это должны быть указатели
cur->name, // если я правильно угадал типы данных
cur->address, // в твоём списке, то должно работать,
cur->tel); // если нет, то подкорректируй


Учти, что fscanf разделяет слова ориентируясь на общепринятые символы разделители: пробел, таб(\t), конец строки(\n) и NULL (\0), а это значит, что если имя у тебя состоит из двух частей (имя и фамилия, например), то надо будет поиграться с цифрой после символа "%", я просто сейчас не помню, например %2s, означает считать два слова или два символа.

Надеюсь идея понятна.

PS*
И не бойся делать файлы, в которых ты хранишь данные, непонятными для чтения. Их читабельность вообще, по большому счёту, не имеет значения, главное, чтобы было легко работать с такими файлами программно.

Отредактировано vvoid — 11/04/2005, 15:52
mKostya
Отправлено: 11.04.2005, 22:08


Ученик-кочегар

Группа: Участник
Сообщений: 17



QUOTE (vvoid @ 11/04/2005, 15:50)
Попробуй убрать из файла все лишние разделитетли (у тебя они, если я не ошибаюсь, представлены в виде символов "I"). Тогда и читать из файла будет значительно проще:
CODE
fscanf(FilePtr,
"%d%s%s%s",
&(cur->num), // Это должны быть указатели
cur->name, // если я правильно угадал типы данных
cur->address, // в твоём списке, то должно работать,
cur->tel); // если нет, то подкорректируй


Учти, что fscanf разделяет слова ориентируясь на общепринятые символы разделители: пробел, таб(\t), конец строки(\n) и NULL (\0), а это значит, что если имя у тебя состоит из двух частей (имя и фамилия, например), то надо будет поиграться с цифрой после символа "%", я просто сейчас не помню, например %2s, означает считать два слова или два символа.

Надеюсь идея понятна.

PS*
И не бойся делать файлы, в которых ты хранишь данные, непонятными для чтения. Их читабельность вообще, по большому счёту, не имеет значения, главное, чтобы было легко работать с такими файлами программно.

Большое спасибо!
шас буду разбиратся! )

Вернуться в Вопросы программирования в C++Builder