본문 바로가기

C++

C++ 코딩 - 이자 계산 - 이자가 0으로 나와요 코드한건데 이자가 추가가안되네요 ㅜㅜ /연산자가 /100한걸 정수단위로 짤라서 그런가하고 더블자료형으로 소수로 이자해봣는데도 안되네요... 왜이자가안나올까요 잘못된 이유는 다음과 같습니다. ○ Virtual 함수 선언 / 사용에 대해서 다시 확인하세요. Virtual은 상속 하는 상위 클래스에 선언합니다. ○ Int형 변수에 10/100을 넣으니 0이 되고, 이 때문에 이자 계산이 0이 됩니다. 수정된 코드는 아래와 같습니다. #include #include using namespace std; const int NAME_LEN = 20; void ShowMenu(void);//메뉴출력 void MakeAccount(void);//계좌생성 void InsertMoney(void);//입금 void Ext.. 더보기
사전 순으로 단어 정렬하기 문제 : 사전순으로 단어를 생성하여 N 번째 올 단어를 찾아라 ● 특정 문자열이 주어지고 이 문자열 안에 포함된 단어들을 사전순으로 정렬하라. 그리고 주어진 N 번째 오는 단어가 무엇인지 구하라. 단, 문자열의 최대 길이는 1,000 이고, 모두 소문자 알파벳으로만 되어 있다.중복되는 단어는 한 단어로 생각한다. 시간제한이 있다. (빠를 수록 점수가 높다, 1초가 넘으면 실패) ● 사전순이란 것은 알파벳 a ~ z 까지 단어를 정렬하는 것을 의미한다. ● 예를 들어, melon 이란 문자열이 주어졌을 때, 7번째 오는 단어를 구하라. melon 안에 포함된 단어를 사전순으로 정렬하면 다음과 같다. 1 : e2 : el3 : elo4 : elon5 : l6 : lo7 : lon8 : m9 : me10 : .. 더보기
9장 Programming 1. 은행계좌 ※ 아 이건 문제가 좀 거지 같네요. Virtual 함수 쓰는 법 연습인 건 알겠지만, 문제 정의도 별로고... 실제 테스트 시나리오도 너무 부실하게 기술되어 있고... 좀더 문제가 이해하기 쉬웠으면 좋겠습니다. 결국, 제 맘대로 해버렸다는... 에서 cout으로 출력할 대, float 계산 결과의 소수점 맞추는 것도 마음에 안드네요. 이건 c의 stdio의 fprinf 같은 것 이용해야 깔끔합니다. ● BankAcct.h #ifndef __BACKACCT_H__ #define __BACKACCT_H__ #include #include class BankAcct { protected: int money; public: BankAcct(); ~BankAcct(); void deposit(int v_mone.. 더보기
Programming 08-07 (p.338) 클래스 설계 Student.h #include #include using namespace std; class Student { protected: string name;//이름 string id;//학번 string major;//전공 unsigned int grade;//학년 unsigned int credit;//학점 public: Student(); ~Student(); }; Student::Student() { /* Do nothing */ } Student::~Student() { /* Do nothing */ } graduate.h class Graduate:private Student { private: string assistant;//조교 float scholarship;// 장학금 public: .. 더보기
C++ Espresso 에스프레소 by 천인국 에 관한 Technical Review 및 과제 등록 게시판 입니다 C++ 책을 졸업하고 몇년만에 다시 훝어보고 있습니다. 그동안의 짬밥이 헛된 것이 아니기를 바라며, 책의 내용에 대한 궁금증들에 대한 답을 스스로 해보려고 합니다. 우선은 Technical한 부분에 치중을 하겠지만, 중간에 재미있는 과제들이 보인다면 그에 대한 해답도 가끔 올라갈 것입니다. 사실, 과제 위주로 하고 싶은 마음도 크지만, 블로그에 소스코드를 보기좋게 올리는 것이 생각보다 쉽지 않아서 - Syntax highlighting이 제대로 지원되지 않아, 캡춰 후 이미지로 올려야 웹에서 보기 좋습니다 - 좀 고민이 되고 있습니다. 새로 PC를 산 뒤에 아직 빌드 환경을 깔지 않은 것이 두번째 이유 입니다. 귀찮다고 여기는건데, 영 좋지 않습니다. 퇴근 후 잠깐잠깐 할까 했으나, 이미 잘시간이 되어갑.. 더보기
객체지향적으로 생각하라 - 맷 와이스펠드 객체지향적으로 생각하라!국내도서>컴퓨터/인터넷저자 : 맷 와이스펠드(Matt Weisfeld) / 배선종역출판 : 정보문화사 2009.05.07상세보기 Object Oriented Programing 을 공부하기 전에 필독할 만한 책 오늘날 프로그래밍의 주류언어로 자바(Java)가 각광을 받으면서, 대부분의 학교에서도 Java를 가르치고 있다. 자바와 C++을 공부하는데 있어서 C의 포인터 만큼이나 넘기 어려운 부분이 있다면, 객체지향(Object Oriented)의 개념을 이해하고, 설계에 적용하는 부분일 것이다. 어떠한 문제를 해결하기 위한 프로그래밍 방법은 수십가지가 있겠지만, 객체지향의 이념을 잘 살려서 우수한 설계와 구현을 하는 것은 결코 쉬운일이 아니다. 특히나 학부 레벨에서 관련된 내용을 배.. 더보기
Project 9-67 Euclid's method to get the Greate commom divisor and the Least common muliple 유클리드 소거법으로 최대공약수, 최소공배수 구하기 //============================================================================ // 제출일 : 2005. 4. 12 // 작업환경 : Windows XP SP1, VC++ 6.0, Pentium4 // 연습문제 9-67 //============================================================================ #include int get_gcd(int a, int b); //recursive fuction int main() { int gcd; int a, b; cout > a; cout > b; gcd = get_gcd(a, b); cout 더보기
Project 4-41 Create customers' bills 영수증 발행 //============================================================================ // 제출일 : 2005. 3. 12 // 작업환경 : Windows XP SP1, VC++ 6.0, Pentium4 // 연습문제 4-41 // : Call by Reference를 사용하기 위하여 메인함수에 값을 받아오는 함수를 // 추가하였습니다. 클래스 구조를 사용할 경우 굳이 사용할 필요는 없습니다만 // 주어진 조건에 충실하기 위하여 추가하였습니다. //============================================================================ #include #include #define LABOR 0.35 .. 더보기
Project 4-40 Random number 랜덤 //============================================================================ // 제출일 : 2005. 3. 12 // 작업환경 : Windows XP SP1, VC++ 6.0, Pentium4 // 연습문제 4-40 //============================================================================ #include #include #include #include int main() { float number; int rand_num; float product; //Process No. cout > number; //2 cout 더보기
Project 4-39 Temperature convertor : Fathrenheit VS Centigrade 온도변환기 : 화씨 섭씨 //============================================================================ // 제출일 : 2005. 3. 12 // 작업환경 : Windows XP SP1, VC++ 6.0, Pentium4 // 연습문제 4-39 //============================================================================ #include void C2F(float input) //썹씨를 화씨로 고치는 함수 { float output; output = 32 + input*(180/100); //변환식 cout 더보기
Project 4-38 Compute the interest and print the balance //============================================================================ // 제출일 : 2005. 3. 12 // 작업환경 : Windows XP SP1, VC++ 6.0, Pentium4 // 연습문제 4-38 //============================================================================ #include #include #include #include #include float calc(float input); //이자의 계산 void print(float input); //출력 int main() { float begining_balance; cout > begining.. 더보기
Project 4-37 Prepare a payroll earnings statement //============================================================================ // 제출일 : 2005. 3. 12 // 작업환경 : Windows XP SP1, VC++ 6.0, Pentium4 // 연습문제 4-37 // data.txt로 부터 세일즈맨의 정보를 읽어와 처리함 //============================================================================ #include #include #include #include #include class Salesperson { public: Salesperson(); //Default 생성자 ~Salesperson(); //소멸자 voi.. 더보기
Problem 4-35 print the ceiling, floor, and rounded value of a floating-point number //============================================================================ // 제출일 : 2005. 3. 12 // 작업환경 : Windows XP SP1, VC++ 6.0, Pentium4 // 연습문제 4-35 //============================================================================ #include #include float round(float num); int main() { float num; cout > num; cout 더보기
Problem 4-33 Modify the "Add two digit" grogram //============================================================================ // 제출일 : 2005. 3. 12 // 작업환경 : Windows XP SP1, VC++ 6.0, Pentium4 // 연습문제 4-33 //============================================================================ #include //using namespace std; // Prototype Declarations int addThreeDigits (int num); int firstDigit (int); int secondDigit (int); int thirdDigit (int); int ma.. 더보기
Stack calculator #5 - Infix - Postfix translation using Stask structure 첫번째 프로젝트 - Stack Calculator 05 Here is tips and How to make executive file. 몇가지 tip을 먼저 씁니다. makefile a.out : node.o que_handler.o main.o g++ -o a.out node.o que_handler.o main.o node.o : node.h node.cpp g++ -c node.cpp que_handler.o: que_handler.h que_handler.cpp g++ -c que_handler.cpp main.o : main.cpp main.h g++ -c main.cpp g++을 사용할 경우 - linux 에서 코딩할 경우에 사용합니다. 여러개의 파일로 나누어 작업한 파일을 합쳐서 컴파일 및 .. 더보기
Stack calculator #4 - Infix - Postfix translation using Stask structure 첫번째 프로젝트 - Stack Calculator 04 Here is Stack. very simple one. 이번에는 stack 입니다. 매우 단순합니다. templet 를 쓰는 경우가 많은데, 그냥 쉽게 만들었습니다. 물론, 연산자의 프라이어리티도 무시 입니다. -_-;; 스택은 두 가지 입니다. 잘 보시기를.. /////////////////////////////////////////////////////////////////////////////// // File Name : stack.h // // Date : 2004 / 10 / 8 // // Compiler : g++ // // OS : Red Hat Linux 7.1 // //----------------------------------.. 더보기
Stack calculator #3 - Infix - Postfix translation using Stask structure 첫번째 프로젝트 - Stack Calculator 03 Here is File I/O function 이번에는 file I/O 입니다. 간단하죠. /////////////////////////////////////////////////////////////////////////////// // File Name : file.h // // Date : 2004 / 10 / 8 // // Compiler : g++ // // OS : Red Hat Linux 7.1 // //----------------------------------------------------------------// // Etc : Data Strucure Assignment #1 // // Stack Calculator // //.. 더보기
Stack calculator #2 - Infix - Postfix translation using Stask structure 첫번째 프로젝트 - Stack Calculator 02 Here is Main function. main함수 코드는 다음과 같습니다. /////////////////////////////////////////////////////////////////////////////// // File Name : main.h // // Date : 2004 / 10 / 8 // // Compiler : g++ // // OS : Red Hat Linux 7.1 // //----------------------------------------------------------------// // Etc : Data Strucure Assignment #1 // // Stack Calculator // // ver : .. 더보기
Stack calculator #1 - Infix - Postfix translation using Stask structure Stack을 이용하여 infix 수식을 posfix 로 바꾸는 프로그램. 많이들 하는 것이고... 소스도 엄청 많고 공개된 알고리즘들도 많이 있음. 교과서에도 실려있으니... 그럼에도 불구하고... 많은 학생들이 애를 먹는 문제. 내 경우에는 어떠한 알고리즘을 구현하기 전에 손으로 충분한 문제를 풀어봅니다. 어떤 공통된 패턴 내지는 사고의 흐름만 찾아내면 프로그램으로 구현하는 것은 그리 어렵지 않기 때문이죠. 이번 프로그램 같은 경우, 조건의 제한이 ( ) * / - + 로 단순했기 대문에 다른 알고리즘 들보다 훨씬 단순한 알고리즘을 만들어 사용했습니다. 우선 입력과 출력 부터 봅시다. 입력과 출력은 모두 파일로 합니다. 입력 : infix A+B C-D E*F G/H (A*B*C/D)+(E*F+(G*H.. 더보기
A mouse in the Maze : 미로찾기 //========================================================= // 날짜 : 2005. 6. 18 // File : maze.h //========================================================= #include #include #include #include #define MAXX 13 #define MAXY 17 int maze[MAXX][MAXY] = { {1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1}, {1,0,1,0,0,0,1,1,0,0,0,1,1,1,1,1,1}, {1,1,0,0,0,1,1,0,1,1,1,0,0,1,1,1,1}, {1,0,1,1,0,0,0,0,1,1,1,1,0,0,1,1,1}, .. 더보기
Simple Linked List (practice) #include #include #include typedef struct Node { int num; char data[80]; struct Node *next; } Node; // 전역변수 Node head; void add_node (int num, char *data) { Node *here = &head; Node *temp; temp = malloc(sizeof (Node)); temp->num = num; strcpy(temp->data, data); temp->next = NULL; while(here->next) { if (here->num num) { if (!here->next) { here->next = temp; return; } else if (here->next->num > t.. 더보기