극프
접속 : 5723   Lv. 64

Category

Profile

Counter

  • 오늘 : 9 명
  • 전체 : 105080 명
  • Mypi Ver. 0.3.1 β
[잡소리] c++ 프로그래밍 가능하신분.. (6) 2012/11/23 AM 08:22
이번주 초부터 계속 글을올리고 있으나 답이 안나오네요

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

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

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

이렇게 글을 올립니다

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

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

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



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

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

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

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

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

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

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

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



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


신고

 

정직하게살자!    친구신청

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;
};


그냥 드립니다.
프로젝트 설정 및 빌드는 혼자 힘으로 하실 수 있겠죠?

구름나무    친구신청

ㄴ 훈훈하다ㅋ

분노의 루비칸테    친구신청

ㄴ부왘ㅋㅋㅋ

극프    친구신청

아.. 정말 감사합니다 모라고 감사를 표현해야할지모르겠네요

arisa2004    친구신청

뭐 대충 보니 리스트를 구현 한 Class에 (①, ② )

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

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

최대숫자는 리스트에 추가 할때 Count하여 최대값을 넘으면 Error리턴하면 될겄갔네요.(⑧)

사노수케    친구신청

평균값은 float으로.
X