Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 0
Регистрация: 13.01.2012
Сообщений: 4

Добавление элемента в структурой с проверкой

13.01.2012, 15:30. Показов 1337. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
вводятся данные в структуру - работает
при вводе проверка - есть ли такое уже в базе - НЕ работает
понимаю что накосячил с проверкой, но просьба сказать как же сделать првально)))

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
typedef struct TBook
{
    char *fam;
    char *nazv;
} Book;
 
 
void addBook(Book *wk, int m)
{
    wk[m].fam = new char[30];
    wk[m].nazv = new char[30];
 
int i;
cout << "Familija avtora " << m+1 << ": ";
cin >> wk[m].fam;
for(i=0; i<=m; i++)
    {
if (wk[m].fam == wk[i].fam )       break; 
else 
            cout << "Nazvanie knigi: ";
    cin >>wk[m].nazv;
    cout << "---Informacija dobavlena---"<<endl;
}
    getch();
}
Используйте теги форматирования кода!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
13.01.2012, 15:30
Ответы с готовыми решениями:

Добавление элемента в список с проверкой уникальности
Всем привет! И сразу же к сути - не могу разобраться с добавлением элемента в список, но так что бы он не повторялся и был на своему мести,...

Сделать добавление элемента в массив и удаление элемента из массива используя STL
Всем привет. Помогите пожалуйста написать. Нужно использовать STL. Необходимо сделать добавление элемента в массив и удаление элемента из...

Добавление нового указателя в конец массива указателей, удаление указанного элемента, добавление указателей
Здравствуйте. Помогите, пожалуйста, разобраться с одним большим заданием. Задание пока в процессе написания, но уже наверное есть ошибки....

5
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
13.01.2012, 15:37
Цитата Сообщение от vash Посмотреть сообщение
if (wk[m].fam == wk[i].fam )
C++
1
2
3
#include <string.h>
//...
if ( ! strcmp(wk[m].fam, wk[i].fam) )
Но это только часть проблемы...
0
0 / 0 / 0
Регистрация: 13.01.2012
Сообщений: 4
13.01.2012, 15:48  [ТС]
да, это будет правильней, вот только проблему не решает
0
0 / 0 / 0
Регистрация: 13.01.2012
Сообщений: 4
14.01.2012, 19:32  [ТС]
переписал код, вылезло несколько ошибок
1)когда при проверке на наличие в базе - сверяет только с 1м элементом
2)при проверке на наличие в базе - новый элемент не загоняет - но пишет кракозяблики вместо этого:
Familja avtora Kniga
avtor1 kniga1
Ш♥O p♥O - надо как то очистить что ли или как что бы след эл-т писался поверху?
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
typedef struct TBook
{
    char *fam;
    char *nazv;
} Book;
 
 
void addBook(Book *wk, int m)
{
    wk[m].fam = new char[30];
    wk[m].nazv = new char[30];
    
char a[30];
char b[30];
 
int i;
cout << "Familija avtora " << m+1 << ": ";
cin >> a;
cout << "Nazvanie knigi: ";
cin >>b;
 
 
if (m==0) 
{ 
strcpy (wk[m].fam,a);
strcpy (wk[m].nazv,b);
cout << "---Informacija dobavlena---"<<endl;
getch();
}
else
{
for(i=0; i<=m; i++) 
         {    
if (! strcmp(a, wk[i].fam))  {
    cout << "---Yze est---"<<endl;
     getch();
        return;
          }    
 else {     
strcpy (wk[m].fam,a);
strcpy (wk[m].nazv,b);
cout << "---Informacija dobavlena---"<<endl;
getch();
break;
}
}}}
Добавлено через 11 минут
просьба специалистов не оставить этот вопрос не раскрытым)

Добавлено через 2 часа 19 минут
пункт № 1 осилил сам!

C++
1
2
3
4
5
6
7
8
9
10
11
for(i=0; i<=m; i++) 
        {    
if (! strcmp(wk[i].fam, a) && ! strcmp(wk[i].fam, b))
{  
    cout << "---Yze est---"<<endl;
     getch();
        return;
   }}
strcpy (wk[m].fam,a);
strcpy (wk[m].nazv,b);
cout << "---Informacija dobavlena---"<<endl;
а вот со п.2 нужна помощь
0
Модератор
Эксперт PythonЭксперт JavaЭксперт CЭксперт С++
 Аватар для easybudda
12843 / 7592 / 1766
Регистрация: 25.07.2009
Сообщений: 13,973
15.01.2012, 01:13
vash, так подойдёт?
C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
 
#define BOOKS_MAX 5
#define STR_LEN 32
#define STR_MASK "%31[^\n]"
 
typedef struct BOOK {
    char name[STR_LEN];
    char autor[STR_LEN];
} book_t;
 
book_t * find_book(const book_t * books, size_t count, const book_t * book){
    return ( count == 0 ) ? NULL : ( strcmp(books->name, book->name) == 0 && strcmp(books->autor, book->autor) == 0 ) ? (book_t*)books : find_book(books+1, count-1, book);
}
 
int add_book(book_t * book){
    printf("Name: ");
    if ( scanf(STR_MASK "%*c", book->name) != 1 )
        return -1;
    printf("Autor: ");
    if ( scanf(STR_MASK "%*c", book->autor) != 1 )
        return -1;
    
    return 0;
}
 
int main(void){
    book_t books[BOOKS_MAX];
    size_t i;
    
    for ( i = 0; i < BOOKS_MAX; ){
        printf("Book #%d:\n", i + 1);
        if ( add_book(&books[i]) ){
            fprintf(stderr, "Wrong input!\n");
            exit(1);
        }
        if ( find_book(books, i, &books[i]) )
            fprintf(stderr, "This book allready exists, try enter another one.\n");
        else
            ++i;
    }
    
    printf("\n+--------------------------------------------------------------------+\n");
    printf("| Autor                           | Name                             |\n");
    printf("+--------------------------------------------------------------------+\n");
    
    for ( i = 0; i < BOOKS_MAX; ++i )
        printf("| %-31s | %-31s  |\n", books[i].autor, books[i].name);
    
    printf("+--------------------------------------------------------------------+\n"); 
    
    exit(0);
}
А делать смесь из кода на С и на С++ - неправильное занятие, так преподу и передайте!
0
0 / 0 / 0
Регистрация: 13.01.2012
Сообщений: 4
15.01.2012, 13:39  [ТС]
Ок)
Вроде работает!
спасибо!
ЗЫ: я преподу это потом передам...после сдачи)))
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.01.2012, 13:39
Помогаю со студенческими работами здесь

Добавление элемента
Подскажите как добавить элемент в конец линейного списка..вот мои фун-ии добавления.. #include &lt;windows.h&gt; #include...

Добавление элемента
Уважаемые программисты,подскажите как сделать так, чтобы добавление элемента происходило не в начало списка,а в конец? я пробовал...

Добавление элемента
Как наладить добавление элемента в структуру. (предпочтительно без указателей) можно словами, но попроще^^

Добавление элемента в БД
Доброго времени суток!Возникла такая проблема, что при добавлении нового элемента в БД, в первый элемент записывается какая то ерунда, а со...

Добавление в БД с проверкой
есть БД(access,её данные выводятся на форму),в ней есть два поля (дата и время) при каждом новом добавлении в бд,нужна проверка по этим...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru