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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
f1xmAn
0 / 0 / 0
Регистрация: 28.05.2011
Сообщений: 22
#1

Работа со структурами, поиск ошибок - C++

28.05.2011, 19:56. Просмотров 418. Ответов 3
Метки нет (Все метки)

Необходимо написать программу роботы с массивом из 10 объектов. Нужны отдельные функции инициализации объектов и вычислений. Программа должна иметь меню.
Условие: объекты - работники на ЧП. Необходимо вычислить средний и суммарный возраст, среднюю и суммарную зарплату.

Свой вариант решения я выложил на pastebin.com. Почему-то после записи в массивы в них остается мусор. Помогите найти причину, пожалуйста.

ЗЫ: код рассчитан на Visual C++ 6.0, поэтому просьба не ругать за отсутствие using namespace std; и прочих модных в плюсах плюшках

Добавлено через 20 минут
http://pastebin.com/cBfY5de9 Исправил несколько ошибок.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2011, 19:56     Работа со структурами, поиск ошибок
Посмотрите здесь:

Работа со структурами - C++
У меня есть структура, содержащая фамилии учеников и их оценки по 3 предметам. Как мне посчитать средний балл каждого студента и вывести...

Работа со структурами - C++
Ввести в компьютер информацию о сотрудниках : фамилия,имя,возраст. Напечатать имена сотрудников,у которых возраст больше 28 лет

Работа со структурами - C++
Создать структуру для работы с тригонометрическими комплексными числами. Комплексное число в тригонометрической форме задается своим...

Работа со структурами - C++
Помогите написать программу подобного рода: Работа со структурами. Программа должна содержать функции, необходимые для выполнения...

Работа со структурами - C++
Известны данные о численности населения и площади 10 государств. Определить государство с максимальной плотностью населения. P.S. ...

Работа со структурами - C++
1. Надо обьявить тип структура с полями базовых типов, указателей и массивов 2. Создать и инициализировать переменную типа структура ...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
SS_47
21 / 21 / 1
Регистрация: 12.07.2010
Сообщений: 27
28.05.2011, 20:16     Работа со структурами, поиск ошибок #2
что-то вроде того
http://pastebin.com/sypaYuhv
g1chi
Сообщений: n/a
28.05.2011, 20:16     Работа со структурами, поиск ошибок #3
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
#include <iostream>
 
using namespace std;
class rab
{
public:
    int vozrast;
    double zarplata;
}a[10];
 
void showmenu();
void add(int count);
void info(int count);
void obr(int count);
 
 
int main()
{
    double srvozrast;
    double srzarplata;
    double sumvozrast;
    double sumzarplata;
    int count=0;
    int t=0;
    for(int k=0; k<10;k++)
    {
        a[k].vozrast=0;
        a[k].zarplata=0;
    }
    while(t!=4)
    {
    showmenu();
    cin>>t;
    switch(t)
    {
    case 1:
        count++;
        add(count);
        break;
    case 2:
        info(count);
        break;
    case 3:
        obr(count);
        break;
 
    }
    }
 
}
 
void showmenu()
{
    cout<<"1-Dobavit' rabotnika \n";
    cout<<"2-Posmotret' info dobavlennih rabotnikov \n";
    cout<<"3-Obrabotat' info \n";
    cout<<"4-Viyti \n";
}
 
void add(int count)
{
        cout<<"Vvedite vozrast rabotnika #"<<count<<": ";
        cin>>a[count].vozrast;
        cout<<"Vvedite zarplatu rabotnika #"<<count<<": ";
        cin>>a[count].zarplata;
        
}
 
void info(int count)
{
    cout<<"Vi dobavili "<<count<<" rabotnikov \n";
}
 
void obr(int count)
{
    double srvozrast=0;
    double srzarplata=0;
    double sumvozrast=0;
    double sumzarplata=0;
        for(int i=0; i<=count; i++)
        {
        sumvozrast+=a[i].vozrast;       
        sumzarplata+=a[i].zarplata;     
        }
    srvozrast=sumvozrast/count;
    srzarplata=sumzarplata/count;
    cout<<"Sredniy vozrast= "<<srvozrast<<"\t"<<"Summarniy vozrast= "<<sumvozrast<<"\n";
    cout<<"Sredniaya zarplata= "<<srzarplata<<"\t"<<"Summarnaya zarplata= "<<sumzarplata<<"\n";
}
Я конечно новичёк, но я немного переделал и работает.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2011, 13:58     Работа со структурами, поиск ошибок
Еще ссылки по теме:

Работа со структурами - C++
Сегодня преподаватель огорошил известием что к завтрашнему дню надо сдать лабораторную по Работе со структурами. Было бы хорошо. НО он...

РАБОТА СО СТРУКТУРАМИ - C++
Судоходные реки: Название реки, протяженность, минимальная глубина фарватера. Дополнить вывод информацией о том, подходит ли река для...

Работа со структурами - C++
#include&lt;iostream.h&gt; #include&lt;math.h&gt; struct List { float fi,r,z; int n; }; void vvod (List &amp;, int); void vivod (List...

Работа со структурами - C++
Здравствуйте.У меня возникли проблемы в написании программы,а именно как удалить структуру,поиск в массиве по ключевому полю.Прошу вас...

Работа со структурами - C++
#include&lt;iostream.h&gt; #include&lt;math.h&gt; struct List { float fi,r,z; int n; }; void vvod...

работа со структурами - C++
#include&lt;conio.h&gt; #include&lt;iostream.h&gt; #include&lt;string.h&gt; main() { int n=0, i, zapros, flag=0; char s; ...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
f1xmAn
0 / 0 / 0
Регистрация: 28.05.2011
Сообщений: 22
29.05.2011, 13:58  [ТС]     Работа со структурами, поиск ошибок #4
Большое спасибо! Сроки горят, надо лабы сдавать

Добавлено через 4 часа 51 минуту
Немного переписал код, чтобы можно было с файлами работать, но в массивах теперь снова мусор хранится, тыкните меня носом в ошибку, пожалуйста.
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
106
107
108
109
110
111
112
113
114
115
#include <iostream>
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
 
using namespace std;
class rab
{
public:
        int vozrast;
        double zarplata;
}a[10];
 
void showmenu();
void add(int count);
void info(int count);
void obr(int count);
void view();
 
 
int main()
{
        double srvozrast;
        double srzarplata;
        double sumvozrast;
        double sumzarplata;
        int count=0;
        int t=0;
        for(int k=0; k<10;k++)
        {
                a[k].vozrast=0;
                a[k].zarplata=0;
        }
        while(t!=5)
        {
        showmenu();
        cin>>t;
        switch(t)
        {
        case 1:
                count++;
                add(count);
                break;
        case 2:
                info(count);
                break;
        case 3:
                obr(count);
                break;
        case 4:
                view();
                break;
 
        }
        }
 
}
 
void showmenu()
{
        cout<<"1-Dobavit' rabotnika \n";
        cout<<"2-Posmotret' info dobavlennih rabotnikov \n";
        cout<<"3-Obrabotat' info \n";
        cout<<"4-Resul'tat \n";
        cout<<"5-Viyti \n";
}
 
void add(int count)
{
                cout<<"Vvedite vozrast rabotnika #"<<count<<": ";
                cin>>a[count].vozrast;
                cout<<"Vvedite zarplatu rabotnika #"<<count<<": ";
                cin>>a[count].zarplata;
        
                
}
 
void info(int count)
{
           cout<<"Vi dobavili "<<count<<" rabotnikov \n";
}
 
void obr(int count)
{
            FILE *f;
            if(!(f=fopen("c:\\base.dat","ab"))) return;
        double srvozrast=0;
        double srzarplata=0;
        double sumvozrast=0;
        double sumzarplata=0;
                for(int i=0; i<=count; i++)
                {
                sumvozrast+=a[i].vozrast;               
                sumzarplata+=a[i].zarplata;             
                }
        srvozrast=sumvozrast/count;
        srzarplata=sumzarplata/count;
            fwrite(&a, sizeof(a),1,f);
            fclose(f);
       }
 
void view()
{
    rab a;
    FILE *f;
    int srvozrast;
    int sumvozrast;
    int srzarplata;
    int sumzarplata;
 
    if(!(f=fopen("c:\\base.dat","rb"))) return;
        cout<<"Sredniy vozrast= "<<srvozrast<<"\t"<<"Summarniy vozrast= "<<sumvozrast<<"\n";
        cout<<"Sredniaya zarplata= "<<srzarplata<<"\t"<<"Summarnaya zarplata= "<<sumzarplata<<"\n"; 
    fclose(f);
}
Добавлено через 12 часов 37 минут
Актуально.
Yandex
Объявления
29.05.2011, 13:58     Работа со структурами, поиск ошибок
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru