no image
c++ 다중상속
#include using namespace std; class BASE1{//기본 클래스 Value1, Value2 멤버 변수와 Set(), B_Print() 멤버 함수를 지님 //디폴트 생성자도 자동생성 int Value1, Value2;//전역변수로 Value1, Value2 선언 public://어디서든지 사용가능 void Set(int a, int b) {//Set int 인자를 2개 받는 생성자 Value1 = a; //Value1이라는 변수가 가르키는 주소 값에 메모리안에 a을 선언 a로 초기화 // 받은 인자값을 Value1에 선언 Value2 = b; //Value2라는 변수가 가르키는 주소 값에 메모리안에 b을 선언 b로 초기화 // 받은 인자값을 Value2에 선언 } void B_P..
2023.01.10
C++
no image
c++ 다중상속 계산기
#include //C++을 구동하기 위한 헤더 파일 선언 using namespace std;//std::의 접두어를 생략한다. class BASE1{//기본 클래스 Value1, Value2 멤버 변수와 Set(), B_Print() 멤버 함수를 지님 //디폴트 생성자도 자동생성 int Value1, Value2, sum;//전역변수로 Value1, Value2 선언 public://어디서든지 사용가능 void sum_Set(int a, int b) {//Set int 인자를 2개 받는 생성자 Value1 = a; //Value1이라는 변수가 가르키는 주소 값에 메모리안에 a을 선언 a로 초기화 // 받은 인자값을 Value1에 선언 Value2 = b; //Value2라는 변수가 가르키는 주소 값에..
2023.01.10
C++
no image
c++ 구조체 사용
#include #include #include struct Student { char name[10]; int num; char majer[10]; }; int main(void) { struct Student lee; strcpy(lee.name,"이재은"); lee.num=1971070; strcpy(lee.majer,"IT융합학부"); printf("이름: %s\n학번: %d\n전공:%s\n",lee.name,lee.num,lee.majer); }
2023.01.10
C++
no image
c++ swap(값 교환)
#include using namespace std; void swap(int &a, int &b){ int temp; temp = a; a = b; b = temp; } int main(){ int i = 10; int j = 20; cout
2023.01.07
C++
no image
c++ if문 짝수 홀수
#include using namespace std; int main(){ int integer; cout > integer; if(integer % 2 != 0) cout
2023.01.07
C++
no image
c++ 카페 관리 프로그램
#include #include #include #include #include //메뉴 정보 구조체 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; //함수 void new_add_menu(); //메뉴 추가 void new_add_customer(); //고객 추가 void new_..
2023.01.07
C++
no image
c++ Date 실습(수업 중 실습)
#include //선언부 컴파일에 접근을해서 선언파트에 있는 걸 처리해서 사용 using namespace std; //std라는 소속을 알려줄 필요가 다음부터 없는것 등록을 했을경우 ex( std::cout class Date{//Date라는 객체(클래스) 선언 private://자기 자신만 사용 가능 int year, month, day;//전역변수로 year, month, day 선언 public ://어디서든 사용 가능 Date();//Date 의 디폴트 생성자 Date(int y, int m, int d);//Date int 인자를 3개 받는 생성자 Date(int m, int d);//Date int 인자를 2개 받는 생성자 Date(int d);//Date int 인자를 1개 받는 생성자 ..
2023.01.07
C++
no image
c++ 3명의 3개의 과목 평균
#include void Sum(int x, int y, int z); int main(void) { int a, b, c, i,j ; char name[100] ; for(i=0; i
2023.01.07
C++

c++ 다중상속

Dev_Jen
|2023. 1. 10. 23:15
반응형
#include <iostream>
using namespace std;

class BASE1{					//기본 클래스 Value1, Value2 멤버 변수와 Set(), B_Print() 멤버 함수를 지님 //디폴트 생성자도 자동생성 
	int Value1, Value2;			//전역변수로 Value1, Value2 선언 
	public:							//어디서든지 사용가능 
		void Set(int a, int b) {	//Set int 인자를 2개 받는 생성자 
		Value1 = a; 				//Value1이라는 변수가 가르키는 주소 값에 메모리안에 a을 선언 a로 초기화 // 받은 인자값을 Value1에 선언 
		Value2 = b; 				//Value2라는 변수가 가르키는 주소 값에 메모리안에 b을 선언 b로 초기화 // 받은 인자값을 Value2에 선언
		}
		void B_Print(){				//출력문 생성자 
			cout << "BASE1 class";
			cout << "\nV1 = " << Value1						//value1값 출력문 
				<< ", V2 = " << Value2 << endl << endl;				//value2값 출력문 
		}
};

class BASE2{						//기본 클래스 Value3, Value4 멤버 변수와 BB_Set(), BB_Print() 멤버 함수를 지님 //디폴트 생성자도 자동생성 
	int Value3, Value4;				//전역변수로 Value3, Value4 선언 
	public:							//어디서든지 사용가능 
		void BB_Set(int a, int b){		//Set int 인자를 2개 받는 생성자 
			Value3 = a;					//Value3이라는 변수가 가르키는 주소 값에 메모리안에 a을 선언 a로 초기화 // 받은 인자값을 Value3에 선언 
			Value4 = b;					//Value4라는 변수가 가르키는 주소 값에 메모리안에 a을 선언 a로 초기화 // 받은 인자값을 Value4에 선언
		}
		void BB_Print(){				//출력문 생성자 
			cout << "BASE2 class" << endl;
			cout << "V3 = " << Value3;		//Value3 값 출력문 
			cout << ", V4 = " << Value4 << endl << endl;		//Value4 값 출력문
		}
}; 

class DERIVED : public BASE1, public BASE2{		// 기본 클래스로부터 파생된 클래스 data 멤버 변수로 D_Print(), BB_Print() 멤버 함수 지님 // 자식클래스 다중상속 
	int data;						//전역변수로 data 선언 
	public:							//어디서든지 사용가능 
		DERIVED(int x ) {			//인자를 1개 받는 생성자 
		data = x;					//data라는 변수가 가르키는 주소 값에 메모리안에 x를 선언 x로 초기화 // 받은 인자값을 data에 선언
		}
		void D_Print() {			//출력문 생성자 
		cout << "data = " << data << endl;		//년 출력문 
	}
};

int main(){					// 몸체부, 메인 함수 // int 를 쓰는이유는 비정상적인 오류를 제외 시키는것
							//void를 써도 상관없지만 오류가 날수도있고 계속 컴퓨터가 값을 기다린다
	
	DERIVED Obj(2022);		//파생 클래스의 객체 생성 DERIVED Obj에 2022인자값 보내기 
	 
	Obj.Set(10, 20);		// 기본 클래스에 접근 (10, 18)인자값 보내기 
	Obj.B_Print();			// 기본 클래스의 멤버에 접근 Obj.B_Print 사용 
	Obj.BB_Set(30, 40);		// 기본 클래스에 접근 (30, 40)인자값 보내기 
	Obj.BB_Print();			// 파생 클래스의 멤버에 접근 Obj.BB_Print 사용 
	Obj.D_Print();			// 파생 클래스의 멤버에 접근 Obj.D_Print 사용 
	
	return 0;				//리턴값 0 
}
반응형

'C++' 카테고리의 다른 글

c++ 데이터 각도 변환  (2) 2023.01.10
c++ 단리, 복리 코드  (0) 2023.01.10
c++ 다중상속 계산기  (0) 2023.01.10
c++ 구조체 사용  (0) 2023.01.10
c++ swap(값 교환)  (0) 2023.01.07

c++ 다중상속 계산기

Dev_Jen
|2023. 1. 10. 23:14
반응형
#include <iostream>				//C++을 구동하기 위한 헤더 파일 선언
using namespace std;			//std::의 접두어를 생략한다.

class BASE1{							//기본 클래스 Value1, Value2 멤버 변수와 Set(), B_Print() 멤버 함수를 지님 //디폴트 생성자도 자동생성 
	int Value1, Value2, sum;			//전역변수로 Value1, Value2 선언 
	public:								//어디서든지 사용가능 
		void sum_Set(int a, int b) {	//Set int 인자를 2개 받는 생성자 
		Value1 = a; 					//Value1이라는 변수가 가르키는 주소 값에 메모리안에 a을 선언 a로 초기화 // 받은 인자값을 Value1에 선언 
		Value2 = b; 					//Value2라는 변수가 가르키는 주소 값에 메모리안에 b을 선언 b로 초기화 // 받은 인자값을 Value2에 선언
		}
		void sum_Print(){							//출력문 생성자 
			sum = Value1 + Value2;											// sum = Value1 + Value2
			cout << "들어간 값 : " << Value1 <<", "<< Value2 << "   ";		//Valeu1, Valeu2값 출력문
			cout << "Valeu1 + Value2 = " << sum << endl;					//Valeu1, Valeu2값 출력문
		}
};

class BASE2{							//기본 클래스 Value3, Value4 멤버 변수와 BB_Set(), BB_Print() 멤버 함수를 지님 //디폴트 생성자도 자동생성 
	int Value3, Value4, sub;				//전역변수로 Value3, Value4 선언 
	public:								//어디서든지 사용가능 
		void sub_Set(int a, int b){		//Set int 인자를 2개 받는 생성자 
			Value3 = a;					//Value3이라는 변수가 가르키는 주소 값에 메모리안에 a을 선언 a로 초기화 // 받은 인자값을 Value3에 선언 
			Value4 = b;					//Value4라는 변수가 가르키는 주소 값에 메모리안에 a을 선언 a로 초기화 // 받은 인자값을 Value4에 선언
		}
		void sub_Print(){				//출력문 생성자 
			sub = Value3 - Value4;										// sub = Value3 + Value4
			cout << "들어간 값 : " << Value3 <<", "<< Value4 << "   ";	//Valeu3, Valeu4값 출력문
			cout << "Valeu3 + Value4 = " << sub<< endl;					//Valeu3, Valeu4값 출력문
		}
}; 

class BASE3{							//기본 클래스 Value3, Value4 멤버 변수와 BB_Set(), BB_Print() 멤버 함수를 지님 //디폴트 생성자도 자동생성 
	int Value5, Value6, mul;			//전역변수로 Value3, Value4 선언 
	public:								//어디서든지 사용가능 
		void mul_Set(int a, int b){		//Set int 인자를 2개 받는 생성자 
			Value5 = a;					//Value3이라는 변수가 가르키는 주소 값에 메모리안에 a을 선언 a로 초기화 // 받은 인자값을 Value3에 선언 
			Value6 = b;					//Value4라는 변수가 가르키는 주소 값에 메모리안에 a을 선언 a로 초기화 // 받은 인자값을 Value4에 선언
		}
		void mul_Print(){				//출력문 생성자 
			mul = Value5 * Value6;										// mul = Value5 + Value6
			cout << "들어간 값 : " << Value5 <<", "<< Value6 << "   ";	//Valeu5, Valeu6값 출력문
			cout << "Valeu5 x Value6 = " << mul<< endl;					//Valeu5, Valeu6값 출력문
		}
}; 

class BASE4{								//기본 클래스 Value3, Value4 멤버 변수와 BB_Set(), BB_Print() 멤버 함수를 지님 //디폴트 생성자도 자동생성 
	double Value7, Value8, div, div2;		//전역변수로 Value3, Value4 선언 
	public:									//어디서든지 사용가능 
		void div_Set(double a, double b){		//Set int 인자를 2개 받는 생성자 
			Value7 = a;							//Value3이라는 변수가 가르키는 주소 값에 메모리안에 a을 선언 a로 초기화 // 받은 인자값을 Value3에 선언 
			Value8 = b;							//Value4라는 변수가 가르키는 주소 값에 메모리안에 a을 선언 a로 초기화 // 받은 인자값을 Value4에 선언
		}
		void div_Print(){						//출력문 생성자 
			div = Value7 / Value8;										// div = Value7 + Value8
			cout << "들어간 값 : " << Value7 <<", "<< Value8 << "   ";	//Valeu7, Valeu8값 출력문
			cout << "Value7 / Vlaue8 = " << div2<< endl;				//Valeu7, Valeu8값 출력문
		}
}; 

class DERIVED : public BASE1, public BASE2, public BASE3, public BASE4{		// 기본 클래스로부터 파생된 클래스 data 멤버 변수로 D_Print(), BB_Print() 멤버 함수 지님 // 자식클래스 다중상속 
};

int main(){					// 몸체부, 메인 함수 // int 를 쓰는이유는 비정상적인 오류를 제외 시키는것
							//void를 써도 상관없지만 오류가 날수도있고 계속 컴퓨터가 값을 기다린다
	
	DERIVED Obj;		//파생 클래스의 객체 생성 DERIVED Obj에 2022인자값 보내기 
	
	Obj.sum_Set(10,20);		// 기본 클래스에 접근 (10, 20)인자값 보내기 
	Obj.sub_Set(30,20);		// 기본 클래스에 접근 (30, 20)인자값 보내기 
	Obj.mul_Set(10,20);		// 기본 클래스에 접근 (10, 20)인자값 보내기 
	Obj.div_Set(40,20);		// 기본 클래스에 접근 (40, 20)인자값 보내기 
	
	Obj.sum_Print();		// 파생 클래스의 멤버에 접근 Obj.sum_Print 사용 
	Obj.sub_Print();		// 파생 클래스의 멤버에 접근 Obj.sub_Print 사용
	Obj.mul_Print();		// 파생 클래스의 멤버에 접근 Obj.mul_Print 사용
	Obj.div_Print();		// 파생 클래스의 멤버에 접근 Obj.div_Print 사용
	
	return 0;				//리턴값 0 
}
반응형

'C++' 카테고리의 다른 글

c++ 단리, 복리 코드  (0) 2023.01.10
c++ 다중상속  (0) 2023.01.10
c++ 구조체 사용  (0) 2023.01.10
c++ swap(값 교환)  (0) 2023.01.07
c++ if문 짝수 홀수  (0) 2023.01.07

c++ 구조체 사용

Dev_Jen
|2023. 1. 10. 23:10
반응형
#include <stdio.h>
#include <String.h>
#include <math.h>
struct Student
{
	char name[10];
	int num;
	char majer[10];
};


int main(void)
{
	struct Student lee;
	strcpy(lee.name,"이재은");
	lee.num=1971070;
	strcpy(lee.majer,"IT융합학부");
	
	printf("이름: %s\n학번: %d\n전공:%s\n",lee.name,lee.num,lee.majer); 
}
반응형

'C++' 카테고리의 다른 글

c++ 다중상속  (0) 2023.01.10
c++ 다중상속 계산기  (0) 2023.01.10
c++ swap(값 교환)  (0) 2023.01.07
c++ if문 짝수 홀수  (0) 2023.01.07
c++ 카페 관리 프로그램  (0) 2023.01.07

c++ swap(값 교환)

Dev_Jen
|2023. 1. 7. 00:37
반응형
#include <iostream>

using namespace std;

void swap(int &a, int &b){
	
	int temp;
	
	temp = a;
	a = b;
	b = temp;
	
}

int main(){
	
	int i = 10;
	int j = 20;
	
	cout << i << " " << j << endl;
	swap(i,j);
	cout << i << " " << j << endl;
	
}
반응형

'C++' 카테고리의 다른 글

c++ 다중상속 계산기  (0) 2023.01.10
c++ 구조체 사용  (0) 2023.01.10
c++ if문 짝수 홀수  (0) 2023.01.07
c++ 카페 관리 프로그램  (0) 2023.01.07
c++ Date 실습(수업 중 실습)  (0) 2023.01.07

c++ if문 짝수 홀수

Dev_Jen
|2023. 1. 7. 00:36
반응형
#include <iostream>
using namespace std;

int main(){
	
	int integer;
	
	cout << "값 입력 : ";
	cin >> integer;
	
	
	if(integer % 2 != 0)
		cout << "==>" << integer <<" 은(는) 홀수 입니다.";
	
	if(integer %2==0)
		cout << "==>" << integer <<" 은(는) 짝수 입니다.";
	
	return 0;
	
}
반응형

'C++' 카테고리의 다른 글

c++ 구조체 사용  (0) 2023.01.10
c++ swap(값 교환)  (0) 2023.01.07
c++ 카페 관리 프로그램  (0) 2023.01.07
c++ Date 실습(수업 중 실습)  (0) 2023.01.07
c++ 3명의 3개의 과목 평균  (0) 2023.01.07

c++ 카페 관리 프로그램

Dev_Jen
|2023. 1. 7. 00:35
반응형
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <conio.h>
#include <windows.h>

//메뉴 정보 구조체
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;


//함수
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 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!=12)
   {
      system("cls"); //화면지우기
      printf("============================\n");
      printf("|     카페 관리 프로그램    |\n");
      printf("============추가============\n");
      printf("|  1. 신규 메뉴 추가        |\n");
      printf("|  2. 신규 고객 추가        |\n");
      printf("============검색============\n");
      printf("|  3. 기존 메뉴 검색        |\n");
      printf("|  4. 기존 고객 검색        |\n");
      printf("|  5. 번호표 조회           |\n");
      printf("============수정============\n");
      printf("|  6. 기존 고객 수정        |\n");
      printf("|  7. 기존 메뉴 수정        |\n");
      printf("============삭제============\n");
      printf("|  8. 기존 고객 삭제        |\n");
      printf("|  9. 기존 메뉴 삭제        |\n");
      printf("==========전체 보기=========\n");
      printf("|  10. 메뉴 전체 보기       |\n");
      printf("|  11. 고객 전체 보기       |\n");
      printf("============종료============\n");
      printf("|  12. 번호표 추가          |\n");
      printf("|  13. 프로그램 종료        |\n");
      printf("============================\n");
      printf("  원하는 메뉴를 선택하세요: ");

      scanf("%d", &sel) ;

switch(sel)
      {
      case 1:
         new_add_menu();
         break;
      case 2:
         new_add_customer();
         break;
      case 3:
         search_menu();
         break;
      case 4:
         search_customer();
         break;
      case 5:
         search_ticket_number();
         break;
      case 6:
         edit_customer();
         break;
      case 7:
         edit_menu();
         break;
      case 8:
         del_customer();
         break;
      case 9:
         del_menu();
         break;
      case 10:
         view_menu();
         break;
      case 11:
         view_customer();
         break;
      case 12:
         new_add_ticker_number();
         break;
      case 13:
         end();
         break;
      default:
         printf("\n잘못 선택하셨습니다.\n");
         break;
      }
      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");
   printf("\n");
   printf("음료: ");
   scanf("%s", &menu_info[menu_idx].drink);
   printf("가격: ");
   scanf("%s", &menu_info[menu_idx].price);

   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");

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

//3. 메뉴 종류로 검색하기 
int search_menu()
{
   int i;
   char drink[30]; //여기에 입력할 이름 
   printf("\n음료 종류: ");
   scanf("%s", &drink);
   for(i=0; i<menu_idx++; i++) //menu 유요한 배열만큼 돌립니다. 
   {
      if(strcmp(drink, menu_info[i].drink)==0) //strcmp함수 사용 -> 입력한 drink과 구조체 배열의 옷 종류가 일치하면 0을 반환. 
         return i; //0이 되면 true가 되어 if문에 들어감. 
   }
   return -1; //for문 돌아가도 정보를 못 찾게 될 경우 
}

//4. 이름으로 고객 정보 조회 
int search_customer()
{
   int i;
   char name[30];
   printf("\n이름: ");
   scanf("%s", &name);
   for(i=0; i<customer_idx; i++) 
   {
      if(strcmp(name, customer_info[i].name)==0)  //고객의 유무에 따라 반환하기 위한 형태
         return i;      
   }
   return -1;
} 

//5. 번호표 조회 
int search_ticket_number()
{
   int i;
   char number[30];
   printf("\n번호표: ");
   scanf("%s", &number);
   for(i=0; i<ticket_number_idx; i++) 
   {
      if(strcmp(number, ticket_number_info[i].number)==0)  //고객의 유무에 따라 반환하기 위한 형태
         return i;
   }
   return -1;
} 

//6. 고객 정보 수정 
 void edit_customer()
{
	int i, j, k;
	char name[20];
	char info[20];
	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");
		}
	}
}

//7. 메뉴 정보 수정 
 void edit_menu()
{
	int i, j, k;
	char drink[20];
	char info[20];
	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");
		}
	}
}

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

 	int i=0;
	char name[30];
	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);
  		}
 	}
}

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

 	int i=0;
	char drink[30];
	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);
  		}
 	}
}

//10. 메뉴 전체보기
void view_menu()
{
   int i;
   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);
   }
}

//11. 고객 전체보기  
void view_customer()
{
   int i;
   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);
   }
}

//12. 신규 번호표 추가 
void new_add_ticker_number()
{
   FILE* fp = fopen("C:\\project\\Ticket_number.txt", "a");
   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);
}


//13. 프로그램 종료
void end()
{
   printf("\n프로그램을 종료합니다\n");
   exit(1);
}
반응형

'C++' 카테고리의 다른 글

c++ swap(값 교환)  (0) 2023.01.07
c++ if문 짝수 홀수  (0) 2023.01.07
c++ Date 실습(수업 중 실습)  (0) 2023.01.07
c++ 3명의 3개의 과목 평균  (0) 2023.01.07
c++ 3개의 배열을 더해서 4번째 배열에 넣기  (0) 2023.01.07
반응형
#include <iostream>				//선언부 컴파일에 접근을해서 선언파트에 있는 걸 처리해서 사용 
using namespace std;    		//std라는 소속을 알려줄 필요가 다음부터 없는것 등록을 했을경우 ex( std::cout 

class Date{									//Date라는 객체(클래스) 선언 
	private:								//자기 자신만 사용 가능 
		int year, month, day;				//전역변수로 year, month, day 선언 
		public :							//어디서든 사용 가능 
			Date();							//Date 의 디폴트 생성자 
			Date(int y, int m, int d);		//Date int 인자를 3개 받는 생성자 
			Date(int m, int d);				//Date int 인자를 2개 받는 생성자
			Date(int d);					//Date int 인자를 1개 받는 생성자
			void print();					//year, month, day 값을 출력해주는 생성자 
};

Date::Date(){					//Date의 디폴트 생성자 
	year = 2022;				//year이라는 변수가 가르키는 주소 값에 메모리안에 2022을 선언 2022으로 초기화 
	month=10;					//month이라는 변수가 가르키는 주소 값에 메모리안에 10을 선언 10으로 초기화 
	day = 11;					//day이라는 변수가 가르키는 주소 값에 메모리안에 11을 선언 11으로 초기화 
}
Date::Date(int y, int m, int d){		//정수형 인자를 3개받는 Date 생성자 
	month = m;							//month라는 변수가 가르키는 주소 값에 메모리안에 m을 선언 m으로 초기화 
	day = d;							//day라는 변수가 가르키는 주소 값에 메모리안에 d을 선언 m으로 초기화
	year = y;							//year이라는 변수가 가르키는 주소 값에 메모리안에 y을 선언 m으로 초기화
}
Date::Date(int m, int d){				//정수형 변수를 2개받는 Date 생성자 
	month = m;							//month라는 변수가 가르키는 주소 값에 메모리안에 m을 선언 m으로 초기화 
	day = d;							//day라는 변수가 가르키는 주소 값에 메모리안에 d를 선언 d으로 초기화
	year = 2022;						//year이라는 변수가 가르키는 주소 값에 메모리안에 2022을 선언 2022으로 초기화
}
Date::Date(int d){						//정수형 변수를 1개받는 Date 생성자
	month = 10;							//month라는 변수가 가르키는 주소 값에 메모리안에 10을 선언 10으로 초기화 
	day = d;							//day라는 변수가 가르키는 주소 값에 메모리안에 d을 선언 d으로 초기화
	year = 2022;						//year이라는 변수가 가르키는 주소 값에 메모리안에 2022을 선언 2022으로 초기화
}
void Date::print(){												//출력문 생성자 
	cout << year << "년" << month << "월" << day << "일";		//년, 월, 일 출력문 
}

int main(){										// 몸체부, 메인 함수 // int 를 쓰는이유는 비정상적인 오류를 제외 시키는것
												//void를 써도 상관없지만 오류가 날수도있고 계속 컴퓨터가 값을 기다린다
	Date date1(2022, 10, 11);					//Date클래스에 date1객체 생성하면서 인자3개를 받는 생성자가 호출된다 
	Date date2(10, 11);							//Date클래스에 date2객체 생성하면서 인자2개를 받는 생성자가 호출된다
	Date date3(11);								//Date클래스에 date3객체 생성하면서 인자1개를 받는 생성자가 호출된다
	Date date4;								//Date클래스에 date4객체 생성하면서 인자0개를 받는 생성자가 호출된다 디폴트 생성자 
	
	cout << "=== (int y, int m, int d) 인수를 받았을때 ===" << endl;		//출력문 
	cout << "date1 => ";													//출력문 
	date1.print();															//print생정자를 date1 값으로 호출 
	cout << endl << endl;													//줄바꿈 
	cout << "=== (int m, int d) 인수를 받았을때 ===" << endl;				//출력문 
	cout << "date2 => ";													//출력문 
	date2.print();															//print생성자를 date2 값으로 호출 
	cout << endl << endl;													//줄바꿈 
	cout << "=== (int d) 인수를 받았을때 date3 ===" << endl;				//출력문 
	cout << "date3 => ";													//출력문 
	date3.print();															//print생성자를 date3 값으로 호출 
	cout << endl << endl;		
		cout << "=== date4 ===" << endl;				//출력문 
	cout << "date4 => ";													//출력문 
	date4.print();															//print생성자를 date3 값으로 호출 
	cout << endl << endl;												//줄바꿈 

	
	return 0; 
}
반응형

'C++' 카테고리의 다른 글

c++ if문 짝수 홀수  (0) 2023.01.07
c++ 카페 관리 프로그램  (0) 2023.01.07
c++ 3명의 3개의 과목 평균  (0) 2023.01.07
c++ 3개의 배열을 더해서 4번째 배열에 넣기  (0) 2023.01.07
c++ 3개의 과목 평균  (0) 2023.01.07
반응형
#include <stdio.h>

void Sum(int x, int y, int z); 

int main(void)
{
    int a, b, c, i,j ;
    char name[100] ;

    for(i=0; i<=2; i++)
    {
    	printf("이름: ");
        scanf("%s", name);
        printf("국어: ");
        scanf("%d", &a);
        printf("영어: ");
        scanf("%d", &b);
        printf("수학: ");
        scanf("%d", &c);
        printf("합산: %d \n", a+b+c);
        int arg[i] ;
        arg[i]=(a+b+c)*1./3 ; 
        printf("평균: %d \n", arg[i]);
    }
    Sum(a, b, c);
    return 0;
}
void Sum(int x, int y, int z)
{
    int i,j;
    char name[100] ;
    for(i=0; i<=2; i++)
    {
            i++;
            scanf("%s", name);
            printf("\n");

    }
}
반응형

'C++' 카테고리의 다른 글

c++ 카페 관리 프로그램  (0) 2023.01.07
c++ Date 실습(수업 중 실습)  (0) 2023.01.07
c++ 3개의 배열을 더해서 4번째 배열에 넣기  (0) 2023.01.07
c++ 3개의 과목 평균  (0) 2023.01.07
c++ 별 정삼각형  (0) 2023.01.07