리스트 다항식 덧셈 곱셈
- 최초 등록일
- 2011.12.24
- 최종 저작일
- 2011.08
- 21페이지/ 한컴오피스
- 가격 1,500원
소개글
①사용자로부터 다항식 두 개를 스트링 형식으로 입력받는다.
②두 다항식의 덧셈과 뺄셈을 계산하여 출력한다.
③세번째 다항식을 입력받아 위의 덧셈결과에 곱해준다.
④사용자로부터 x값을 입력받아 대입하여 계산해준다.
⑤가용리스트를 이용하여 구현해야하며 링크드 리스트를 이용해야한다.
목차
1. 문제 인식
2. 문제 접근 방법 및 분석
3. 소스코드 및 주석
4. 결과화면
5. 느낀점
본문내용
#include <iostream>
#include <string>
using std::cout;
using std::cin;
using std::endl;
using std::string;
using std::ostream;
using std::istream;
class Data
{
public:
int coef; //계수
int exp; //지수
Data(int c, int e) //생성자를통해 변수들을 초기화한다.
{
coef= c;
exp = e;
}
};
class Term{
public:
Data *data; // 항의 계수와 지수로 사용할 클래스(구조체)
Term *next; //다음항으로 연결할 link
Term(int c, int e) //생성자로 항을 초기화
{
next = NULL;
data = new Data(c,e);
}
};
class polynomial{
public:
bool checking(char*);
//예외처리 함수. 스트링으로 입력된 식이 다항식꼴인지 판독한다.
bool IsNumber(char);
//스트링으로 입력된 다항식에 문자가 포함되어있는지 확인하는 함수
void analysis(char*);
//스트링으로 입력된 다항식을 분석하여 링크드리스트로 항을 생성한다.
void setTerm(int,int); //항을 생성하는 함수
polynomial operator + (const polynomial &b) const;
//다항식의 덧셈 연산자 오버로딩.
polynomial operator - (const polynomial &b) const;
//다항식의 뺄셈 연산자 오버로딩.
polynomial operator * (const polynomial &b) const;
//다항식의 곱셈 연산자 오버로딩.
void sMultPoly(int c, int e); //다항식의 단항 곱셈함수
double evaluate(double x); //evaluate함수이다.
double power(int x, int n); //^n승을 계산하는 함수
friend ostream & operator<<(ostream &out, polynomial poly);
//출력 연산자 오버로딩
friend istream & operator>>(istream &in, polynomial &poly);
//입력 연산자 오버로딩
polynomial() // 생성자
{
head = new Term(0,-1); //head와 tail은 존재하지만
tail = new Term(0,-1); //실제로는 사용하지 않을 값들이다.
head->next = tail; //모든 원소는 head와 tail사이에 존재한다.
tail->next = head; //즉, head와 tail은 논리적으로는 존재하지 않는 값.
av = new Term(0,-1);//가용공간리스트의 조작을 위한 Term형 포인터변수
av->next = av; //자기자신을 포인팅하는 원형을 이룸
}
Term* GetTerm(); //사용할 항을 제공하는 함수
void RetTerm(Term* x); //x가 가리키는 항을 해제하는 함수
private:
Term *head, *tail, *walker1, *walker2, *new_walker, *av;
};
참고 자료
없음