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

структуры - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Структуры http://www.cyberforum.ru/cpp-beginners/thread210631.html
Информация о сотрудниках предприятия содержит: Ф. И. О. сотрудника, номер отдела, должность, дату начала работы. Для описания информации о сотрудниках предприятия в программе необходимо использовать...
C++ Помагите нарисовать алгоритм блок схемой Вот задача:Определить частоту появления гласных букв русского алфавита в произвольном тексте. Конец текста - символ *. Вот код программы: #include<iostream> #include<conio.h> #include<stdio.h> ... http://www.cyberforum.ru/cpp-beginners/thread210626.html
C++ Нахождение в прямоугольной матрице номера строки, имеющей максимальную сумму элементов
Написать и протестировать функцию для нахождения в прямоугольной матрице номера строки, имеющей максимальную сумму элементов. Не дублируйте задания в разных темах
Ввод числа в графическом режиме C++
Подскажите, пожалуйста, как можно организовать ввод числа в графическом режиме, начиная с определенной координаты. Функция scanf работает только с 0-ой координаты...а gotoxy-вообще работает...
C++ Чем полиморфизм отличается от принципа подстановки http://www.cyberforum.ru/cpp-beginners/thread210604.html
Собсна, такой вопрос по сабжу задали в контрольной работе по ооп. Буду благодарна за помощь.
C++ Получите начальный адрес массива и приведите его к типу void* при помощи оператора static_cast Дорогие программисты! Я не студент. Я изучаю Си++ ради собственного интереса, так сказать люблю все знать )), и вданный момент читаю книгу Эккеля по Cи++. Столкнулся в книге с такой задачей: ... подробнее

Показать сообщение отдельно
JaEvg
1 / 1 / 0
Регистрация: 23.09.2010
Сообщений: 31

структуры - C++

14.12.2010, 10:48. Просмотров 309. Ответов 2
Метки (Все метки)

Не получается отладить программу в строке перемножения значений структуры. строчка man[i].zp == man[i].timech * man[i].tarif;
Помогите найти ошибку.

Код
#include <stdio.h>
 #include <string.h>
 #include <windows.h>
 #include <conio.h>
 #include <iostream>
 using namespace std;
 
 char bufRus[256];
  char* Rus(char* mes)
  { AnsiToOem(mes, bufRus);
    return bufRus;
   }
 
const int l_name = 30;
 
 struct Man
  { char name[l_name];
        int rtab;
        int tarif;
        int timech;
		int zp;
  };
 
int compare(const void *manl, const void *man2);
 
// Создание файла
 
void create()
{ Man man; int pr; FILE *fbin;
  if ((fbin =fopen("dbase.bin","wb")) == NULL)
   { puts(Rus("Ошибка создания  файла\n "));
   getch();
   }
  else
        { do
           { cout << Rus("\n Фамилия и инициалы: ");
                 cin.get() ; gets (man.name) ;
                 cout << Rus("\n Табельный номер: ");
                 cin >> man.rtab;
                 cout << Rus("\n Количество отработанных часов за месяц: ");
                 cin >> man.timech;
                 cout << Rus("\n Почасовой тариф: ");
                 cin >> man.tarif;
                 fwrite(&man, sizeof(man),1,fbin);
                 cout<<Rus("\n Продолжить ввод? (1-да/0-нет)");
                 cin >> pr;
                 } while(pr == 1);
   }  
  fclose(fbin);
}
 
// Просмотр файла
 
void view()
  { FILE *fbin;
        if ((fbin =fopen("dbase.bin","rb")) == NULL)
         { puts(Rus("Ошибка открытия  файла\n"));
           getch();
         }
        else
         { fseek(fbin, 0, SEEK_END);
           int n_record = ftell(fbin)/sizeof(Man);
           Man *man = new Man[n_record];
           fseek(fbin, 0, SEEK_SET);
           fread(man, sizeof(Man),n_record, fbin);
           fclose(fbin);
           qsort(man, n_record, sizeof(Man), compare);
           for (int i=0; i < n_record; i++)
                cout << "\n" << man[i].name << "  " <<
                 man[i].rtab << "  " << man[i].timech << "  " << man[i].tarif;
                cout << "\n";
                getch();
         }
  }
 
// Обработка файла
 
 void work()
  { char z_name[l_name];
        FILE *fbin;
        if ((fbin =fopen("dbase.bin","rb")) == NULL)
         { puts(Rus("Ошибка открытия  файла\n"));
           getch();
         }
        else
         { fseek(fbin, 0, SEEK_END);
           int n_record = ftell(fbin)/sizeof(Man);
           Man *man = new Man[n_record];
           fseek(fbin, 0, SEEK_SET);
           fread(man, sizeof(Man),n_record, fbin);
           fclose(fbin);
           qsort(man, n_record, sizeof(Man), compare);
           cout<<Rus("\nВведите фамилию и инициалы сотрудника:");
           cin.get();gets(z_name);
           for (int i=0; i < n_record; i++)
           { if (!strcmp(man[i].name,z_name))
                cout <<  "\n" << man[i].name << "  " <<
                   man[i].rtab << "  " << man[i].timech << "  " << man[i].tarif;
           cout << "\n";
           man[i].zp == man[i].timech * man[i].tarif;
           cout << "  " << man[i].zp;
           getch();
         }
		 }
  }
int main()
 { int num;
   do
        { cout << Rus("\n 1 - Создание файла");
          cout << Rus("\n 2 - Просмотр файла");
          cout << Rus("\n 3 - Обработка файла");
          cout << Rus("\n 4 - Выход");
          cout << Rus("\n Ваш выбор: ");
          cin >> num;
          switch(num)
           { case 1: create();break;
                 case 2: view();break;
                 case 3: work();break;
           }
        } while (num != 4);
   return 0;
}
 
int compare(const void *manl, const void *man2)
{ 
   return strcmp(((Man *)manl)->name,
((Man *)man2)->name);
 }
на всякий случай задание:

Не по теме:

Информация о сотрудниках фирмы содержит: Ф. И. О. сотрудника, та-бельный номер, количество отработанных часов за месяц, почасовой тариф.Для описания информации о сотрудниках фирмы в программе необходимо использовать тип данных структура. Для хранения информации о сотрудниках фирмы создать бинарный файл, ориентированный на тип данных структура. Предусмотреть в программе просмотр бинарного файла и выполнить его обработку: вывести размер заработной платы каждого сотрудника фирмы за вычетом подоходного налога, который составляет 13% от суммы заработка. Информацию отсортируйте.

процентный множитель пока не добавлял.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru