,   CyberForum.ru

- - C++

 
aspiredp
   aspiredp
0 / 0 / 0
: 22.10.2010
: 33
20.12.2010, 15:35     - #1
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <string.h>
//#include <unistd.h>
//#include <windows.h>


struct DTP
{
      char dtp_district[30];
      int date[3];
      char FIO[20];
      int victims_num; 
};
DTP d_mas[50]={0};
int mas_date1[3]; 
int mas_date2[3]; 
int count;
       int size=sizeof(DTP);
       FILE *fp;

void Sort()
{
  DTP buf;
 for(int i=0;i<count-1;i++)
   for(int i=0;i<count-1;i++)
   {
           if(d_mas[i].date[2]<d_mas[i+1].date[2])
           {
             buf=d_mas[i];
             d_mas[i]=d_mas[i+1];
             d_mas[i+1]=buf;                                
           }
           else
           {
               if(d_mas[i].date[2]==d_mas[i+1].date[2])
               {
                  if(d_mas[i].date[1]<d_mas[i+1].date[1])
                  {
                   buf=d_mas[i];
                   d_mas[i]=d_mas[i+1];
                   d_mas[i+1]=buf; 
                                                            
                  }
                  else
                  {
                      if(d_mas[i].date[1]==d_mas[i+1].date[1])
                      {
                        if(d_mas[i].date[0]<d_mas[i+1].date[0])
                         {
                           buf=d_mas[i];
                           d_mas[i]=d_mas[i+1];
                           d_mas[i+1]=buf;                                       
                         }
                      }
                  }
               }
           }   
   }
}
void FillDate(int ind)
{
     int day,month,year;
     char c;
     printf("\n * \n");
     scanf("%d%d%d",&day,&month,&year);
     d_mas[ind].date[0]=day;
     d_mas[ind].date[1]=month;
     d_mas[ind].date[2]=year;
     
    
}
int  CheckDate(int mas[])
{
    if(mas[0]<=0||mas[0]>31)
    {
     printf("\n ४* * (*  31)");
     getch();
     return 0;
    }
    if(mas[1]<=0||mas[1]>12)
    {
     printf("\n ४* !");
     getch();
    return 0;
    } 
    if(mas[2]< 1900 || mas[2] > 2010)
    {
     printf("\n ४* ");
     getch();
     return 0;
    }
    
 return 1;   
}

int CheckDate1(int mas1[],int mas2[])
{
    if(mas1[2]>mas2[2])
    {
      printf("\n ४* (  *  > ண)");
      return 0;
    } 
    else
    {
        if(mas1[2]==mas2[2])
        {
          if(mas1[1]>mas2[1])
          {
             printf("\n ४* (  *  > ண)");
     return 0;
          }
          else
          {
              if(mas1[1]==mas2[1])
              {
                   if(mas1[0]>mas2[0])
                   {
                       printf("\n ४* * ( * *  > ண");
                       return 0;
                                 
                   }             
              }
          }
        }
    }
    return 1; 
}
void ViewAll()
{
   Sort();
   int i=0,n=1;
   
	    printf("\n ͻ");
	    printf("\n epa,,oeco*a. **..⢺ **  ");
	    printf("\n ͹");

      for(int s=0;s<count;s++)
      {
      	      printf("\n %5i",n);
      	      for(int k=0;k<=19;k++)
	      printf("%1c",d_mas[s].FIO[k]);
	      printf("%10s",d_mas[s].dtp_district);
	      printf("%9i",d_mas[s].victims_num);
	      printf("%2d.%2d.%4d",d_mas[s].date[0],d_mas[s].date[1],d_mas[s].date[2]);
	      n++;
      }
      printf("\n ͼ");
    getch();
}

    void ViewSome(DTP el,int n,int flag)
{
if(flag==0)
  {
	    printf("\n ͻ");
	    printf("\n epa,,oeco*a. **..⢺ **  ");
	    printf("\n ͹"); 
 }    
      
              
     	      printf("\n %5i",n);
      	      for(int k=0;k<=19;k++)
	      printf("%1c",el.FIO[k]);
	      printf("%10s",el.dtp_district);
	      printf("%9i",el.victims_num);
	      printf("%2d.%2d.%4d",el.date[0],el.date[1],el.date[2]);
          printf("\n ͼ");
      
 
}
    void ViewSome2(DTP el,int n,int flag)
{
if(flag==0)
  {
	    printf("\n ͻ");
	    printf("\n epa,,oeco*a. **..⢺ **  ");
	    printf("\n ͹"); 
 }    
      
              
     	      printf("\n %5i",n);
      	      for(int k=0;k<=19;k++)
	      printf("%1c",el.FIO[k]);
	      printf("%10s",el.dtp_district);
	      printf("%9i",el.victims_num);
	      printf("%2d.%2d.%4d",el.date[0],el.date[1],el.date[2]);
      
 
}

void Add()
{
     int n = 0,k = 0,check=0;
     char d[30];
     char fio[30], *p;
     
     p = fio;
     
     printf(" **  : \n");
     
     printf(" ? **: ");


     while((*p++ = getchar())!= '\n') ;
     *p = '\0'; 
     gets(d_mas[count].FIO);
     
     do {
     memset(d, '\0', 30);
     printf(" ** : \n");
     scanf("%s",&d);
     if(strlen(d) >= 30) {
     printf("? *  *  30 ᨬ\n");
     } else {
     k = 1;
     strcpy(d_mas[count].dtp_district,d);
     memset(d, '\0', 30);
     }
     } while(k != 1);
     
     printf(" ⢮ : ");
     scanf("%d",&n);
     d_mas[count].victims_num=n;
     check = 0;
       while(check==0)
     {
        FillDate(count);
        check=CheckDate(d_mas[count].date);            
     }
   count++;
}


void Del()
{
      int n_del,i;
 if(count==0) printf ("\n *!");
           else{
      ViewAll();
   printf("\n * *: ");
   scanf("%i",&n_del);
   if((n_del<=0)||(n_del>count))
   printf("\n* ** *!");
   else{
           if(n_del!=count) {
           for(i=n_del;i<=count-1;i++)
   d_mas[i-1]=d_mas[i];
   }
    count--;
    printf("\n* %2i ***.",n_del);
   
   }
  }
 getch ();
}

void ChangeSome(int i)
{
    int ch,n,num,check=0;
    char fio[30];
    char d[30];
     printf("\n  :" );
     printf("1-? *** : \n");
     printf("2-** : \n");
     printf("3-⢮ : \n");
     printf("4-** : \n");
     printf("* 롮->");
     scanf("%d",&ch);
      switch(ch){
                case 1:
                       printf(" ? *** : \n");
                       scanf("%s",&fio);
                       strcpy(d_mas[i].FIO,fio);
                       break;
                case 2:       
                       printf(" ** : \n");
                       scanf("%s",&d);
                       strcpy(d_mas[i].dtp_district,d);
                       break;  
                case 3:                           
                       printf("\n ⢮ : ");
                       scanf("%d",&n);
                       d_mas[i].victims_num=n;
                       break;
                case 4:     
                        while(check==0)
                       {
                        FillDate(i);
                        check=CheckDate(d_mas[i].date);            
                        }
                       
                       break;
                }
       
}

void Change()
{
     int ch,n,num,c=0,check=0;
     char fio[20]={0};
     char d[20]={0};
     ViewAll();
      
   printf("\n * * :");
   scanf("%i",&num);
   if((num<=0)||(num>count))
   printf("\n* ** *!");
     
    else
     {
     printf("1-?*  \n2-?* * ");
     printf("\n* 롮->");
     scanf("%d",&ch);
     switch(ch){
                case 1:
                       printf(" ? *** : \n");
                       scanf("%s",&fio);
                       strcpy(d_mas[num-1].FIO,fio);
                       
                       printf(" ** : \n");
                       scanf("%s",&d);
                       strcpy(d_mas[num-1].dtp_district,d);
                                              
                       printf(" ⢮ : ");
                       scanf("%d",&n);
                       d_mas[num-1].victims_num=n;
                       
                       while(check==0)
                      {
                        FillDate(num-1);
                        check=CheckDate(d_mas[num-1].date);            
                        }
                       break;
                       
                  case 2:ChangeSome(num-1);
                         break;
                      
                                        
                
    }
}
}

void View_1()
{
     int day1,month1,year1,day2, month2, year2,flag=0,n=1,check1=0,check2=0,check3=0,check_d=0;

     char c=0;
     char d[30];
     while(check_d==0)
     {
     printf("\n **: ");
     scanf("%s",&d);
     for(int i=0;i<count;i++)
     {
             if(!strcmp(d,d_mas[i].dtp_district)) {
             check_d=1;
             break;
             }
     }
     if(check_d==0)
     {
      printf(" ४* **\n");
     }
     }
     
     while(check3<1)
     {
     while(check1==0)
     {
     printf("\n  *: ");
     scanf("%d%d%d",&day1,&month1,&year1);
     mas_date1[0]=day1;
     mas_date1[1]=month1;
     mas_date1[2]=year1;
     check1=CheckDate(mas_date1);
     }
     
    
                      
    while(check2==0)
     {
     printf("\n  *: ");
     scanf("%d%d%d",&day2, &month2 ,&year2);
     mas_date2[0]=day2;
     mas_date2[1]=month2;
     mas_date2[2]=year2;
     check2=CheckDate(mas_date2);
     }
     check3=CheckDate1(mas_date1,mas_date2);
     if(check3==0)
     check1=0;
    
     
     
}
     for(int i=0;i<count;i++)
     {
          if(strcmp(d_mas[i].dtp_district,d)==0)
          {
              if(d_mas[i].date[2]>=mas_date1[2]&&d_mas[i].date[2]<=mas_date2[2])
              {
               if(d_mas[i].date[1]>=mas_date1[1]&&d_mas[i].date[1]<=mas_date2[1])
               {
                 if(d_mas[i].date[0]>=mas_date1[0]&&d_mas[i].date[0]<=mas_date2[0])
                 {
                  ViewSome(d_mas[i],n,flag);
                  flag=1;
                  n++;             
                 }
               }
              }                                                                 
                                                                                     
             }
             
     }
     if(n <= 1 ) {
          printf("\n   !");
          }
 getch();
}                    
                       
     
     
  


void View_2(DTP mas[])
{
      DTP buf;
      int flag=0,n=1;
 for(int i=0;i<count-1;i++)
   for(int i=0;i<count-1;i++)
   {
           if(mas[i].victims_num<mas[i+1].victims_num)
           {
             buf=mas[i];
             mas[i]=mas[i+1];
             mas[i+1]=buf;                                                
           }
   }
   printf("\n		     <*襥 . >                \n\n");
   for(int s=0;s<2;s++)
   {
     ViewSome2(mas[s],n,flag);
     flag=1;
     n++;
  }
  if(n <= 1 ) {
   printf("\n*** *.");
   } else {
   printf("\n ͼ");
   }

  flag=0,n=1;
   printf("\n		            < >                    \n\n");
   for(int c=0;c<count;c++)
   {
	   if(mas[c].victims_num==0)
	   {
		 ViewSome2(mas[c],n,flag);
		 flag=1;
		 n++;
	   }
   }
   if(n <= 1 ) {
   printf("\n*** *.");
   } else {
   printf("\n ͼ");
   }
   getch();
}
void Menu()
{
     int ch;
     
     do
     {
    system("cls");
    printf("\n1. 뢥  ");
	printf("\n2. * *");
	printf("\n3. * *");
	printf("\n4. ?* *");
	printf("\n5. ** **  **  ** * ਮ ६*.");
	printf("\n6. ** ? **   **訬 .      ");
	printf("\n0. 室");
	
	printf("\n롮->");
	scanf("%d",&ch);
	switch(ch)
	{
              default: {
                       printf("\n ४* *");
                       getch();
                       break;
                       }
              
              case 1:
                      ViewAll();
                      break;                   
              case 2:
                      Add();
                      break;
              case 3:
                      Del();
                      break;
              case 4:
                      Change();
                      break;
              case 5:
                      View_1();
                      break;
              case 6:
                      View_2(d_mas);
                      break;
              case 0: {
                      if((fp=fopen("C:\\file.dat","wb"))==NULL) {
          fputs("\n*  .",stderr);
		      getch();
		     }
		   else { 
            for(int i=0;i<=count-1;i++)
			fwrite(&d_mas[i],size,1,fp);
			fclose(fp);
		       }
		   break;
		  }
       }

    }
     while(ch!=0);
}

int main()
{
   if((fp=fopen("C:\\file.dat","rb"))==NULL){   
        fputs("\n*  ",stderr);
           count=0;
              getch();
              } else {
                    count=0;
                         while(fread(&d_mas[count],size,1,fp)==1)
                    	    count++;
                                   fclose(fp);
                                       }
    Menu();
  getch();
   return 0; 
}
? ...
Similar
41792 / 34177 / 6122
: 12.04.2006
: 57,940
20.12.2010, 15:35     -
:

C++ -
C++
- C++
C++ -
C++ -
- C++
C++ -
C++ -



:
.

: 18:51. GMT +3.
- , ,
-
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
@Mail.ru