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

Определить размер заработной платы каждого сотрудника фирмы - C++

Восстановить пароль Регистрация
 
Zhenyafrf
0 / 0 / 0
Регистрация: 07.02.2014
Сообщений: 24
22.11.2014, 10:50     Определить размер заработной платы каждого сотрудника фирмы #1
Информация о сотрудниках фирмы содержит:
• Ф. И. О. сотрудника;
• табельный номер;
• количество отработанных часов за месяц;
• почасовой тариф.
Рабочее время свыше 144 часов считается сверхурочным и оплачивается в двойном размере. Выведите размер заработной платы каждого сотрудника фирмы за вычетом подоходного налога, который составляет 13 % от суммы заработка. Информацию отсортируйте.


Вот нашел похожую, нужно упростить)

Добавлено через 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
#include <stdio.h>
#include <iostream.h>
#include <stdlib.h>
#include <conio.h>
#include <string.h>
FILE *f;
typedef struct
{
    char fio[20];
    int data;
    int sost;
    int tarif;
}
dan;
dan info[10];
int main ()
{
    system("ChCp 1251");
    system("cls");
    int menu;
    int i=0;
    char name[20];
    unsigned char n;
    while(true)
    
    {
    cout<<"viberite neobxodimoe deistvie:"<<endl;
    cout<<"1: Sozdat fail"<<endl;
    cout<<"2: otkrit fail"<<endl;
    cout<<"3: vixod"<<endl;
    cin>>menu;
    switch(menu)
    {
    case 1:
    cout<<"vvedite imai file"<<endl;
    cin>>name;
    f=fopen (name,"wb");
    system("cls");
    while (true)
        {
        system("cls");
        cout<<"familia ima otchestvo: ";
        cin>>info[i].fio;
        cout<<"tabelni nomer: ";
        cin>>info[i].data;
        cout<<"kolichestvo chasov: ";
        cin>>info[i].sost;
        cout<<"tarif: ";
        cin>>info[i].tarif;
        printf("zarplata\t");
        int z=0;
        if(info[i].sost>120)
        {
        z=(info[i].sost-120)*(info[i].tarif*2)+(120*info[i].tarif);
        }
        else 
        {
        z=info[i].sost*info[i].tarif;
        }
        fprintf(stdout,"%d\n", z);
        fwrite(&info[i],sizeof(dan),1,f);
        cout<<"dli prodolzenia nazmi D, dla zavershenia  N"<<endl;
        cin>>n;
        if (n=='N')
        break;
        i++;
        }
        system("cls");
        cout<<"file s imenem "<<name<<" sozdan!";
        system("pause");
        system("cls");
        fclose(f);
        break;
        case 3:
        exit(2);
        break;
        case 2:
        system("cls");
        cout<<"vvedi name file"<<endl;
        cin>>name;
        if ((f=fopen(name,"rb"))==0)
        {
               system("cls");
        cout<<"file s imenem  "<<name<<" ne suchestvuet!"<<endl<<endl;
               break;
        }
        i=0;
        system("cls");
        cout<<"Spisok zarplat sotrudnikov:"<<endl<<endl;
        while (!feof(f))
        {
        fread(&info[i],sizeof(dan),1,f);
        for (i=0;i<=2;i++)
        {
        cout<<"familia ima otchestvo: "<<info[i].fio<<endl;
        cout<<"tabelni nomer: "<<info[i].data<<endl;
        cout<<"kolichestvo chasov: "<<info[i].sost<<endl<<endl;
                      cout<<"tarif: "<<info[i].tarif<<endl<<endl;
        }
        i++;
}
system("pause");
fclose(f);
        }
    }
}
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2014, 10:50     Определить размер заработной платы каждого сотрудника фирмы
Посмотрите здесь:

C++ Определить размер файла в С++
C++ Как определить размер класса ?
C++ [ООП + while]Определение заработной платы для каждого
Поучить размер каждого файла C++
Создать список отделов и вычислить общую сумму заработной платы сотрудников каждого отдела C++
C++ Создать список отделов и вычислить общую сумму заработной платы сотрудников этого отдела
Программа расчета суммы налоговых отчислений от заработной платы C++

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
zss
Модератор
Эксперт С++
 Аватар для zss
5955 / 5560 / 1788
Регистрация: 18.12.2011
Сообщений: 14,209
Завершенные тесты: 1
22.11.2014, 11:04     Определить размер заработной платы каждого сотрудника фирмы #2
Цитата Сообщение от Zhenyafrf Посмотреть сообщение
int data;
- вы считаете, что имя data очень подходит для обозначения табельного номера?
Цитата Сообщение от Zhenyafrf Посмотреть сообщение
int sost;
- тот же вопрос, как это можно отождествлять с количеством отработанных часов за месяц?
Zhenyafrf
0 / 0 / 0
Регистрация: 07.02.2014
Сообщений: 24
22.11.2014, 12:02  [ТС]     Определить размер заработной платы каждого сотрудника фирмы #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
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
116
117
118
119
120
121
122
123
124
125
126
127
#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 tabel;
    int time;
    int tariv;
    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("Ochibka cozdania faila\n "));
   getch();
   }
  else
    { do
       { cout << Rus("\n Iniciali: ");
         cin.get() ; gets (man.name) ;
         cout << Rus("\n В№ Tabela: ");
         cin >> man.tabel;
         cout << Rus("\n Vremya raboti: ");
         cin >> man.time;
         cout << Rus("\n tariv: ");
         cin >> man.tariv;
         fwrite(&man, sizeof(man),1,fbin);
         cout<<Rus("\n Prodolhit vvod (1-Da/0-Net)");
         cin >> pr;
         } while(pr == 1);
   }  
  fclose(fbin);
}
 
// Ïðîñìîòð ГґГ*éëГ*
 
void view()
  { FILE *fbin;
    if ((fbin =fopen("dbase.bin","rb")) == NULL)
     { puts(Rus("Ohibka otkritia faila\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].tabel << "  " << man[i].time << "  " << man[i].tariv << "  " << man[i].zp;
        cout << "\n";
        getch();
     }
  }
 
// ГЋГЎГ°Г*áîòêГ* ГґГ*éëГ*
 
 void work()
  { char z_name[l_name];
    FILE *fbin;
    if ((fbin =fopen("dbase.bin","rb")) == NULL)
     { puts(Rus("Ohibka otkritia\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("\nVVedite Iniciali cotrudnika:");
       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].tabel << "  " << man[i].time << man[i].tariv << "  " << man[i].zp;
       }
       cout << "\n";
       getch();
     }
 }
 
int main()
 { int num;
   do
    { cout << Rus("\n 1 - Cozdanie faila");
      cout << Rus("\n 2 - Prosmotr faila");
      cout << Rus("\n 3 - Obrabotka faila");
      cout << Rus("\n 4 - Vixod");
      cout << Rus("\n Bach vibor: ");
      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);
 }
Yandex
Объявления
22.11.2014, 12:02     Определить размер заработной платы каждого сотрудника фирмы
Ответ Создать тему
Опции темы

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