-
[잡소리] c++ 프로그래밍 가능하신분..2012.11.23 AM 08:22
이번주 초부터 계속 글을올리고 있으나 답이 안나오네요
지난번에 알려주신데로 어느정도 종합해서 코딩이 나오긴했는데
해석하는 부분에서 문제가 되네요
이미 취업은 전혀다른쪽으로 했기에 처음부터 다시시작하는건 별로 의미가 없어
이렇게 글을 올립니다
코딩 및 주석이나 해석까지 달아주실분 있으신가요?
간단한 프로그래밍이니 30분정도면 가능할거라 생각합니다
비용은 2만원정도 생각하고 있습니다
--------------------------------------------------------------
정수를 저장하는 객체를 만들기 위한 클래스를 설계하려고 한다.
이 클래스의 객체는 다음과 같이 동작한다.
① 저장할 수 있는 정수의 최대 개수는 객체가 생성될 때 지정한다.
② 숫자를 저장할 수 있다.
③ 가장 오래전에 저장한 숫자를 인출할 수 있다.
④ 마지막으로 저장한 숫자를 인출할 수 있다.
⑤ 저장된 숫자들 중 가장 큰 값을 인출할 수 있다.
⑥ 저장된 숫자들 중 가장 작은 값을 인출할 수 있다.
⑦ 저장된 숫자들의 평균을 구할 수 있다.
⑧ 저장할 수 있는 숫자의 최대 개수를 변경한다.
만일 현재 저장되어 있는 숫자의 개수보다 적을 때는 변경할 수 없다.
이러한 행위를 할 수 있도록 멤버함수 및 연산자를 포함하여 필요한 멤버
들을 포함하여 클래스를 선언하고, 앞에 나열한 모든 행위가 잘 동작하는지
확인할 수 있도록 이 클래스의 객체를 활용하는 프로그램을 작성한다.
☞ 주의
▷ 클래스는 각자 설계하며, 앞에 나열된 사항 외에 필요한 사항이
있다면 스스로 추가할 수 있다.
▷ STL을 사용하지 말고 직접 구현하라.
▷ C++ 언어로 작성해야 하며, 반드시 클래스를 활용해야 한다.
--------------------------------------------------------------
이게 문제입니다
임의의 숫자를 입력할수 있게 설계하고
계산된 임의의 숫자를 나열하게 하는것입니다
이런글 올려서 죄송합니다 문제가 되면 삭제하겠습니다
문자나 쪽지 주시면 1:1로 협의하겠습니다
010-9175-4845
댓글 : 6 개
- 정직하게살자!
- 2012/11/23 AM 08:57
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;
};
그냥 드립니다.
프로젝트 설정 및 빌드는 혼자 힘으로 하실 수 있겠죠?
=================
#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;
};
그냥 드립니다.
프로젝트 설정 및 빌드는 혼자 힘으로 하실 수 있겠죠?
- 구름나무
- 2012/11/23 AM 09:04
ㄴ 훈훈하다ㅋ
- 분노의 루비칸테
- 2012/11/23 AM 09:04
ㄴ부왘ㅋㅋㅋ
- 극프
- 2012/11/23 AM 09:09
아.. 정말 감사합니다 모라고 감사를 표현해야할지모르겠네요
- arisa2004
- 2012/11/23 AM 09:18
뭐 대충 보니 리스트를 구현 한 Class에 (①, ② )
리스트니까 처음 포인터 (③) 저장하고 마지막에 추가된 포인터 저장하고 따로 저장하고(④)
추가로 Class맴버로 리스트 스캔하는 함수 만들고 이것을 이용 MAX/MIN/평균 얻는 함수 추가(⑤,⑥,⑦)
최대숫자는 리스트에 추가 할때 Count하여 최대값을 넘으면 Error리턴하면 될겄갔네요.(⑧)
리스트니까 처음 포인터 (③) 저장하고 마지막에 추가된 포인터 저장하고 따로 저장하고(④)
추가로 Class맴버로 리스트 스캔하는 함수 만들고 이것을 이용 MAX/MIN/평균 얻는 함수 추가(⑤,⑥,⑦)
최대숫자는 리스트에 추가 할때 Count하여 최대값을 넘으면 Error리턴하면 될겄갔네요.(⑧)
- 사노수케
- 2012/11/23 AM 09:34
평균값은 float으로.
user error : Error. B.