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

Поисковая система библиотечного архива - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Помогите скомпилировать задачи http://www.cyberforum.ru/cpp-beginners/thread15082.html
Задача 1 #include <iostream.h> void inputMatrix(int **a, int n) { for (int i = 0; i < n; ++i) { for (int j = 0; j < n; ++j) { cout << "enter element ' << endl;
C++ Задача по кольцевым спискам Необходимо решить задачу: Составить программу, которая в кольцевой список из n элементов добавляет m новых элементов так, чтобы новый элемент вставлялся через k элементов кольца. Причем задачу желательно решить с использованием динамических структур. Надеюсь на вашу помощь. http://www.cyberforum.ru/cpp-beginners/thread15048.html
Упорядочить слова по алфавиту (строки) C++
Здравствуйте! Не могу пока осилить :wall:. Может у кого-то есть идеи по реализации ? (или уже готовый код:jokingly:) Задание следующее: Дано несколько слов, между соседними словами – пробел. Напечатать эти слова в алфавитном порядке. Заранее спасибо всем !!!
Транспонирование матрицы C++
#include <stdio.h> #include <stdlib.h> void transponirovanie(int**mass1, int stolb, int str) {int **mass2; int i,j; mass2=(int**)malloc(sizeof(int*)*stolb); for(i=0;i<str;i++) mass2=(int*)malloc(sizeof(int)*str); for (i=0;i<stolb;i++)
C++ Вывод в бинарный файл http://www.cyberforum.ru/cpp-beginners/thread14989.html
Надо вывести последовательность 0 и 1 в бинарный файл так чтобы это был двоичный код,т.е. каждый символ весил 1 бит
C++ Упорядочить массив по возрастанию (считать массив из одного файла и записать в другой) Доброго времени суток всем ! один вопрос есть наболевший (для новичка) необходимо упорядочить массив по возрастанию(считать массив из одного файла и записать в другой) . Ничего особо не придумывал (сортировка пузырьком)! Вот текст : исходный массив (1 3 -8 5 6 -2) в файле1 #include <conio.h> #include <stdio.h> #include <stdlib.h> void main() { подробнее

Показать сообщение отдельно
Wirus
Сообщений: n/a

Поисковая система библиотечного архива - C++

02.11.2008, 13:15. Просмотров 655. Ответов 0
Метки (Все метки)

посмотрите пожалуйста прогу ни си она почему - то глючит:

код poisk.h:

Код
#ifndef POISK_H
#define POISK_H


struct book
{
char avtor[30];
char nazvanie[30];
char izdatelstvo[30];
int god;
int koll;
char janr[30];
};

int i, j, year, number;
char bukva[256];
extern book books1[500];

bool kniguadd(book *books);
void knigudele(book *books);
void knigavtorobzor(book *books);
void janrobzorknig(book *books);
void knigjanr_godobzor(book *books);

#endif
код poisk.cpp:

Код
#include "poisk.h"
#include <stdlib.h>
#include <stdio.h>
#include "stdafx.h"


FILE *pFile;

bool add_knigu(book *books)
{
j++;
pFile = fopen ( "bd.txt", "a+t" ); 
if ( pFile != NULL )
{
printf("vvod avora\n");
scanf("%s",&(books+j)->avtor);
printf("vvod nazvaniya\n");
scanf("%s",&(books+j)->nazvanie);
printf("vvod izdatelstva\n");
scanf("%s",&(books+j)->izdatelstvo);
printf("vvod janra\n");
scanf("%s",&(books+j)->janr);
printf("vvod goda\n");
scanf("%s",&(books+j)->god);
printf("vvod kollichestva stranic\n");
scanf("%s",&(books+j)->koll);
fprintf(pFile, "#%d-kniga#\n",j);
fprintf(pFile,"%s\n", &(books+j)->avtor);
fprintf(pFile,"%s\n", &(books+j)->nazvanie);
fprintf(pFile,"%s\n", &(books+j)->izdatelstvo);
fprintf(pFile,"%s\n", &(books+j)->janr);
fprintf(pFile,"%d\n", &(books+j)->god);
fprintf(pFile,"%d\n\n\n", &(books+j)->koll);
printf("dannie v faile!\n\n");
fclose(pFile);
return true;
}
else
{
return false;
}
}

bool dele_knigu(book *books) 
{
pFile = fopen ( "bd.txt", "a+t" );
if ( pFile != NULL )
{
if(j>-1)
{
printf("vvedite nomer knigi\n");
scanf("%d", &number);
for(i=0;i<256;i++)
(books+number)->avtor[i]=NULL;

for(i=0;i<256;i++)
(books+number)->nazvanie[i]=NULL;

for(i=0;i<256;i++)
(books+number)->izdatelstvo[i]=NULL;

(books+number)->god=NULL;

(books+number)->koll=NULL;

for(i=0;i<256;i++)
(books+number)->janr[i]=NULL;
j--;
}
else
{
printf("arxiw pust\n\n");
return 0;
}

fclose(pFile);
return true;
}
else
{
return false;
}
}


bool obzor_knig_avtor(book *books) \\ в этой функции ещё не сделано обращение к файлу и вынос из него данных по определённой книге не знаю как???
{
pFile = fopen ( "bd.txt", "w+t" );
if ( pFile != NULL )
{
int index, flag;
char awtor[256];
printf("vvedite avtora\n");
scanf("%s", &awtor); 
flag = 0;
for (i=0;i<=500;i++)
{
for (index = 0; index < 256; index++)

if (awtor[index] != (books+i)->avtor[index])

{

flag = 1;

break;

}

if (flag != 1)

fscanf(pFile, "%s\n", &(books+index)->avtor);
fscanf(pFile, "%s\n", &(books+index)->nazvanie);
fscanf(pFile, "%s\n", &(books+index)->izdatelstvo);
fscanf(pFile, "%s\n", &(books+index)->janr);
fscanf(pFile, "%d\n", &(books+index)->god);
fscanf(pFile, "%d\n\n", &(books+index)->koll);
}
fclose(pFile);
return true;
}
else
{
return false;
}
}

bool obzor_knig_janr(book *books) \\ в этой функции ещё не сделано обращение к файлу и вынос из него данных по определённой книге не знаю как???
{ 
pFile = fopen ( "bd.txt", "w+t" ); //проверяем, смогли ли мы открыть файл для записи
if ( pFile != NULL )
{

int index, flag;
char janr[256];
printf("vvedite janr\n");
scanf("%s", &janr); 
flag = 0;
for (i=0;i<=500;i++)
{
for (index = 0; index < 256; index++)

if (janr[index] != (books+i)->janr[index])

{

flag = 1;

break;

}

if (flag != 1)

fscanf(pFile, "%s\n", &(books+index)->avtor);
fscanf(pFile, "%s\n", &(books+index)->nazvanie);
fscanf(pFile, "%s\n", &(books+index)->izdatelstvo);
fscanf(pFile, "%s\n", &(books+index)->janr);
fscanf(pFile, "%d\n", &(books+index)->god);
fscanf(pFile, "%d\n\n", &(books+index)->koll);
}
fclose(pFile);
return true;
}
else
{
return false;
}
}

bool obzor_knig_janr_god(book *books) \\ в этой функции ещё не сделано обращение к файлу и вынос из него данных по определённой книге не знаю как???
{ 
pFile = fopen ( "bd.txt", "w+t" );
if ( pFile != NULL )
{

int index, flag;
char janr[256];
printf("vvedite janr\n");
scanf("%s", &janr); 
printf("vvedite god\n");
scanf("%d", &year);
flag = 0;
for (i=0;i<=500;i++)
{
for (index = 0; index < 256; index++)

if (janr[index] != (books+i)->janr[index])

{

flag = 1;

break;

}

if (flag != 1)
if ((books+i)->god == year)
{
fscanf(pFile, "%s\n", &(books+index)->avtor);
fscanf(pFile, "%s\n", &(books+index)->nazvanie);
fscanf(pFile, "%s\n", &(books+index)->izdatelstvo);
fscanf(pFile, "%s\n", &(books+index)->janr);
fscanf(pFile, "%d\n", &(books+index)->god);
fscanf(pFile, "%d\n\n", &(books+index)->koll);
}
}
fclose(pFile);
return true;
}
else
{
return false;
}
}
код main.cpp:

Код
#include <stdlib.h>
#include <stdio.h>
#include "stdafx.h"
#include "poisk.cpp"

void main()
{
int mode;
struct book knigi;
while (1)
{ 
printf("v archive %d knig\n",j);
printf("viberite operaciu\n");
printf("1 dobavit knigu\n");
printf("2 udalit knigu\n");
printf("3 vidat spisok knig avtora\n");
printf("4 vidat knigi ukazannogo janra\n");
printf("5 vidat knigi janra v dannom periode\n");
printf("0 exit\n");


scanf("%d",&mode);

switch(mode)
{
case 1 : add_knigu(&knigi); break;
case 2 : dele_knigu(&knigi); break;
case 3 : obzor_knig_avtor(&knigi); break;
case 4 : obzor_knig_janr(&knigi); break;
case 5 : obzor_knig_janr_god(&knigi); break;
case 0 : return; break;
default : printf("nevernii vvod\n"); break;
} 
}
}

спасибо заранее!!!

задание проги:

условие задачи: написать прогу чтобы она работала как поисковая система библиотечного архива
ввод описания книги в проге должно быть:
-автор
-издательство
-год
-колл-во страниц
-жанр
(всё с клавы)
________________________
(основная проблема)-->>
с функциями поиска:
- найти книги автора(с клавы ввод)
- найти книги жанра(с клавы ввод)
- найти книги по жанру и определённого года издания(с клавы ввод)
p.s. : колл-во книг любое
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru