no image
java 배열 홀수합
import java.util.Scanner;//Scanner를 사용하기위해 import를 통해 외부 클래스를 호출 //Scanner는 java.util 패키지에 포함되어있다. public class ArrAdd{//Arr 이라는 객체를 생성 public static void main(String[] args) { //접근 한정자를 public으로 설정(어디서든지 사용가능) //static으로 메모리를 미리 할당 //void는 함수가 끝날 때 리턴값이 없다. //main은 메인 함수로 쓰여지는것 //String[] args는 args를 문자열로 사용하겠다 라는 의미 int b=0;//변수 선언 0으로 초기화 int[] arr = new int[5];//배열 선언 Scanner in = new Scanne..
2023.01.12
no image
java 일차원배열
import java.util.Scanner;//Scanner를 사용하기위해 import를 통해 외부 클래스를 호출 //Scanner는 java.util 패키지에 포함되어있다. public class ArrAdd{//Arr 이라는 객체를 생성 public static void main(String[] args) { //접근 한정자를 public으로 설정(어디서든지 사용가능) //static으로 메모리를 미리 할당 //void는 함수가 끝날 때 리턴값이 없다. //main은 메인 함수로 쓰여지는것 //String[] args는 args를 문자열로 사용하겠다 라는 의미 int b=0;//변수 선언 0으로 초기화 int[] arr = new int[5];//배열 선언 Scanner in = new Scanne..
2023.01.12
no image
java 홀수의 합
public class Odd {//Odd라는 클래스 객체를 생성 public static void main(String[] args) {//접근 한정자를 public으로 설정(어디서든지 사용가능) //static으로 메모리를 미리 할당 //void는 함수가 끝날 때 리턴값이 없다. //main은 메인 함수로 쓰여지는것 //String[] args는 args를 문자열로 사용하겠다 라는 의미 int a=0;//데이터타입이 int인 정수 a가 가지고 있는 주솟값의 메모리에 0이 있는것 //값 초기화 for(int i=1; i
2023.01.12
no image
java 자바 연산자(입력)
import java.util.Scanner;//Scanner를 사용하기위해 import를 통해 외부 클래스를 호출 //Scanner는 java.util 패키지에 포함되어있다. public class AddScanner{//Add라는 객체를 생성 public static void main(String[] args) { //접근 한정자를 public으로 설정(어디서든지 사용가능) //static으로 메모리를 미리 할당 //void는 함수가 끝날 때 리턴값이 없다. //main은 메인 함수로 쓰여지는것 //String[] args는 args를 문자열로 사용하겠다 라는 의미 int c=0;// c를 0으로 초기화시켜줌 Scanner in = new Scanner(System.in);//객체를 생성 System..
2023.01.12
no image
java 자바 연산자
public class Add{//Add라는 객체를 생성 public static void main(String[] args) { //접근 한정자를 public으로 설정(어디서든지 사용가능) //static으로 메모리를 미리 할당 //void는 함수가 끝날 때 리턴값이 없다. //main은 메인 함수로 쓰여지는것 //String[] args는 args를 문자열로 사용하겠다 라는 의미 int a=1;// a라는 변수가 가지고 있는 주솟값에 있는 메모리에 1이 있다는 뜻 (초기화) int b=2;// b라는 변수가 가지고 있는 주솟값에 있는 메모리에 2가 있다는 뜻 (초기화) int c=0;// c를 0으로 초기화시켜줌 c = a + b;// a+b = c라는 연산자 System.out.println("c값..
2023.01.12
no image
c++ 카페관리 프로그램 (업그레이드 버전)
#include #include #include #include #include typedef struct list { int data; struct list* link; }LIST; //queue를 위한 구조체 선언 typedef struct queue { LIST* front; LIST* rear; }QUEUE; //메뉴 정보 구조체 typedef struct _MENU { char drink[30]; char price[30]; }MENU; //고객 정보 구조체 typedef struct _customer { char name[30]; char phone[30]; }CUSTOMER; //번호표 구조체 typedef struct _ticket_number { char number[30]; char n..
2023.01.12
C++
no image
c++ minimum two-way alignment (최소 양방향 정렬)(내림차순)
#include //선언부 컴파일에 접근을해서 선언파트에 있는 걸 처리해서 사용 using namespace std; //std라는 소속을 알려줄 필요가 다음부터 없는것 등록을 했을경우 ex( std::cout void swap();//함수 선언문 int main()// 몸체부, 메인 함수 // int 를 쓰는이유는 비정상적인 오류를 제외 시키는것 //void를 써도 상관없지만 오류가 날수도있고 계속 컴퓨터가 값을 기다린다 { int arr[5];//배열 arr[]를 메모리값의 크기가 5인 배열 선언 int temp = 0;// temp라는 변수가 가르키는 주소 값에 메모리안에 0을 선언 0으로 초기화 cout
2023.01.12
C++
no image
c++ Interchange Insertion Sort(자리교환 삽입정렬)(내림차순)
#include //선언부 컴파일에 접근을해서 선언파트에 있는 걸 처리해서 사용 using namespace std; //std라는 소속을 알려줄 필요가 다음부터 없는것 등록을 했을경우 ex( std::cout void swap();//함수 선언문 int main()// 몸체부, 메인 함수 // int 를 쓰는이유는 비정상적인 오류를 제외 시키는것 //void를 써도 상관없지만 오류가 날수도있고 계속 컴퓨터가 값을 기다린다 { int arr[5];//배열 arr[]를 메모리값의 크기가 5인 배열 선언 int temp = 0;// temp라는 변수가 가르키는 주소 값에 메모리안에 0을 선언 0으로 초기화 cout
2023.01.12
C++

java 배열 홀수합

Dev_Jen
|2023. 1. 12. 22:36
반응형
import java.util.Scanner;	//Scanner를 사용하기위해 import를 통해 외부 클래스를 호출
							//Scanner는 java.util 패키지에 포함되어있다.
                            
public class ArrAdd{					//Arr 이라는 객체를 생성
		public static void main(String[] args) { //접근 한정자를 public으로 설정(어디서든지 사용가능)
						//static으로 메모리를 미리 할당
						//void는 함수가 끝날 때 리턴값이 없다.
						//main은 메인 함수로 쓰여지는것
						//String[] args는 args를 문자열로 사용하겠다 라는 의미

 
int b=0;						//변수 선언 0으로 초기화
int[] arr = new int[5];				//배열 선언
Scanner in = new Scanner(System.in);		//객체를 생성 System.in은 키보드로 입력받기위해 사용

for(int i=0; i<5; i++){				//조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식
System.out.print( i+1 + "번째 값을 입력해주세요 : " );			//0~4까지 1씩 증가 출력문
	 arr[i] = in.nextInt();						//Scanner 입력
}

for(int i=0; i<5; i++){				//조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식
if(arr[i]%2==1){						//arr값이 홀수라면 
	System.out.println(i+1 + "번째 값 : " +arr[i]);		//출력문
	b = b + arr[i]; 				//홀수인 값을 b에다가 더하기
			}	
		}
	System.out.println("홀수들의 합 : " + b);		//b값 출력
	}
}
반응형

'Java' 카테고리의 다른 글

java Bubble Sort(버블 정렬)  (0) 2023.01.12
java array sort (배열정렬)  (0) 2023.01.12
java 일차원배열  (0) 2023.01.12
java 홀수의 합  (0) 2023.01.12
java 자바 연산자(입력)  (0) 2023.01.12

java 일차원배열

Dev_Jen
|2023. 1. 12. 22:34
반응형
import java.util.Scanner;	//Scanner를 사용하기위해 import를 통해 외부 클래스를 호출
							//Scanner는 java.util 패키지에 포함되어있다.

public class ArrAdd{					//Arr 이라는 객체를 생성
		public static void main(String[] args) { //접근 한정자를 public으로 설정(어디서든지 사용가능)
						//static으로 메모리를 미리 할당
						//void는 함수가 끝날 때 리턴값이 없다.
						//main은 메인 함수로 쓰여지는것
						//String[] args는 args를 문자열로 사용하겠다 라는 의미

int b=0;						//변수 선언 0으로 초기화

int[] arr = new int[5];				//배열 선언

Scanner in = new Scanner(System.in);		//객체를 생성 System.in은 키보드로 입력받기위해 사용

for(int i=0; i<5; i++){				//조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식
System.out.print( i+1 + "번째 값을 입력해주세요 : " );			//0~4까지 1씩 증가 출력문
	 arr[i] = in.nextInt();						//Scanner 입력
}

for(int i=0; i<5; i++){				//조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식

if(arr[i]%2==1){						//arr값이 홀수라면 
	System.out.println(i+1 + "번째 값 : " +arr[i]);		//출력문
	b = b + arr[i]; 				//홀수인 값을 b에다가 더하기
			}	
		}
	System.out.println("홀수들의 합 : " + b);		//b값 출력
	}
}
반응형

'Java' 카테고리의 다른 글

java array sort (배열정렬)  (0) 2023.01.12
java 배열 홀수합  (0) 2023.01.12
java 홀수의 합  (0) 2023.01.12
java 자바 연산자(입력)  (0) 2023.01.12
java 자바 연산자  (0) 2023.01.12

java 홀수의 합

Dev_Jen
|2023. 1. 12. 22:33
반응형
public class Odd {		//Odd라는 클래스 객체를 생성

		public static void main(String[] args) {//접근 한정자를 public으로 설정(어디서든지 사용가능)
						//static으로 메모리를 미리 할당
						//void는 함수가 끝날 때 리턴값이 없다.
						//main은 메인 함수로 쓰여지는것
						//String[] args는 args를 문자열로 사용하겠다 라는 의미

int a=0;					//데이터타입이 int인 정수 a가 가지고 있는 주솟값의 메모리에 0이 있는것
							//값 초기화

for(int i=1; i<=10; i++)		//조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식으로 

{							//1부터 10까지 1씩 증가
	if(i%2==1){ a=a+i;		// if문 i%2==1일떄 값은 1이 나온다 트루라면 a에다가 홀수값을 더해준다

System.out.println(i + "번째 홀수 : " +i);}		// 출력
}

System.out.println("홀수들의 합 : " + a);		//출력

	}
}
반응형

'Java' 카테고리의 다른 글

java array sort (배열정렬)  (0) 2023.01.12
java 배열 홀수합  (0) 2023.01.12
java 일차원배열  (0) 2023.01.12
java 자바 연산자(입력)  (0) 2023.01.12
java 자바 연산자  (0) 2023.01.12

java 자바 연산자(입력)

Dev_Jen
|2023. 1. 12. 22:31
반응형
import java.util.Scanner;	//Scanner를 사용하기위해 import를 통해 외부 클래스를 호출
							//Scanner는 java.util 패키지에 포함되어있다.

public class AddScanner{			//Add라는 객체를 생성

		public static void main(String[] args) { //접근 한정자를 public으로 설정(어디서든지 사용가능)
						//static으로 메모리를 미리 할당
						//void는 함수가 끝날 때 리턴값이 없다.
						//main은 메인 함수로 쓰여지는것
						//String[] args는 args를 문자열로 사용하겠다 라는 의미

int c=0;					// c를 0으로 초기화시켜줌

Scanner in = new Scanner(System.in);		//객체를 생성 System.in은 키보드로 입력받기위해 사용
 

System.out.print("a값을 입력해주세요 : " );
int a = in.nextInt();					//입력받은 정수를 변수를 a라는 주솟값이 가르키는 메모리에 저장
System.out.print("b값을 입력해주세요 : " );
int b = in.nextInt();					//입력받은 정수를 변수를 a라는 주솟값이 가르키는 메모리에 저장

c = a + b;						 //a+b = c라는 연산자

System.out.println("c값 : " + c);		//출력

	}
}
반응형

'Java' 카테고리의 다른 글

java array sort (배열정렬)  (0) 2023.01.12
java 배열 홀수합  (0) 2023.01.12
java 일차원배열  (0) 2023.01.12
java 홀수의 합  (0) 2023.01.12
java 자바 연산자  (0) 2023.01.12

java 자바 연산자

Dev_Jen
|2023. 1. 12. 22:30
반응형
public class Add{			//Add라는 객체를 생성

		public static void main(String[] args) { //접근 한정자를 public으로 설정(어디서든지 사용가능)
						//static으로 메모리를 미리 할당
						//void는 함수가 끝날 때 리턴값이 없다.
						//main은 메인 함수로 쓰여지는것
						//String[] args는 args를 문자열로 사용하겠다 라는 의미

 

int a=1;		// a라는 변수가 가지고 있는 주솟값에 있는 메모리에 1이 있다는 뜻 (초기화)
int b=2;		// b라는 변수가 가지고 있는 주솟값에 있는 메모리에 2가 있다는 뜻 (초기화)
int c=0;		// c를 0으로 초기화시켜줌

c = a + b;		// a+b = c라는 연산자

System.out.println("c값 : " + c);		//출력

	}
}
반응형

'Java' 카테고리의 다른 글

java array sort (배열정렬)  (0) 2023.01.12
java 배열 홀수합  (0) 2023.01.12
java 일차원배열  (0) 2023.01.12
java 홀수의 합  (0) 2023.01.12
java 자바 연산자(입력)  (0) 2023.01.12
반응형
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <windows.h>


typedef struct list
{
    int data;
    struct list* link;
}LIST;
                          //queue를 위한 구조체 선언
typedef struct queue
{
    LIST* front;
    LIST* rear;
}QUEUE;

//메뉴 정보 구조체
typedef struct _MENU {
   char drink[30];
   char price[30];
}MENU;

//고객 정보 구조체
typedef struct _customer {
   char name[30];
   char phone[30];
}CUSTOMER;

//번호표 구조체
typedef struct _ticket_number {
   char number[30];
   char name[30];
   char drink[30];
   char price[30];
}TICKET_NUMBER;

//함수
QUEUE* Create_queue();
void Enqueue(QUEUE* pQ);
void Print(QUEUE* pQ);   //함수원형 선언
int Dequeue(QUEUE* pQ);
void Search(QUEUE* pQ);
int Que();

void new_add_menu();           //메뉴 추가 
void new_add_customer();      //고객 추가 
void new_add_ticker_number();      //번호표 추가 

int search_menu();            //메뉴 검색 
int search_customer();         //고객 검색 
int search_ticket_number();      //번호표 검색 

void edit_customer();         //고객 수정 
void edit_menu();            //메뉴 수정 

void del_customer();         //고객 삭제 
void del_menu();            //메뉴 삭제 

void view_menu();            //메뉴 전체 보기 
void view_customer();         //고객정보 전체 보기 
void view_ticket_number();      // 번호표 전체 보기 

int cross_search();       // 교차검색 

void end();                  //끝내기 

void input_menu();             //호출했을 ?? 정보를 전부 구조체에 담는 함수
void input_customer();
void input_ticket_number();

void SetTextColor(int background, int text) // UI
{
   SetConsoleTextAttribute(GetStdHandle(STD_OUTPUT_HANDLE), (background<<4) | text);
   //배경색인 background를 4비트 앞으로 보내고, text와 더하여 적용
}

//구조체 배열 전역변수 선언
MENU menu_info[200];
int menu_idx=0;        //메뉴 정보 카운팅

CUSTOMER customer_info[200];
int customer_idx=0;        //고객 정보 카운팅

TICKET_NUMBER ticket_number_info[200];
int ticket_number_idx=0;        //번호표 정보 카운팅


int main()  //메인화면
{
   int i, sel=1, idx;
   input_menu();
   input_customer();
   input_ticket_number();

   SetTextColor(15, 0); //15: 흰색, 0: 검은색

   while(sel!=16)
   {
      system("cls"); //화면지우기    
      printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
      printf("┃                            ┃\n");
      printf("┃     카페 관리 프로그램     ┃\n"); 
      printf("┃                            ┃\n");
      printf("┃〓〓〓〓〓〓추가〓〓〓〓〓〓┃\n");
      printf("┃  1. 신규 메뉴 추가         ┃\n");
      printf("┃  2. 신규 고객 추가         ┃\n");
      printf("┃  3. 번호표 추가            ┃\n");
      printf("┃〓〓〓〓〓〓검색〓〓〓〓〓〓┃\n");
      printf("┃  4. 기존 메뉴 검색         ┃\n");
      printf("┃  5. 기존 고객 검색         ┃\n");
      printf("┃  6. 번호표 조회            ┃\n");
      printf("┃〓〓〓〓〓〓수정〓〓〓〓〓〓┃\n");
      printf("┃  7. 기존 고객 수정         ┃\n");
      printf("┃  8. 기존 메뉴 수정         ┃\n");
      printf("┃〓〓〓〓〓〓삭제〓〓〓〓〓〓┃\n");
      printf("┃  9. 기존 고객 삭제         ┃\n");
      printf("┃  10. 기존 메뉴 삭제        ┃\n");
      printf("┃〓〓〓〓〓전체보기〓〓〓〓〓┃\n");
      printf("┃  11. 메뉴 전체 보기        ┃\n");
      printf("┃  12. 고객 전체 보기        ┃\n");
      printf("┃  13. 번호표 전체 보기      ┃\n");
      printf("┃〓〓〓〓〓교차검색〓〓〓〓〓┃\n");
      printf("┃  14. 교차 검색             ┃\n");
      printf("┃〓〓〓〓〓대기열〓〓〓〓〓〓┃\n");
      printf("┃  15. 대기열 메뉴           ┃\n");
      printf("┃〓〓〓〓〓〓종료〓〓〓〓〓〓┃\n");
      printf("┃  16. 프로그램 종료         ┃\n");
      printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");
      printf("  원하는 메뉴를 선택하세요: ");

      scanf("%d", &sel) ;

switch(sel)
      {
      case 1:
         new_add_menu();
         break;
      case 2:
         new_add_customer();
         break;
      case 3:
         new_add_ticker_number();
         break;
      case 4:
         search_menu();
         break;
      case 5:
         search_customer();
         break;
      case 6:
         search_ticket_number();
         break;
      case 7:
         edit_customer();
         break;
      case 8:
         edit_menu();
         break;
      case 9:
         del_customer();
         break;
      case 10:
         del_menu();
         break;
      case 11:
         view_menu();
         break;
      case 12:
         view_customer();
         break;
      case 13:
         view_ticket_number();
         break;
      case 14:
        cross_search();
         break;
      case 15:
        Que();
         break;
      case 16:
         end();
         break;
      default:
         printf("\n잘못 선택하셨습니다.\n");
      }
      printf("\n작업을 완료하였습니다.\n새로운 메뉴를 선택하려면 Enter를 눌러주세요.\n");
      getch(); // 항목 입력 받기 대기 -> 엔터치면 새롭게 항복 선택 가능
   }
   return 0;
}

//고객 정보 파일에서 입력받기 
void input_customer()
 {
   FILE* c_fp = fopen("C:\\project\\Customer.txt", "r");
   char line[150];
   char* ptr;
   int word_cnt;

    //고객 정보 입력 
   while(fscanf(c_fp, "%s", line)>0)
   {
      word_cnt = 0;
      ptr = strtok(line,","); //","단위로 잘라내는 strtok함수  
      while(ptr!=NULL)
      {
         word_cnt++;
         switch(word_cnt)
         {
         case 1: //char name
            strcpy(customer_info[customer_idx].name, ptr);
            break;
         case 2: //char phone
            strcpy(customer_info[customer_idx].phone, ptr);
            break;
         }
         ptr=strtok(NULL,",");
      }
      customer_idx++;
   }
   fclose(c_fp); 
}
// 메뉴 정보 파일에서 입력 받기 
void input_menu()
 {
   FILE* fp = fopen("C:\\project\\Menu.txt", "r");
   char line[150];
   char* ptr;
   int word_cnt;

   //메뉴 정보 입력 
   while(fscanf(fp, "%s", line)>0)
   {
      word_cnt = 0;
      ptr = strtok(line,","); //","단위로 잘라내는 strtok 함수 
      while(ptr!=NULL)
      {
         word_cnt++;
         switch(word_cnt)
         {
         case 1: //char drink
            strcpy(menu_info[menu_idx].drink, ptr);
            break;
         case 2: //char price
            strcpy(menu_info[menu_idx].price, ptr);
            break;
         }
         ptr=strtok(NULL,",");
      }
      menu_idx++;
   }
   fclose(fp); 
}
//번호표 정보 파일에서 입력받기 
void input_ticket_number()
 {
   FILE* fp = fopen("C:\\project\\Ticket_number.txt", "r");
   char line[150];
   char* ptr;
   int word_cnt;
//   int count=0; //번호표 부여  (x)

   //정보 입력 
   while(fscanf(fp, "%s", line)>0)
   {
      word_cnt = 0;
      ptr = strtok(line,","); //","단위로 잘라내는 strtok 함수 
      while(ptr!=NULL)
      {
         word_cnt++;          
         switch(word_cnt)
         {
         case 1: //char number
            strcpy(ticket_number_info[ticket_number_idx].number, ptr);
            break;
         case 2: //char name
            strcpy(ticket_number_info[ticket_number_idx].name, ptr);
            break;
         case 3: //char drink
            strcpy(ticket_number_info[ticket_number_idx].drink, ptr);
            break;
         case 4: //char price
            strcpy(ticket_number_info[ticket_number_idx].price, ptr);
            break;
        }
         ptr=strtok(NULL,",");
      }
      ticket_number_idx++;
   }
   fclose(fp); 
}




//1. 신규 메뉴 추가
void new_add_menu()
{
   FILE* fp = fopen("C:\\project\\Menu.txt", "a");
   
   system("cls");
    printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
    printf("┃                          ┃\n");
   printf("┃      신규 메뉴 추가      ┃\n");
   printf("┃                          ┃\n");
   printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");   

   printf("\n"); 
   printf("메뉴 이름: ");
   scanf("%s", &menu_info[menu_idx].drink);
   printf("가격: ");
   scanf("%s", &menu_info[menu_idx].price);
   printf("신규 메뉴 추가 완료");



   fprintf(fp, "%s,%s\n", menu_info[menu_idx].drink, menu_info[menu_idx].price);
   menu_idx++;
   fclose(fp);
}

//2. 신규 고객 정보 추가 
void new_add_customer()
{
   FILE* c_fp = fopen("C:\\project\\Customer.txt", "a");
   
   system("cls");
    printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
    printf("┃                          ┃\n");
   printf("┃      신규 고객 추가      ┃\n");
   printf("┃                          ┃\n");
   printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");   



   printf("\n");
   printf("고객 이름: ");
   scanf("%s", &customer_info[customer_idx].name);
   printf("고객 전화번호: ");
   scanf("%s", &customer_info[customer_idx].phone);
   printf("신규 고객 추가 완료");
   
   fprintf(c_fp, "\n%s,%s\n", customer_info[customer_idx].name, customer_info[customer_idx].phone);
   customer_idx++;
   fclose(c_fp);
}


//3. 신규 번호표 추가 
void new_add_ticker_number()
{
   FILE* fp = fopen("C:\\project\\Ticket_number.txt", "a");
   system("cls");
    printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
    printf("┃                          ┃\n");
   printf("┃     신규 번호표  추가    ┃\n");
   printf("┃                          ┃\n");
   printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");   

   
   printf("\n");
   printf("번호: ");
   scanf("%s", &ticket_number_info[menu_idx].number);
   printf("이름: ");
   scanf("%s", &ticket_number_info[menu_idx].name);
   printf("음료: ");
   scanf("%s", &ticket_number_info[menu_idx].drink);
   printf("가격: ");
   scanf("%s", &ticket_number_info[menu_idx].price);

   fprintf(fp, "%s,%s,%s,%s\n", ticket_number_info[menu_idx].number, ticket_number_info[menu_idx].name, ticket_number_info[menu_idx].drink,ticket_number_info[menu_idx].price);
   ticket_number_idx++;
   fclose(fp);
}

//4. 메뉴 종류로 검색하기 
int search_menu()
{
   int i;
   char drink[30]; //여기에 입력할 이름 

   system("cls");
    printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
    printf("┃                          ┃\n");
   printf("┃        메뉴 검색         ┃\n");
   printf("┃                          ┃\n");
   printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");   

   printf("\n음료 이름: ");
   scanf("%s", &drink);
   for(i=0; i<=menu_idx; i++) //menu 유요한 배열만큼 돌립니다. 
   {
      if(strcmp(drink, menu_info[i].drink)==0)
      { //strcmp함수 사용 -> 입력한 drink과 구조체 배열의 메뉴가 일치하면 0을 반환. 
            printf("음료: %s \n가격: %s\n", menu_info[i].drink, menu_info[i].price);
            return i;
      }
      
      else if(strcmp(drink, menu_info[i].drink)!=0 && i==menu_idx)
      {
            printf("============================\n");
             printf("찾으시는 정보가 없습니다.\n");
             printf("============================\n");
             return i;
      }
      
      else
      continue;
   }
}

//5. 이름으로 고객 정보 검색 
int search_customer()
{
   int i;
   char name[30];
   
      system("cls");
    printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
    printf("┃                          ┃\n");
   printf("┃        고객 검색         ┃\n");
   printf("┃                          ┃\n");
   printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");   
   
   printf("\n이름: ");
   scanf("%s", &name);
   for(i=0; i<=customer_idx; i++) 
   {
      if(strcmp(name, customer_info[i].name)==0)
     {  //고객의 유무에 따라 반환하기 위한 형태
         printf("고객 이름: %s \n고객 전화번호: %s\n", customer_info[i].name, customer_info[i].phone);   
         return i;
       }
       
       else if(strcmp(name ,customer_info[i].name)!=0 && i==customer_idx)
       {
          printf("============================\n");
          printf("찾으시는 정보가 없습니다.\n");
          printf("============================\n");
      return i;   
     }
     
     else continue;
   }
}

//6. 번호표 조회 
int search_ticket_number()
{
   int i;
   char number[30];
   
      system("cls");
    printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
    printf("┃                          ┃\n");
   printf("┃       번호표 검색        ┃\n");
   printf("┃                          ┃\n");
   printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");   

   
   printf("\n번호표: ");
   scanf("%s", &number);
   for(i=0; i<ticket_number_idx; i++) 
   {
      if(strcmp(number, ticket_number_info[i].number)==0)
     {  //고객의 유무에 따라 반환하기 위한 형태
      printf("번호: %s \n이름: %s \n음료: %s \n가격: %s \n", ticket_number_info[i].number, ticket_number_info[i].name,ticket_number_info[i].drink,ticket_number_info[i].price);
         return i;
        }
   }
   return -1;
}

//7. 고객 정보 수정 
 void edit_customer()
{
   int i, j, k;
   char name[20];
   char info[20];
   
      system("cls");
    printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
    printf("┃                           ┃\n");
   printf("┃      고객 정보 수정       ┃\n");
   printf("┃                           ┃\n");
   printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");   


   
   printf("\n이름을 입력해주세요: "); 
   scanf("%s", name);
   printf("\n");

   for(i=0; i<customer_idx; i++)
   {
      if(strcmp(name, customer_info[i].name)==0)
      { 
         printf("이름: %s\n전화번호: %s\n", customer_info[i].name, customer_info[i].phone);
         printf("\n");
         printf("1.이름 2.전화번호\n");
         printf("번호를 선택하세요: ");
         scanf("%d", &j);
         if(j==1)
         {
            printf("수정할 이름: ");
            scanf("%s", customer_info[i].name); 
         } 
         else if(j==2)
         {
            printf("수정할 전화번호: ");
            scanf("%s", customer_info[i].name); 
         } 
         printf("\n");
      }
   }
}

//8. 메뉴 정보 수정 
 void edit_menu()
{
   int i, j, k;
   char drink[20];
   char info[20];
   
      system("cls");
    printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
    printf("┃                          ┃\n");
   printf("┃        메뉴 수정         ┃\n");
   printf("┃                          ┃\n");
   printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");   

   
   printf("\n메뉴를 입력해주세요: "); 
   scanf("%s", drink);
   printf("\n");

   for(i=0; i<menu_idx; i++)
   {
      if(strcmp(drink, menu_info[i].drink)==0)
      {
         printf("음료: %s\n가격: %s\n", menu_info[i].drink, menu_info[i].price);
         printf("\n");
         printf("1.음료 2.가격\n");
         printf("번호를 선택하세요: ");
         scanf("%d", &j);
         if(j==1)
         {
            printf("수정할 음료: ");
            scanf("%s", menu_info[i].drink); 
         } 
         else if(j==2)
         {
            printf("수정할 가격: ");
            scanf("%s", menu_info[i].price); 
         } 
         printf("\n");
      }
   }
}

//9. 기존 고객 삭제 
void del_customer()
 {   
   FILE* fp = fopen("C:\\project\\Customer.txt", "r+");

    int i=0;
   char name[30];
   
      system("cls");
    printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
    printf("┃                          ┃\n");
   printf("┃        고객 삭제         ┃\n");
   printf("┃                          ┃\n");
   printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");   

   
   printf("\n이름: ");
   scanf("%s", &name);   

    //입력된 이름으로 고객 정보 삭제 
    for(i=0; i<customer_idx; i++)
    {
        //삭제할 고객 정보 출력
        if(strcmp(name, customer_info[i].name)==0)
        {
           printf("\n삭제할 고객 이름\n이름: %s\n전화번호: %s\n",customer_info[i].name, customer_info[i].phone);
           //고객 정보 삭제 
           memset(&customer_info[i], 0x00, sizeof(CUSTOMER));
         fprintf(fp, "%s %s\n", customer_info[i].name, customer_info[i].phone);
         fclose(fp);
        }
    }
}

//10. 기존 메뉴 삭제 
void del_menu()
 {   
   FILE* fp = fopen("C:\\project\\Menu.txt", "r+");

    int i=0;
   char drink[30];
   
      system("cls");
    printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
    printf("┃                          ┃\n");
   printf("┃        메뉴 삭제         ┃\n");
   printf("┃                          ┃\n");
   printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");   

   
   printf("\n메뉴 이름: ");
   scanf("%s", &drink);   

    //입력된 메뉴로 음료 정보 삭제 
    for(i=0; i<menu_idx; i++)
    {
        //삭제할 음료 정보 출력
        if(strcmp(drink, menu_info[i].drink)==0)
        {
           printf("\n삭제할 메뉴\n음료: %s\n가격: %s\n",menu_info[i].drink, menu_info[i].price);
           //음료 정보 삭제 
           memset(&menu_info[i], 0x00, sizeof(MENU));
         fprintf(fp, "%s %s\n", menu_info[i].drink, menu_info[i].price);
         fclose(fp);
        }
    }
}

//11. 메뉴 전체보기
void view_menu()
{
   int i;
   
      system("cls");
    printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
    printf("┃                            ┃\n");
   printf("┃        메뉴 전체보기       ┃\n");
   printf("┃                            ┃\n");
   printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");   

   
   printf("\n          Menu                    Price \n");
   printf("------------------------------------------------\n");
   for(i=0; i<menu_idx; i++) //유효한 배열 불러오기 
   {
      printf("%15s%20s\n",menu_info[i].drink,menu_info[i].price);
   }
}

//12. 고객 전체보기  
void view_customer()
{
   int i;
   
         system("cls");
    printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
    printf("┃                            ┃\n");
   printf("┃        고객 전체보기       ┃\n");
   printf("┃                            ┃\n");
   printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");   
   
   printf("\n          Name           Phone       \n");
   printf("---------------------------------------\n");
   for(i=0; i<customer_idx; i++)
   {
      printf("%15s%20s\n", customer_info[i].name, customer_info[i].phone);
   }
}

//13. 번호표 전체보기  
void view_ticket_number()
{
   int i;
   
         system("cls");
    printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
    printf("┃                              ┃\n");
   printf("┃        번호표 전체보기       ┃\n");
   printf("┃                              ┃\n");
   printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");   
   printf("\n          번호           이름           음료           가격\n");
   printf("-------------------------------------------------------------\n");
   for(i=0; i<ticket_number_idx; i++)
   {
      printf("%12s%15s%18s%15s\n", ticket_number_info[i].number, ticket_number_info[i].name,ticket_number_info[i].drink,ticket_number_info[i].price);
   }
}


//14. 메뉴 종류, 고객 종류 검색하기 
int cross_search()
{
   int i,j;
   char drink[30]; //여기에 입력할 이름 
   char name[30];

   system("cls");
    printf("┏━━━━━━━━━━━━━━━━━━━━━━━━━━┓\n");
    printf("┃                          ┃\n");
   printf("┃        교차 검색         ┃\n");
   printf("┃                          ┃\n");
   printf("┗━━━━━━━━━━━━━━━━━━━━━━━━━━┛\n");   

   printf("\n메뉴 이름: ");
   scanf("%s", &drink);
   for(i=0; i<menu_idx++; i++) //menu 유요한 배열만큼 돌립니다. 
   {
      if(strcmp(drink, menu_info[i].drink)==0){ //strcmp함수 사용 -> 입력한 drink과 구조체 배열의 메뉴가 일치하면 0을 반환. 
            printf("음료: %s \n가격: %s\n", menu_info[i].drink, menu_info[i].price); 
            break;
      }
       else{
          printf("============================\n");
          printf("  찾으시는 정보가 없습니다. \n");
          printf("============================\n");
          break; 
     }
 }
   
   printf("\n고객 이름: ");
   scanf("%s", &name);
   for(j=0; j<customer_idx; j++) 
   {
      if(strcmp(name, customer_info[j].name)==0){  //고객의 유무에 따라 반환하기 위한 형태
      printf("고객 이름: %s \n고객 전화번호: %s\n", customer_info[j].name, customer_info[j].phone);   
    
  }
          else{
          printf("============================\n");
          printf("  찾으시는 정보가 없습니다. \n");
          printf("============================\n");
      return j;   
     }
     return -1;
   }
}

// 15번 
int Que()
{
    QUEUE* Q;
    int item, val;
    system("cls");
    while(1)
    {
    	printf("\n\n\n     ┏━━━━━━━━━━━━━━━━━━━━┓\n");
    	printf("     ┃                    ┃    \n"); 
        printf("     ┃    *** MeNu ***    ┃\n");
        printf("     ┃   1) 번호표 생성   ┃\n");
        printf("     ┃   2) 번호표 입력   ┃\n");
        printf("     ┃   3) 번호표 삭제   ┃\n");
        printf("     ┃   4) 대기열        ┃\n");
        printf("     ┃   5) Exit          ┃\n");
        printf("     ┃                    ┃\n"); 
        printf("     ┃                    ┃    \n"); 
        printf("     ┗━━━━━━━━━━━━━━━━━━━━┛\n");
        printf("     SELECT : ");
        scanf("%d", &val);
        switch(val)
        {
        case 1 : Q = Create_queue(); break;
        case 2 :  Enqueue(Q); break;
        case 3 :  item = Dequeue(Q);
                  printf("\t 맨 앞 번호표가 삭제되었습니다.\n \t삭제된 번호표 = %d\n", item);
                  break;
        case 4 : Print(Q); break;
        case 5 : exit(1);
        }
    }
}

/* 큐를 초기화 하는 함수(front와 rear를 생성한다.) */
QUEUE* Create_queue()
{
	system("cls");
    QUEUE* Q;
    Q = (QUEUE*)malloc(sizeof(QUEUE));
    Q->front = NULL;
    Q->rear = NULL;
    return Q;
}

/* 큐에서 데이터를 입력하는 함수 */
void Enqueue(QUEUE* pQ)
{
	system("cls");
    LIST* newNode, *temp;
    int val;
    printf("\t 번호표를 입력해 주세요. : ");
    scanf("%d", &val);

    newNode = (LIST*)malloc(sizeof(LIST));
    newNode->data = val;
    newNode->link = NULL;

    if(pQ->rear == NULL)
    {
        pQ->rear = newNode;
        pQ->front = newNode;
    }
    else
    {
        temp = pQ->rear;
        while(temp->link != NULL)
            temp = temp->link;
        temp->link = newNode;
    }
}

/* 큐에서 데이터를 삭제하는 함수 */
int Dequeue(QUEUE* pQ)
{
	system("cls");
    LIST* temp;
    int item;
   
    if(pQ->front == NULL)
    {
        printf("\n\t 현재 대기열이 없습니다.\n");
        exit(1);
    }
    else
    {
        temp = pQ->front;//삭제할 데이터
        item = temp->data;
        pQ->front = pQ->front->link;//front를 앞으로 증가시킴
        if(pQ->front == NULL)//삭제할 노드가 한개일 경우
        {
            pQ->rear = NULL;
        }
        free(temp);
    }
    return item;
}

/* 큐에 있는 데이터를 출력하는 함수 */
void Print(QUEUE* pQ)
{
	system("cls");
    LIST* temp;
    temp = pQ->front;
    printf("\n\t*** 대기열 ***\n\t");
    while(temp != NULL)
    {
        printf("%d번 ", temp->data);
        temp = temp->link;
    }
    printf("\n");
}



//16. 프로그램 종료
void end()
{
   printf("\n프로그램을 종료합니다\n");
   exit(1);
}
반응형
반응형
#include <iostream>  	//선언부 컴파일에 접근을해서 선언파트에 있는 걸 처리해서 사용 
using namespace std;    //std라는 소속을 알려줄 필요가 다음부터 없는것 등록을 했을경우 ex( std::cout 

void swap();			//함수 선언문	 

int main()				// 몸체부, 메인 함수 // int 를 쓰는이유는 비정상적인 오류를 제외 시키는것
					//void를 써도 상관없지만 오류가 날수도있고 계속 컴퓨터가 값을 기다린다
{
	int arr[5];				//배열 arr[]를 메모리값의 크기가 5인 배열 선언 
	int temp = 0;			// temp라는 변수가 가르키는 주소 값에 메모리안에 0을 선언 0으로 초기화 

	cout << "=====input=====" <<endl; 								//출력문 
	for(int i=0; i<5; i++){								//조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식으로 0~4까지 1++
		cout << i+1 << "번째 숫자 : "; 					//i는 0부터니까 i+1부터 시작 출력문 
		cin >> arr[i];									//0부터 4까지 arr[i]에 값 입력 
	}	
	cout << "============data============" <<endl; 				//출력문 
	cout << "현재 들어간 숫자 : ";								//출력문	 
	for(int i=0; i<5; i++){								//조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식으로 0~4까지 1++ 
		cout << arr[i] << " "; 							//arr[] 배열값에 뭐가 들어가있는지 출력 
	}
	cout << endl;				//줄 바꿈 
	
	cout << "============swap============" << endl;			//출력문, 줄바꿈 
		for(int j=0; j<2; j++){		//0~1까지 1씩 증가//조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식
				for(int i=j; i<4-j; i++){		//j부터 4-j까지 1씩 증가 //조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식
					if(arr[i] > arr[i+1]){		//arr[i]가 a[i+1]보다 클때 실행
					swap(arr[i], arr[i+1]);				//swap 함수사용 
					}
					cout << j+1 << "-"<<i+1<< "번째 정렬 : ";			// for문이 2개이기때문에  j+1 - i+1 로 출력문을 써준다 
						for(int q=0; q<5; q++){					//조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식으로0~5 1++ 
						cout << arr[q] << " "; 					//arr[q] 출력 
				}
								cout <<endl;				//줄바꿈 
			}
			cout << endl;
				for(int c=3; c>=j+1; c--){			//조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식으로 3부터 j+1까지 1-- 
					if(arr[c] < arr[c-1]){				//arr[c] 가 arr[c-1] 이라면 조건문 실행 
					swap(arr[c], arr[c-1]);				// arr[c]와 arr[c-1]을 swap 함수로 값을 보냄 
				}
				cout << j+1 <<"-" << c+1<< "번째 정렬 : ";		//for문이 2개이기 때문에 j+1 - c+1로 값을 설정 (출력문) 
						for(int z=0; z<5; z++){				//조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식으로 0~5까지 1++ 
						cout << arr[z] << " "; 				//arr[] 배열값 출력 
			}
						cout << endl;				//줄 바꿈 
		}
		cout << endl;
					
	}
}
void swap(int x, int y){		//함수 선언문 
	int temp;				// temp 변수 선언 
	
	temp = x;			//temp, x 값 교환		 
	x = y;				//x, y 값 교환 
	y = temp;			//y, temp 값 교환 
}
반응형
반응형
#include <iostream>  	//선언부 컴파일에 접근을해서 선언파트에 있는 걸 처리해서 사용 
using namespace std;    //std라는 소속을 알려줄 필요가 다음부터 없는것 등록을 했을경우 ex( std::cout 

void swap();			//함수 선언문	 

int main()				// 몸체부, 메인 함수 // int 를 쓰는이유는 비정상적인 오류를 제외 시키는것
					//void를 써도 상관없지만 오류가 날수도있고 계속 컴퓨터가 값을 기다린다
{
	int arr[5];				//배열 arr[]를 메모리값의 크기가 5인 배열 선언 
	int temp = 0;			// temp라는 변수가 가르키는 주소 값에 메모리안에 0을 선언 0으로 초기화 

	cout << "=====input=====" <<endl; 								//출력문 
	for(int i=0; i<5; i++){								//조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식으로 0~4까지 1++
		cout << i+1 << "번째 숫자 : "; 					//i는 0부터니까 i+1부터 시작 출력문 
		cin >> arr[i];									//0부터 4까지 arr[i]에 값 입력 
	}	
	cout << "============data============" <<endl; 				//출력문 
	cout << "현재 들어간 숫자 : ";								//출력문	 
	for(int i=0; i<5; i++){								//조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식으로 0~4까지 1++ 
		cout << arr[i] << " "; 							//arr[] 배열값에 뭐가 들어가있는지 출력 
	}
	cout << endl;				//줄 바꿈 
	
	cout << "============swap============" << endl;			//출력문, 줄바꿈 
		for(int j=0; j<5; j++){		//0~4까지 1씩 증가//조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식
				for(int i=j; i>=1; i--){		//0~2까지 1씩 증가 //조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식
					if(arr[i] > arr[i-1]){		//arr[i]가 a[i+1]보다 클때 실행
					swap(arr[i], arr[i-1]);				//swap 함수사용 
					}
					cout << "정렬 : ";			// for문이 2개이기때문에  j+1 - i+1 로 출력문을 써준다 
						for(int q=0; q<5; q++){					//조건식이 트루일때만 실행 그리고 문장을 갔다가 증감식을가고 다시 조건식으로0~5 1++ 
						cout << arr[q] << " "; 					//arr[q] 출력 
				}
								cout <<endl;				//줄바꿈 
			}
	}
}

void swap(int x, int y){		//함수 선언문 
	int temp;				// temp 변수 선언 
	
	temp = x;			//temp, x 값 교환		 
	x = y;				//x, y 값 교환 
	y = temp;			//y, temp 값 교환 
}
반응형