>> Edit article
이름
제목
패스워드
염치없는 놈입니다. 기말고사 숙제로 자판기 프로그램을 짜는 것입니다. 염치 불구 하고 이렇게 올립니다. 소스는 어케어케 구했는데 주석을 달아야 합니다. 제가 프로그래밍에 문외한 이라서...구석 좀 달아주세여. 이 소스를 약간 변형하셔도 좋구여. 제발 부탁합니다. 오늘 아침 8시까지 입니다 부탁합니다. #include <iostream.h> #include <string.h> #include <stdlib.h> //#include "machine2.h" typedef unsigned short int USint; class MACHINE { public: char input[10]; USint get_total; char menus[4][20]; USint price[4]; static USint LAST_MONEY; public: void MACHINE_start(); void MACHINE_end(); void start(); void show_menu(); void set_menu(); int select(); void naonda(int get_select); bool q_again(); }; USint MACHINE::LAST_MONEY=1; void MACHINE::MACHINE_start() { get_total=0; char m[4][20]={"콜라","메실","바나나우유","사이다"}; USint p[4]={500,550,600,700}; for(int i=0;i<4;i++){ strcpy(menus[i],m[i]); price[i]=p[i]; } } void MACHINE::MACHINE_end() { LAST_MONEY=1; cout << "잔돈 출구" << get_total << endl; } bool MACHINE::q_again() { if(LAST_MONEY==0) return false; else return true; } void MACHINE::start() { cout << "------관리자모드m: x-나가기 -----" << endl; cout << "INSERT MONEY->"; cin >> input; } void MACHINE::show_menu() { char *coin; coin=input; if(0==strcmp(input,"m")){ set_menu(); start(); } else if(0==strcmp(input,"x")) strcpy(input,"x"); else{ get_total+=atoi(coin); char star[4]; if(get_total != 0 ){ if(get_total>=price[3]){ star[0]='O';star[1]='O';star[2]='O';star[3]='O';} //메뉴수량 추가시 보완! else if(get_total>=price[2]){star[0]='O';star[1]='O';star[2]='O';star[3]='X';} else if(get_total>=price[1]){star[0]='O';star[1]='O';star[2]='X';star[3]='X';} else if(get_total>=price[0]){star[0]='O';star[1]='X';star[2]='X';star[3]='X';} else { star[0]='X';star[1]='X';star[2]='X';star[3]='X';} } for(int i=0;i<4;i++) cout << i+1 << "번 -<"<< star[i] << ">-"<< price[i] << "원 "<< menus[i] << endl; } } void MACHINE::set_menu() { int sel; cout << "1-메뉴변경/2-가격변경/3-나가기 "; cin >> sel; while(sel!=3){ switch(sel){ case 1 : { cout << "새로운 메뉴를 입력해주세요"; for(int i=0;i<4;i++){ cout << i+1 << "------->"; cin >> menus[i]; } break; } case 2 : { cout << "새로운 가격 입력"; for(int j=0;j<4;j++){ cout << j+1 << menus[j] << "--------->"; cin >> price[j]; } break; } default : { cout << "입력이 잘못됬음"; break; } } cout << "1-메뉴변경/2-가격변경/3-나가기"; cin >> sel; } } int MACHINE::select() { int sel=0; if(q_again()==true){ cout << "선택=>"; cin >> sel; } else sel=5; return sel; } void MACHINE::naonda(int get_select) { switch(get_select){ case 0 : cout << "-------------"; case 1 : { if(get_total >= price[0]){ cout << menus[0] << "가나왔습니다!" << "잔액" << get_total-price[0] << "" ; get_total-=price[0]; break;} else cout << "잔액부족!"; break; } case 2 : { if(get_total >= price[1]){ cout << menus[1] << "가나왔습니다!"<< "잔액" << get_total-price[1]<< "" ; get_total-=price[1]; break;} else cout << "잔액부족!"; break; } case 3 : { if(get_total >= price[2]){ cout << menus[2] << "가나왔습니다!"<< "잔액" << get_total-price[2]<< "" ; get_total-=price[2]; break;} else cout << "잔액부족!"; break; } case 4 : { if(get_total >= price[3]){ cout << menus[3] << "가나왔습니다!"<< "잔액" << get_total-price[3]<<""; get_total-=price[3]; break;} else cout << "잔액부족!"<< "잔액" << get_total ; break; } default : { cout << "------"; break; } } //----switch 문을 빠저나온후 종료 여부를 판단하기위한 if문------ if(get_total==0 || 0==strcmp(input,"x")) LAST_MONEY=0; } void main(void) { MACHINE park,kim; park.MACHINE_start(); while(park.q_again()==true ){ park.start(); park.show_menu(); park.naonda(park.select()); } park.MACHINE_end(); kim.MACHINE_start(); while(kim.q_again()==true ){ kim.start(); kim.show_menu(); kim.naonda(kim.select()); } kim.MACHINE_end(); }
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved