Код: Выделить всё
#include "stdafx.h"
#include<stdio.h>
#include <string.h>
#include<conio.h>
#include<stdlib.h>
struct firma{
char FIO[30];
int otdel;
float zarplata;
} ;
int i,j,k,g,n;
float s,average,otnowenie,min;
struct firma workers[500];
firma buffer;
void read();
void delet();
void m(){
printf(" Vvedite kol-vo sotrydnilov: ");
scanf("%i",&n);
g=1;
if(g==1){
for(i=0; i<n; i++)
{
printf("[%i] Enter FIO: ",i+1);fflush(stdin);
scanf("%s",&workers[i].FIO);
printf("ENter otdel: ");fflush(stdin);
scanf("%i",&workers[i].otdel);
printf(" Enter zarplata: ");fflush(stdin);
scanf("%f",&workers[i].zarplata);
//fwrite(&workers[i],sizeof(workers[i]),1,fi);
}
for(i=0; i<n; i++)
//printf(" %-20s %i %f\n",workers[i].FIO,workers[i].otdel,workers[i].zarplata);
for(i=0; i<n-1; i++)
for(j=i;j<n;j++)
if(workers[i].zarplata>workers[j].zarplata)
{
buffer=workers[i];
workers[i]=workers[j];
workers[j]=buffer;
}
s=0; for(i=0; i<n; i++){
if(workers[i].zarplata>25) {s+=workers[i].zarplata;k++;}
}
average=(float)s/k;
//printf("\nAverage: %f",average);
//printf("\nmin: %f",workers[0].zarplata);
min=workers[0].zarplata;
otnowenie=(float)average/min;
//printf("\notnowenie sredney z/p k minimal`noy: %f",otnowenie);
}
_getch();
}
void read(){
FILE*fi;
if(!(fi=fopen("work.exe","rb")))
{printf(" Nevozmozno sozdat` file\n"); return;
}
for(i=0; i<n; i++)
fprintf(fi," %-20s %i %f\n",workers[i].FIO,workers[i].otdel,workers[i].zarplata);
for(i=0; i<n-1; i++)
for(j=i;j<n;j++)
if(workers[i].zarplata>workers[j].zarplata)
{
buffer=workers[i];
workers[i]=workers[j];
workers[j]=buffer;
}
s=0; for(i=0; i<n; i++){
if(workers[i].zarplata>25) {s+=workers[i].zarplata;k++;}
}
average=(float)s/k;
fprintf(fi,"\nAverage: %f",average);
//printf("\nmin: %f",workers[0].zarplata);
min=workers[0].zarplata;
otnowenie=(float)average/min;
fprintf(fi,"\notnowenie sredney z/p k minimal`noy: %f",otnowenie);
fread(workers[i].FIO,sizeof(workers[i].FIO),1,fi);
//fread(workers[i].otdel,sizeof(workers[i].otdel),1,fi);
// fread(workers[i].zarplata,sizeof(workers[i].zarplata),1,fi);
fclose(fi);
}
void show(){
if( g==1) {
for(i=0; i<n; i++)
printf("%i %-20s %i %f\n",i,workers[i].FIO,workers[i].otdel,workers[i].zarplata);
printf("\nAverage: %f",average);
printf("\notnowenie sredney z/p k minimal`noy: %f",otnowenie);}
else printf("Error!");
getch();
}
int menu()
{
int choise;
printf("***MAIN MENU***\n\n\n");
printf ( "1 - vvod dannyx\n");
printf( "2 - ydalenie\n");
printf("3 - show\n");
printf( "4 - EXIT\n\n");
printf(":");
scanf("%i",&choise);
return choise;
}
void delet(){
char FIO[30] = {0};
printf(" who delete?!:\n");
scanf("%s",&FIO);
int k=0;
for(j=0;j<n
{
if( strcmp(workers[j].FIO, FIO) == 0)
{
for(k = j+1; k < i; k++)
{
workers[k-1] = workers[k];
}
break;
}
}
// for(j=0;j<n
//printf(" %-20s %i %f\n",workers[i].FIO,workers[j].otdel,workers[i].zarplata);
}
int main(){
for(;{
int choice = menu();
switch(choice){
{
case (1):
m();
break;
case (2):
delet();
break;
case (3):
show();
break;
case (4):
return 0;
break;
default: printf(" Please select again!\n");
break;
}
}
}
getch();}