본문 바로가기
00.Project

간단한 관리프로그램(mini)

by chojju 2018. 4. 28.
반응형

//app.h

void logo();
void ending();
void printmenu();

//프로그램 흐름 - 초기화
// 최초에 단 한번 실행
void app_init();

//프로그램 흐름 - 엔진
//반복 실행 코드
void app_run();

//프로그램 흐름 - 종료처리
//프로그램 종료시 단 한번 실행
void app_exit();


//booklist.h

void book_insert();
void book_printall();


//data.h

#define DATA_MAX  10


//std.h
// 프로그램에서 필요로하는 모든 h 를 include
#include <stdio.h>
#include <stdlib.h>  //system()
#include <conio.h>  //_getch()

#include "data.h"
#include "app.h"
#include "booklist.h"



//app.c
#include "std.h"

void app_init()
{
 logo();
}

void app_run()
{
 char idx; 
 while (1)
 {
  system("cls");
  printmenu();
  idx = _getch();
  switch (idx)
  {
  case '1': book_insert();  break;
  case '2': book_printall(); break;
  case '3': printf("[ 검    색 ]\n"); break;
  case '4': printf("[ 삭    제 ]\n"); break;
  case '5': printf("[ 수    정 ]\n"); break;
  case '6': return;
  }
  system("pause");
 }
}

void app_exit()
{
 ending();
}

void logo()
{
 system("cls");
 printf("******************************************\n");
 printf(" 1번째 프로그램 - 관리프로그램\n");
 printf(" 2016/6/26\n");
 printf(" cjh\n");
 printf("******************************************\n");
 system("pause");
}

void ending()
{
 system("cls"); //출력화면 비우기
 printf("******************************************\n");
 printf(" 프로그램을 종료합니다.\n");
 printf("******************************************\n");
 system("pause");//아무키나 입력받기
}

void printmenu()
{
 printf("******************************************\n");
 printf("  [1] 입력(insert)\n");
 printf("  [2] 전체출력(selectall)\n");
 printf("  [3] 검색(select)\n");
 printf("  [4] 삭제(delete)\n");
 printf("  [5] 수정(update)\n");
 printf("  [6] 프로그램 종료\n");
 printf("******************************************\n");
}


//booklist.c
#include "std.h"

//extern : 참조선언
extern char g_name[DATA_MAX][20];
extern int  g_age[DATA_MAX];
extern int  g_flag[DATA_MAX];

void book_insert()
{
 printf("[ 입    력 ]\n");
 //사용자로부터 필요한 정보를 입력받는다.(이름,나이,위치)
 char name[20];
 int age;
 int flag;
 fflush(stdin);
 printf("이름 : ");  gets_s(name, sizeof(name));
 printf("나이 : ");  scanf_s("%d", &age, sizeof(int));
 printf("저장위치(0~%d) : ", DATA_MAX - 1);
 scanf_s("%d", &flag, sizeof(int));

 //해당 위치 데이터 존재 여부
 if (g_flag[flag] == 0)
 {
  //문자열 대입은 일반 대입연산자를 사용할 수 없다.
  //g_name[flag] = name;
  strcpy_s(g_name[flag], sizeof(name), name);
  g_age[flag] = age;
  g_flag[flag] = 1;
  printf("저장되었습니다.\n");
 }
 else
 {
  printf("데이터가 존재합니다\n");
 }
}

void book_printall()
{
 printf("[ 전체출력 ]\n");
 for (int i = 0; i < DATA_MAX; i++)
 {
  printf("[%d] %20s : %5d\n", i, g_name[i], g_age[i]);
 }
 printf("\n");
}


//소스.c
#include "std.h"

//전역변수는 무조건 소스코드에....
char g_name[DATA_MAX][20];
int  g_age[DATA_MAX];
int  g_flag[DATA_MAX];

int main()
{
 app_init();
 app_run();
 app_exit();
 return 0;
}

반응형

'00.Project' 카테고리의 다른 글

C++학생관리프로그램(mini)  (0) 2018.05.10
자판기프로그램(mini)  (0) 2018.04.30
야구게임(mini)  (0) 2018.04.28

댓글