Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 16.02.2011, 23:51   #1
sanya94
Пользователь
 
Регистрация: 24.11.2010
Сообщений: 20
По умолчанию Написать программу, которая будет использовать ранее созданную библиотеку.

Есть программа, и ее нужно написать через функции чтобы вдальнейшем использовать её для создания меню.
Нужно создать библиотеку функций (у меня это - Домашняя библиотека: название книги, автор, год выпуска, собственное мнение: интересная/нет). Еще надо создать программу, которая использует мою собственную библиотеку.
вот я создал библиотеку:
Код:
#include<iostream.h>
void main()
{ struct biblio \\ название библиотеки biblio;
{ char nazvanie[50];
char avtor[50];
int god_vipuska;
char mnenie[255];
};
biblio arr[10];
for(int i=0;i<10;i++)
{cout<<"Vvedite nazvanie knigi:\n";
cin>>arr[i].nazvanie;
cout<<"Vvedite avtora knigi:\n";
cin>>arr[i].avtor;
cout<<"Vvedite god vipuska:\n";
cin>>arr[i].god_vipuska;
cout<<"Vashe mnenie:\n";
cin>>arr[i].mnenie;
cout<<arr[i].nazvanie<<" "<<arr[i].avtor<<" "<<arr[i].god_vipuska<<" "<<arr[i].mnenie<<endl; break;
}}
Библиотеку создал, а как программу которая будет использовать эту библиотеку(да еще с текстовым меню), без понятия....

Последний раз редактировалось Stilet; 19.02.2011 в 08:42.
sanya94 вне форума Ответить с цитированием
Старый 18.02.2011, 21:14   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

эмм, вы хоть знаете что такое библиотека функций?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 19.02.2011, 00:08   #3
Hemul
Форумчанин
 
Регистрация: 03.10.2010
Сообщений: 321
По умолчанию

Код:
#include <iostream>
#include <string>
#include <windows.h> //для смены кодировки
using namespace std;
char s1[256]; 
char *rus(char *s2)
{ AnsiToOem(s2,s1);return s1; }


class biblio{
	char nazvanie[50];
	char avtor[50];
	int god_vipuska;
	char mnenie[255];
public:
	biblio(char *naz="Nothing",char *av="Nothing",int g_v=0,char *mn="Nothing"){// конструктор 
		for(int i=0;i<50;i++) nazvanie[i]=naz[i];
		for(int i=0;i<50;i++) avtor[i]=av[i];
		god_vipuska=g_v;
		for(int i=0;i<255;i++) mnenie[i]=mn[i];
	}

	biblio getbook();//ввод внутри функции
	biblio getbook(char nazvanie[50],char avtor[50],int god_vipuska,char mnenie[255]);// ввод параметром
	
	char *putnazvanie(){return nazvanie;}
	char *putavtor(){return avtor;}
	int putgod_vipuska(){return god_vipuska;}
	char *putmnenie(){return mnenie;}
	void putaboutbook();
};
biblio biblio::getbook(){
	char buffer[10];
	cout<<rus("Введите название книги\n");
	cin.ignore();
	gets(nazvanie);
	cout<<rus("Введите автора книги\n");
	gets(avtor);
	cout<<rus("Введите год выпуска книги\n");
	gets(buffer);
	god_vipuska=atoi(buffer);
	cout<<rus("Введите мнение об этой книге\n");
	gets(mnenie);
	return *this;
}
biblio biblio::getbook(char naz[50],char av[50],int g_v,char mn[255]){
	for(int i=0;i<50;i++) nazvanie[i]=naz[i];
	for(int i=0;i<50;i++) avtor[i]=av[i];
	god_vipuska=g_v;
	for(int i=0;i<255;i++) mnenie[i]=mn[i];
	return *this;
}
void biblio::putaboutbook(){
	cout<<rus("Название книги : ")<<putnazvanie()<<endl;
	cout<<rus("Автор книги : ")<<putavtor()<<endl;
	cout<<rus("Год выпуска : ")<<putgod_vipuska()<<endl;
	cout<<rus("Мнение о книге : ")<<putmnenie()<<endl;
}


int menu,n;
void putmenu(){
	cout<<rus("Для просмотра книги по номеру массива нажмите 1")<<endl;
	cout<<rus("Для поиска книги нажмите 2")<<endl;
	cout<<rus("Для добавления новой книги нажмите 3")<<endl;
}
const int sizemass=10;
int main(){
	biblio a[sizemass];
	int v=0;
	int god=0;
	char buffer[255];
	while(true){
		putmenu();
		cin>>n;
		if(n==1){
			puts(rus("Введите номер массива"));
			cin>>v;
			a[v].putaboutbook();
		}
		else if(n==2){//вот тут по индусски 
			puts(rus("Выберите по какому критерию искать"));
			cout<<rus("1.По названию")<<endl;
			cout<<rus("2.По автору")<<endl;
			cout<<rus("3.По году выпуска")<<endl;
			cout<<rus("4.По мнению о книге")<<endl;
			cin>>v;
			puts(rus("Введите условие для поиска"));
			if(v!=3){cin.ignore(); gets(buffer);}
			else cin>>god;
			if(v==1) 
				for(int i=0;i<sizemass;i++)
				if(!strcmp(buffer,a[i].putnazvanie())) v=i;
			if(v==2) 
				for(int i=0;i<sizemass;i++)
					if(!strcmp(buffer,a[i].putavtor())) v=i;
			if(v==3)
				for(int i=0;i<sizemass;i++)
					if(god==a[i].putgod_vipuska()){v=i;}
			if(v==4) 
				for(int i=0;i<sizemass;i++)
				if(!strcmp(buffer,a[i].putmnenie())) v=i;

			a[v].putaboutbook();
		}//конец индуссии
		else if(n==3){
			puts(rus("Введите номер массива,в который положить информацию о книге"));
			cin>>v;
			a[v].getbook();
		}
	n=0;
	}
}
вот так вот,только я может что напутал,уже спать хотца
Hemul вне форума Ответить с цитированием
Старый 19.02.2011, 00:58   #4
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

библиотеку вы скомпилили, получили lib файл?
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
немогу создать программу которая будет действовать как кликер... pitacek Помощь студентам 3 24.01.2011 02:49
Дано 2 слова. Написать программу, которая будет определять присутствует ли слово 1 в слове 2. Паскалька^^ Помощь студентам 5 19.10.2010 00:55
написать программу,которая будет определять,и выводить на экран английскую букву Tiny Помощь студентам 3 25.06.2010 23:23
написать программу для интернет провайдеров, которая будет отслеживать соединение с пользователями. Rudi1989 Общие вопросы по Java, Java SE, Kotlin 6 01.04.2009 15:34
Составить программу которая будет сортировать все положительные элементы Wast Паскаль, Turbo Pascal, PascalABC.NET 1 22.12.2008 15:56