Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / C++ [игнор отключен] [закрыт для гостей] / error C2668: 'setw' : ambiguous call to overloaded function / 7 сообщений из 7, страница 1 из 1
04.12.2006, 17:47
    #34175669
Zmejka_Gorynka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
error C2668: 'setw' : ambiguous call to overloaded function
Извиняюсь, если привела слииишком много лишней информации /просто не обращайте на неё внимания :)/, но действительно не знаю, что необходимо привести, чтобы полностью отобразить проблему, по-этому решила перебдеть, чем недо...

Текст программы:

Заголовочный файл:
Файл Lab2.h
#pragma call to overloaded function И так 16 раз... Как решить вопрос, подскажите пожалуйста?
once
#include <string>
using std :: string;

class Production // обьявление класса
{
private:
int N;
string Pr; //наименование
double K; //количество
double Z; //оптовая цена
double C; //себестоимость
double P; //прибыль
public:
Production();
void Production::SetFields(double k, double z, double c, double p);
void print(Production [],int);
void PrintClass()const;
void Production::SetVar(double k, double z, double c);
string GetPr()const;
double GetC()const;
double GetZ()const;
double GetP()const;
double GetK()const;
~Production(); // Деструктор класу
int set(Production [],int);

};

Программа:
Файл Lab2.cpp
#include <iostream>
#include <cmath>
#include <iomanip>
# include <windows.h>
# include "Lab2.h"
using namespace std;
const int n=1000;

void vipiska(Production [], int);

int main()
{
int i = 0;
char otv;
Production *production=new Production[n];
do
{
i+=production[0].set(production,i);
production[0].print(production,i);
vipiska(production, i);

cout<<"\nBydete prodoljat' raboty s programmoj?\n";
cout<<"Dlia prodoljenia najmite lubuiy bykvy, dlia okonchania n\n";
cout<<"Vash vibor=";
cin>>otv;

}
while((otv!='N')&&(otv!='n'));

cout << "\n\nDlya okonchaniya nazhmite ENTER";
getchar();
getchar();
return 0;
}

Файл Lab2main.cpp
#include "Lab2.h"
#include <iostream>
#include <iomanip>
using namespace std;
char otv;
const int n=1000;
using std::setw;
using std::cout;
using std::endl;

double Production::GetP()const
{
return P;
}
double Production::GetZ()const
{
return Z;
}
string Production::GetPr()const
{
return Pr;
}

double Production::GetC()const
{
return C;
}
double Production::GetK()const
{
return K;
}

void Production::PrintClass()const
{
cout<<"|"<<setw(3)<<C<<"|"<<setw(17)<<Pr<<"|"<<setw (10)
<<K<<"|"<<setw(16)<<Z<<"|"<<setw(15)<<C
<<"|"<<setw(11)<<P<<"|"<<endl;
}
int Production::set(Production production[n],int i) //заполнение полей данными
{
int j = 0;
cout<<"Vvedite neobhodimue dannue\n"<<endl;
do
{
cout << "Nomer : \n";
cin>>production .N;
cout<<"Naimenovanie prodykcii: \n";
cin>>production.Pr;
cout<<"Kol-vo tovara (sht.): \n";
cin>>production.K;
cout<<"Optovaia cena (grn.): \n";
cin>>production.Z;
cout<<"Sebestoimost' (grn.): \n";
cin>>production.C;
cout<<"Pribul' (grn.): \n";
production.P = production.K*(production.Z - production.C);
cout<<production.P<<endl<<endl;
cout<<"\nBydete prodoljat' raboty s programmoj?\n";
cout<<"Dlia prodoljenia najmite lubuiy bykvy, dlia okonchania n\n";
cout<<"Vash vibor=";
cin>>otv;
i++;
j++;
}
while((otv!='N')&&(otv!='n'));

return j;



}
void Production::SetFields(double k, double z, double c,double p) //установка полей
{
K=k;
Z=z;
C=c;
P=p;
}
void Production::print(Production production[n],int kol) // ф-ция печати
{
//SetConsoleOutputCP(1251);
double s1=0, s2=0, s3=0, s4=0;
for (int i=0; i<kol; i++)
{
s1+=production.K;
s2+=production.Z;
s3+=production.C;
s4+=production.P;
}
cout<<"\n Vedomost' pribuli predprijatia za otchetnuj period";
cout<<"\n _____________________________________________________________________________";
cout<<"\n| N | Prodykcia | Kol-vo | Optovaj cena | Sebestoimast' | Pribul' |";
cout<<"\n| | | | (grn.) | (grn.) | (grn.) |";
cout<<"\n|___|_________________|__________|________________|_______________|___________|"<<endl;
for (int i=0; i<kol; i++)
{
cout<<"|"<<setw(3)<<production.N<<"|"<<setw(17)<<production.Pr<<"|"<<setw (10)
<<production.K<<"|"<<setw(16)<<production.Z<<"|"<<setw(15)<<production.C
<<"|"<<setw(11)<<production.P<<"|"<<endl;
}
cout<<"_____________________________________________________________________________\n";
cout<<" Itogo"<<setw(27)<<s1<<"|"<<setw(16)<<s2<<"|"<<setw(15)<<s3<<"|"<<setw(11)<<s4<<"|";

cout<<"\n______________________________________________________________________________\n";

}
Production::~Production() // деструктор
{
cout << "\nRecord is deleted!";
}

void vipiska(Production production[n], int i) // метод печати условия программы
{
bool flag = 0;
cout << "\nDannie, dlia ybutochnih tovarov:\n";
for (int j=0; j<i; j++)
{
if (production[j].GetP() < 0)
{
production[j].PrintClass();
flag = 1;
}}
if (flag == 0)
cout << "Izvinite, tovarov s zadannumi svojstvami net!";


}
void Production::SetVar(double k, double z, double c) //перегрузка методомSet
{
P=0;
K=k;
Z=z;
C=c;
}
Production::Production() //метод с параметрами по умолчанию
{
Pr=" ";
K=0;
Z=0;
C=0;
P=0;

}

Проблема следующая: error C2668: 'setw' : ambiguous call to overloaded function И так 16 раз... Опять же логически улавливаю смысл, но практика мыслей не рождает. Как решить вопрос, подскажите пожалуйста?

Спасибо за внимание.
...
Рейтинг: 0 / 0
04.12.2006, 18:06
    #34175719
Zmejka_Gorynka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
error C2668: 'setw' : ambiguous call to overloaded function
Вопрос снят.
...
Рейтинг: 0 / 0
04.12.2006, 20:24
    #34175986
Zmejka_Gorynka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
error C2668: 'setw' : ambiguous call to overloaded function
Добавлен новый вопрос)

void vipiska(Production production[n], int i) // метод печати условия программы
{
bool flag = 0;
cout << "\nDannie, dlia ybutochnih tovarov:\n";
for (int j=0; j<i; j++)
{
if (production[j].GetP() < 0)
{
production[j].PrintClass();
flag = 1;
}}
if (flag == 0)
cout << "Izvinite, tovarov s zadannumi svojstvami net!";

В этом фрагменте программы /и, наверняка, частично в тех фрагментах, что я не охватила, но что есть выше/, насколько я поняла, осуществляется "выписка", из составленной ведомости, "убыточных товаров", т.е. данные графы Р сравниваются со значением 0 /Извиняюсь, если неверно сформулировала, Вам виднее :)/

Вопрос: А как сделать так, чтобы программа осуществляла ту же выписку, но только сравнивала она данные графы Р не с нулём, а с данными, которые я буду вводить с консоли. Т.е. как правильно, грамотно ввести/объявить переменную, с которой необходимо сравнивать, как её применить?

Подскажите пожалуйста.
...
Рейтинг: 0 / 0
05.12.2006, 03:21
    #34176279
AsPiro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
error C2668: 'setw' : ambiguous call to overloaded function
Zmejka_Gorynka Вопрос: А как сделать так, чтобы программа осуществляла ту же выписку, но только сравнивала она данные графы Р не с нулём, а с данными, которые я буду вводить с консоли. Т.е. как правильно, грамотно ввести/объявить переменную, с которой необходимо сравнивать, как её применить?Испробуй так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
void vipiska(Production production[n], int i) // метод печати условия программы
{
bool flag =  0 ;
double Ptest;
cout << "\nVvedi P:\n";
cin >> Ptest;
cout << "\nDannie, dlia ybutochnih tovarov:\n";
for (int j= 0 ; j<i; j++)
{
if (production[j].GetP() < Ptest)
{
production[j].PrintClass();
flag =  1 ;
}}
if (flag ==  0 )
cout << "Izvinite, tovarov s zadannumi svojstvami net!";
...
Рейтинг: 0 / 0
05.12.2006, 10:55
    #34176740
Zmejka_Gorynka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
error C2668: 'setw' : ambiguous call to overloaded function
Спасибо, AsPiro, пока инета не было, уже всё и решилось -/ ... Уж чего я только не испробовала)))
...
Рейтинг: 0 / 0
05.12.2006, 11:20
    #34176830
AsPiro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
error C2668: 'setw' : ambiguous call to overloaded function
Zmejka_GorynkaУж чего я только не испробовала)))В качестве расширения кругозора: раскажи что ты пробывала? Ну и поделись впечатлениями от испробованного:)
...
Рейтинг: 0 / 0
05.12.2006, 11:59
    #34177023
Zmejka_Gorynka
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
error C2668: 'setw' : ambiguous call to overloaded function
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
void vipiska(Production production[n], int i, int k) // метод печати условия программы
{
bool flag =  0 ;
cout << "\nDannie, dlia ybutochnih tovarov:\n";
for (int j= 0 ; j<i; j++)
{
if (production[j].GetP() < k)
{
production[j].PrintClass();
flag =  1 ;
}}
if (flag ==  0 )
cout << "Izvinite, tovarov s zadannumi svojstvami net!";
}

+ в фаиле Lab2.cpp
Код: plaintext
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.
#include <iostream>
#include <cmath>
#include <iomanip>
# include <windows.h>
# include "Lab2.h"
using namespace std;
const int n= 1000 ;

void vipiska(Production [], int);
void vipiska(Production [], int,int);
int main()
{ 
int i =  0 ;
int k= 0 ;
char otv;
Production *production=new Production[n];
do
{ 
i+=production[ 0 ].set(production,i);
production[ 0 ].print(production,i);
cout<<"Vvedite minimal`nuyu cenu tovara:";
cin>>k;
//vipiska(production, i);
vipiska(production,i,k);

cout<<"\nBydete prodoljat' raboty s programmoj?\n";
cout<<"Dlia prodoljenia najmite lubuiy bykvy, dlia okonchania n\n";
cout<<"Vash vibor=";
cin>>otv;

}
while((otv!='N')&&(otv!='n'));

cout << "\n\nDlya okonchaniya nazhmite ENTER";
getchar();
getchar();
return  0 ;
}

Впечатления от испробования заработавшей программы - душевный оргазм)) Я день провела над этим -/... :( ... А ещё наверно можно добавить нарушение психики за бессоные ночи %))
...
Рейтинг: 0 / 0
Форумы / C++ [игнор отключен] [закрыт для гостей] / error C2668: 'setw' : ambiguous call to overloaded function / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]