Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

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

Добавлено через 20 минут
http://pastebin.com/cBfY5de9 Исправил несколько ошибок.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
28.05.2011, 19:56
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Работа со структурами, поиск ошибок (C++):

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

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

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

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

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

Работа со структурами - C++
Имеется вот такая задача: Файл, содержащий даты. Каждая дата - это структура, помещенная в отдельную запись. Состав структуры: ...

3
SS_47
21 / 21 / 1
Регистрация: 12.07.2010
Сообщений: 27
28.05.2011, 20:16 #2
что-то вроде того
http://pastebin.com/sypaYuhv
0
g1chi
0 / 0 / 0
Регистрация: 25.05.2011
Сообщений: 1
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";
}
Я конечно новичёк, но я немного переделал и работает.
0
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 минут
Актуально.
0
29.05.2011, 13:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
29.05.2011, 13:58
Привет! Вот еще темы с ответами:

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

Работа со структурами - C++
Создать массив структур Название файла, объем файла, дата создания. И вывести на печать записи объем которых меньше 2Кб. Спасибо...

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

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


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

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

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