[ create a new paste ] login | about

Link: http://codepad.org/c129hMCK    [ raw code | output | fork ]

박정욱 - C++, pasted on May 6:
//객체지향 금123 2012.05.04 
//2번		200911636박정욱
#include<iostream>
#include<iomanip>
using namespace std;

								
int data[10]={1, 2, 3, 4, 5};	//data 배열;		1~5번째요소 초기화.

int changed[10]={NULL};			//삽입,수정,삭제 된 요소들을 표시하기 위한 배열.
								//ex) i번째 요소가 삭제됬을시, changed[i-1] = 1;

int input_i();					//요소입력 함수. 1~10 의 값만 받고 리턴한다.
								//그외의 숫자는 반복문으로 입력을 다시 받는다.

void show_data();				//data배열의 요소들의 값을 보여주는 함수.
								//보여준 후 changed[i] (i=0~10)를 NULL로 초기화한다.
										
void menu();					//menu 목록을 보여주는 함수.
								//1.삽입		2.수정	3.삭제	4.종료
								//4번 이외의 숫자는 반복으로 다시 menu함수를 다시 수행한다.
									
void add();						//삽입 함수. data가 모두 입력되있으면 삽입 불가능.

void re();						//수정 함수. data를 수정한다.

void del();						//삭제 함수. data를 삭제한다.


//메인함수
void main()
{
	show_data();	//show_data함수 호출. data를 보여준다.1~5번째 요소만 초기값이 있다.
	menu();			//menu 함수 호출.
}


//data배열의 요소들의 값을 보여주는 함수.
void show_data()
{
	int i;									//for문을 이용하기위한 변수
	for(i=0; i<10 ; i++)
	{	
		if(changed[i] != NULL){cout <<"★";}	//삽입, 수정, 삭제가 되었는지를 확인하여 ★로 표시.
		cout << "data["<<i<<"] = ";
		if(data[i]==NULL)					//data의 값이 NULL인 요소들은 X로 표시.
		{	cout << "X"<<endl;}
		else								//NULL이 아닌 경우 값을 표시.
		{	cout << data[i] <<endl;}
	}
	for(i=0; i<10; i++)						//chanded배열의 초기화.
	{changed[i] = NULL;}
};

//메뉴함수.
void menu()
{	
	int input;
	while(1)								//무한반복문. 4번 종료를 선택하면 종료한다. 
	{	cout << "1.삽입"<< endl;
		cout << "2.수정"<< endl;
		cout << "3.삭제"<< endl;
		cout << "4.종료"<< endl;
		cin >>	input;
		switch(input)
		{
			case 1 :	add();	break;		//add 삽입함수 호출
			case 2 :	re();	break;		//re  수정함수 호출
			case 3 :	del();	break;		//del 삭제함수 호출
			case 4 :	cout << "종료합니다."<<endl;	exit(1);	break;	//종료
			default :	cout << "1~4번 입력하세요."<<endl; menu();		//1~4 이외의 숫자를 입력시.
		}
	}
};

//삽입 함수.		값이없는 요소를 찾아서 입력 받는다.
void add()
{
	int i;						//for문을 이용하시위한 변수
	int input;					//사용자로부터 cin할 변수
	char more;					//n값이 입력되면 삽입 종료, 그외는 계속 삽입
	for(i=0; i<10 ; i++)
	{	if(data[i] == NULL)		//data[i]가 NULL이면 input을 입력받아 data[i]에 삽입.
		{				
			cout << i+1<<"번째 요소에 삽입합니다. 값을 입력하세요(정수)"<<endl;	
			cin >> input;		
			data[i]=input;
			cout << "삽입 종료합니까?(종료 : n 입력)"<< endl;
			cin  >> more;
			changed[i]= 1;		//show_data 함수에 수정된값을 표시하기위해 changed[i]를 1대입.
			if(more =='n')
			{		break;}		//n 입력시 for문 break;
		}
	}
								//위의 for문중 NULL값을 찾지 못하거나 
	if(i == 10 )				//10번째 요소 이상까지 삽입하면 다음을 출력.
	{	cout << "data가 꽉차있어 삽입이 불가능합니다."<<endl;}
	show_data();				//data배열을 보여준다.
};

//수정 함수
void re()
{
	int i,input;				//i 수정 할 요소, 입력받을 input 값

	cout <<"몇번째 요소를 수정합니까?"<<endl;
	i=input_i();				//input_i함수는  요소 i의 값을 1~10만 입력받아 리턴한다.
	cout << i<<"번째 요소를 수정합니다"<<endl;
	cin >> input;				//값을 입력받아 수정한다.
	data[i-1] = input;
	changed[i-1]=1;				//삽입한 i번째 요소를 표시하기위해 changed[i-1]의 값을 1로 한다.
	show_data();				//data배열의 요소들을 보여준다
};

//삭제함수.
void del()
{
	int i;						//삭제할 i	요소

	cout << "몇번째 요소를 삭제합니까? 1~10" << endl;
	i=input_i();				//input_i 함수를 호출하여 1~10값을 리턴한다.
	
	if(data[i-1] == NULL)		//NULL인 요소는 이미 값이 없다는걸 알려준다.
	{	cout << i<<"번째 요소 data[" << i-1<<"]는 이미 값이 없습니다."<<endl;}
	else
	{	data[i-1] = NULL;		//i번쨰 요소 data[i-1]를 NULL로 바꾼다.
		cout << i<<"번째 요소 data[" << i-1<<"]을 삭제 하였습니다."<<endl;
		changed[i-1]=1;			//삭제한 i번째 요소를 표시하기위해 changed[i-1]의 값을 1로 한다.
	}
	show_data();				//data배열의 요소들을 보여준다
};

//요소 입력 받는 함수.	
int input_i()
{						//입력받는 i가 1~10값일경우 i를 리턴하고, 그외는 반복문으로 재입력 받는다.
	int i;					
	cin >> i;
	while(i<1 || i>10)
	{	cout << " 1~10요소를 선택하세요."<<endl;
		cin >> i;
	}
	return i;
};


Output:
1
2
3
4
cc1plus: warnings being treated as errors
Line 10: warning: converting to non-pointer type 'int' from NULL
Line 27: error: 'void del()' redeclared as different kind of symbol
compilation terminated due to -Wfatal-errors.


Create a new paste based on this one


Comments: