*세*
Bronze개인
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 14
검색어 입력폼
  • 바퀴벌레
    가로와 세로 크기를 입력받아바퀴벌레가 이동한 타일의 횟수와이동하는데 걸린 시간을 산출해내는 프로그램 입니다.
    프로그램소스| 2010.04.06| 1,000원| 조회(194)
    미리보기
  • 연결리스트로 구현한 주소록 평가D별로예요
    #include #include #define NAME_LEN 10#define NUM_LEN 15#define ADD_LEN 50#define SPARE 20#define FILE_NAME "address.txt"using namespace std;struct node{char *name; //이름값을 저장할 포인터char *num; //번호값을 저장할 포인터char *address; //주소값을 저장할 포인터node* next; //노드의 앞을 가르키는 포인터};class List{private:node *head; //리스트의 처음을 가르키는 포인터public:List(); //클래스의 생성자~List(); //클래스의 소멸자void menu(); //처음 메뉴 출력void insert(char *, char *, char *); //데이터 추가void search(); //데이터 검색void remove(node *data); //노드 삭제void remove(void); //삭제할 노드 검색void remove_all(); //모든 데이터 삭제void change(node *data); //데이터 수정void print(); //자로 모두 출력void save(); //자료 저장void load(); //자료 불러오기};int main(void){List list;list.menu(); //메뉴 출력return 0;}List::List() //List Class의 생성자{head = new node; //head를 동적 할당head->next = NULL; //head의 next는 비어있음}List::~List(){remove_all(); //동적할당된 모든 메모리 해제delete head; //head 해제}void List::remove_all() //List Class의 소멸자{node* temp;while(head->next != NULL){ //모든 노드 deletetemp = head;head = head->next;delete temp;}stdin);cout < "Name : "; //정보를 입력 받음cin.getline(name, NAME_LEN);cout < "Num : ";cin.getline(num, NUM_LEN);cout < "Address : ";cin.getline(address, ADD_LEN);insert(name, num, address); //입력받은 데이터 추가break;case '2' : remove();break;case '3' : remove_all();break;case '4' : search();break;case '5' : print();break;case '6' : save();break;case '7' : load();break;case '8' : exit(1);default :cout < "잘못 입력하셨습니다." < endl;break;}}}void List::insert(char *name, char *num, char *address){node *new_node = new node; //입력받을 데이터를 저장할 노드node *temp1, *temp2; //노드 위치를 찾기위해 사용하는 노드포인터new_node->name = new char[strlen(name)+1];strcpy(new_node->name, name);new_node->num = new char[strlen(num)+1];strcpy(new_node->num, num);new_node->address = new char[strlen(address)+1];strcpy(new_node->address, address);for(temp1 = head->next, temp2 = head; ; temp1 = temp1->next){if(temp1 == NULL) //처음 입력하는 자료일 때break;else if(strcmp(temp1->name, name) == 0 && strcmp(temp1->num, num) == 0 && strcmp(temp1->address, address) == 0cout < "Name : ";cin.getline(name, NAME_LEN);cout < "Num : ";cin.getline(num, NUM_LEN);cout < "Address : ";cin.getline(address, ADD_LEN);node *temp;for(temp = head->next; ; temp = temp->next){if(temp == NULL){cout < "입력하신 데이터가 존재하지 않습니다." < endl;return;}if(strcmp(name, temp->name) == 0 && strcmp(num, temp->num) == 0 && strcmp(address, temp->address) == 0){remove(temp);return;}}}void List::change(node *data){char name[NAME_LEN], num[NUM_LEN], address[ADD_LEN];cout < "데이터를 입력해 주세요." < endl;fflush(stdin);cout < "Name : ";cin.getline(name, NAME_LEN);cout < "Num : ";cin.getline(num, NUM_LEN);cout < "Address : ";cin.getline(address, ADD_LEN);remove(data); //수정할 데이터 삭제insert(name, num, address); //수정된 데이터 추가}void List::print() //데이터 출력{node *temp = head->next;cout < "*-----------*-----------------*----------------------------------------------------*" < endl;cout < "| Name | Num | Address |" < endl;cout < "*===========*=================*====================================================*" < 전단계로 |" < endl;cout < "*-------------*" < endl;char menu;cout < "번호를 입력하세요 : ";fflush(stdin);cin >> menu;char tmp[ADD_LEN];node *spare[SPARE];node *temp;int index = 0;switch(menu){case '1' :cout < "Name : ";fflush(stdin);cin.getline(tmp, NAME_LEN);for(temp = head->next; temp != NULL; temp = temp->next){if(strstr(temp->name, tmp))spare[index++] = temp;}break;case '2' :cout < "Num : ";fflush(stdin);cin.getline(tmp, NUM_LEN);for(temp = head->next; temp != NULL; temp = temp->next){if(strstr(temp->num, tmp))spare[index++] = temp;}break;case '3' :cout < "Address : ";fflush(stdin);cin.getline(tmp, ADD_LEN);for(temp = head->next; temp != NULL; temp = temp->next){if(strstr(temp->address, tmp))spare[index++] = temp;}break;case '4' :return;default :cout < "잘못 입력하셨습니다." < endl;break;}if(index == 0){cout < "검색하신 데이터가 없습니다." < endl;}else{cout < "*-----*-----------*-----------------*----------------------------------------------------*" < endl;cout < "| No. | Name | Num | Address |" < endl;cout < "*--------*" < endl;cout < "| 1. 수 정 |" < endl;cout < "| 2. 선택삭제 |" < endl;cout < "| 3. 전체삭제 |" < endl;cout < "| 4. 전단계로 |" < endl;cout < "*-------------*" < endl;cout < "번호를 입력해주세요 : ";fflush(stdin);cin >> menu;int select;switch(menu){case '1' :cout < "원하시는 데이터의 번호를 입력해주세요 : ";fflush(stdin);cin >> select;if(select > index || select < 1)cout < "잘못 입력하셨습니다." < endl;else change(spare[select-1]);break;case '2' :cout < "원하시는 데이터의 번호를 입력해주세요 : ";fflush(stdin);cin >> select;if(select > index || select < 1)cout < "잘못 입력하셨습니다." < endl;else remove(spare[select-1]);break;case '3' :for(i = 0; i < index; i++)remove(spare[i]);return;case '4' :return;default :cout < "잘못 입력하셨습니다." < endl;break;}}}}}void List::save(){FILE *ifp;node *temp;char file[20];cout < "저장할 파일 : ";fflush(stdin);cin.getline(file, 20);if(strlen(file) == 0)ifp = fopen(FILE_NAME, "w"); //파일을 염else ifp = fopen(file, "w");if(ifp == NULL){cout < "파일 열기 실패" < endl;return;}for(temp = head->next; temp != NULL; temp = temp->next)fprintf(ifp,fp);
    프로그램소스| 2010.04.06| 1,500원| 조회(341)
    미리보기
  • 중위 후위 수식 계산기 평가A+최고예요
    #include #include //pow() 함수를 위해 추가#define MAX_SIZE 100 //수식의 길이#define STACK_SIZE 50 //스택의 길이using namespace std;class Calc{private:double result; //결과값char Infix[MAX_SIZE]; //중위수식char Postfix[MAX_SIZE]; //후위수식public:void getInfix(void); //중위수식을 입력받음void show(void); //수식 및 결과 출력void IntoPostfix(void); //중위수식을 후위수식으로 변형int calculate(void); //후위수식을 계산int priority(char); //우선순위 판단};class Stack{private:int top; //스택의 topdouble data[STACK_SIZE]; //자료를 push해 놓을 배열public:Stack();bool Empty(); //스택이 비어있는지 검사void push(double data); //스택에 자료를 저장double pop(); //스택에서 자료를 꺼내옴double topData(); //스택의 최상위 자료를 리턴};int main(void){Calc cal;while(1){cal.getInfix(); //중위수식을 입력받음cal.IntoPostfix(); //입력받은 중위수식을 후위수식으로 변환cal.calculate(); //변환된 후위수식을 계산cal.show(); //수식들과 계산결과를 출력}return 0;}/////////////////////////// Calc /////////////////////////////중수식을 입력받음void Calc::getInfix(void){cout < "수식을 입력해 주세요(종료 : exit) : ";cin.getline(Infix, MAX_SIZE);int i = 0;while(Infix[i] != NULL) //white charater 제거{if(Infix[i] == ' ' || Infix[i] == 't')strcpy(Infix+i, Infix+i+1);else i++;}if(!strcmp(Infix, "exit")) //exit 입력시 프로그램 종료{cout < "계산기를 종료합니다." < endl;exit(1);}}//수식들과 계산결과를 출력void Calc::show(void){cout < "입력받은 중위수식 : " < Infix < endl;cout < "변환된 후위수식 : " < Postfix < endl;cout < "결과 값 : " < result < endl < endl < endl;}//입력받은 중위수식을 후위수식으로 변환void Calc::IntoPostfix(void){Stack stack;bool isNum = true; //숫자이면 true, 연산자이면 falsechar tmp;char opr;int idx = 0;for(int i = 0; Infix[i] != NULL; i++){tmp = Infix[i];switch(tmp){case '(' :stack.push(tmp);break;case ')' :while((opr = stack.pop()) != '('){Postfix[idx++] = ' ';Postfix[idx++] = opr;}break;case '+' :case '-' :case '*' :case '/' :case '%' :case '^' :isNum = false;while(!stack.Empty() && (priority(stack.topData())
    프로그램소스| 2010.04.06| 1,500원| 조회(546)
    미리보기
  • 외판원 문제
    Traveling Salesman Problem
    프로그램소스| 2010.04.06| 1,500원| 조회(737)
    미리보기
  • dijkstra 알고리즘
    #include#include#define x 100000void dijkstra();int touch[5]; // 최단거리상에서 현재 노드의 바로 전 노드 indexint length[5]; // touch에서 현재 노드까지의 최단거리int F[5][5]; // 최단거리 pathint y[5] = {-1,-1,-1,-1,-1}; // 최단거리 경로상에 놓여있는 이음선의 집합int weight[5] = {-1,-1,-1,-1,-1}; // 가중치int y_index = 0;int f_index = 0, f_num = 0;int max_f_num = 2;int i, j = 0;int linked_pointer;int snode = 0; // start nodeint vnear = 0;int w[5][5]={ {x, 7, 4, 6, 1},{x, x, x, x, x},{x, 2, x, 5, x},{x, 3, x, x, x},{x, x, x, 1, x} };void main(){for(int z = 0 ; z < 5 ; z++) // F배열 초기화for(int y = 0 ; y < 5 ; y++){F[z][y] = -1;}printf("시작하고자 하는 정점을 선택하시오(0,1,2,3,4): ");scanf("%d", &snode);printf("n");if( (0 > snode) || (snode >= 5) ){printf("정의되지 않은 정점입니다. 다시선택하십시오. n");exit(0);}elsedijkstra();}void dijkstra(){y[y_index] = snode;F[f_index][f_num] = snode;// 최단거리 table 초기화for(i = 0 ; i < 5 ; i++){if(i != snode) // v0 으로부터의 현재 최단거리에서 v0을 마지막 정점으로 초기화{ // 그 최단거리의 길이를 v0부터의 이음선의 가중치로 초기화touch[i] = snode;length[i] = w[snode][i];}else{touch[i] = snode;length[i] = x;}}for(int repeat = 0 ; repeat < 4 ; repeat++) // n-1개의 정점들을 노드집합과 연결{int min = x;for(i = 0 ; i < 5 ; i++) // 각 정점들이 최단 거리를 갖는지 체크if(length[i] < min){min = length[i];vnear = i;linked_pointer = touch[i];}if(min == x) // 더이상 갈수있는 노드가 없을 경우break;if(vnear != y[y_index]) // 시작한 정점이 모든 정점을 가지 못할 경우를 고려y[++y_index] = vnear;weight[vnear] = min;if(snode == linked_pointer){if(f_index == 0) // 첫번째 최단거리 경로일 경우 위에서 초기화 해주었기때문F[f_index++][++f_num] = vnear;else{f_num = 0;F[f_index][f_num++] = linked_pointer;F[f_index][f_num] = vnear;}}else{for(i = 0; i
    프로그램소스| 2010.04.06| 1,500원| 조회(425)
    미리보기
전체보기
받은후기 3
3개 리뷰 평점
  • A+최고예요
    2
  • A좋아요
    0
  • B괜찮아요
    0
  • C아쉬워요
    0
  • D별로예요
    1
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 04월 23일 목요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
12:07 오후
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감