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

Ввод информации в программу не ограничивается фиксированным числом - C++

Восстановить пароль Регистрация
 
pr1me222
0 / 0 / 0
Регистрация: 11.05.2011
Сообщений: 71
11.01.2013, 23:17     Ввод информации в программу не ограничивается фиксированным числом #1
Существует условие, что данные о заработной плате и тому подобному должны выводится 10 раз, после этого функция displaydata выводит всю выше введенную информацию. Но только почему то данные вводятся до бесконечности, и не чего не происходит. Хотя в функции main прописан массив который ограничивает число ввода данных.
Вообщем, подскажите пожалуйста что нужно исправить что бы информация вводилась 10 раз и после этого все выше введенное аккуратненько выводилось.)
Вот код:

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
#include <iostream>
#include <stdio.h>
#include <string.h>
#include <conio.h>
using namespace std;
 
 
class zarplata
{
public:
    int tabnom; 
        //[10];
    char fioR[128];
    int oplCh;
    int dayOt;
    int rezultat;
    int prem;
 
};
 
 
int getdata (zarplata & zp)
{
 
    char ch;
    int  i=1;
    
        
    setlocale (LC_ALL,".1251");
    cout << "Введите табельный номер работника = ";
    cout << "Введите ФИО работника = ";
    cin >> zp.fioR;
    cout << "Введите оплату за один час работы = ";
    cin >> zp.oplCh;
    cout << "Введите количество отработанных дней = ";
    cin >> zp.dayOt;
    cout << "Введите сумму премии =  ";
    cin >> zp.prem;
    zp.rezultat=(zp.oplCh*8*zp.dayOt)+zp.prem;
    cout << "Заработная оплата работника с табельным номером: "<<zp.tabnom<< " равна = "<< zp.rezultat<<endl;
    
    return 1;
}
/////////////////////////
void displaydata (zarplata & zp)
{
    cout << zp.tabnom
        <<" "
        <<zp.oplCh
        <<" "
        <<zp.dayOt
        <<" "
        <<zp.prem
        <<" "
        <<zp.rezultat
        <<" "<<endl;
 
}
 
int main ()
{
    const int MAX = 10;
    zarplata zp [MAX];
     
    int index = 0;
    while (getdata(zp[index]) && index <MAX) 
    
    {
        index++;
    }
    
    for (int i=0; i<index; i++)
    {
        displaydata(zp[i]);
        
 
    }
    return 0;
}
Что бы было легче понять чего я добиваюсь, вот полноценное условие с лабы:

1. Создать класс с именем ZARPLATA, содержащий следующие поля:
• табельный номер;
• фамилия И.О. работника;
• оплата за один час работы;
• количество обработанных дней;
• премия.
2. Написать программу, реализующую следующие методы, определенные вне класса:
• ввод с клавиатуры данных в массив, состоящий из десяти объектов (работников) класса ZARPLATA;
• рассчитать зарплату каждого работника за месяц;
• вывести на экран ведомость начисления заработной платы. Записи должны быть размещены в алфавитном порядке по фамилиям.
3. Предусмотреть конструктор без аргументов и деструктор (для двух последних объектов конст-руктор с аргументами).

Заранее спасибо)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.01.2013, 23:17     Ввод информации в программу не ограничивается фиксированным числом
Посмотрите здесь:

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

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zvoronz
 Аватар для zvoronz
270 / 237 / 21
Регистрация: 29.05.2012
Сообщений: 889
11.01.2013, 23:20     Ввод информации в программу не ограничивается фиксированным числом #2
C++
1
2
3
4
while (getdata(zp[index]) && (index < MAX))
    {
        index++;
    }
У операции && больший чем у < приоритет, поэтому index < MAX нужно взять в скобки.
pr1me222
0 / 0 / 0
Регистрация: 11.05.2011
Сообщений: 71
11.01.2013, 23:41  [ТС]     Ввод информации в программу не ограничивается фиксированным числом #3
спасибо ) появилась правда новая проблема, я пока счетчик уменьшила с 10 на 3, но почему то вводится информация 4 раза ( а не три, но тут проблема наверно в том что счет начинается с 0), затем программа аварийно завершается, но результат выводится о первых трех введенных данных, то что вводили 4 раз не вывело(
И стрелочка указывает на последнею строчку кода , т.е. на закрывающеюся фигурную скобку
Yandex
Объявления
11.01.2013, 23:41     Ввод информации в программу не ограничивается фиксированным числом
Ответ Создать тему
Опции темы

Текущее время: 08:26. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru