• [잡소리] c++ 프로그래밍 가능하신분..2012.11.23 AM 08:22

게시물 주소 FONT글자 작게하기 글자 키우기

이번주 초부터 계속 글을올리고 있으나 답이 안나오네요

지난번에 알려주신데로 어느정도 종합해서 코딩이 나오긴했는데

해석하는 부분에서 문제가 되네요

이미 취업은 전혀다른쪽으로 했기에 처음부터 다시시작하는건 별로 의미가 없어

이렇게 글을 올립니다

코딩 및 주석이나 해석까지 달아주실분 있으신가요?

간단한 프로그래밍이니 30분정도면 가능할거라 생각합니다

비용은 2만원정도 생각하고 있습니다



--------------------------------------------------------------

정수를 저장하는 객체를 만들기 위한 클래스를 설계하려고 한다.

이 클래스의 객체는 다음과 같이 동작한다.
① 저장할 수 있는 정수의 최대 개수는 객체가 생성될 때 지정한다.
② 숫자를 저장할 수 있다.
③ 가장 오래전에 저장한 숫자를 인출할 수 있다.
④ 마지막으로 저장한 숫자를 인출할 수 있다.
⑤ 저장된 숫자들 중 가장 큰 값을 인출할 수 있다.
⑥ 저장된 숫자들 중 가장 작은 값을 인출할 수 있다.
⑦ 저장된 숫자들의 평균을 구할 수 있다.
⑧ 저장할 수 있는 숫자의 최대 개수를 변경한다.
만일 현재 저장되어 있는 숫자의 개수보다 적을 때는 변경할 수 없다.

이러한 행위를 할 수 있도록 멤버함수 및 연산자를 포함하여 필요한 멤버
들을 포함하여 클래스를 선언하고, 앞에 나열한 모든 행위가 잘 동작하는지
확인할 수 있도록 이 클래스의 객체를 활용하는 프로그램을 작성한다.

☞ 주의
▷ 클래스는 각자 설계하며, 앞에 나열된 사항 외에 필요한 사항이
있다면 스스로 추가할 수 있다.
▷ STL을 사용하지 말고 직접 구현하라.
▷ C++ 언어로 작성해야 하며, 반드시 클래스를 활용해야 한다.

--------------------------------------------------------------
이게 문제입니다

임의의 숫자를 입력할수 있게 설계하고

계산된 임의의 숫자를 나열하게 하는것입니다



이런글 올려서 죄송합니다 문제가 되면 삭제하겠습니다
문자나 쪽지 주시면 1:1로 협의하겠습니다
010-9175-4845


댓글 : 6 개
IntegerClass.cpp
=================
#include "stdafx.h"
#include <iostream>
#include "Integer.h"

int _tmain(int argc, _TCHAR* argv[])
{
CInteger integer(5);

integer.Add(1);
integer.Add(3);
integer.Add(5);
integer.Add(6);
integer.Add(7);

std::cout << "Last value : " << integer.GetLast() << std::endl;
std::cout << "Oldest value : " << integer.GetOldest() << std::endl;
std::cout << "Biggest Value : " << integer.GetBiggest() << std::endl;
std::cout << "Smallest Value : " << integer.GetSmallest() << std::endl;
std::cout << "Average Value : " << integer.GetAverage() << std::endl;

integer.SetCount(8);

return 0;
}

Integer.h
==========
#include "stdafx.h"

const static int MAX_CNT = 1024;

class CInteger
{
public:
CInteger(int nCnt = MAX_CNT)
{
m_pInt = NULL;
m_nCnt = 0;
m_nMaxCnt = nCnt;

if(nCnt > 0)
{
m_pInt = new int[nCnt];
}
}

~CInteger()
{
if(m_pInt != NULL)
delete[] m_pInt;
}

void Add(int nValue)
{
m_pInt[m_nCnt] = nValue;
m_nCnt++;
}

int GetOldest(void)
{
if(m_pInt != NULL)
return m_pInt[0];

return -1;
}
int GetLast(void)
{
if((m_pInt != NULL) && (m_nCnt != 0))
return m_pInt[m_nCnt - 1];

return -1;
}
int GetBiggest(void)
{
if(m_pInt == NULL)
return -1;

int nRet = m_pInt[0];

for(int i = 1; i < m_nCnt; i++)
{
if(m_pInt[i] > nRet)
{
nRet = m_pInt[i];
}
}
return nRet;
}
int GetSmallest(void)
{
if(m_pInt == NULL)
return -1;

int nRet = m_pInt[0];

for(int i = 1; i < m_nCnt; i++)
{
if(m_pInt[i] < nRet)
{
nRet = m_pInt[i];
}
}
return nRet;
}
int GetAverage(void)
{
if(m_pInt == NULL)
return -1;

int nRet = m_pInt[0];

for(int i = 1; i < m_nCnt; i++)
{
nRet += m_pInt[i];
}
return (nRet / m_nCnt);
}
void SetCount(int nMaxCnt)
{
if(nMaxCnt > m_nMaxCnt)
{
m_nMaxCnt = nMaxCnt;
}
}

private:
int m_nMaxCnt;
int m_nCnt;
int* m_pInt;
};


그냥 드립니다.
프로젝트 설정 및 빌드는 혼자 힘으로 하실 수 있겠죠?
ㄴ 훈훈하다ㅋ
ㄴ부왘ㅋㅋㅋ
아.. 정말 감사합니다 모라고 감사를 표현해야할지모르겠네요
뭐 대충 보니 리스트를 구현 한 Class에 (①, ② )

리스트니까 처음 포인터 (③) 저장하고 마지막에 추가된 포인터 저장하고 따로 저장하고(④)

추가로 Class맴버로 리스트 스캔하는 함수 만들고 이것을 이용 MAX/MIN/평균 얻는 함수 추가(⑤,⑥,⑦)

최대숫자는 리스트에 추가 할때 Count하여 최대값을 넘으면 Error리턴하면 될겄갔네요.(⑧)
평균값은 float으로.
친구글 비밀글 댓글 쓰기

user error : Error. B.