Форум программистов, компьютерный форум CyberForum.ru

книги в библиотеке - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Разложение функции в ряд с заданной точностью! http://www.cyberforum.ru/cpp-beginners/thread1073285.html
Ребят помогите создать код... последнее задание перед экзаменом! а я как раз пропустил его на лекции!) ---------------------- Составить программу нахождения суммы ряда с заданной точностью! использовать рекуррентные соотношения при вычислении очередного элемента ряда. Предусмотреть вычисление по контрольной формуле! Вариант 29! справа контрольная формула, соответственно слева ряд!
C++ C2446 и C2040 ошибки // kontr1.cpp: определяет точку входа для консольного приложения. // #include "stdafx.h" int _tmain(int argc, _TCHAR* argv) { return 0; } http://www.cyberforum.ru/cpp-beginners/thread1073276.html
Блок-схема C++
объясните как решить такую блок-схему через(IF, while, do wihe) запутался...
C++ Поясните мне код
На одном из форумов нашел код. Отмечен как прикол. #include <stdio.h> int main() { int a = 1500080243; int b = 1162620276; int c = 1212639566; printf((char*)&c); }
C++ Сумма, разность, перемножение матриц http://www.cyberforum.ru/cpp-beginners/thread1073243.html
2-е матрицы 3 на 3. необходимо реализовать сложение, разность и перемножение. Пробовал преподу это припихнуть, но он меня отправил и сказал что мы еще такое не проходим (я на ФЗО) #include <iostream> using namespace std; //Размер квадратной матрицы: const int n=3; //Класс для реализации матриц: class Matrix {
C++ Как подключить библиотеку Opengl. Вроде все по инструкции скачал и раскидал по папкам. Если не ошибаюсь мне осталось что-то прописать. Так вот скажите что)) подробнее

Показать сообщение отдельно
letoleto
0 / 0 / 0
Регистрация: 23.03.2013
Сообщений: 7
16.01.2014, 17:44     книги в библиотеке
Задание:
Составить программу, которая содержит текущую информацию о книгах в библиотеке. Сведения о книгах содержат:
-номер УДК;
-фамилию и инициалы автора;
-название;
-год издания;
-количество экземпляров данной книги в библиотеке.
Программа должна обеспечивать:
-начальное формирование данных о всех книгах в библиотеке в виде списка;
-при взятии каждой книги вводится номер УДК, и программа уменьшает значение количества книг на единицу или выдает сообщение о том, что требуемой книги в библиотеке нет, или требуемая книга находится на руках;
-добавление данных о книгах, вновь поступающих в библиотеку;
-при возвращении каждой книги вводится номер УДК, и программа увеличивает значение количества книг на единицу;
-по запросу выдаются сведения о наличии книг в библиотеке.

Проблема в цикле, т.к. не совсем понимаю, как нужно прописывать. Например, здесь
C++
1
2
3
4
5
6
7
8
9
10
11
case '3'://Взять книгу
                int num1;
                printf("Введите номер УДК: ");
                scanf("%d", &num1);
                while (ebeg) {
                    if(ebeg->num == num1){
                        ebeg->kol=kol--;
                        printf("Осталось %d книг\n", kol);}
                    else printf("Такой книги нет в библиотеке, либо она на руках\n");}
                _getch();
                break;
Получается бесконечный цикл.
Помогите пожалуйста.
Код всей программы
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
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
#include <cstdio>
#include <conio.h>
#include <clocale>
#include <windows.h>
#include <stdio.h>
 
struct book {
    int num;  // номер УДК
    char avtor[30];  // фамилия и инициалы
    char name[40];  //название книги
    int year;  //год издания
    int kol;  //количество книг
    book *next;
};
 
book* first(int, char*, char*, int, int);
void dobav(book**, int, char*, char*, int, int);
void spisok(book*);
void nachalo();
 
book* first(int num, char *avtor, char *name, int year, int kol){
    book *enew = new book;
    enew->num = num;
    strcpy(enew->avtor, avtor);
    strcpy(enew->name, name);
    enew->year = year;
    enew->kol = kol;
    enew->next = 0;
    return enew;
}
 
void dobav(book **eend, int num, char *avtor, char *name, int year, int kol) {
    book *enew = new book;
    enew->num = num;
    strcpy(enew->avtor, avtor);
    strcpy(enew->name, name);
    enew->year = year;
    enew->kol = kol;
    enew->next = 0;
    (*eend)->next = enew;
    *eend = enew;
    return;
}
 
void viewAvialableList(book *ebeg) {
  }
 
void spisok(book *ebeg) {
    book *enew = ebeg;
    while(enew) {
        printf(" Номер УДК: %d\n", enew->num);
        printf(" Фамилия и инициалы автора  %s\n", enew->avtor);
        printf(" Название книги: %s\n", enew->name);
        printf(" Год издания: %d\n",enew->year);
        printf(" Количество экземпляров: %d\n\n", enew->kol);
        if(enew->next) printf("\n");
        enew = enew->next;
    }
    return;
}
 
void nachalo() {
    system("cls");
    printf("1. Добавить книгу.\n");
    printf("2. Вывод всех книг.\n");
    printf("3. Взять книгу.\n");
    printf("4. Вернуть книгу.\n");
    printf("5. Проверить наличие книги.\n\n");
    
    printf("0. Выход.\n");
    return;
}
 
 
int main()  
{  
    setlocale(LC_ALL, "Russian");
 
   
    bool exit = false;
    char c=0;
    book *ebeg=0, *eend=0;
    int  year=0, num=0, kol=0;
    char avtor[30] = {0},
        name[40] = {0};
    while(!exit) {
        nachalo();
        c = _getch();
        system("cls");
        switch(c) {
            case '1': // Добавить заявку
                printf("Номер УДК: ");
                scanf("%d", &num);
                printf("Фамилия и инициалы автора: ");
                scanf("%s",avtor);
                printf("Название книги: ");
                scanf("%s", name);
                printf("Год издания: ");
                scanf("%d", &year);
                printf("Количество экземпляров: ");
                scanf("%d", &kol);
                if(!ebeg) {
                    ebeg = first(num, avtor, name, year, kol);
                    eend = ebeg;
                } else
                    dobav(&eend, num, avtor, name, year, kol);
                printf("Книга добавлена!");
                fflush(stdin);
                _getch();
                break;
 
            case '2': // Вывод всего списка заявок
                if(ebeg)
                    spisok(ebeg);
                else
                    printf("Заявок нет!.\n");
                _getch();
                break;
 
                case '3'://Взять книгу
                int num1;
                printf("Введите номер УДК: ");
                scanf("%d", &num1);
                while (ebeg) {
                    if(ebeg->num == num1){
                        ebeg->kol=kol--;
                        printf("Осталось %d книг\n", kol);}
                    else printf("Такой книги нет в библиотеке, либо она на руках\n");}
                _getch();
                break;
 
                case '4'://Вернуть книгу
                int num2;
                printf("Введите номер УДК: ");
                scanf("%d", &num2);
                while (ebeg) {                  
                    if(ebeg->num == num2){
                        ebeg->kol=kol++;
                        printf("Осталось %d книг\n", kol);}
                else printf("Такой книги нет в библиотеке, либо она на руках\n");
                }
                _getch();
                break;
 
                case '5'://Проверка
                int num3;
                printf("Введите номер УДК: ");
                scanf("%d", &num3);
                while (ebeg) {
                    if((ebeg->num == num3) && (ebeg->kol != 0)){
                        
                        printf("Книга в наличии\n");}
                    else{ printf("Книги нет в наличии\n");}
                    }
                _getch();
                break;
            
                case '0':
                exit = true;
                break;
            default:
                break;
        }
    }
    getch();
    return 0;
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 02:34. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru