음... -.-;
잘못된 방법입니다..
프로그램 자체가 찐빠적인 코드 -.-;
하루만에 완성했다가 그냥 다 밀어버린 소스 ;;;
봐도 도움은 안될겁니다...;;;
군대에서 배운 가라인생 학부생에서 마감좀 하자! Code Type : C
/////////////////////////////////////////
// 2007년 04월 08일 고급프로그래밍 //
// Coded By 오형탁 Ohyung (2002711158) //
// ohyung@ohyung.com http://ohyung.com //
/////////////////////////////////////////
/*<<<<<<<<<헤더파일부분>>>>>>>>>>*/
#include< stdio.h>
#include< stdlib.h>
#include< string.h>
typedef struct tag_A {
char Name[30];
int Cost;
}ITEMS;
ITEMS Drink[]={
{"Milk Coffee", 400 },
{"Orange", 500 },
{"Coke", 450 },
};
int insert=0,total=0,now=4;
void buy()
{
int sel=0,sel2=0,choose=0;
while (sel<=0||sel>now)
{
printf(" >> 제품을 선택하세요 : ");
scanf("%d", &sel);
fflush(stdin);
}
if(sel>=now){
printf("없는 메뉴입니다.\n");
}
else
{
if(sel>=4) sel++;
printf(" '%s'의 수량 (개당 %d원) : ",Drink[sel-1].Name,Drink[sel-1].Cost);
scanf("%d", &sel2);
fflush(stdin);
choose=Drink[sel-1].Cost;
if (total<(choose*sel2))
{
printf("* 잔액이 부족합니다. 투입 또는 반환을 선택하세요.\n");
}
else
{
total-=(choose*sel2);
printf(" 현재 남아있는잔액 : %d원\n",total);
}
}
}
void menu()
{
int i;
printf("-----------------------------------------------------------------------------\n\t\t\tVending Marchine\n-----------------------------------------------------------------------------\n");
printf(":Product:| Milk Coffee | Orange | Coke |");
for (i=4;i<=now-1;i++)
printf("%8s|",Drink[i].Name);
printf("\n: Price :| 400 | 500 | 450 |");
for (i=4;i<=now-1;i++)
printf("%8d|",Drink[i].Cost);
printf("\n-----------------------------------------------------------------------------\nMode Selection\n1:투입, 2:구입, 3:반환\nA.제품추가,B.제품삭제,C.제품수정\n");
}
/*---------- 메인함수 시작 ---------- */
int main()
{
int i=2,j=0,sel=0,sel2=0,choose=0,temp=0;
char i_mode='0',item_temp[30];
ITEMS *kuk=&Drink;
menu();
while(1)
{
printf(">>Select the mode : ");
gets(&i_mode);
fflush(stdin);
if(i_mode=='1')
{
printf(" >> Insert the Coin : ");
scanf("%d", &insert);
fflush(stdin);
total+=insert;
buy();
}
else if(i_mode=='2')
{
buy();
}
else if(i_mode=='3')
{
printf("%d원 반환완료. Vending Machine을 종료합니다.\n",total);
exit(0);
}
else if(i_mode=='a' || i_mode=='A') // 입력부
{
now++;
kuk = (ITEMS *)malloc((now+1)*sizeof(ITEMS));
printf(" >> 추가제품명 : ");
gets(&Drink[now-1].Name);
fflush(stdin);
printf(" >> 가격 : ");
scanf("%d",&Drink[now-1].Cost);
fflush(stdin);
menu();
}
else if(i_mode=='b' || i_mode=='B') // 삭제부
{
temp=now; //원래 now의 값을 temp에 임시저장
printf(" >> 삭제할 제품명 : ");
gets(&item_temp);
for (i=4;i<=now-1;i++)
{
if(strcmp(item_temp,Drink[i].Name)==0)
{
now--;
for (i;i<=now-2;i++)
{
strcpy( Drink[i].Name , Drink[i+1].Name );
Drink[i].Cost=Drink[i+1].Cost;
}
break;
}
}
if (temp==now)
printf("그런 제품명은 없습니다.\n");
else
kuk = (ITEMS *)malloc((now+1)*sizeof(ITEMS));
menu();
}
else if(i_mode=='c' || i_mode=='C') // 수정부
{
temp=now; //원래 now의 값을 temp에 임시저장
printf(" >> 수정할 제품명 : ");
gets(&item_temp);
for (i=4;i<=now-1;i++)
{
if(strcmp(item_temp,Drink[i].Name)==0)
{
temp--;
break;
}
}
if (temp==now)
printf("그런 제품명은 없습니다.\n");
else
{
printf(" >> 수정될 제품명 : ");
gets(&Drink[i].Name);
printf(" >> 가격 : ");
scanf("%d",&Drink[i].Cost);
fflush(stdin);
}
menu();
}
i_mode=0;
}
return 0;
}
/* 주사용 끝! */
/*
모드선택 1. 투입 2. 구입 3. 반환
투입 000원
구입 제품이름을 각 배열에 정의
잔액표실 잔액은 각 모드마다 표시!
*/
군대에서 배운 가라인생 학부생에서 마감좀 하자!
역시나 일요일 마감후에 제대로된 linked list프로그램 소스를 올리겠습니다. ㅜㅜ
요즘 쓸것도 없고... ㅜㅜ 레폿에만 치여 사니 쩝...
저도 라이프파드랑 스프링노트 사용하고 있다구요!!! ㅜㅜ