Advertisement
Guest User

Untitled

a guest
Jun 25th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.06 KB | None | 0 0
  1. #include <stdio.h>
  2. #include <stdlib.h>
  3. #include <string.h>
  4.  
  5. #pragma warning(disable : 4996)
  6.  
  7. void menu();
  8.  
  9. int main()
  10. {
  11.     FILE *list;
  12.     char name[10], dep[10], rank[10], pnumb[15], sname[15], sdep[10];
  13.     int salary, i=0, select, res, res2, a=0, max, j=0, b;
  14.     char *mname[9], *mdep[9], *mrank[9], *mpnumb[9];
  15.     int *msalary[9];
  16.     list=fopen("list.txt", "r");
  17.     if(list==NULL)
  18.     {
  19.         printf("NO DATA...\n");
  20.         return 1;
  21.     }
  22.  
  23.     while(!feof(list))
  24.     {
  25.         fscanf(list, "%s%s%s%s%d", name, dep, rank, pnumb, &salary);
  26.         mname[i]=(char *)malloc(strlen(name)+1);
  27.         mdep[i]=(char *)malloc(strlen(dep)+1);
  28.         mrank[i]=(char *)malloc(strlen(rank)+1);
  29.         mpnumb[i]=(char *)malloc(strlen(pnumb)+1);
  30.         msalary[i]=(int *)malloc(sizeof(int));
  31.         strcpy(mname[i], name);
  32.         strcpy(mdep[i], dep);
  33.         strcpy(mrank[i], rank);
  34.         strcpy(mpnumb[i], pnumb);
  35.         *msalary[i] = salary;
  36.         i++;
  37.     }
  38.  
  39.     while(1)
  40.     {
  41.         menu();
  42.         printf("번호 입력 : ");
  43.         scanf("%d", &select);
  44.         switch(select)
  45.         {
  46.         case 1:
  47.             printf("======================================================\n");
  48.             for(i=0; i<sizeof(mname)/sizeof(mname[0]); i++)
  49.             {
  50.                 res=strcmp(mdep[i], "영업부");
  51.                 if(res==0) printf("%6s %6s %4s %13s %7d\n", mname[i], mdep[i], mrank[i], mpnumb[i], *msalary[i]);
  52.             }
  53.             for(i=0; i<sizeof(mname)/sizeof(mname[0]); i++)
  54.             {
  55.                 res=strcmp(mdep[i], "인사부");
  56.                 if(res==0) printf("%6s %6s %4s %13s %7d\n", mname[i], mdep[i], mrank[i], mpnumb[i], *msalary[i]);
  57.             }
  58.             for(i=0; i<sizeof(mname)/sizeof(mname[0]); i++)
  59.             {
  60.                 res=strcmp(mdep[i], "총무부");
  61.                 if(res==0) printf("%6s %6s %4s %13s %7d\n", mname[i], mdep[i], mrank[i], mpnumb[i], *msalary[i]);
  62.             }
  63.             printf("======================================================\n");
  64.             break;
  65.         case 2:
  66.             printf("======================================================\n");
  67.             for(i=0; i<sizeof(mname)/sizeof(mname[0]); i++)
  68.             {
  69.                 res=strcmp(mrank[i], "팀장");
  70.                 if(res==0) printf("%6s %6s %4s %13s %7d\n", mname[i], mdep[i], mrank[i], mpnumb[i], *msalary[i]);
  71.             }
  72.             for(i=0; i<sizeof(mname)/sizeof(mname[0]); i++)
  73.             {
  74.                 res=strcmp(mrank[i], "과장");
  75.                 if(res==0) printf("%6s %6s %4s %13s %7d\n", mname[i], mdep[i], mrank[i], mpnumb[i], *msalary[i]);
  76.             }
  77.             for(i=0; i<sizeof(mname)/sizeof(mname[0]); i++)
  78.             {
  79.                 res=strcmp(mrank[i], "대리");
  80.                 if(res==0) printf("%6s %6s %4s %13s %7d\n", mname[i], mdep[i], mrank[i], mpnumb[i], *msalary[i]);
  81.             }
  82.             printf("======================================================\n");
  83.             break;
  84.         case 3:
  85.             printf("======================================================\n");
  86.             for(i=0; i<sizeof(mname)/sizeof(mname[0]); i++)
  87.             {
  88.                 res=strcmp(mdep[i], "영업부");
  89.                 if(res==0)
  90.                 {
  91.                     max = *msalary[i];
  92.                     b = i;
  93.                     for(i=b; i<sizeof(mname)/sizeof(mname[0]); i++)
  94.                     {
  95.                         res=strcmp(mdep[i], "영업부");
  96.                         if(res==0 && *msalary[i] > max)
  97.                         {
  98.                             max = *msalary[i];
  99.                             b = i;
  100.                         }
  101.                     }
  102.                     printf("%6s %6s %4s %13s %7d\n", mname[b], mdep[b], mrank[b], mpnumb[b], *msalary[b]);
  103.                 }
  104.             }
  105.             for(i=0; i<sizeof(mname)/sizeof(mname[0]); i++)
  106.             {
  107.                 res=strcmp(mdep[i], "인사부");
  108.                 if(res==0)
  109.                 {
  110.                     max = *msalary[i];
  111.                     b = i;
  112.                     for(i=b; i<sizeof(mname)/sizeof(mname[0]); i++)
  113.                     {
  114.                         res=strcmp(mdep[i], "인사부");
  115.                         if(res==0 && *msalary[i] > max)
  116.                         {
  117.                             max = *msalary[i];
  118.                             b = i;
  119.                         }
  120.                     }
  121.                     printf("%6s %6s %4s %13s %7d\n", mname[b], mdep[b], mrank[b], mpnumb[b], *msalary[b]);
  122.                 }
  123.             }
  124.             for(i=0; i<sizeof(mname)/sizeof(mname[0]); i++)
  125.             {
  126.                 res=strcmp(mdep[i], "총무부");
  127.                 if(res==0)
  128.                 {
  129.                     max = *msalary[i];
  130.                     b = i;
  131.                     for(i=b; i<sizeof(mname)/sizeof(mname[0]); i++)
  132.                     {
  133.                         res=strcmp(mdep[i], "총무부");
  134.                         if(res==0 && *msalary[i] > max)
  135.                         {
  136.  
  137.                             max = *msalary[i];
  138.                             b = i;
  139.                         }
  140.                     }
  141.                     printf("%6s %6s %4s %13s %7d\n", mname[b], mdep[b], mrank[b], mpnumb[b], *msalary[b]);
  142.                 }
  143.             }
  144.             printf("======================================================\n");
  145.             break;
  146.         case 4:
  147.             printf("======================================================\n");
  148.             printf("이름과 부서를 입력하세요 : ");
  149.             scanf("%s%s", sname, sdep);
  150.             for(i=0; i<sizeof(mname)/sizeof(mname[0]); i++)
  151.             {
  152.                 res=strcmp(mname[i], sname);
  153.                 res2=strcmp(mdep[i], sdep);
  154.                 if(res==0 && res2==0) printf("%6s %6s %4s %13s %7d\n", mname[i], mdep[i], mrank[i], mpnumb[i], *msalary[i]);
  155.             }
  156.             printf("======================================================\n");
  157.             break;
  158.         default:
  159.             a = 1;
  160.             for(i=0; i<sizeof(mname)/sizeof(mname[0]); i++)
  161.             {
  162.                 free(mname[i]);
  163.                 free(mdep[i]);
  164.                 free(mrank[i]);
  165.                 free(mpnumb[i]);
  166.                 free(msalary[i]);
  167.             }
  168.             break;
  169.         }
  170.         if(a==1) break;
  171.     }
  172.     fclose(list);
  173.     return 0;
  174. }
  175.  
  176. void menu()
  177. {
  178.     printf("<메 뉴>\n");
  179.     printf("1. 각 부서별 직원들의 정보를 출력\n");
  180.     printf("2. 직급 순으로 정렬하여 출력\n");
  181.     printf("3. 각 부서의 최고 봉급자를 출력\n");
  182.     printf("4. 이름과 부서로 직원을 검색\n");
  183. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement