кэп
25-12-2012, 20:37
Создать файл, содержащий сведения о сотрудниках фирмы. Запись включает: Ф.И.О. сотрудников; табельный номер; количество проработанных часов за месяц; почасовой тариф. Рабочее время свыше 144 часов считается сверхурочным и оплачивается в двойном размере. ВЫВЕСТИ РАЗМЕР ЗАРАБОТНОЙ ПЛАТЫ КАЖДОГО СОТРУДНИКА ФИРМЫ ЗА ВЫЧЕТОМ ПОДОХОДНОГО НАЛОГА, КОТОРЫЙ СОСТАВЛЯЕТ 12% ОТ СУММЫ ЗАРАБОТНОЙ ПЛАТЫ.
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
struct ved
{
char name[20];
int number;
int chasi;
int tarif;
//int zarplata;
};
void main()
{
int z=0;
struct ved mas[20];
int size=0;
FILE *f;
f=fopen("1.txt","r+");
while(!feof(f))
{
fgets(mas[size].name,50,f);
fscanf(f,"%d\n",&mas[size].number);
fscanf(f,"%d\n",&mas[size].chasi);
fscanf(f,"%d\n",&mas[size].tarif);
//fscanf(f,"%d\n",&mas[size].zarplata);
size++;
}
size--;
fclose(f);
int a=12;
while (a!=0)
{
printf("\nVibor\n");
printf("1 prosmotr vseh\n");
printf("2 add\n");
printf("3 del\n");
printf("4 edit\n");
printf("5 vivod viplat po otd+sr.zp\n");
printf("0 exit\n");
printf("_____________________________\n\n");
fflush(stdin);
scanf("%d",&a);
switch(a)
{
case 1:
{
for (int i=0; i<=size; i++)
{
printf("\n");
printf("name\t\t");
fputs(mas[i].name,stdout);
printf("number\t\t");
printf("%d\n",mas[i].number);
printf("chasi\t\t");
printf("%d\n",mas[i].chasi);
printf("tarif\t\t");
printf("%d\n",mas[i].tarif);
printf("zarplata\t");
if(mas[i].chasi>120)
{
z=(mas[i].chasi-120)*(mas[i].tarif*2)+(120*mas[i].tarif);
}
else
{
z=mas[i].chasi*mas[i].tarif;
}
fprintf(stdout,"%d\n", z);
printf("\n");
}
break;
}
case 2:
{
//добавление
size++;
fflush (stdin);
printf("name\t");
fgets(mas[size].name,50,stdin);
fflush (stdin);
printf("number\t");
scanf("%d", &mas[size].number);
fflush (stdin);
printf("chasi\t");
scanf("%d", &mas[size].chasi);
fflush (stdin);
printf("tarif\t");
scanf("%d", &mas[size].tarif);
break;
}
case 3:
{
//удаление
int k;
int c;
bool m=false;
fflush (stdin);
fputs("vvedite number\t",stdout);
scanf("%d",&c);
for(int i=0; i<=size; i++)
{
if(mas[i].number==c)
{
k=i;
m=true;
break;
}
}
while((k<=size)&m)
{
mas[k]=mas[k+1];
k++;
}
size--;
break;
}
case 4:
{
//редактирование
int temp;
fflush (stdin);
puts("vvedite number\t");
scanf("%d",&temp);
for(int i=0; i<=size; i++)
{
if(temp==mas[i].number)
{
puts("1 - change name");
puts("2 - change number");
puts("3 - change chasi");
puts("4 - change tarif");
int op;
fflush (stdin);
scanf("%d",&op);
fflush (stdin);
switch (op)
{
case 1:
{
fflush (stdin);
printf("name\t");
fgets(mas[size].name,50,stdin);
break;
}
case 2:
{
puts("vvedite new number\t");
scanf("%d", &mas[i].number);
break;
}
case 3:
{
puts("vvedite new chasi\t");
scanf("%d", &mas[i].chasi);
break;
}
case 4:
{
puts("vvedite new tarif\t");
scanf("%d", &mas[i].tarif);
break;
}
}
break;
}
}
break;
}
}
//сохранение в файл
f=fopen("1.txt","w+");
for (int i=0; i<=size; i++)
{
fputs(mas[i].name,f);
fprintf(f,"%d\n",mas[i].number,f);
fprintf(f,"%d\n",mas[i].chasi,f);
fprintf(f,"%d\n",mas[i].tarif,f);
//fprintf(f,"%d\n",mas[i].zarplata,f);
}
fclose(f);
}
return;
}
#include <stdlib.h>
#include <string.h>
#include <stdio.h>
struct ved
{
char name[20];
int number;
int chasi;
int tarif;
//int zarplata;
};
void main()
{
int z=0;
struct ved mas[20];
int size=0;
FILE *f;
f=fopen("1.txt","r+");
while(!feof(f))
{
fgets(mas[size].name,50,f);
fscanf(f,"%d\n",&mas[size].number);
fscanf(f,"%d\n",&mas[size].chasi);
fscanf(f,"%d\n",&mas[size].tarif);
//fscanf(f,"%d\n",&mas[size].zarplata);
size++;
}
size--;
fclose(f);
int a=12;
while (a!=0)
{
printf("\nVibor\n");
printf("1 prosmotr vseh\n");
printf("2 add\n");
printf("3 del\n");
printf("4 edit\n");
printf("5 vivod viplat po otd+sr.zp\n");
printf("0 exit\n");
printf("_____________________________\n\n");
fflush(stdin);
scanf("%d",&a);
switch(a)
{
case 1:
{
for (int i=0; i<=size; i++)
{
printf("\n");
printf("name\t\t");
fputs(mas[i].name,stdout);
printf("number\t\t");
printf("%d\n",mas[i].number);
printf("chasi\t\t");
printf("%d\n",mas[i].chasi);
printf("tarif\t\t");
printf("%d\n",mas[i].tarif);
printf("zarplata\t");
if(mas[i].chasi>120)
{
z=(mas[i].chasi-120)*(mas[i].tarif*2)+(120*mas[i].tarif);
}
else
{
z=mas[i].chasi*mas[i].tarif;
}
fprintf(stdout,"%d\n", z);
printf("\n");
}
break;
}
case 2:
{
//добавление
size++;
fflush (stdin);
printf("name\t");
fgets(mas[size].name,50,stdin);
fflush (stdin);
printf("number\t");
scanf("%d", &mas[size].number);
fflush (stdin);
printf("chasi\t");
scanf("%d", &mas[size].chasi);
fflush (stdin);
printf("tarif\t");
scanf("%d", &mas[size].tarif);
break;
}
case 3:
{
//удаление
int k;
int c;
bool m=false;
fflush (stdin);
fputs("vvedite number\t",stdout);
scanf("%d",&c);
for(int i=0; i<=size; i++)
{
if(mas[i].number==c)
{
k=i;
m=true;
break;
}
}
while((k<=size)&m)
{
mas[k]=mas[k+1];
k++;
}
size--;
break;
}
case 4:
{
//редактирование
int temp;
fflush (stdin);
puts("vvedite number\t");
scanf("%d",&temp);
for(int i=0; i<=size; i++)
{
if(temp==mas[i].number)
{
puts("1 - change name");
puts("2 - change number");
puts("3 - change chasi");
puts("4 - change tarif");
int op;
fflush (stdin);
scanf("%d",&op);
fflush (stdin);
switch (op)
{
case 1:
{
fflush (stdin);
printf("name\t");
fgets(mas[size].name,50,stdin);
break;
}
case 2:
{
puts("vvedite new number\t");
scanf("%d", &mas[i].number);
break;
}
case 3:
{
puts("vvedite new chasi\t");
scanf("%d", &mas[i].chasi);
break;
}
case 4:
{
puts("vvedite new tarif\t");
scanf("%d", &mas[i].tarif);
break;
}
}
break;
}
}
break;
}
}
//сохранение в файл
f=fopen("1.txt","w+");
for (int i=0; i<=size; i++)
{
fputs(mas[i].name,f);
fprintf(f,"%d\n",mas[i].number,f);
fprintf(f,"%d\n",mas[i].chasi,f);
fprintf(f,"%d\n",mas[i].tarif,f);
//fprintf(f,"%d\n",mas[i].zarplata,f);
}
fclose(f);
}
return;
}