Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.01.2013, 19:01   #1
anastasiya315
Новичок
Джуниор
 
Регистрация: 20.01.2013
Сообщений: 3
По умолчанию исправить программу на СИ

Код:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
typedef struct buer {
       char name[20];
       char number[8];
       char  year[4];
       char  sale[8];
       
       
      } buer ;
        FILE *f;
       buer emptybuer;
      char key [8];
       buer Empty(buer st);
       void Init (void);
  buer table[10]/*òàáëèöÿ ïîêóïö³â*/;
  
void WriteDB(){
   int i=0, n;
   char number1[8] ,year1[4], sale1[8];
   char name1[20];
       if ((f=fopen("data.txt", "w"))==NULL){
                         printf("Error!");
                         return;
                         }
                         printf("Vvesty n");
                         scanf("%d",&n);
     while (i<n){
           printf("vvesty: name, number ,year, sale");
           scanf("%s%s%s%s", &name1, &number1, &year1,&sale1);
           fprintf(f,"%20s %8s %4s %8s", name1, number1 ,year1, sale1);
           i++;
           }
     fclose(f);
     }

void ReadDB(){
     if ((f=fopen("data.txt", "r"))==NULL){
                         printf("Error!");
                         return;
                                           }
     int i=0;
     Init();
     while (!feof(f)){
           fscanf(f,"%s%s%s%s", &(table[i].name),&(table[i].number), &(table[i].year),&(table[i].sale));
           i++;
                      }
           fclose(f);
             }
        buer Empty(buer st){
        strcpy(st.name,"                    ");
        strcpy(st.number,"       ");
        strcpy(st.sale,"       ");
        strcpy(st.year,"  ");
        
        return st;
        }
/*void Insert(){
     int pos=Find(empt     .name);
     if(pos==3)
               printf("\nTablicia perepovnena! Zapys ne vidbuvcia!\n");
     else tableStArray[pos]=st;
     }*/
        
void Init (void){
     emptybuer=Empty(emptybuer);
     for(int i=0; i<3; i++)
             table[i]=emptybuer;
     }

void PrintDB(){
      for(int i=0; i<10; i++)
      printf ("%20s %8s %4s %8s\n", table[i].name, table[i].number, table[i].year, table[i].sale);
      fclose(f);
               }
int Find(void){
     int i=0;
     while((i<10)&&(strcmp(table[i].number, key)))
         i++;
         return i;}          
               
void Delete1(){
        puts ("Enter key");
     gets (key);
     int pos=Find ();
     emptybuer=Empty(emptybuer);
     if(pos==10)
               printf("Element dlia vudalennya ne znaydeno!");
     else  table[pos]=emptybuer/*ðîáèòü ðÿäîê òàáëèö³ ïîðîæí³é*/;}
     

         
int lessbysale(buer a, buer b){ 
    return  (atoi(a.sale)<atoi(b.sale));
    
                               }


void swap(int, int);

void sort(){
     int flag=1, i;
     while (flag){
           flag=0;
           for(i=0; i<10; i++)
                    if(lessbysale(table[i+1], table[i]))
                                           {swap(i,i+1), flag=1;}
           } }
                        
    
void swap(int i, int j){
         buer st;
         st=table[j];
         table[j]=table[i];
         table[i]=st;}
     /*char s[20];
     int k;*/
         
         
         
        /* strcpy(s,k2[i].name);
         strcpy(k2[i].name,k2[j].name);
         strcpy(k2[j].name,s);*/
                        

               
   /*  fclose(f);*/
   //  return 0;*/
   
 int main(void)
{         
           int cmd;
                  printf("vitay!\n");
                  printf("0\t Exit\n");
                  printf("1\t Input base in file\n");
                  printf("2\t Print\n");
                  printf("3\t Read from file\n");
                  printf("4\t Delete\n");
                  printf("5\t Save base\n");
                  printf("6\t Find\n");
                  printf("7\t Insert\n");
                  
                  printf("VVEDIT KOMANDY ");
            scanf("%d",&cmd);
            do {
           
switch(cmd){
      case 0: printf("ok"); break;
      case 1: WriteDB();printf("ok"); break;
      case 2: PrintDB(); break;
      case 3:  ReadDB(); break;
      case 4:  Delete1(); break;
     // case 5:  SaveDB(); break;
      case 6: puts("Enter key"); gets(key);printf( "%d",Find());
                break;
      //case 7: Insert();
           }
     /*      puts("Vvestu variant");
           scanf("%d",&cmd);*/
          } while(cmd);
          
getch();
    }
/*Программа работает, но она зацикливаеться, повторяеться write,программа должна вводить значение с клавиатуры количества человек, записывать, сохранять, искать за вводимым ключем, прибавлять и убавлять столбци, если можно, помогите*/

Последний раз редактировалось Stilet; 20.01.2013 в 19:11.
anastasiya315 вне форума Ответить с цитированием
Старый 20.01.2013, 19:11   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Отладчиком конечно никто не проходил?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.01.2013, 19:51   #3
anastasiya315
Новичок
Джуниор
 
Регистрация: 20.01.2013
Сообщений: 3
По умолчанию

А что значит отладчик? через компилятор F9
anastasiya315 вне форума Ответить с цитированием
Старый 20.01.2013, 20:16   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Эм... Наверное F11-F10. Если VS и F7-F8 если Билдер.
Отладчик останавливается на каждом операторе, показывая состояние программы.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 20.01.2013, 20:29   #5
anastasiya315
Новичок
Джуниор
 
Регистрация: 20.01.2013
Сообщений: 3
По умолчанию исправить программу на СИ

отладчиком прошли, но работает не так как нужно, не подскажите как запустить программу от имени администратора
anastasiya315 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
исправить программу Александрq Помощь студентам 0 05.11.2012 00:25
исправить программу МихаилД Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 21.06.2011 12:23
исправить программу в С++ paul0 Помощь студентам 0 26.05.2011 12:20
Исправить программу. Си. Erkon Помощь студентам 3 01.11.2010 16:47
Исправить программу amfisat Общие вопросы C/C++ 3 02.06.2010 08:22