*병*
Bronze개인
팔로워0 팔로우
소개
등록된 소개글이 없습니다.
전문분야 등록된 전문분야가 없습니다.
판매자 정보
학교정보
입력된 정보가 없습니다.
직장정보
입력된 정보가 없습니다.
자격증
  • 입력된 정보가 없습니다.
판매지수
전체자료 3
검색어 입력폼
  • 성적관리프로그램
    #include#include#include#include//함수들을 명시struct name_grade {char *name;int grade;struct name_grade *link;};//학생 이름과 성적을 저장하는 자기 참조 구조체 정의int temp = 1;struct name_grade * insertNewElement(struct name_grade * header);//새로운 구조체를 동적으로 생성(malloc 또는 calloc 함수 사용)한다.//새로 생성된 구조체에 키보드로부터 학생의 이름와 점수를 입력받아 저장한다.//새로운 구조체를 파라미터로 넘겨 받은 리스트의 첫 부분에 추가한다.//새로운 원소의 삽입이 성공하면 리스트의 현재 원소의 수를 출력한다.//구조체가 추가된 리스트의 헤더 정보를 반환한다.//precondition(struct name_grade * deleteElementBasedName(struct name_grade * header, char* name);//기존 리스트에서 특정 이름을 가진 원소를 모두 삭제한다.//기존 리스트와 삭제할 원소의 이름을 파라미터로 받는다.//삭제가 완료되면 삭제된 원소의 수를 출력하고 수정된 히스트의 헤더 정보를 반환한다.struct name_grade * deleteElementBasedGrade(struct name_grade * header, int grade);//기존 리스트에서 특정 점수를 가진 원소를 모두 삭제한다.//기존 리스트와 삭제할 원소의 점수를 파라미터로 받는다.//삭제가 완료되면 삭제된 원소의 수를 출력하고 수정된 리스트의 헤더 정보를 반환한다.void printList(struct name_grade * header);//기존의 원소의 정보를 순서대로 출력한다.struct name_grade * sortByName(struct name_grade * header);//기존의 리스트를 이름을 기준으로 오름차순으로 정렬한다.//정렬된 리스트의 헤더를 반환한다.//정렬은 형 변수 선언struct name_grade *HEADER = NULL; //구조체 포인터 변수 HEADER 를 널로 초기화char dname[30];//문자형 배열 이름 값int dgrade = 0;//성적 값while(1){printf("----------------MENU-----------------n");printf("* 1.Insert New Element *n");printf("* 2.Delete Element Based Name *n");printf("* 3.Delete Element Based Grade *n");printf("* 4.Sort by Name *n");printf("* 5.Sort by Grade *n");printf("* 6.print List *n");printf("* 7.Exit *n");printf("*************************************n");printf("숫자 입력 : ");scanf("%d",&ch);//입력switch(ch){case 1:HEADER = insertNewElement(HEADER);break;//성적과 이름을 입력case 2:printf("삭제할 이름 : ");scanf("%s", dname);HEADER = deleteElementBasedName(HEADER,dname);break;//이름을 삭제case 3:printf("삭제할 성적 : ");scanf("%d",&dgrade);HEADER = deleteElementBasedGrade(HEADER,dgrade);break;//성적을 삭제case 4:HEADER = sortByName(HEADER);;break;//링크를 이용한 이름 정렬case 5:HEADER = sortByGrade(HEADER);;break;//링크를 이용한 성적 정렬case 6:printList(HEADER);break;//입력된 값들을 출력case 7: return 0;default: printf("nn1~7의 숫자를 누르십printf("성적 : ");scanf("%d",&igrade);Element->name = (char *) malloc( strlen(iname) + 1);//Element가 가리키는 곳의 name 값의 크기를 입력받은 이름의 크기만큼 할당.+1은 널값strcpy(Element->name,iname);//Element가 가리키는 name에 입력받은 값 저장Element->grade=igrade;//grade 에 입력값 저장Element ->link = header;//구조체 Element의 링크값을 header로 포인터header=Element;//header 에 Element 값을 넣어준다.while(header != NULL)//header가 널이 아닐 동안{header=header->link;//해더의 링크를 이동한다.temp++;//증가치}printf(" total element : %dn", temp);//헤더가 이동하면 널이 오기 전까지는 입력된 구조체 값들이므로 그 수치를 출력한다.return Element; // 값 반환}struct name_grade * deleteElementBasedName(struct name_grade * header, char *name)//함수 정의{struct name_grade * prv = header;//새로운 구조체 변수 prv에 header 값을 넣어준다.struct name_grade * node = header;// **int count = 0;//지운 갯수를 카운트 하기 위한 변수while(node != NULL)// 구조체 변수 node 가 널이 아닌 동안{if(strcmp(node->name,name)==0)//node가 포인터처하는 name과 입력받은 name의 데이터 값이 같은지 비교{if(prv = node)//참{header=node->link;//header에 node의 링크가 포인터 하는 곳을 포인터한다.free(node);// node 메모리 해제node = header;//nod);//지운 총 갯수return header;// 값 반환}struct name_grade * deleteElementBasedGrade(struct name_grade * header,int grade)//함수 정의{struct name_grade * prv = header;//새로운 구조체 포인터 변수 prv에 해더값 포인터.struct name_grade * node = header;//새로운 구조체 포인터 변수 node에 해더값 포인터.int count = 0; //지운 갯수를 위한 변수while(node != NULL){if((node->grade)==grade)//정수형이기 때문에 strcmp를 안쓴다. 그냥 비교{if(prv = node)//참{header=node->link;//header에 node의 링크가 포인터 하는 곳을 포인터한다.free(node);// node 메모리 해제node = header;//node에 header값prv = header;//prv에 header 값count++; //지운 갯수를 카운트}else{ //거짓prv->link = node->link;//prv가 링크하는 곳을 node가 링크하는 곳으로 포인터 해준다.free(node);//node 메모리 해제node = prv->link; // node에 prv의 링크가 포인터 하는 곳을 포인터한다.count++;// 지운 갯수 카운트}}else//거짓{node = node->link;//지울 것이 없기에 node의 포인터를 옮겨준다.}}printf("All Delete Element : %dn",count);// 지운 총 갯수return header;// 값 반환}void printList(struct name_grade * header)//함수 정의{while(header != NULL)//구조체의 끝인 널까지..{printf("name : %sn", header->name);//이름 출력printf("grade : %dnn", header->grade); 0;//for문 루프용 변수(버블)int j = 0;//for문 루프용 변수(버블)if(node == NULL)//정보가 없을 경우{printf("NO INPUT DATAn");return 0;// 메뉴로 리턴.}while(node != NULL)//정보의 개수를 알기 위해{node = node -> link;//node를 널까지 이동num++;}if(num == 1)//정보가 하나 뿐일때 출력{printList(header);return header;//정보가 있기 때문에 header값 반환}node = header;//위에서 node는 널까지 갔기 때문에 처음으로 보낸다.for(i=0; i < num-1; i++)//버블 포문. 큰 범위{for(j=0; j < num-i-1; j++)//버블 포문. 작은 범위{if( (strcmp(node->name, node->link->name)) > 0 )//구조체에 있는 이름과 입력받은 이름 데이터 크기 비교{if(header == node)// 제일 앞부분 정렬 , 참{header = node->link;//해더를 노드가 포인터 하는 구조체의 링크가 포인터 하고 있는 곳을 포인터 하게 한다.node->link = header -> link;//노드가 가르키는 링크가 해더가 가르키는 링크를 포인터하게한다.header->link = node;//해더가 가르기는 링크가 노드를 포인터 하게 한다.prv = header;}else{temp = node->link;//temp를 node가 link하는 곳을 포인터.node->link = temp->link;//node 의 link가 temp의 link가 포인터 하는 곳을 포인터.prv->link=temp;//prv의 link를 temp로 포인터temp->link = node;//temp의 link를 node로 포인터prv = temp;//temp = NULL;// temp NULL로 초기화}}else{prv = node;//링크를 이동node = node->link;//링 삽입
    프로그램소스| 2010.07.27| 2,000원| 조회(647)
    미리보기
  • 미로 프로그램
    C++ 입니다.미로를 탈출하는 로봇을 만든 프로그램입니다.각각은 클래스로 구성하였습니다.또한 로봇은 자신이 지나온 길을 기억하도록 스택을 이용하였습니다.실행은 좌표의 이동으로만 하였고 유저는 좌표로 로봇의 움직임을 알수 있습니다.미로 이미지까지는 만들지 못했네요.
    프로그램소스| 2010.07.27| 2페이지| 2,000원| 조회(268)
    미리보기
  • BFS & DFS
    C++ 입니다.행렬을 인접리스트로 표현하여BFS는 큐를 이용하고 DFS는 재귀를 이용하였습니다.
    프로그램소스| 2010.07.27| 2,000원| 조회(704)
    태그 BFS, dfs
    미리보기
전체보기
해캠 AI 챗봇과 대화하기
챗봇으로 간편하게 상담해보세요.
2026년 04월 25일 토요일
AI 챗봇
안녕하세요. 해피캠퍼스 AI 챗봇입니다. 무엇이 궁금하신가요?
9:11 오전
문서 초안을 생성해주는 EasyAI
안녕하세요 해피캠퍼스의 20년의 운영 노하우를 이용하여 당신만의 초안을 만들어주는 EasyAI 입니다.
저는 아래와 같이 작업을 도와드립니다.
- 주제만 입력하면 AI가 방대한 정보를 재가공하여, 최적의 목차와 내용을 자동으로 만들어 드립니다.
- 장문의 콘텐츠를 쉽고 빠르게 작성해 드립니다.
- 스토어에서 무료 이용권를 계정별로 1회 발급 받을 수 있습니다. 지금 바로 체험해 보세요!
이런 주제들을 입력해 보세요.
- 유아에게 적합한 문학작품의 기준과 특성
- 한국인의 가치관 중에서 정신적 가치관을 이루는 것들을 문화적 문법으로 정리하고, 현대한국사회에서 일어나는 사건과 사고를 비교하여 자신의 의견으로 기술하세요
- 작별인사 독후감