Advertisement
Ghislain_Mike

Farmer's Sacco

Apr 26th, 2019
146
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 6.34 KB | None | 0 0
  1. #include<stdio.h>
  2. #include<string.h>
  3. struct date{
  4.     int day;
  5.     int month;
  6.     int years;
  7. }dt;
  8. struct members{
  9.     char name[30];
  10.     int id;
  11.     char depart[30];
  12.     struct date dt;
  13.     float marks;
  14. }member1,member2[];
  15. FILE * fptr;
  16. int i = 0;
  17.  
  18. void record(){
  19.     //GETTING TRANSACTION
  20.     printf("\nRECORD MEMBER INFORMATION\n");
  21.     printf("National ID:");
  22.     scanf("%d",&member1.id);
  23.     printf("Name: ");
  24.     scanf("%s",member1.name);
  25.     printf("DATE OF BIRTH\n");
  26.     printf("DAY: ");
  27.     scanf("%d",&member1.dt.day);
  28.     printf("MONTH: ");
  29.     scanf("%d",&member1.dt.month);
  30.     printf("YEAR: ");
  31.     scanf("%d",&member1.dt.years);
  32.     printf("Amount: ");
  33.     scanf("%f",&member1.marks);
  34.     printf("Address: ");
  35.     scanf("%s",member1.depart);
  36.     //SAVING INTO FILE
  37.     fptr = fopen("members.txt","a+");
  38.     fprintf(fptr,"%d\t%s\t%d\t%d\t%d\t%f\t%s",member1.id,member1.name,member1.dt.day,member1.dt.month,member1.dt.years,member1.marks,member1.depart);
  39.     fprintf(fptr,"\n");
  40. }
  41.  
  42. void displaying()
  43. {
  44.     char ch;
  45.     int idd,d,m,y;
  46.     float mark;
  47.     char nam[50],dep[50];
  48.     fptr = fopen("members.txt","r");
  49.     if(fptr != NULL)
  50.     {
  51.         while(!feof(fptr))
  52.         {
  53.             fscanf(fptr,"%d\t%s\t%d\t%d\t%d\t%f\t%s",&idd,nam,&d,&m,&y,&mark,dep);
  54.             printf("%d\t%s\t%d-%d-%d\t%f\t%s\n",idd,nam,d,m,y,mark,dep);
  55.         }
  56.     }
  57.     else
  58.     {
  59.         printf("\nINFORMATION NOT EXIST!!!!\n");
  60.     }
  61. }
  62.  
  63. void sorting(){
  64.     int idd,d,m,y;
  65.     float mark;
  66.     char nam[50],dep[50];
  67.     fptr = fopen("members.txt","r");
  68.     if(fptr != NULL)
  69.     {
  70.         while(!feof(fptr))
  71.         {
  72.             fscanf(fptr,"%d\t%s\t%d\t%d\t%d\t%f\t%s",&idd,nam,&d,&m,&y,&mark,dep);
  73.             member2[i].id=idd;
  74.             strcpy(member2[i].name,nam);
  75.             member2[i].dt.day=d;
  76.             member2[i].dt.month=m;
  77.             member2[i].dt.years=y;
  78.             member2[i].marks = mark;
  79.             strcpy(member2[i].depart,dep);
  80.             i++;
  81.         }
  82.         //SWAPPING DISPLAY
  83.         int j,k,tid,td,tm,ty,tmark;
  84.         char swapn[50],swappd[50];
  85.         for(j = 0;j<i;j++)
  86.         {
  87.             for(k = j+1;k<i;k++)
  88.             {
  89.                 if(member2[j].marks<member2[k].marks)
  90.                 {
  91.                     //SWAPPING NAME
  92.                     strcpy(swapn,member2[j].name);
  93.                     strcpy(member2[j].name,member2[k].name);
  94.                     strcpy(member2[k].name,swapn);
  95.                     //SWAPPING ID
  96.                     tid = member2[j].id;
  97.                     member2[j].id = member2[k].id;
  98.                     member2[k].id = tid;
  99.                     //SWAPPING DAY
  100.                     td = member2[j].dt.day;
  101.                     member2[j].dt.day = member2[k].dt.day;
  102.                     member2[k].dt.day = td;
  103.                     //SWAPPING MONTH
  104.                     tm = member2[j].dt.month;
  105.                     member2[j].dt.month = member2[k].dt.month;
  106.                     member2[k].dt.month = tm;
  107.                     //SWAPPING YEAR
  108.                     ty = member2[j].dt.years;
  109.                     member2[j].dt.years = member2[k].dt.years;
  110.                     member2[k].dt.years = ty;
  111.                     //SWAPPING MARKS
  112.                     tmark = member2[j].marks;
  113.                     member2[j].marks = member2[k].marks;
  114.                     member2[k].marks = ty;
  115.                 }
  116.             }
  117.  
  118.         }
  119.         for(j = 0; j<i;j++)//displaying ARRAY OF STRUCTURE
  120.         {
  121.             printf("%d\t%s\t%d-%d-%d\t%f\t%s\n",member2[j].id,member2[j].name,member2[j].dt.day,member2[j].dt.month,member2[j].dt.years,member2[j].marks,member2[j].depart);
  122.         }
  123.         fclose(fptr);
  124.     }
  125.  
  126.     else
  127.     {
  128.         printf("\nINFORMATION NOT EXIST!!!!\n");
  129.     }
  130. }
  131.  
  132. void display_date(){
  133.     int dD,mD,yD,count,d,m,y,idd;
  134.     float mark,averg = 0;
  135.     char nam[50],dep[50];
  136.     printf("\nENTER DAY: ");
  137.     scanf("%d",&dD);
  138.     printf("ENTER Month: ");
  139.     scanf("%d",&mD);
  140.     printf("ENTER Year: ");
  141.     scanf("%d",&yD);
  142.     fptr = fopen("members.txt","r");
  143.     while(!feof(fptr))
  144.     {
  145.         fscanf(fptr,"%d\t%s\t%d\t%d\t%d\t%f\t%s",&idd,nam,&d,&m,&y,&mark,dep);
  146.         if(dD==d&&mD==m&&yD==y)
  147.         {
  148.             printf("%d\t%s\t%d-%d-%d\t%f\t%s\n",idd,nam,d,m,y,mark,dep);
  149.             averg = averg + mark;
  150.         }
  151.     }
  152.     printf("\nAVERAGE MARKS ON THAT DATE: %f",averg);
  153. }
  154.  
  155. void display_by_department(){
  156.     char dept[50];
  157.     char nam[50],dep[50];
  158.     int dD,mD,yD,count,d,m,y,idd,countt=0;
  159.     float mark,averg = 0;
  160.     printf("\nEnter your addressi: ");
  161.     scanf("%s",dept);
  162.     fptr = fopen("members.txt","r");
  163.     while(!feof(fptr))
  164.     {
  165.         fscanf(fptr,"%d\t%s\t%d\t%d\t%d\t%f\t%s",&idd,nam,&d,&m,&y,&mark,dep);
  166.         if(strcmp(dept,dep)==0)
  167.         {
  168.             printf("%d\t%s\t%d-%d-%d\t%f\t%s\n",idd,nam,d,m,y,mark,dep);
  169.             averg = averg + mark;
  170.             countt++;
  171.         }
  172.     }
  173.     printf("\nAVERAGE MARKS ON THAT DATE: %f",averg/countt);
  174.  
  175. }
  176.  
  177. void menu() {
  178.     int ch,chr;
  179.     printf("\n\n\t\t\t\tWelcome to Farmer's Sacco!");
  180.     printf("\n\n\n");
  181.  
  182.     printf("\t\t\t------------------------------------------------\n");
  183.     printf("\t\t\t| Press any number  make to choice             |\n");
  184.     printf("\t\t\t| 1. RECORD                                    |\n");
  185.     printf("\t\t\t| 4. DISPLAY BY DATE                           |\n");
  186.     printf("\t\t\t| 5. DISPLAY BY ADDRESS                        |\n");
  187.     printf("\t\t\t------------------------------------------------\n");
  188.     printf("MAKE CHOICE: ");
  189.     scanf("%d",&ch);
  190.     switch(ch)
  191.     {
  192.         case 1:
  193.             do{
  194.                 record();
  195.                 printf("Enter |1| to record Again |other| key to Exit: ");
  196.                 scanf("%d",&chr);
  197.             }while(chr ==1);
  198.             break;
  199.         case 2:
  200.             displaying;
  201.             break;
  202.         case 3:
  203.             sorting();
  204.             break;
  205.         case 4:
  206.             display_date();
  207.             break;
  208.         case 5:
  209.             display_by_department();
  210.             break;
  211.         default:
  212.             printf("INVALID ENTRY\n");
  213.     }
  214. }
  215.  
  216. void main(){
  217.     int ch;
  218.     do{
  219.         menu();
  220.         printf("\nPRESS |1| for MENU |other| to end the program:");
  221.         scanf("%d",&ch);
  222.     }while(ch == 1);
  223. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement