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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Динамические структуры данных в С++ 
:(
    Опции темы
wnayk
Дата 16.12.2006, 18:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Меня просто на второй семестр не переведут,если через неделю не сдам
zabivator, ,просто ректор новый и с этим он строго((
Ты не можешь подсказать или может есть у кого нибудь хотя бы похожая??? меня предки smile  замочат,и я буду рядовым(((Помогите.....
PM MAIL   Вверх
wnayk
Дата 17.12.2006, 12:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



zabivator, у тебя нет похожей задачи или этой же,может сможешь чем-нибудб помочьььььь smile 
PM MAIL   Вверх
Anikmar
Дата 17.12.2006, 13:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Это программа не на 5 и даже не на 500 строчек. Никто ради забавы ее делать не будет - следовательно, если у кого она и есть, то скорее всего достаточно объемный и серьезный проект.

Мы такую программу писали на моем старом месте работы. там была поддержка склада, работа с ККМ - практически все, что ты написал в задании. Объем сего продукта был минимум на 5000 строк (на сколько я помню, давно это было).

Если до сдачи курсовика осталось 1 неделя я бы предложил наляпать стандартными контролами на PARADOX нечто, которое будет работать - врядли ее серьезно будут тестировать. 1 недели в принципе хватит, если серьезно этим озаботиться.
PM MAIL ICQ   Вверх
колючка
Дата 17.12.2006, 21:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



А кто-нибудь может просветить по поводу очереди с приоритетом? Ну вот нигде найти не могу что это и с чем ее едят! Может хотя бы подскажите где информацию на эту тему искать  smile А еще лучше примерчик какой-нибудь, или програмку (вообще мечта!)...
PM MAIL   Вверх
Anikmar
Дата 17.12.2006, 23:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Цитата

или програмку (вообще мечта!)... 


Программку чего? Очереди с приоритетом? А что она делать должна (программка)?
PM MAIL ICQ   Вверх
JackYF
Дата 18.12.2006, 14:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


полуавантюрист
****


Профиль
Группа: Участник
Сообщений: 5814
Регистрация: 28.8.2004
Где: страна тысячи озё р

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



Цитата(колючка @  17.12.2006,  21:58 Найти цитируемый пост)
Ну вот нигде найти не могу что это и с чем ее едят!


priority_queue - поищи по этому слову.



--------------------
Пожаловаться на меня как модератора можно здесь.
PM MAIL Jabber   Вверх
wnayk
Дата 19.12.2006, 18:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Anikmar, У меня есть несколько похожих задачик нашел в нете там от 250 строк до 700 строк максимум,ты не знаешь может есть какие нибудь сайты где выкладываются задачки с решениями-УМИРАЮ smile  smile 
PM MAIL   Вверх
Anikmar
Дата 20.12.2006, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



wnayk, К сожалению не знаю - никогда этим вопросом не занимался. Как говорится "Да прибудет с вами Yandex"

Если уже найдены готовые программки - почему не использовать их? Доработать необходимый функционал и вперед. С точки зрения алгоритма такая задача особой сложностью не отличается - там больше рутины - рисование окошек, отработка редактирования и т.п.
PM MAIL ICQ   Вверх
wnayk
Дата 20.12.2006, 13:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



 smile  smile  smile 
PM MAIL   Вверх
wnayk
Дата 27.12.2006, 22:18 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



 smile  я хочу узнать-дано: 
double price;
как найти длину этого числа?Ну тм двузначное или еще???Подскажите...
PM MAIL   Вверх
zkv
Дата 28.12.2006, 00:37 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



****


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

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



Цитата(wnayk @  27.12.2006,  22:18 Найти цитируемый пост)
как найти длину этого числа?

хм, интересно зачем? 

Определение количества цифр в целой части числа:
Код

int DigitsInDouble( double price )
{
    price = ( price > 0 ) ? price : -price;//берем модуль
    int numDigs = 0;
    while( price >= 1. )
    {
        price /= 10.;
        ++numDigs;
    }
    return numDigs;
}

PM MAIL   Вверх
KpoHyc
Дата 28.12.2006, 00:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Anikmar,  какие нафиг 5к строк? это курсач первака...1к максимум - 500-600 самое реальное...


wnayk
Код

//---------------------------------------------------------------------
//
// Laboratornaya rabota ? 20
//
// Zadanie:
// Sostavit' programmu, kotoraya soderzhit dinamicheskuyu informatsiyu
// o nalichii knig v biblioteke. Svedeniya o kazhdoi knige soderzhat:
// familiyu avtora, nazvanie, god izdaniya.
// Programma dolzhna obespechivat':
//   1) nachal'noe formirovanie dannyh obo vseh knigah v biblioteke
//      v vide lineinogo spiska,
//   2) dobavlenie novoi knigi v spisok,
//   3) udalenie knigi iz spiska,
//   4) spisok vseh knig avtora,
//      familiya kotorogo vvedena pol'zovatelem.
// Programma dolzhna obespechivat' dialog s pomosch'yu menyu
// i kontrol' oshibok pri vvode.
//
//---------------------------------------------------------------------

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

struct Book {
  char Author [30]; // Avtor
  char Title [100]; // Nazvanie
  int Year;         // God izdaniya
  Book *prev;       // Ukazatel' na predyduschuyu zapis'
  Book *next;       // Ukazatel' na sleduyuschuyu zapis'
};

Book *first = NULL; // Ukazatel' na nachalo spiska
Book *last = NULL;  // Ukazatel' na konets spiska

// Prototipy funktsii
void Input (void); // Nachal'noe formirovanie spiska
void Find (void);  // Poisk v spiske
int List (void);   // Pechat' vsego spiska
void Clear (void); // Udalenie spiska iz pamyati
int Menu (void);   // Menyu

int main (void)
{
  while (Menu ()); // tsikl poka pol'zovatel' ne vybral vyhod

  Clear ();
  return 0;
}

//---------------------------------------------------------------------
//
// Funktsiya void Add (Book *book)
//
// Dobavlyaet strukturu book v konets spiska
//
// Ishodnye dannye:
//   ukazatel' na strukturu Book *book
//
//---------------------------------------------------------------------

void Add (Book *book)
{
  if (last != NULL) // esli spisok uzhe suschestvuet
  {
    book->prev = last;
    book->next = NULL;
    last->next = book;
    last = book;
  }
  else              // esli spisok esche ne sozdan
  {
    book->prev = NULL;
    book->next = NULL;
    first = book;
    last = book;
  }
}

//---------------------------------------------------------------------
//
// Funktsiya void Delete (Book *book)
//
// Udalyaet strukturu iz spiska
//
// Ishodnye dannye:
//   ukazatel' na strukturu Book *book
//
//---------------------------------------------------------------------

void Delete (Book *book)
{
  if (book)
  {
    if (book->prev) book->prev->next = book->next;
    if (book->next) book->next->prev = book->prev;
    if (book == first) first = first->next;
    if (book == last) last = last->prev;
    delete book;
  }
}

//---------------------------------------------------------------------
//
// Funktsiya void AddItem (void)
//
// Sozdaet strukturu i zanosit v nee dannye,
// vvedennye pol'zovatelem s klaviatury
//
//---------------------------------------------------------------------

void AddItem (void)
{
  Book *book;

  // sozdaem novuyu strukturu
  book = new Book;
  // zapolnyaem ee
  cout << "Vvedite familiyu avtora: ";
  cin >> book->Author;
  cout << "Vvedite nazvanie knigi: ";
  cin >> book->Title;
  cout << "Vvedite god izdaniya: ";
  cin >> book->Year;
  // dobavlyaem v spisok
  Add (book);
}

//---------------------------------------------------------------------
//
// Funktsiya void DeleteItem (void)
//
// Udalyaet iz spiska strukturu, vybrannuyu pol'zovatelem
//
//---------------------------------------------------------------------

void DeleteItem (void)
{
  // vyvodim spisok vseh struktur
  int i = List ();
  int num;

  cout << "Vvedite nomer udalyaemoi zapisi: ";
  cin >> num;
  if (num < 1 || num > i) return;

  Book *book = first;
  // nahodim ukazatel' na udalyaemuyu strukturu
  for (i = 1; i < num; i++)
  {
    book = book->next;
  }
  // udalyaem ee
  Delete (book);
}

//---------------------------------------------------------------------
//
// Funktsiya void Input (void)
//
// Nachal'noe formirovanie spiska
//
//---------------------------------------------------------------------

void Input (void)
{
  bool enough = false;

  do
  {
    AddItem (); // zapolnyaem ocherednuyu strukturu
    cout << "Prodolzhit' vvod informatsii? (y/n)" << endl;
    if (getch () == 'n') enough = true;
  }
  while (!enough);
}

//---------------------------------------------------------------------
//
// Funktsiya void Find (void)
//
// Poisk v spiske knig, familiya avtora kotoryh vvedena pol'zovatelem
//
//---------------------------------------------------------------------

void Find (void)
{
  char author[30];
  cout << "Vvedite familiyu avtora: ";
  cin >> author;

  Book *book = first;
  cout << "Naidennye knigi:" << endl;
  while (book)
  {
    if (strcmp (book->Author, author) == 0) // proveryaem zapis'
    {
      cout << book->Author << " "
   << book->Title << " "
   << book->Year << endl;
    }
    book = book->next; // perehodim k sleduyuschei zapisi
  }
}

//---------------------------------------------------------------------
//
// Funktsiya int List (void)
//
// Pechat' spiska
//
// Vozvraschaet chislo napechatannyh zapisei
//
//---------------------------------------------------------------------

int List (void)
{
  Book *book = first;
  int i = 0;

  cout << endl << "V spiske soderzhatsya:" << endl;
  while (book)
  {
    i++;
    cout << i << ". " << book->Author << " " << book->Title << " " << book->Year << endl;
    book = book->next;
  }
  return i;
}

//---------------------------------------------------------------------
//
// Funktsiya void Clear (void)
//
// Udalenie spiska iz pamyati
//
//---------------------------------------------------------------------

void Clear (void)
{
  Book *book = first;
  while (book)
  {
    Book *tmp = book;
    book = book->next;
    Delete (tmp);
  }
}

//---------------------------------------------------------------------
//
// Funktsiya int Menu (void)
//
// Realizuet rabotu menyu
//
// Vozvraschaet 0 v sluchae zaversheniya raboty
// i 1 v protivnom sluchae
//
//---------------------------------------------------------------------

int Menu (void)
{
  char ch = 0;

  // Vyvodim spisok vozmozhnyh variantov vybora
  cout << "Vash vybor:" << endl;
  cout << "1. Sformirovat' spisok." << endl;
  cout << "2. Pechat' spiska." << endl;
  cout << "3. Dobavit' v spisok." << endl;
  cout << "4. Udalit' iz spiska." << endl;
  cout << "5. Poisk v spiske." << endl;
  cout << "6. Vyhod." << endl;

  // ozhidaem, kogda budet nazhata "pravil'naya" klavisha
  while (ch < '1' || ch > '6')
  {
    ch = getch ();
  }

  // osuschestvlyaem vybor soglasno nazhatoi klavishy
  switch (ch)
  {
    case '1': Input (); break;
    case '2': List (); break;
    case '3': AddItem (); break;
    case '4': DeleteItem (); break;

    case '5': Find (); break;
    case '6': return 0;
  };
  return 1;
}


это база данных деканат - переработать под вашу задачу можно за один вечер. - дерзайте...

Добавлено @ 00:48 
или вот...задание тоже...
Код

#include <stdio.h>      //  для работы с файлами и макросом FILE в частности (он используется для объявления указателя на файл)
#include <stdlib.h>     //  для того чтобы можно было использовать функции...stdlib.h  - для С, cstdlib.h - для С++
#include <string.h>     //  для использования строковых функций...string.h  - для С, cstring.h - для С++
#include <conio.h>      //  не помню
#include <windows.h>    //  не нужен...совсем не нужен...



const int l_name = 31;     // отводим 31 символ на переменную, за КОЛИЧЕСТВО студентов
Блок закончен
struct Man             // вложенная запись Мэн
{   char name[l_name];     //имя
    int birth_day;        //ДР
    float pay;            // средний балл
    Man* next;            // переход с следующему студенту (вроде)
};
  // Тут объявляются все процЫдуры, для того чтобы их можно было использовать, их опсание будет дальше
Man* add(Man* beg, const Man &man);
int edit(Man* beg);
Man* find(Man* beg, char* name, Man** prev);
void find(Man* beg, int birth_day);
void find(Man* beg, float pay);
void find_man(Man* beg);
void get_name(char* name);
int menu();
void print_dbase(Man* beg);
Man* read_dbase(char* filename);
Man read_man();
Man* remove(Man* beg);
int   write_dbase(char* filename, Man* beg);

// --------------------------------------------------  Главная страница, в которой происходит выбор между функциями
int main()
{  Man* beg = read_dbase("dbase.txt");      //Чиатем базу
if (!beg) return 1;                         //Если не получилось - еще раз
while (TRUE)                                //бесконечный цикл
 {   switch (menu())                        //выбор между функциями - их описание ниже
  {   case 1: add(beg, read_man()); break;
      case 2: beg = remove(beg);    break;
      case 3: find_man(beg);        break;
      case 4: edit(beg);            break;
      case 5: print_dbase(beg);     break;
      case 6: write_dbase("dbase.txt", beg); break;
      case 7: return 0;              //выход из проги
      default: puts("Nado vvodit' chislo ot 1 do 7"); break;    // защита от дурака
  }
 }
 getch();                              //ожидание ввода - затем выход
return 0;

}
// -------------------------------------------------- Добавление студента
Man* add(Man* beg, const Man& man)
{
Man* pv = new Man;                          // Формирование нового элемента
*pv = man; pv->next = 0;
if (beg)                                    // Если список не пуст
 {   Man* temp = beg;                                                                                                               
     while (temp->next)
     temp = temp->next;                     // Находим конеце списка
     temp->next = pv;                       // Приклеиваем новый элемент
 }
else                                        // Если пуст
beg = pv;
return beg;
}
// -------------------------------------------------- Корректировка сведений
int edit(Man* beg)
{   char name[l_name], buf[80];
    get_name(name);                         // Кого ищем?
    Man* prev;
    Man* pv = find(beg, name, &prev);
    if (!pv) return 1;                      // Если не нашли пробуем заново
    do
 {
     puts("Vvedite nov'i srednii ball");    //запрос данных
     gets(buf);
 }
    while (!(pv->pay = (float)atof(buf)));  //конвертация pay из символьной переменной в числовую, с плавающей точкой
    return 0;
}
// -------------------------------------------------- Поиск в списке по фамилии
Man* find(Man* pv, char* name, Man** prev)
{   *prev = 0;
    while(pv)
 {   if (strstr(pv->name, name))   //проверяет, находиться ли указатель на первом месте, в начале строки...
     if (pv->name[strlen(name)] == ' ')   // а вот не знаю - тут идет проверка на длину строки...но почему то проверяет на то что строка должна быть пустая...
  {
      printf("%30s%5i%10.2f\n", pv->name, pv->birth_day, pv->pay);
      return pv;
  }
     *prev = pv;
     pv = pv->next;
 }
    puts("Takogo studenta net\n");
    return 0;
}

// -------------------------------------------------- Поиск и вывод студентов по году рождения
void find(Man* pv, int birth_day)           //Поиск в таком-то файле такойто записи,
{   while (pv)
 {   if (pv->birth_day < birth_day)       // при условии что данные из базы меньше введенных
     printf("%30s%5i%10.2f\n", pv->name, pv->birth_day, pv->pay);       //выводим
     pv = pv->next;                       // переходим к следующеему студенту
 }
}

// -------------------------------------------------- Поиск и вывод студентов по среднему баллу
void find(Man* pv, float pay)                          // аналогично
{   while (pv)
 {   if (pv->pay >= pay)
     printf("%30s%5i%10.2f\n", pv->name, pv->birth_day, pv->pay);
     pv = pv->next;
 }
}

// -------------------------------------------------- Поиск
void find_man(Man* beg)
{   char buf[l_name];                    // отводим текстовую переменную под  запрос
    int birth_day=1, option;             // Объявляем переменные
    float pay;                           // еще одну
    do
 {   puts("l - poisk po familii    |   2 - po godu rozshdeniya,\n\
           3 - po srednemu ballu   |   4 - otmena\n");
     gets(buf);                          // считывание с клавы
 }
    while (!(option = atoi(buf)));      // конвертация buf из символьной переменной в числовую
    switch (option)                     // Опшн - счетчик
  {   case 1: get_name(buf);            // Если выбрали 1
      Man *prev;                        // могу с этим ошибаться, но кажеться это отвечает за поиск
      Man *pv = find(beg, buf, &prev);  // в файле, а это прогоняет по всем позициям...уточни в желтой книге которую я тебе давал, там есть раздел базы данных - работа с файлами, где-то в середине
      break;
     case 2: do                         // Если выбрали 2
   {  puts("Vvedite god rozshdeniya\n"); gets(buf);
   }  
      while (!(birth_day = atoi(buf)));   // конвертация birth_day из символьной переменной в числовую
      find(beg, birth_day);               // находим в файле дату
      break;
      case 3: do                      // Если выбрали 3
    {   puts("Vvedite srednii ball\n"); gets(buf);
    }
        while (!(pay = (float)atof(buf)));   // конвертация pay из символьной переменной в числовую, с плавающей точкой
        find(beg, pay);                   // ищем нужное
        break;
        case 4: return;            // Если выбрали 4 - выходим отсюда
        default:
        puts("nevern'i rezshim\n");   // Если нету такого варианта, то выводим предупреждение (защита от юзера)
  }
}
// -------------------------------------------------- Запрос фамилии
void get_name(char* name)                         // Функция, которая называется  get_name("имя студента")  - запрашивает имя
{   puts("Vvedite familiu I.O.");
    gets(name);                                 // считывает с клавы значение и заносит в переменную name

}
// -------------------------------------------------- Вывод меня
int menu()
{   char buf[10];         // Переменная отвечающая за введенную клавишу...изначально строковая переменная (защита от дурака, в случае если булет введена не та клавиша, программа не вылетит)
    int option;           // *
    do
 {   puts ("=================================================================");
     puts("1 - dobavlenie studenta\t   |   4 - korrektirovka svedenii");
     puts("2 - udalenie studenta\t\t   |   5 - v'vod baz' naekran");
     puts("3 - poisk studenta\t\t      |   6 - v'vod baz' v fail");
     puts("\t\t\t 7 - exit");
     gets(buf);
     option = atoi(buf);      // Переводит переменную отвечающую за нажатую клавишу из символьной переменной в числовую
 }
    while (!option);          // >* Пока не будет  нажата клавиша и выбрана нужная позиция (фактически означает, что это все будет находиться в бесконечном цикле, пока не будут выбран, какой-либо пункт)
    return option;
}
// -------------------------------------------------- Вывод базы данных на экран
void print_dbase(Man* beg)
{   Man* pv = beg;
    while (pv)
 {   printf("%s%5i%10.2f\n", pv->name, pv->birth_day, pv->pay);
     pv = pv->next;
 }
}
// -------------------------------------------------- Чтение базы из файла
Man* read_dbase(char* filename)
{   FILE* fin;
    Man man, *beg = 0;
    if ((fin = fopen(filename, "r")) == 0 )   // если фалй не был открыт для ЧТЕНИЯ
 {   printf("Net faila %s\n,", filename); return 0;
 }
    while (!feof(fin))         // пока не придет к концу файла (feof) делаем..
  {   fgets(man.name, l_name, fin);                   //уточние в книжке желтой
      fscanf(fin, "%i%f\n", &man.birth_day, &man.pay);
      beg = add(beg, man);
  }
    fclose(fin);        // закрываем базу
    return beg;
}
// -------------------------------------------------- Ввод инфы о новом студенте
Man read_man()
{   Man man; char buf[80];
    get_name(man.name);
    for (int i = strlen(man.name); i < l_name; i++)
    man.name[i] = ' ';
    man.name[l_name - 1] = '\0';
    do
 {   puts("Vvedite god rozshdeniya"); gets(buf);
 }
    while (!(man.birth_day = atoi(buf)));
    do
  {   puts("Vvedite srednii ball"); gets(buf);
  }
    while (!(man.pay = (float)atof(buf)));
    return man;
 }
// -------------------------------------------------- Процедура удаления студента
Man* remove(Man* beg)
{   char name [l_name];                     // Вроде переменную объявляем
    get_name(name);                         // Кого удаляем?
    Man* prev;                              // Переход на предыдущий элемент
    Man* pv = find(beg, name, &prev);       // Находим студента Find(В диапазоне от Beg,до Name, устраняем строчку из под студня)
    if (pv)                                 // Если студент найден
 {   if (pv == beg)                         // Удаление из начала списка
     beg = beg->next;                       //
     else                                   // Удаление из конца или середины списка
     prev->next = pv->next;
     delete pv;                             // Освобождение памяти из-под элемента
 }
    return beg;
}
// -------------------------------------------------- Процедура записи базы данных в файл
int write_dbase(char *filename, Man *pv)
{   FILE *fout;                                       // Привязка к переменной файла
    if ((fout = fopen(filename, "w")) == NULL)        // Если ФАЙЛ не был открыт для ЗАПИСИ - выводим "Error open file"
 {   puts("Error open file"); return 1;
 }
    while (pv)
  {   fprintf(fout, "%s%5i%10.2f\n", pv->name, pv->birth_day, pv->pay);      // Записываем в файл Имя Др Балл, и переходим на следующую строчку...
      pv = pv->next;                                                         // Идем записывать следующий элемент
  }
    fclose(fout);                                                            // Закрываем файл =)))
    return 0;
}




ЗЫ за вторую прогу на кол не сажать...
--------------------
AScript + Pascal + C -> C++ ->C#Adobe Photoshop 7.0/CS 2.0 + GIMP+ Visual Studio .NET(sp1)/2005 pro(sp1)
PM MAIL ICQ Skype GTalk Jabber   Вверх
wnayk
Дата 1.1.2007, 21:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



KpoHyc, ни х..я они не запускаются твои проги...........
 smile 
PM MAIL   Вверх
Rockie
Дата 1.1.2007, 22:12 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


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

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



Цитата(wnayk @  27.12.2006,  22:18 Найти цитируемый пост)
как найти длину этого числа?

wnayk, к примеру перегнать число в строку функцией itoa и узнать длину строки функцией strlen






--------------------
Чтобы иметь большой гардероб - надо иметь большой гардероб.
PM   Вверх
wnayk
Дата 2.1.2007, 16:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Rockie, , 
KpoHyc, , 
zkv
Anikmar
JackYF
колючка
Парни помогите с таким вопросом-очень важно-Дана функция :
void Dobav (Spisok **begin,char dpz [],int pok,char naim [],char ediz [],char price [],int kol)
мне нужно после того,как abc в функции abc=Srav (&aa,naim); ИСТИНА - мне нужно выйти из этой функции,
функция такова:
void Dobav (Spisok **begin,char dpz [],int pok,char naim [],char ediz [],char price [],int kol)
{
    int dlina=0,b=0,abc=1,a;
    char kol1 [11];
    Spisok *pp;
    Spisok *aa=*begin;
    Spisok *t1;
    Spisok *t=*begin;

    do
    {
          cout << rus("Укажите наименование товара: ");
          gets (naim);
          a=ForFIO (naim);
             dlina=strlen(naim);
         if (a)
            {
           cout << rus("ОШИБКА! Недопустимый символ!\n");
            }
 abc=Srav (&aa,naim);
 if(abc)
{
    cout << rus("Такой товар уже есть в наличии") << endl;
        cout << rus("Введите тогда количество ввозимого товара: ") << endl;
    cin >> kol1;
        kol=Perevod (kol1);
}
    } 
    while ((dlina==0)||(dlina>50)||(a));
    
    do
    {
     cout << rus("Укажите единицу измерения товара: ");
     gets (ediz);
     a=ForFIO(ediz);
        dlina=strlen (ediz);
        if (a)
        {
          cout << rus("ОШИБКА! Недопустимый символ!\n");
        }
    }
    while ((dlina==0)||(dlina>50));

    do
    {
     cout << rus("Укажите цену товара: ");
     cin >> price;
        a=ForCHIS(price);
        dlina=strlen(price);
        if (a)
        {
          cout << rus("ОШИБКА! Недопустимый символ!\n");
        }
    }
    while((dlina==0)||(dlina>10)||(a));
    do
    {
     cout << rus("Укажите дату: ");
     gets (dpz);
     a=ForCHIS (dpz);
     dlina=strlen(dpz);
     if (a)
        {
          cout << rus("ОШИБКА! Недопустимый символ!\n");
        }
        
    }
    while ((dlina==0)||(dlina>8)||(a));
    do
    {
     cout << rus("Укажите количество товара: ");
     gets (kol1);
     a=ForCHIS (kol1);
     dlina=strlen(kol1);
     if (a)
        {
          cout << rus("ОШИБКА! Недопустимый символ!\n");
        }
    }
    while ((dlina==0)||(dlina>10)||(a));
    kol=Perevod (kol1);
    if(abc==0)
    {
     while (t)
        {
         t1=t;      
         t=t->next;
        }
     pp=new Spisok;
     strcpy(pp->u,dpz);
     pp->p=pok;
     strcpy(pp->a,naim);
     strcpy(pp->n,ediz);
     strcpy(pp->g,price);
     pp->k=kol;
     pp->next=0;
     pp->next=0;
        t1->next=pp;
    }
    b=Podchet (&aa);
    cout << rus("Количество данных: ") << b << "\n" << endl;
}
ОЧЕНЬ НУЖНО И ВАЖНЕЦКО!!!!!!! smile 



PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

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

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

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

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


 




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


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

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