PGR21.com
이전 질문 게시판은 새 글 쓰기를 막았습니다. [질문 게시판]을 이용바랍니다.
Date 2007/06/01 02:20:51
Name o에코o
Subject C언어 너무 급해져서;;
1. 임의의 명에 대한 학생 정보(학번, 숙제 1, 숙제 2, 중간성적)를 입력 받아 저장함. - 각 정보는 모두 정수
   2. 'i' 키를 누르면 입력 모드로 전환하여 학생정보를 입력하는 것이 가능.
   3. 'a' 키를 누르면 현재까지 입력받은 학생에 대한 평균을 출력 해줌.
   4. 'v' 키를 누르면 현재까지 입력받은 학생에 대한 분산을 출력 해줌.
   5. 'e' 키를 누르면 프로그램 종료. 종료전까지 2,3,4 모드를 자유롭게 반복할 수 있어야 함.
이거 코드 누가 작성해주실분 안계신가여?ㅠ;; 숙제가 오늘 오후12시까지인데;;; 손도 못대고있네요;;

통합규정 1.3 이용안내 인용

"Pgr은 '명문화된 삭제규정'이 반드시 필요하지 않은 분을 환영합니다.
법 없이도 사는 사람, 남에게 상처를 주지 않으면서 같이 이야기 나눌 수 있는 분이면 좋겠습니다."
07/06/01 02:21
수정 아이콘
자삭요망...;;
삐꾸돼지
07/06/01 03:53
수정 아이콘
에궁!! 이러케 급하게 질문하시면 어케해용;;
제가 도움이 될 수 있었을텐데 ;;
07/06/01 04:11
수정 아이콘
네이버지식인도 아니고 숙제 부탁하지좀 마세요 -_-;
Dark-probe
07/06/01 06:40
수정 아이콘
리포트 대행은 사례금을 걸고 부탁하셔야죠.
엄연히 양심을 파는 장사인데.. -_-
chowizard
07/06/01 10:15
수정 아이콘
구조체와 링크드 리스트를 이용해 작성하세요.
상어이빨
07/06/01 10:49
수정 아이콘
딱 봐두 금방 나올끼 아닌거 같은데용~ ( C 초보 --; )
chowizard
07/06/01 13:33
수정 아이콘
/*******************************************************************************/
// 헤더파일 포함
/*******************************************************************************/
#include <stdio.h>
#include <conio.h>
#include <stdlib.h>
#include <memory.h>

/*******************************************************************************/
// 데이터 정의
/*******************************************************************************/
struct StudentInformation

int m_StudentNum;
int m_Homework_1;
int m_Homework_2;
int m_HalfwayResult;
float m_Average;
float m_Variance;
StudentInformation* m_pNodeNext;
StudentInformation* m_pNodePrev;
;


/*******************************************************************************/
// 변수 선언
/*******************************************************************************/
StudentInformation* pStudentInfo = NULL;
unsigned int InputCount;
float AllAverage;
float AllVariance;

/*******************************************************************************/
// 함수 선언
/*******************************************************************************/
bool Initialize(void);
bool Process(void);
void Release(void);
bool InputStudentInformation(void);
void AverageResult(void);
void VarianceResult(void);



답글달고 오전에 함 짜봤습니다.
헤더파일은 이렇게 했구요. 혹시 아직 못하셨으면 이거 보고 짐작해서 생각해보세요.
cpp 내용은 요청하시면 이따 저녁 때쯤 올려드림.
삐꾸돼지
07/06/01 14:19
수정 아이콘
헉 위에분이 다짜주셨네요 ;;
chowizard
07/06/01 20:23
수정 아이콘
/*******************************************************************************/
// 헤더파일 포함
/*******************************************************************************/
#include "Main.h"


/*******************************************************************************/
// 데이터 정의
/*******************************************************************************/

/*******************************************************************************/
// 엔트리 포인트
/*******************************************************************************/
int main(void)

if( !Initialize() )
{
return 0;


if( !Process() )

return 0;


return 0;
}

/*******************************************************************************/
// 데이터 초기화
/*******************************************************************************/
bool Initialize(void)

InputCount = 0;
AllAverage = 0.0f;
AllVariance = 0.0f;

pStudentInfo = (StudentInformation*)malloc(sizeof(StudentInformation));
memset(pStudentInfo, 0, sizeof(StudentInformation));

return true;


/*******************************************************************************/
// 데이터 해제
/*******************************************************************************/
void Release(void)

if(pStudentInfo)
{
free(pStudentInfo);

}

/*******************************************************************************/
// 명령을 입력받아 해당 명령을 처리
/*******************************************************************************/
bool Process(void)

static InputContinue = true;

printf("I : 학생정보 입력\n"
"A : 평균 출력\n"
"V : 분산 출력\n"
"E : 종료\n");

while(InputContinue)
{
char InputKey = 0;

printf("명령을 입력하세요\n");
InputKey = getch();

switch(InputKey)
{
case 'I' :
case 'i' :
InputStudentInformation();
break;

case 'A' :
case 'a' :
AverageResult();
break;

case 'V' :
case 'v' :
VarianceResult();
break;

case 'E' :
case 'e' :
InputContinue = false;
break;

}

Release();

return true;
}
/*******************************************************************************/
// 학생 정보를 입력
/*******************************************************************************/
bool InputStudentInformation(void)

StudentInformation* pTempInformation = NULL;
float Deviation_1 = 0.0f;
float Deviation_2 = 0.0f;
float Deviation_3 = 0.0f;

pTempInformation = (StudentInformation*)malloc(sizeof(StudentInformation));
memset(pTempInformation, 0, sizeof(StudentInformation));


printf("%d번째 학생의 학번, 숙제1, 숙제2, 중간성적을 입력하세요\n : ", InputCount + 1);
scanf("%d%d%d%d", &(pStudentInfo->m_StudentNum), &(pStudentInfo->m_Homework_1), &(pStudentInfo->m_Homework_2), &(pStudentInfo->m_HalfwayResult));


// 현재 노드 데이터의 평균을 구해서 저장
pStudentInfo->m_Average = (float)(pStudentInfo->m_Homework_1 + pStudentInfo->m_Homework_2 + pStudentInfo->m_HalfwayResult) / 3;

// 현재 노드 데이터의 분산을 구해서 저장
Deviation_1 = (float)pStudentInfo->m_Homework_1 - pStudentInfo->m_Average;
Deviation_1 *= Deviation_1;
Deviation_2 = (float)pStudentInfo->m_Homework_2 - pStudentInfo->m_Average;
Deviation_2 *= Deviation_2;
Deviation_3 = (float)pStudentInfo->m_HalfwayResult - pStudentInfo->m_Average;
Deviation_3 *= Deviation_3;
pStudentInfo->m_Variance = (Deviation_1 + Deviation_2 + Deviation_3) / 3;


// 전체 노드 데이터의 평균을 구하기 위해 데이터를 더한다.
AllAverage += (pStudentInfo->m_Homework_1 + pStudentInfo->m_Homework_2 + pStudentInfo->m_HalfwayResult);




if(InputCount == 0) // 노드 입력이 처음일 경우 이전 노드 링크는 값이 없으므로 NULL 입력
{
pStudentInfo->m_pNodePrev = NULL;

pStudentInfo->m_pNodeNext = pTempInformation; // 1. 현재 노드의 다음 링크를 새로 생성한 노드의 주소로 치환
pTempInformation->m_pNodePrev = pStudentInfo; // 2. 새로 생성한 노드의 이전 링크를 현재 노드 주소로 치환

pStudentInfo = pTempInformation; // 3. 현재 노드의 주소를 새로 생성한 노드의 주소로 치환(이 노드의 다음 주소링크는 1번 과정에 의해 자동으로 갱신된다.)
pStudentInfo->m_pNodeNext = NULL; // 현재 노드가 마지막으로 추가한 노드일 경우에만 의미가 있다.

++InputCount; // 입력할 때마다 증가하는 전역변수. 학생 수로 쓰인다.

return true;
}

/*******************************************************************************/
// 평균 출력
/*******************************************************************************/
void AverageResult(void)

StudentInformation* pSaveNode = pStudentInfo; // 현재 노드로 되돌아오기 위해 주소를 저장해둠

pStudentInfo = pStudentInfo->m_pNodePrev; // 정보가 없는 현재 노드는 건너뛰고 출력하기 위함
while(pStudentInfo)
{
printf("%d학생평균 : %.2f\n", pStudentInfo->m_StudentNum, pStudentInfo->m_Average);

pStudentInfo = pStudentInfo->m_pNodePrev;


// 전체 학생 평균 출력
AllAverage = AllAverage / (InputCount * 3);

printf("전체평균 : %.2f\n", AllAverage);

pStudentInfo = pSaveNode;
}

/*******************************************************************************/
// 분산 출력
/*******************************************************************************/
void VarianceResult(void)

StudentInformation* pSaveNode = pStudentInfo; // 현재 노드로 되돌아오기 위해 주소를 저장해둠

pStudentInfo = pStudentInfo->m_pNodePrev; // 정보가 없는 현재 노드는 건너뛰고 출력하기 위함
while(pStudentInfo)
{
// 전체 노드 데이터의 분산을 구하기 위해 데이터를 더한다.
AllVariance += ((pStudentInfo->m_Average - AllAverage) * (pStudentInfo->m_Average - AllAverage));

printf("%d학생분산 : %.2f\n", pStudentInfo->m_StudentNum, pStudentInfo->m_Variance);

pStudentInfo = pStudentInfo->m_pNodePrev;



// 전체 학생 분산 출력
AllVariance = AllVariance / InputCount;

printf("전체분산 : %.2f\n", AllVariance);

pStudentInfo = pSaveNode;
}


cpp파일입니다. 위의 헤더와 같이 사용하면 컴파일됩니다.
분산은 공식을 맞게 적었는지 잘 모르겠음.(수학이 약해서..;;)
주석도 달았으니 디버거로 돌려보면서 충분히 돌아가는 원리를 고민해보세요.
WizardMo진종
07/06/02 12:50
수정 아이콘
졸업할때 프로젝트도 부탁하실려나;;
수아느므좋아
07/06/12 11:04
수정 아이콘
에휴... 컴퓨터과 학우인데... 전 왜 하나도 모를까요 ㅠㅠ

이래 가지고 복학해바야... 아... 암울하네요
목록 삭게로! 맨위로
번호 제목 이름 날짜 조회
27898 최근 최연성 선수의 명경기 추천해주세요.. [2] 손가락바보1922 07/06/01 1922
27897 프로게이머생활이 궁금합니다. [1] 손상모1846 07/06/01 1846
27896 조립컴퓨터 질문 드립니다. [4] 공부싫어1931 07/06/01 1931
27894 영어 한문장 해석 부탁드려요. [5] non-frics1528 07/06/01 1528
27893 포맷하려고 하는데요..파티션 질문요.. [3] 미니op_1570 07/06/01 1570
27892 간수치가 높습니다. [3] 모짜르트2558 07/06/01 2558
27891 찌질한 한 남자가 질문하나 올립니다 [14] jinojino2547 07/06/01 2547
27890 스티븐 호킹의〈시간의 역사〉를 읽다가 질문드립니다. [8] 大司諫1947 07/06/01 1947
27889 혹시 팽귄1.15버젼 받으신분 계시나요? [2] 테루3653 07/06/01 3653
27888 예전 팬택감독이었던 송호창 감독님.. [2] Cine_HyO2189 07/06/01 2189
27887 발을 접질렀는데요 [4] 나백수..1631 07/06/01 1631
27886 개인통장을 회사에서 악용할 수 있나요? [3] 히든고수2735 07/06/01 2735
27884 핸드폰 추천 좀해주세요. [1] 라임밍기뉴1611 07/06/01 1611
27883 한승엽 선수 [3] 박정우1926 07/06/01 1926
27882 워3를 해보려고 합니다.. [6] 킹이바1898 07/06/01 1898
27881 C언어 너무 급해져서;; [11] o에코o1560 07/06/01 1560
27880 영작한거 교정 부탁드립니다. [3] 꽃을든남자1618 07/06/01 1618
27878 본체랑 모니터에서 전기가 흘러요.. 도와주세요.. [2] 대략낭만2450 07/05/31 2450
27877 스틱자동차 질문 [5] 다음™1757 07/05/31 1757
27876 파워포인트에서 그림 파일에 대해 [1] Adrenalin2110 07/05/31 2110
27875 현재 PGR운영진이 누구시죠? [2] 워크초짜1938 07/05/31 1938
27874 축구 연습하는법좀~ [3] ...2071 07/05/31 2071
27871 영작좀부탁드림니다. [1] 공부상담사1530 07/05/31 1530
목록 이전 다음
댓글

+ : 최근 6시간내에 달린 댓글
+ : 최근 12시간내에 달린 댓글
맨 위로