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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 13.06.2010, 17:41   #1
Superlotles
Пользователь
 
Аватар для Superlotles
 
Регистрация: 18.08.2009
Сообщений: 86
По умолчанию Работа с классами

Помогите исправить синтаксические ошибки
на строке main: c:\Documents and Settings\Серый\Рабочий стол\Сохранения С++\proba3\proba3.cpp(36): error C2628: 'card' followed by 'int' is illegal (did you forget a ';'?)

на строке return 0: c:\Documents and Settings\Серый\Рабочий стол\Сохранения С++\proba3\proba3.cpp(63): error C2664: 'card::card(const card &)' : cannot convert parameter 1 from 'int' to 'const card &'

Код:
#include <stdafx.h>
#include <conio.h>
#include <string>
using namespace std;
class card{
	string *name[50];
	string *title[50];
int number;
public:
	void store(string str1, string str2, string str3, int i){
		i1=0;
		while (int i1 < 50){
        name*[i1]=str1;
		sername*[i1]=str2;
		title*[i1]=str3;
		number=i;
		i1++;
		}
	}
	void show(string str1, string str2){
		int i3;
		cout << "name: " <<  str1;
			cout << "sername : " << str2;
			int i2;
			for (i2=0;i2<50;i2++){
				if (name*[i2]=str1 || sername*[i2]= str2)
					i3=i2;
				cout << "Nazvanie knigi: " << title*[i3];
				cout << "Kolichestvo knig : " << i;
			}
	}
}
		


		int main(){
			card c;
			char key;
			string name1, sername1, title1;
			int i1;
			cout << "Esli vi hotite zapolnit bazu dannih, nagmite 1" << endl;
			cout << "Esli vi hotite schitat bazu dannih, nagmtie 2" << endl;
			cin >> key; 
			if (key == '1'){
				cout << "Vvedite imja poluchatelja: ";
			cin >> name1;
			cout << "Vvedite phamiliu poluchatelja: ";
			cin >> sername1;
			cout << "Vvedite nazvanie knigi: ";
			cin >> title1;
			cout << "Vvedite kolichestvo knig :";
			cin >> i1;
				c.store(name1,sername1,title1,i1);
			}
			else
				if (!(key=='1')){
				cout << "Vvedite imja poluchatelja: ";
			cin >> name1;
			cout << "Vvedite phamiliu poluchatelja: ";
			cin >> sername1;
			c.show(name1,sername1);
			}
			return 0;
		}
Skype: Lotles-XXXX

Последний раз редактировалось Superlotles; 13.06.2010 в 17:45.
Superlotles вне форума Ответить с цитированием
Старый 13.06.2010, 18:16   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

Да начните же читать, что вам пишет компилятор!
После описания класса ставится ;
p51x вне форума Ответить с цитированием
Старый 14.06.2010, 00:31   #3
Superlotles
Пользователь
 
Аватар для Superlotles
 
Регистрация: 18.08.2009
Сообщений: 86
По умолчанию

Мне надо чтоб вот эти 3 предложения выписывались, пока не нажму 3

cout << "Esli vi hotite zapolnit bazu dannih, nagmite 1" << endl;
cout << "Esli vi hotite schitat bazu dannih, nagmtie 2" << endl;
cout << "Esli vi hotite zakrit programmu, nagmite 3" << endl;

Не пойму, где ошибка, подскажите !
Код:
#include <stdafx.h>
#include <conio.h>
#include <string>
using namespace std;
class card{
	string name[50];
	string title[50];
	string sername[50];
	int number[50];
public:
	void store(string str1, string str2, string str3, int i){
		i=0;
		while (i < 50){
			if (name[i]==""){ 
        name[i]=str1;
		sername[i]=str2;
		title[i]=str3;
		number[i]=i;
		i++;
		}
		}
	}
	void show(string str1, string str2){
		int i3;
			int i2;
			for (i2=0;i2<50;i2++){
				if (name[i2]==str1 && sername[i2]== str2){
					i3=i2;
				cout << "name: " <<  str1;
			    cout << "sername : " << str2;
				cout << "Nazvanie knigi: " << title[i3];
				cout << "Kolichestvo knig : " << number;
				exit;
			}
			}
	}
};
		


		int main(){
			card c;
			char key;
			string name1, sername1, title1;
			int i1;
			key=1;
			while((key==1 || key==2)){
			cout << "Esli vi hotite zapolnit bazu dannih, nagmite 1" << endl;
			cout << "Esli vi hotite schitat bazu dannih, nagmtie 2" << endl;
			cout << "Esli vi hotite zakrit programmu, nagmite 3" << endl;
			cin >> key; 
			if (key == '1'){
				cout << "Vvedite imja poluchatelja: ";
			cin >> name1;
			cout << "Vvedite phamiliu poluchatelja: ";
			cin >> sername1;
			cout << "Vvedite nazvanie knigi: ";
			cin >> title1;
			cout << "Vvedite kolichestvo knig :\n";
			cin >> i1;
				c.store(name1,sername1,title1,i1);
			}
			else
				if (key=='2'){
				cout << "Vvedite imja poluchatelja: ";
			cin >> name1;
			cout << "Vvedite phamiliu poluchatelja: ";
			cin >> sername1;
			c.show(name1,sername1);
			}
			}
			return 0;
		}
Skype: Lotles-XXXX

Последний раз редактировалось Superlotles; 14.06.2010 в 00:36.
Superlotles вне форума Ответить с цитированием
Старый 14.06.2010, 00:43   #4
netrino
Участник клуба
 
Аватар для netrino
 
Регистрация: 15.07.2008
Сообщений: 1,933
По умолчанию

Цитата:
Код:
			key=1;
			while((key==1 || key==2)){
Код:
			key='1';
			while((key=='1' || key=='2')){
Будьте внимательней.
netrino вне форума Ответить с цитированием
Старый 16.06.2010, 02:29   #5
Superlotles
Пользователь
 
Аватар для Superlotles
 
Регистрация: 18.08.2009
Сообщений: 86
По умолчанию

Как можно отыскать место в коде, на котором зависает программа ?
Вот у меня зависает, не пойму где, после ввода названия второй книги, т.е
Код:
			cout << "Vvedite nazvanie knigi: " << endl;
			cin >> title1;
Код:
#include <stdafx.h>
#include <conio.h>
#include <string>
using namespace std;
			int kk;
class card{
	string name[50];
	string title[50];
	string sername[50];
	int number[50];
public:
	void store(string str1, string str2, string str3, int i){
		int nm;
		int ksm;
		ksm=0;
		nm=0;
		while (nm < 50){
			if (ksm==kk)
					break;
			if ((name[nm]=="")&&(kk==1)){
        name[nm]=str1;
		sername[nm]=str2;
		title[nm]=str3;
		number[nm]=i;
		break;
		}
		else
			if ((name[nm]=="")&&(kk>1)){
				while(ksm<=kk){
        name[nm]=str1;
		sername[nm]=str2;
		title[nm+ksm]=str3;
		number[nm]=i;
		ksm++;
				}
			}
		}
		nm++;
	}

	void show(string str1, string str2){
		int i3;
			int nm;
			int ksm;
			for (nm=0;nm<50;nm++){
				if (name[nm]==str1 && sername[nm]== str2){
					i3=ksm;
				cout << endl << endl << endl << "name: " <<  str1 << endl;
			        cout << "sername : " << str2 << endl;
				cout << "Kolichestvo knig: " << kk << endl;
				ksm=0;
				if (kk==1)
				cout << "Nazvanie knigi: " << title[i3] << endl;
				else
					while(kk>=1){
				cout << "Nazvanie knigi: " << title[i3+ksm] << endl;
				kk--;
				ksm++;
					}
				}
				break;
			}
	}
};
		


		int main(){
			card c;
			char key;
			string name1, sername1, title1;
			int i3;
			key='1';
			while((key=='1' || key=='2')){
			cout << "Esli vi hotite zapolnit bazu dannih, nagmite 1" << endl;
			cout << "Esli vi hotite schitat bazu dannih, nagmtie 2" << endl;
			cout << "Esli vi hotite zakrit programmu, nagmite 3" << endl;
			cin >> key; 
			if (key == '1'){
				cout << "Vvedite imja poluchatelja: " << endl;
			cin >> name1;
			cout << "Vvedite phamiliu poluchatelja: " << endl;
			cin >> sername1;
			cout << "Vvedite kolichestvo knig :" << endl;
			cin >> kk;
			if (kk>1){
				i3=1;
				while(i3<=kk){
			cout << "Vvedite nazvanie knigi: " << endl;
			cin >> title1;
			i3++;
			}
			}
				c.store(name1,sername1,title1,kk);
			}
			else
				if (key=='2'){
				cout << "Vvedite imja poluchatelja: " << endl;
			cin >> name1;
			cout << "Vvedite phamiliu poluchatelja: " << endl;
			cin >> sername1;
			c.show(name1,sername1);
			}
			}
			return 0;
		}
Skype: Lotles-XXXX

Последний раз редактировалось Superlotles; 16.06.2010 в 02:32.
Superlotles вне форума Ответить с цитированием
Старый 16.06.2010, 09:44   #6
Гром
Старожил
 
Аватар для Гром
 
Регистрация: 21.03.2009
Сообщений: 2,193
По умолчанию

Цитата:
Как можно отыскать место в коде, на котором зависает программа ?
С помощью отладчика. Самый простой способ - ставьте breakpoint'ы в каждой строке подозрительного участка и запускайте отладку. В VS хороший отладчик, мне нравится - не то что в BCB (по крайней мере, в старом).
Простые и красивые программы - коды программ + учебник C++
Создание игры - взгляд изнутри - сайт проекта
Тема на форуме, посвященная ему же
Гром вне форума Ответить с цитированием
Старый 16.06.2010, 17:15   #7
ozo
Форумчанин
 
Аватар для ozo
 
Регистрация: 26.04.2010
Сообщений: 328
По умолчанию

Код:
	while (nm < 50){
	    if (ksm==kk)
		break;
	    if ((name[nm]=="")&&(kk==1)){
		name[nm]=str1;
		sername[nm]=str2;
		title[nm]=str3;
		number[nm]=i;
		break;
	    }
	    else
		if ((name[nm]=="")&&(kk>1)){
		    while(ksm<=kk){
			name[nm]=str1;
			sername[nm]=str2;
			title[nm+ksm]=str3;
			number[nm]=i;
			ksm++;
		    }
		}
	}
	nm++;
оно зависает тут, надеюсь теперь вам понятно зачем нормальное форматирование ?

И да, у вас очень много ошибок
Используй гугль, будь счастлив
hackme@yandex.ru
Блог об archlinux
ozo вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
С++: работа с классами MR_Andrew Общие вопросы C/C++ 23 01.04.2010 23:46
Работа с классами (Delphi_7) Innga Помощь студентам 4 14.01.2010 16:20
Работа с классами и объектами Shavminator Общие вопросы Delphi 7 18.12.2009 04:11
проблемма с классами ciaonataha Общие вопросы C/C++ 1 24.07.2009 18:04
работа с классами, но трабл в функциях-методах aka_faith Общие вопросы C/C++ 9 14.06.2009 22:26