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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> помогите с добавлением записи в записную книгу 
:(
    Опции темы
webnews
Дата 4.11.2007, 14:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



book.h
Код

#include<iostream>
using namespace std;

struct person
{
    char name[20];
    char surname[20];
    char tel[10];
    int age;    
};

struct book
{
    person * mas;
    int count;
};

int Menu();

bool AddPerson(book*);

bool DeletePerson(book*);

bool ClearBook(book*);

void PrintBook(book*);

int FindFirst(book*);

int FindNext(book*, int);

void PrintAbonent(person*);

book.cpp
Код

#include "book.h"

void main()
{
    book bk;
    bk.mas = new person[0];
    bk.count = 0;

    int choice = 0;
    while(choice != 7)
    {
        choice = Menu();

        switch(choice)
        {
            case(1):
            {
                AddPerson(book*);
                break;
            }
            case(7):
            {
                break;
            }
            default:
            {
                cout<<"\nERROR!\n";
                break;
            }
        }
    }
}


int Menu()
{
    cout<<"\n\t1 - Dobavit zapis.\n";
    cout<<"\t2 - Ydalenit zapis:\n";
    cout<<"\t3 - Ydalit vsex\n";
    cout<<"\t4 - Pokazat vsex.\n";
    cout<<"\t5 - Nayti zapis:\n";
    cout<<"\t6 - Vichod iz programmi.\n";

    int ch;
    cin>>ch;
    return ch;
}

bool AddPerson(book*)
{

}


как добавить запись в записную книгу?
заранее благодарен за помощь

Это сообщение отредактировал(а) webnews - 4.11.2007, 15:17
PM MAIL   Вверх
wils0n
Дата 4.11.2007, 20:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А вам действительно именно так надо реализовывать "записную книгу"?
При такой реализации я б сначала задался вопросом "как удалять", а уж потом "как добавлять".
Почему б не сделать список типа:
Код

struct bookitem
{
    person* mas;
    bookitem* next;
};

struct book
{
    bookitem* first;
    bookitem* list;
    int count;
};

или лучше?

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


Шустрый
*


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

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



А куда именно ты хочешь добавлять? В конец? Или в начало? Или после заданных? Опиши конкретно задачу, чтобы можно было конкретно ответить.

Алгоритм в принципе такой:
1. Создаешь указатель на новый элемент.
2. Выделяешь созданному объекту память.
3. Заносишь туда данные (проверяешь их, если требуется).
4. Связываешь его со своим списком, как тебе требуется (в начало / в конец / иной вариант).
PM MAIL ICQ   Вверх
bsa
Дата 5.11.2007, 11:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



А почему бы не использовать std::list?
Код
#include <string>
#include <iostream>
#include <list>
#include <algorithm>
#include <iterator>

struct Person
{
    std::string name, surname, tel;
    int age;
    Person() : age(0) {}
    Person(const std::string &n, const std::string &s, const std::string &t, int a) : name(n), surname(s), tel(t), age(a){}
};

typedef std::list<Person> Book;

std::ostream& operator<<(std::ostream &stream, const Person &p)
{
     return stream << p.name << "\n" << p.surname << "\n" << p.age << "\n" << p.tel << std::endl;
}

int main()
{
      Book book;
      book.insert(book.end(), Person("Вася", "Пупкин", "123456", 10));
      //продолжаем заполнение
      //...
      //выводим на консоль
      std::copy(book.begin(), book.end(), std::ostream_iterator<Person>(std::cout) );
      return 0;
}


Это сообщение отредактировал(а) bsa - 5.11.2007, 11:24
PM   Вверх
webnews
Дата 5.11.2007, 20:03 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасибо всем кто ответил, добавлять надо в начало.
реализация такая потому что так захотел препод, прога должна быть на с, листы мы не проходили и я не в курсе.
иду учить матчасть.

PM MAIL   Вверх
bsa
Дата 5.11.2007, 20:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Вообще-то using namespace std, new и #include <iostream> однозначно говорят о том, что это написано на С++
PM   Вверх
webnews
Дата 6.11.2007, 20:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



да это потому что мы работаем в среде Microsoft Visual Studio 2005, как учили так и пишем. спасибо.
PM MAIL   Вверх
bsa
Дата 7.11.2007, 12:55 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



webnews, и что? То, что я написал, тоже ОБЯЗАНО работать в этой среде.
Если тебе надо писать на Си, то никаких using, namespace, class, iostream и пр. Только printf, scanf, puts, gets и т.п.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

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

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


 




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


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

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