수다닷컴

  • 해외여행
    • 괌
    • 태국
    • 유럽
    • 일본
    • 필리핀
    • 미국
    • 중국
    • 기타여행
    • 싱가폴
  • 건강
    • 다이어트
    • 당뇨
    • 헬스
    • 건강음식
    • 건강기타
  • 컴퓨터
    • 프로그램 개발일반
    • C언어
    • 비주얼베이직
  • 결혼생활
    • 출산/육아
    • 결혼준비
    • 엄마이야기방
  • 일상생활
    • 면접
    • 취업
    • 진로선택
  • 교육
    • 교육일반
    • 아이교육
    • 토익
    • 해외연수
    • 영어
  • 취미생활
    • 음악
    • 자전거
    • 수영
    • 바이크
    • 축구
  • 기타
    • 강아지
    • 제주도여행
    • 국내여행
    • 기타일상
    • 애플
    • 휴대폰관련
  • 프로그램 개발일반
  • C언어
  • 비주얼베이직

C질문 있습니다. Circular Queue.c의 Enqueue의 pq-PER의 값을 Hamburgersim.c에서 쓰고 싶을떄...

흰꽃

2023.04.01

////////////// Circular Queue.c//////////////////////////////////////////////
#include stdio.h
#include stdlib.h
#include CircularQueue.h

void QueueInit(Queue * pq)
{
pq-front = 0;
pq-rear = 0;
}

void ERInit(Queue * pq)
{
pq-ER =0;
pq-NER =0;
}
int QIsEmpty(Queue * pq)
{
if(pq-front == pq-rear)
return TRUE;
else
return FALSE;
}
int NextPosIdx(int pos)
{
if(pos == QUE_LEN-1)
return 0;
else
return pos+1;
}
void Enqueue(Queue * pq, Data data)
{
if(NextPosIdx(pq-rear) == pq-front)
{
printf(Queue Memory Error!1\n);
pq - NER ++;
pq-PER = (pq-ER) / ((pq-NER)+(pq-ER)) * 100;
printf(ER = %f\n, pq-ER);//주문 받은 손님수
printf(NER = %f\n, pq-NER);//주문 받지못한 손님수
printf(PER = %f%%\n\n, pq-PER );//%로 계산 //이것을//
//exit(-1);

}
pq-rear = NextPosIdx(pq-rear);
pq-queArr[pq-rear] = data;
pq - ER ++;
pq-PER = (pq-ER) / ((pq-NER)+(pq-ER)) * 100;
printf(ER = %f\n, pq-ER);//주문 받은 손님수
printf(NER = %f\n, pq-NER);//주문 받지못한 손님수
printf(PER = %f%%\n\n, pq-PER );//%로 계산
}
Data Dequeue(Queue * pq)
{
if(QIsEmpty(pq))
{
//printf(Queue Memory Error!2\n);
//exit(-1);
}
pq-front = NextPosIdx(pq-front);
return pq-queArr[pq-front];
}
Data QPeek(Queue * pq)
{
if(QIsEmpty(pq))
{
printf(Queue Memory Error!3\n);
//exit(-1);
}
return pq-queArr[NextPosIdx(pq-front)];
}

/////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////Hamburgersim.c//////////////////////////////////////////////
#include stdio.h
#include stdlib.h
#include time.h
#include CircularQueue.h
#defineCUS_COME_TERM15// 고객의 주문 간격: 초 단위
#define CHE_BUR0// 치즈버거 상수
#define BUL_BUR1// 불고기버거 상수
#define DUB_BUR2// 더블버거 상수
#define CHE_TERM12// 치즈버거 제작 시간: 초 단위
#define BUL_TERM15// 불고기버거 제작 시간: 초 단위
#define DUB_TERM24// 더블버거 제작 시간: 초 단위

int main(void)
{
int makeProc=0;// 햄버거 제작 진행상황
int cheOrder=0, bulOrder=0, dubOrder=0;
int sec;
int count;
int cout;
Queue que;
QueueInit(&que);
ERInit(&que);//수정
srand(time(NULL));
cout=1;
//for(count=0; count1000; count++)
//{
cheOrder=0;
bulOrder=0;
dubOrder=0;
cheOrder=0;
bulOrder=0;
dubOrder=0;
sec=0;
makeProc=0;
// 아래 for문의 1회 회전은 1초의 시간 흐름을 의미함
for(sec=0; sec3600; sec++)
{
if(sec % CUS_COME_TERM == 0)
{
switch(rand() % 3)
{
case CHE_BUR:
Enqueue(&que, CHE_TERM);
cheOrder += 1;
break;
case BUL_BUR:
Enqueue(&que, BUL_TERM);
bulOrder += 1;
break;
case DUB_BUR:
Enqueue(&que, DUB_TERM);
dubOrder += 1;
break;
}
}
if(makeProc=0 && !QIsEmpty(&que))
makeProc = Dequeue(&que);
makeProc--;
}
prinbsp;printf(Simulation Report! \n, QUE_LEN);
printf( - Cheese burger: %d \n, cheOrder);
printf( - Bulgogi burger: %d \n, bulOrder);
printf( - Double burger: %d \n, dubOrder);
printf( - Waiting room size: %d \n, QUE_LEN);
printf(cout %d \n, cout);//수정
cout++;
printf(%f%%\n,pq-PER);//이곳으로...//
//}//수정
return 0;
}
/////////////////////////////////////////////////////////////////////////////////////////////////////
//////////////////////////////////////////CircularQueue.h////////////////////////////////////////
#ifndef __C_QUEUE_H__
#define __C_QUEUE_H__
#define TRUE1
#define FALSE0
#define QUE_LEN30
typedef int Data;
typedef struct _cQueue
{
int front;
int rear;
float ER;//주문 못받은 손님수
float NER;//주문 받은 손님수
float PER;//확률 계산
Data queArr[QUE_LEN];
} CQueue;
typedef CQueue Queue;
void QueueInit(Queue * pq);
void ERInit(Queue * pq);//수정
int QIsEmpty(Queue * pq);
void Enqueue(Queue * pq, Data data);
Data Dequeue(Queue * pq);
Data QPeek(Queue * pq);
#endif
///////////////////////////////////////////////////////////////////////////////////

Circular Queue.c의 Enqueue의 pq-PER의 값을 Hamburgersim.c에서 변수를 받아 쓰고 싶은데
어떻게 해야 Circular Queue.c의 pq-PER변수를 Hamburgersim.c에서 받을 수 있나요??

신청하기





COMMENT

댓글을 입력해주세요. 비속어와 욕설은 삼가해주세요.

  • 햇님

    감사합니다.

  • 해지개

    pq-PER 이걸 que.PER로 변경하셔야 접근이 가능하고요
    계산식은 완성하셔야 할거같습니다
    무슨말이냐면, enqueue에서 매번 계산했던 PER을 전체 enqueue상황을 마치고 맨 마지막에 한번만 계산하고자 하신거 같으니 적절한 계산값을 수행하셔야하고
    main()문에서 queue structure에 접근하시려고 할 경우엔 Queue que;에 영향을 받으므로
    - 가아닌 .으로 해야 각 변수들에 접근이 가능합니다~

번호 제 목 글쓴이 날짜
2694731 리눅스 커널의 시작점 질문 미르 2025-05-13
2694702 이거 뭐가문제인가요 코드수정좀 (3) 맑은 2025-05-13
2694675 C언어 후위표기를 중위표기로 앨런 2025-05-13
2694646 안녕하세요 파일 합치기 함수! (1) 연블루 2025-05-13
2694618 잘몰라서 설명부탁드립니다. scanf 관련 (3) 파라 2025-05-12
2694590 이 코드가 뭐하는 코드일까요? #2 빵순 2025-05-12
2694559 동적할당으로 배열(2차원열)을 만드는데 있어 그걸 함수화시키는데... (1) 늘솔길 2025-05-12
2694532 네트워크에 관하여... (4) 황소자리 2025-05-12
2694503 프로그램 연산 후 바로 종료되는 현상 (6) Judicious 2025-05-11
2694450 while문질문입니다. (1) 허리품 2025-05-11
2694420 C언어 질문할게요(유니코드,자료형,버퍼,캐스트연산자) 은새 2025-05-11
2694370 내일까진데 함수호출 제발 도와주세요!!!!!!!!!11 들찬 2025-05-10
2694339 putchar()의 괄호 안에 int c=10;로 전에 선언된 c를 넣으면 안되는 이유에서 제가 생각한 것이 그 이유가 되는지 확인하고 싶습니다. (3) 미르 2025-05-10
2694316 이 코드 어디가 잘못되었는지 고수분들 ㅠㅠ (2) 나빛 2025-05-10
2694285 언어 공부하는 과정 좀 추천해주세요! (1) 아빠몬 2025-05-09
2694258 카운터.. 질문입니다. (4) 하늘빛눈망울 2025-05-09
2694229 단순한 질문이요 (8) 여름 2025-05-09
2694202 용돈을 가지고 할 수 있는 일을 여러가지로 출력하는 방법 좀 알려주세요! (2) 미나 2025-05-09
2694145 화면깜빡임을 없애고 싶은데요... (1) 어서와 2025-05-08
2694069 unsigned 질문입니다. 힘차 2025-05-07
<<  이전  1 2 3 4 5 6 7 8 9 10  다음  >>

수다닷컴 | 여러분과 함께하는 수다토크 커뮤니티 수다닷컴에 오신것을 환영합니다.
사업자등록번호 : 117-07-92748 상호 : 진달래여행사 대표자 : 명현재 서울시 강서구 방화동 890번지 푸르지오 107동 306호
copyright 2011 게시글 삭제 및 기타 문의 : clairacademy@naver.com