Форум программистов, компьютерный форум, киберфорум
Наши страницы
C для начинающих
Войти
Регистрация
Восстановить пароль
 
Amid_
0 / 0 / 0
Регистрация: 27.05.2015
Сообщений: 2
#1

Вычислить среднюю зарплату работников и напечатать зарплатную ведомость

27.05.2015, 11:57. Просмотров 486. Ответов 0
Метки нет (Все метки)

Здравствуйте все, не судите строго, если что-то делаю не так, я новичок тут)
Помогите, пожалуйста, не могу понять, как закончить работу.

Вот само задание:
" 1.Сформировать одномерный массив структур, содержащий сведения о мес. зарплате работников частной организации. Каждая запись содержит поля: ФИО, Уч. номер, пол, наименование отдела, зарплата. При создании структур реализовать механизм :"Запись данных в массив", по вопросу о необходимости продолжить "Ввод".
2.Записать в основной файл массив полученных структур.
3. Упорядочить структуры в файле по учётному номеру работника.
4.Произвести поиск данных на рабочих по фамилии, введённой с терминала.
5.Произвести операцию"дозапись данных в список", которая добавит данные ещё на одного работника.
6.Вычислить среднюю зарплату работников.
7.Напечатать для бухгалтерии ведомость для начисления зарплаты (Записать в файл фамилии и зарплату на каждого работника)."


Вот код, что смог сделать. Дальше не могу. Подскажите, хотя бы, как осуществить поиск по фамилии, и, по возможности дальше, если сможете\пожелаете.

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
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
#include <conio.h>
#include <stdlib.h>
#include <stdio.h>
#include <string.h>
 
FILE *f;
 
int i,zz;
 
 char d='y';
 
struct worker {
    char fam[20];
    char im[20];
    char otch[20];
    int nom;
    char pol[2];
    char otd[20];
    int money; } mas[5];
 
    int menu(void) {
    int c;
    char t;
    do {
    printf("1.Dozapis` dannih v massiv\n2.Poisk po familii\n3.Dozapis iz faila\n4.Vychislit srednuu zarplatu\n5.Napechatat` vedomost`\n");
    scanf("%d",&c);}
    while ((t = getchar()) != EOF && t != '\n');
    clrscr();
    return c;
}
 
 
void poisk(void) {
 
char s[20], s1[20], s2[20];
 
printf("Vvedite familiyu");
scanf("%s",s);
 
f=fopen("worker.txt","r");
 
 
 
//fgets(s1,sizeof(char[20]),f);
//if (strcmp(s,s1)==0) {
      for (i=0;i<7;i++) {
 
       fgets(s2,20,f);
       printf("%s",s2);
       }
      //       }
 
 
     //   fseek(f,!strlen,SEEK_CUR)
 
 
 
 
 
 
 
 
 
 
 
 
             }
 
 
void zapis (void)   {
 
      int r;
 
    clrscr();
    f=fopen("worker.txt","a");
 
 
 
      fprintf(f,"%s\n",mas[0].fam);
      fprintf(f,"%s\n",mas[0].im);
    fprintf (f,"%s\n",mas[0].otch);
    fprintf (f,"%d\n", mas[0].nom);
    fprintf (f,"%s\n", mas[0].pol);
    fprintf(f,"%s\n",mas[0].otd);
    fprintf(f,"%d\n\n", mas[0].money);
fclose(f);
 
}
 
 
char vopros (void) {
char e;
 
 clrscr();
 printf("Dobavit zapis escho na odnogo rabotnika? Y\\N");
        scanf("%d",&e);
  return e;
   }
 
 
void dozapis(void) {
 
 
 
 
   clrscr();
 
        while(d=='y') {
 
        printf("Familiya rabotnika   ");
        scanf("%s",&mas[0].fam);
        printf ("Imya  rabotnika   ");
        scanf("%s",&mas[0].im);
        printf("Otchestvo  rabotnika   ");
        scanf("%s",&mas[0].otch);
        printf("Uchotniy nomer rabotnika   ");
        scanf("%d", &mas[0].nom);
        printf("Pol rabotnika   ");
        scanf("%s", &mas[0].pol);
        printf("Otdel rabotnika   ");
        scanf("%s",&mas[0].otd);
        printf("Zarplata rabotnika   ");
        scanf("%d", &mas[0].money);
       d= vopros();
        zapis();
 
        }
 
         }
 
 
 
 
void vybor(zz) {
switch (zz) {
case 1: dozapis();
case 2: poisk();
 
 
 
 
          } }
void main()
{
clrscr();
zz=menu();
vybor(zz);
 
 
      }


Вот текст файла, который должна создавать программа, она его создаёт не корректно, поэтому, я написал сам для проверки

Davydenko
Dmitriy
Sergeevich
1
m
IVT
5000

Senatorov
Vyacheslav
Sergeevich
2
m
IVT
4999

Bulgakov
Sergey
Alekseevich
3
m
IVT
6000

Danilova
Anastasiya
Sergeevna
4
zh
IVT
4000

Melnikov
Aleksandr
Sergeevich
5
m
IVT
100
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.05.2015, 11:57
Ответы с готовыми решениями:

Определить зарплату работников исходя из тарифа и количества отработанных часов
Постановка задачи В фирме есть 3 участка. На каждом участке может трудиться...

Из списка работников нескольких предприятий выбрать работающих на заводе и получающих зарплату не менее 3000 р
собственно вот задание 23. Из списка работников нескольких предприятий выбрать...

Не выполнятся условие, чтобы вычислить зарплату
//--------------------------------------------------------------------------- ...

Вычислить среднюю зарплату работников
нужно вычислить среднюю зарплату работников unit Unit1; interface uses...

Найти среднюю зарплату для трех первых работников
1. Найти среднюю зарплату для трех первых работников. 2.Посчитать сколько...

0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.05.2015, 11:57

Ведомость на зарплату предоставлена как две таблицы. Одна содержит фамилии работников цеха, а вторая – их зарп
Здравствуйте, помогите пожалуйста кто-нибудь с заданием по Lazarus. Вот...

Массивы. Вычислить недельную зарплату работников фирмы
Привет! Помогите решить задачку: (Исходные данные). О работниках фирмы (не...

Напечатать ведомость для выплаты заработной платы, в которой указаны фамилии работников и заработанная каждым сумма
Здравствуйте, помогите с задачей. Хотя б часть кода нужна. Подойдет любой язык...


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

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

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