Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Список труктур, Масив структур 
:(
    Опции темы
Warden
Дата 26.12.2008, 16:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 5.11.2008
Где: Ukraine

Репутация: -1
Всего: -1



Драствуйте, есть такое задание нада создать типа базы данных, я понял что нада использовать структуры, даже больше можно масив структур, а можно использовать список структу должно бытьпроще.
P.S.Если на форуме поднимались такие темы дайте ссылку или если гдето видели тоже можно.И еще одно вот код что получилось покамись накодить, он компилируеться только меня чтото выкидует из компилятораsmile
Код

#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>

struct myFriend {
int id;
char *name;
char *surname;
char *secondName;
unsigned char age;
char *telNumber;
char sex;
};

struct Node{
myFriend d;
Node *next;
Node *prev;
};

myFriend *d;
int number;

void createElement(myFriend*);
Node* first(myFriend);
void add(Node**,myFriend);

void main(){
clrscr();
createElement(d);
Node *pbeg=first(*d);
Node *pend=pbeg;
printf("\nEnter please number of records\n ");
scanf("%d",number);
}

void createElement(myFriend *d){
  printf("Enter number: \n");
  scanf("%d",d->id);
  printf("Enter Name:\n");
  scanf("%s",d->name);
  printf("Enter surname:\n");
  scanf("%s",d->surname);
  printf("Enter second name:\n");
  scanf("%s",d->secondName);
  printf("Printf sex:(1-male,0-female)\n");
  scanf("%d",d->sex);
  printf("Enter age:\n");
  scanf("%d",d->age);
  printf("Enter telephone number:\n");
  scanf("%d",d->telNumber);
}

Node* first(myFriend d){
Node *pv=(Node*)calloc(1,sizeof(Node));
pv->d=d;
pv->next=0;
pv->prev=0;
return pv;
}

void add(Node **pend,myFriend d){
Node *pv=(Node*)calloc(1,sizeof(Node));
pv->d=d;
pv->next=0;
pv->prev=*pend;
(*pend)->next=pv;
*pend=pv;
}

PM MAIL ICQ Skype GTalk   Вверх
pan2004
Дата 26.12.2008, 21:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 357
Регистрация: 28.7.2007

Репутация: 2
Всего: 9



Код

myFriend *d;

Ну вот, создал указатель(и еще кучу других), а инициализировать их кто будет? Пушкин?
new если компилятор плюсовый, иначе (m)alloc. Ну и про free не забываем.

ПС Вообще плохая привычка - делать глобальные переменные без особой на то причины. Пока программки маленькие, еще ничего...


--------------------
Qt4/C++ fan
WinXP SP3: MSVC++2005 Qt4.5.1 Boost1.39
сыграем в дурака?
PM MAIL   Вверх
Warden
Дата 26.12.2008, 21:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 5.11.2008
Где: Ukraine

Репутация: -1
Всего: -1



Цитата(pan2004 @ 26.12.2008,  21:21)
Код

myFriend *d;

Ну вот, создал указатель(и еще кучу других), а инициализировать их кто будет? Пушкин?
new если компилятор плюсовый, иначе (m)alloc. Ну и про free не забываем.

ПС Вообще плохая привычка - делать глобальные переменные без особой на то причины. Пока программки маленькие, еще ничего...
  • Первое указатель д на на структуру,думаю его инициализировать не нада smile 
  • Остальные указатели в структуре не нада инициализировать точно так как это список
  • Память я выделил малоком, а поповоду глобальных переменных, знаю просто они мне нада будут для удаления,редактирования,вывода и еще для многих прелестей

PM MAIL ICQ Skype GTalk   Вверх
pan2004
Дата 26.12.2008, 22:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 357
Регистрация: 28.7.2007

Репутация: 2
Всего: 9



Цитата(Warden @  26.12.2008,  21:40 Найти цитируемый пост)
Первое указатель д на на структуру,думаю его инициализировать не нада 

Надо, вася, надо.

Цитата(Warden @  26.12.2008,  21:40 Найти цитируемый пост)
Остальные указатели в структуре не нада инициализировать точно так как это список

Надо, вася, надо.

Цитата(Warden @  26.12.2008,  21:40 Найти цитируемый пост)
 они мне нада будут для удаления,редактирования,вывода и еще для многих прелестей

Хозяин барин, но учти, что программеры их не с проста не любят. Локальные ничуть не хуже, а следить за ними проще.


--------------------
Qt4/C++ fan
WinXP SP3: MSVC++2005 Qt4.5.1 Boost1.39
сыграем в дурака?
PM MAIL   Вверх
Warden
Дата 26.12.2008, 22:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 5.11.2008
Где: Ukraine

Репутация: -1
Всего: -1



может у когото будут какието предложения как ещеможнореализовать, или помогите со списком
PM MAIL ICQ Skype GTalk   Вверх
Dmi3ev
Дата 26.12.2008, 22:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



когда-то делал по учебе на скорую руку, может пригодится, посмотри... хотя не совсем то, что ты хотел... но... может, поможет...
Код

//---------------------------------------------------------------------------

#include <iostream.h>
#include <fstream.h>
#include <stdio.h>
//---------------------------------------------------------------------------
struct myfriend
{
char im[50];
char fam[50];
char otc[50];
char tel[30];
};
//---------------------------------------------------------------------------
void del()
{
char s[80];
int n=0, k=1;
cout<<"vvedite nomer zapisi dlia udalenia=";
cin>>n;
ifstream fi;
ofstream fo;
fi.open("D:\\myBD.doc");
fo.open("D:\\myBDtemp.doc");
while (! fi.eof())
 {
  fi.getline(s,80);
  if (k!=n)
    fo<<s<<endl;
  k++;
 }
fi.close();
fo.close();
remove ("D:\\myBD.doc");
rename ("D:\\myBDtemp.doc", "D:\\myBD.doc");
n=0;
k=1;
}
//---------------------------------------------------------------------------
void vivod ()
{
char s[80];
ifstream fi;
fi.open("D:\\myBD.doc");
while (! fi.eof())
 {
  fi.getline(s,80);
  cout<<s<<endl;
 }
fi.close();
}
//---------------------------------------------------------------------------

void vvod ()
{
myfriend f1;
cout<<"familia=";
cin>>f1.fam;
cout<<"imia=";
cin>>f1.im;
cout<<"otchestvo=";
cin>>f1.otc;
cout<<"telefon=";
cin>>f1.tel;
ofstream fo;
fo.open("D:\\myBD.doc", ios::app);
fo<<f1.fam<<" "<<f1.im<<" "<<f1.otc<<" "<<f1.tel<<"\n";
fo.close();
}

int main()
{
char q;
while (q!='e')
 {
  cout<<endl;
  cout<<"--menu--"<<endl;
  cout<<"1-Vvod"<<endl;
  cout<<"2-Vivod"<<endl;
  cout<<"3-Delete"<<endl;
  cout<<"--------"<<endl;
  cin>>q;
  switch (q)
  {
   case '1': vvod(); break;
   case '2': vivod(); break;
   case '3': del(); break;
  }
 }

return 0;
}
//---------------------------------------------------------------------------


Это сообщение отредактировал(а) Dmi3ev - 26.12.2008, 22:48


--------------------

PM MAIL   Вверх
Dmi3ev
Дата 26.12.2008, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



Прошу не судить строго об этом творении  smile для отмазы делал  smile очень быстро  smile 


--------------------

PM MAIL   Вверх
mes
Дата 26.12.2008, 23:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Warden, a язык то какой в задании ? Си, C++ или  Си с элементами C++?


Это сообщение отредактировал(а) mes - 26.12.2008, 23:13


--------------------
PM MAIL WWW   Вверх
Warden
Дата 27.12.2008, 21:02 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 5.11.2008
Где: Ukraine

Репутация: -1
Всего: -1



Цитата(mes @ 26.12.2008,  23:12)
Warden, a язык то какой в задании ? Си, C++ или  Си с элементами C++?

си с елементами си++smile

Добавлено через 3 минуты и 20 секунд
Цитата(mes @ 26.12.2008,  23:12)
Warden, a язык то какой в задании ? Си, C++ или  Си с элементами C++?

спасибо, я так понял єто у тебя сделано в файл, а мне єт тоже пригодитьсяsmilesmile, но мне нада сделать типа БД тойсть чтобы в программе данные сохранялись в масивеструктур или в чём-то еще я вот придумал со списком, думаю что это будет проще чем с масивом или еще чемтоsmile
PM MAIL ICQ Skype GTalk   Вверх
Dmi3ev
Дата 28.12.2008, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1698
Регистрация: 28.11.2007

Репутация: 13
Всего: 41



Цитата

но мне нада сделать типа БД тойсть чтобы в программе данные сохранялись в масивеструктур или в чём-то еще я вот придумал со списком, думаю что это будет проще чем с масивом или еще чемтоsmile 

взял бы вектор



--------------------

PM MAIL   Вверх
Warden
Дата 28.12.2008, 16:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 5.11.2008
Где: Ukraine

Репутация: -1
Всего: -1



к сожалению я не знаю что єто такое:(
PM MAIL ICQ Skype GTalk   Вверх
mes
Дата 28.12.2008, 19:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


любитель
****


Профиль
Группа: Участник Клуба
Сообщений: 7954
Регистрация: 14.1.2006

Репутация: 79
Всего: 250



Цитата(Warden @  28.12.2008,  16:39 Найти цитируемый пост)
к сожалению я не знаю что єто такое:( 

http://www.cplusplus.com/reference/stl/vector/
один из контейнеров стандартной библиотеки шаблонов. 
удобно использовать в качестве динамического массива.. 
однако это уже Cpp..

Код

struct Friend 
{
   int id;
  std::string name;
  std::string surname;
// ...
};

// тут опереации с Friend
// ..
// к примеру вывод в поток
std::ostream& operator << (std::ostream& o, const Friend& fr)
{
  o<< "Name : " << fr.name << std::endl;
// o<< ...
  return o;
}

int main()
{

std::vector <Friend> friends;  // массив структур.

friends.push_back(Friend()); // добавление в массив нового элемента

for (std::vector <Friend>::iterator it = friends.begin(); it!= friends.end();++it) // для каждого элемента массива
{
   std::cout << *it << std::endl; // вывести в поток // необходима перегрузка оператора << потока для const Friend&
}

 
return 0;
}




Это сообщение отредактировал(а) mes - 28.12.2008, 19:50


--------------------
PM MAIL WWW   Вверх
Warden
Дата 30.12.2008, 18:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 44
Регистрация: 5.11.2008
Где: Ukraine

Репутация: -1
Всего: -1



может у когото есть выше описаное только на си а не на си++ и без использования класов и векторовsmile
PM MAIL ICQ Skype GTalk   Вверх
bsa
Дата 30.12.2008, 18:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Warden, поиск по форуму слов "двусвязный список".
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0596 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.