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

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

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

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 22.06.2016, 19:38   #1
Genome
Пользователь
 
Регистрация: 22.06.2016
Сообщений: 14
По умолчанию Определить все автомобили марки "газ" номера которых начинаются и заканчиваются на цифру три (Cи)

1)Разработать программу, которая должна в диалоговом режиме позволять:
а) создать файл, каждая запись которого содержит данные, тип которых задан в конкретной условии задачи;
б) открыть существующий файл;
в) закрыть файл;
г) проверить содержимое типизированного файла;
д) добавить запись в файл;
е) выйти из программы.
Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>

FILE *fIn,*fSolution,*fWatch,*fAdd;
int f1=0,f2=0;

struct point
    { char c[80];
      int X,Y,Z;
      float m;
    };



void Action1()
     {char Name[80];
      if(!f1)
         printf("There are no open file to work with\nIf you want to make a file choose 5 in menu\nthen choose 2");
         else {printf("Print name of file you want to add something\n");
               scanf("%s",&Name);
               if(!(fSolution=fopen(Name,"w")))
                   printf("Error");
                   else  {printf("File is created\n");

                           while(!feof(fIn))
                              {
                          
                                
                             
                              }
                    

                          }
    
      }




     }

void Action2()
     {char Name[80];
      printf("Add name of file you want to open\n");
      scanf("%s",&Name);
      if(!(fIn=fopen(Name,"rt")))
        {printf("Error");
        }
      else {f1=1;
            printf("File is open");
           }
     }

void Action3()
     {
      if(f1)
         {fclose(fIn);
          f1=0;
          printf("\n Open file is closed\n");
         }
      if(f2)
         {fclose(fSolution);
          f2=0;
          printf("\nCreated file is closed\n");
         }
     }

void Action4()
     {char Name[80];
      struct point M;
            {printf("Add name of file you want to see\n");
             scanf("%s",Name);
              if(!(fWatch=fopen(Name,"r+")))
                {printf("Error");
                }

             while(!feof(fWatch))
                  {
                  }
            }
     }

void Action5()
     {char Name[80];
      int n,i;
      struct point M;
            {printf("Print name of file you want to add something\n");
             scanf("%s",Name);
             fAdd=fopen(Name,"a");
             printf("How much strings you want to add?");
             scanf("%d",&n);
           

            }
     
     }

void TypeOfAction(a)
    {

     while (a!=0)
     {printf("\nChoose what to do :");
      printf("\n1-To create a file with solution");
      printf("\n2-Open existing file");
      printf("\n3-Close file");
      printf("\n4-To see what is in file");
      printf("\n5-Add information to file");
      printf("\n0-Exit program\n");
      scanf("%d",&a);
      if( (a<0)||(a>5)  )
      printf("\nYou choose wrong acton,try again");

      switch(a)
             { case 1 :Action1(); break ;
               case 2 :Action2(); break ;
               case 3 :Action3(); break ;
               case 4 :Action4(); break ;
               case 5 :Action5(); break ;
               case 0 :break;
             }


     }

    }

int main()
    {int a=-1;
     TypeOfAction(a);
     return 0;
    }
Реализовать отображение файлов с текстовыми даными и с результатами роботы.2)Определить все автомобили марки "газ" номера которых начинаются и заканчиваются на цифру три
Думал будут сложности с первой частью задания, но с ней я справился. Никак не могу сделать вторую часть, не знаю как ее вставить сюда хотя казалось бы самая простая часть задачи. Заранее спасибо всем кто поможет.
Genome вне форума Ответить с цитированием
Старый 23.06.2016, 22:38   #2
Genome
Пользователь
 
Регистрация: 22.06.2016
Сообщений: 14
По умолчанию

Все еще не могу решить вопрос с первой функцией,как сделать так чтобы она проверяла созданый файл и записывала в новый только если mark == GAZ и первая и последняя чифра номера = 3?
Код:
#include <stdio.h>
#include <conio.h>
#include <math.h>
#include <malloc.h>
FILE *fIn,*fSolution,*fWatch,*fAdd;
int f1=0,f2=0;
struct car
    { char mark[80],vlasn[80],adr[80];
      int nomer,year;
    };
void Action1()
     {char Name[80];
      struct car *M;
      int n ,i,n0=20;
     M =(struct car*)calloc(n0,sizeof(struct car));
      if(!f1)
         printf("There are no open file to work with\nIf you want to make a file choose 5 in menu\nthen choose 2");
         else {printf("Print name of file you want to add something\n");
               scanf("%s",Name);
               if(!(fSolution=fopen(Name,"w")))
                {printf("Error");
                }
                else{printf("File is created\n");
                     while(!feof(fIn))
                         {
 
                         fscanf(fIn,"%s %s %s", M[n].mark,M[n].vlasn,M[n].adr);
                         fscanf (fIn,"%d %d", M[n].nomer, M[n].year);
                          n++;
                          if(n0-1<=n)
                            {n0+=1;
                             M=(struct car*)calloc(n0,sizeof(struct car));
                            }
                           for (i = 0; i < n; i++) 
                          if (M[n].nomer == 3)
                          {
                          fprintf (fSolution,"%d,",M[n].nomer);
                          }
 
                            }
                         }
 
                           }
                    }
void Action2()
     {char Name[80];
      printf("Add name of file you want to open\n");
      scanf("%s",&Name);
      if(!(fIn=fopen(Name,"rt")))
        {printf("Error");
        }
      else {f1=1;
            printf("File is open");
           }
     }
 
void Action3()
     {
      if((!f1)&&(!f2))
             printf("Sory,but there are no files to close\n");
      if(f1)
         {fclose(fIn);
          f1=0;
          printf("\n Open file is closed\n");
         }
      if(f2)
         {fclose(fSolution);
          f2=0;
          printf("\nCreated file is closed\n");
         }
     }
 
void Action4()
     {char Name[80];
      struct car M;
            {printf("Add name of file you want to see\n");
             scanf("%s",Name);
              if(!(fWatch=fopen(Name,"r")))
                {printf("Error");
                }
 
             while(!feof(fWatch))
                  {fscanf(fWatch,"%d",&M.nomer);
                   printf(" %d ",M.nomer);
                  }
             fclose(fWatch);
            }
     }
 
void Action5()
     {char Name[80];
      int n,i;
      struct car M;
            {printf("Print name of file you want to add something\n");
             scanf("%s",Name);
             fAdd=fopen(Name,"a");
             printf("How much strings  add?");
             scanf("%d",&n);
             for(i=0;i<n;i++)
                {
                 printf ("Enter mark:");
                 scanf ("%s", &M.mark);
                 printf ("Enter host:");
                 scanf ("%s", &M.vlasn);
                 printf ("Enter adress:");
                 scanf ("%s", &M.adr);
                 printf ("Enter nomer:");
                 scanf ("%d", &M.nomer);
                 printf ("Enter year:");
                 scanf ("%d", &M.year);
                 if(i==n-1)
                    fprintf(fAdd,"%s %s %s %d %d ",M.mark, M.vlasn, M.adr, M.nomer, M.year);
                    else fprintf(fAdd,"%s %s %s %d %d\n ",M.mark, M.vlasn, M.adr, M.nomer, M.year);
                }
 
            }
       fclose(fAdd);
     }
 
void TypeOfAction(a)
    {
 
     while (a!=0)
     {printf("\nChoose what to do :");
      printf("\n1-To create a file with solution");
      printf("\n2-Open existing file");
      printf("\n3-Close file");
      printf("\n4-To see what is in file");
      printf("\n5-Add information to file");
      printf("\n0-Exit program\n");
      scanf("%d",&a);
      if( (a<0)||(a>5)  )
      printf("\nYou choose wrong acton,try again");
 
      switch(a)
             { case 1 :Action1(); break ;
               case 2 :Action2(); break ;
               case 3 :Action3(); break ;
               case 4 :Action4(); break ;
               case 5 :Action5(); break ;
               case 0 :break;
             }
 
 
     }
 
    }
 
int main()
    {int a=-1;
     TypeOfAction(a);
     return 0;
    }
Genome вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Для заданной строки определить все входящие в неё символ. Например: строка "abccbbabbac" состоит из символов "a", "b" и "c" Sandakan01 Помощь студентам 1 24.02.2016 03:20