Модераторы: bsa
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> по номеру в списке 
:(
    Опции темы
kaktotak
Дата 31.12.2009, 00:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 20
Регистрация: 20.12.2009

Репутация: нет
Всего: нет



Есть void delet для удалениия, но он удоляет по фИО. Как наладить удаление по номеру в списке?!
Код

struct firma{
    char FIO[30];
    int otdel;
    float zarplata;
   
} ;

int i,j,k,g,n,z=0;
float s,average,otnowenie,min;
struct firma workers[500];
firma buffer;
void read();
void delet();
void dobavlenie();
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);
    z++;    


    }
        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 dobavlenie(){
struct firma{
    char FIO[30];
    int otdel;
    float zarplata;  
};
FILE*fi;
if(!(fi=fopen("work.exe","rb")))
    {printf(" Nevozmozno sozdat` file\n"); return;
    }
else{
      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);
}

fclose(fi);
}

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);
  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);

 fclose(fi);
}
void fread(){
FILE*fi;
    if(!(fi=fopen("work.exe","rb")))
    {printf(" Nevozmozno sozdat` file\n"); return;
    }
    if(i==n) n++;
    for(i=0; i<n; i++)
    printf("%i %-20s %i %f\n",i,workers[i].FIO,workers[i].otdel,workers[i].zarplata);
printf("\notnowenie sredney z/p k minimal`noy: %f",otnowenie);
fread(&workers[i],sizeof(workers[i]),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(vvedennogo)\n");
    printf( "4 - EXIT\n");
    printf("5 - dobavlenie\n");
    printf("6 - fread\n");
  printf(":");
     scanf("%i",&choise);
        return choise;
}
void delet(){

   int number;
   printf("number for delete?!:\n");
    scanf("%d",&number);
    
  int k=0;
   for(j=0;j<n;)
    {
        if(number <= n)
        {                 
              for(k = j+1; k < i; k++)
              {
                 workers[k-1] = workers[k];           
              }
              
        }

   }      

}

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;
            case (5):
            
                dobavlenie();
       break;
            case (6):
                fread();
                break;
            default: printf(" Please select again!\n");
             
                break;
        }       
}
    }
getch();}

PM MAIL   Вверх
bsa
Дата 31.12.2009, 01:05 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Модератор
Сообщений: 9185
Регистрация: 6.4.2006
Где: Москва, Россия

Репутация: 85
Всего: 196



Почитай это сначала, исправь свой пост согласно рекомендациям, а далее будем смотреть.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "C/C++: Для новичков"
JackYF
bsa

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, bsa.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Для новичков | Следующая тема »


 




[ Время генерации скрипта: 0.0770 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.