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

friend function - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Включение нового значения в упорядоченный список http://www.cyberforum.ru/cpp-beginners/thread170687.html
помоги плиз сделать такую программку.... В составе программы описать функцию, которая включает в упорядо-ченный по убыванию список новое значение, введенное с клавиатуры, та-ким образом, чтобы не нарушать упорядоченность.
C++ Внешний файл и дин.память Задачу надо сделать через файл и дин.память. Данные с файла считывает, но вот результат не соответствует условию (вообще не пойму что выводит). Без файла и памяти работает прекрасно. Если кто сможет исправить ошибку, заранее благодарен! Вот условие задачи, и код: Дан массив С1, С2, …, С24. В массиве есть два элемента равные 0. Заменить все элементы, стоящие между ними, на единицы. ... http://www.cyberforum.ru/cpp-beginners/thread170682.html
C++ Время, через которое встретятся два тела
Определить время, через которое встретятся два тела, равноускоренно движущиеся навстречу друг другу, если известны их начальные скорости, ускорения и начальное расстояние между ними.
Написать программу нахождения суммы чисел по правилу (n-нечетно): a1+a3+a5+…+an. C++
Написать программу нахождения суммы чисел по правилу (n-нечетно): a1+a3+a5+…+an.
C++ В матрице удалить строки, в которых встречается 3 и более одинаковых элементов http://www.cyberforum.ru/cpp-beginners/thread170674.html
Задана матрица размером m на n. Удалить те строки в которых встречается 3 и более подряд идуших элементов.
C++ Перевод из одной системы счисления в другую Осуществить перевод введенного с клавиатуры числа в двоичной, шестнадцатерич-ной, восьмеричной или десятичной системах счисления в другие системы счисления. Система счисления введенного с клавиатуры числа определяется литерой в конце числа (B – двоичная, H – шестнадцатеричная, O – восьмеричная, D – десятичная). может у кого то есть какие то наброски?например ,перевод из любой системы счисления... подробнее

Показать сообщение отдельно
zhenya.ya
1 / 1 / 0
Регистрация: 29.11.2009
Сообщений: 304
29.09.2010, 22:56     friend function
После добавления дружественной ф-ции sum( а она для сложения salary у человека, которого я выберу)
класс перестал работать. Что у меня не так?
Ф-ция:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
void sum(bank ob)
{
    char line[22];int s=0;
    cout<<" input name:"<<endl;
    cin>>line;
    for(int i=0;i<ob.n;i++)
    {
        if(strcmp(line,ob.name[i])==0)
        {
            for(int j=0;j<ob.vc[i];j++)
                s+=ob.salary[i][j];
        }
    }
    cout<<"\n"<<s<<endl;
}
весь код:
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
class bank
{   
private:
    char *bank_name;
    char **name;
    int **value;
    int **salary;
public:
    int n,*vc;
    bank();
    ~bank();
    void add();
    void show();
    void setsize();
    friend void sum(bank ob);
};
bank::bank()
{
     n=0;
     int **value=0,**salary=0;
     char **name='\0',*bank_name='\0';
}
void bank::setsize()
{
    cout<<" size (n):"<<endl;
    cin>>n;
}
void bank::add()
{
    bank_name=new char[33];
    cout<<"input bank_name\n"<<endl;
    cin>>bank_name;
 
    char str[55];
    vc=new int[n];
    name=new char *[n];
    value=new int *[n];
    salary=new int *[n];
for(int i=0;i<n;i++)
{
    system("cls");
    cout<<i<<":iput name:\n"<<endl;
    cin>>str;
    name[i]=new char[strlen(str)+1];
    strcpy(name[i],str);
 
    cout<<"input amount of values:";
cin>>vc[i];
value[i]=new int[n];
salary[i]=new int[n];
for(int j=0;j<vc[i];j++)
{
    cout<<"values:"<<j<<endl;
cin>>value[i][j];
cout<<"salary:"<<endl;
cin>>salary[i][j];
}
}
system("cls");
}
void bank::show()
{
    cout<<bank_name<<endl;
    for(int i=0;i<n;i++)
    {
    cout<<name[i]<<"\n";
    for(int j=0;j<vc[i];j++)
    {
   cout<<value[i][j]<<" "<<salary[i][j]<<endl;
    }
    }
}
void sum(bank ob)
{
    char line[22];int s=0;
    cout<<" input name:"<<endl;
    cin>>line;
    for(int i=0;i<ob.n;i++)
    {
        if(strcmp(line,ob.name[i])==0)
        {
            for(int j=0;j<ob.vc[i];j++)
                s+=ob.salary[i][j];
        }
    }
    cout<<"\n"<<s<<endl;
}
 
bank::~bank()
{
    delete []name;
    delete []bank_name;
    delete []value;
    delete []salary;
    delete []vc;
}
void main()
{
    bank obj;
    obj.setsize();
    obj.add();
    obj.show();
    sum(obj);
    system("PAUSE");
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 18:12. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru