# include & ltstdio.h & gt
# include & ltmalloc.h & gt
# include & ltstdlib.h & gt
# include & ltstring.h & gt
# include & ltconio.h & gt
Typedef 구조 검사//후보자 정보 구조
{? Char exampno [20]; //수증번호
문자 이름 [10]; //이름
Charsex [4]; //성별
나이가 어리다 //나이
Char examtype [10]; //응시과목
} ElemType
Typedef 구조 노드//연결된 목록 노드를 정의합니다.
{
요소 유형 데이터 //데이터 필드
구조 노드 * next// 포인터 필드
} 노드, * 목록, * 위치;
Listmake _ empty (목록 l); //선행 노드가 있는 빈 테이블을 작성합니다.
Int 는 _ empty (목록 l); //연결된 목록이 비어 있는지 테스트합니다.
Int 는 _last (위치 p, 목록 l) 입니다. //현재 위치가 바닥글인지 테스트합니다.
Positionmake _ node (위치 p, int n); //노드를 만들고 후보자 정보를 입력하십시오.
Void put_information (위치 p); //후보자에 대한 정보를 출력하시겠습니까?
Void put_name_information (목록 l); //이름이 xx 인 후보자 정보를 출력합니다.
Int put_pos_information (위치 p); //이 주소에 후보자 정보를 출력합니다.
Void link_to_tail (목록 l, 위치 p); //바닥글에 노드 연결
Intci culation _ make (); //루핑하여 수험생 정보를 만듭니다.
Intjudge _ put _ all (); //모든 후보자에 대한 정보 출력 여부
Voidput _ all (목록 l); //모든 후보자에 대한 정보를 출력합니다.
위치 찾기 (목록 l); //xx 라는 첫 번째 요소를 찾아 위치를 반환합니다.
위치 find_previous (목록 l); //첫 번째 이름이 xx 인 요소를 찾아 바로 앞 위치를 반환합니다.
//intjudge _ delete _ val (); //후보자 데이터 삭제 여부를 묻습니다.
Intdelete _ val (목록 l); //지정된 후보자에 대한 정보를 삭제하고 출력합니다.
Void 메뉴 (목록 l); //메뉴 기능
목록 l;
//위치 p;
(Internationalorganizations 와 동일) 국제기구
메인 (void)?
{
List L = NULL// 헤드 노드 포인터 정의
위치 p = null; //양식 작업 포인터 정의
L = make _ empty (l); //빈 테이블 만들기
Printf ("\ t \ t \ t \ t \ t \ \ \ \ n 후보자 등록 관리 절차 \ n \ t \ t-.
메뉴 (왼쪽);
0 을 반환합니다
}
//선행 노드가 있는 빈 테이블을 작성합니다.
카탈로그
Make_empty (목록 l)
{
L = (list) malloc (sizeof (node));
If(NULL == L)
{
Printf ("메모리 할당 실패");
종료 (1);
}
L-> Next = NULL
//printf ("빈 테이블이 성공적으로 만들어졌습니다. \ n ");
L 을 반환합니다
}
//노드를 만들고 후보자 정보를 입력하십시오.
위치
Make_node (위치 p, 정수 n)
{
(n) //n 이 1 이면 노드를 만들고 입력하고 n 이 0 이면 노드를 수정합니다.
{
P = (위치) malloc (sizeof (노드));
P->; Next = NULL
}
Printf ("수험생의 수험증 번호 입력:");
가져오기 (p-> Data.examno);
Printf ("후보자 이름 입력:");
가져오기 (p-> Data.name);
하다
{
Printf ("수험생 성별을 입력해주세요." 남자 "나" 여자 ":);
가져오기 (p-> Data.sex);
}
그리고 (0! = strcmp (p-> Data.sex, "남자")&; & amp0! = strcmp (p-> Data.sex, "여자"); //성별이 틀렸는지 판단하다.
Printf ("구직자의 나이를 입력하십시오:");
Scanf("%hd ",& ampp->; Data.age);
Getchar (); -응? //이 문장을 삭제하면 다음 응용 프로그램 범주를 구현할 수 없습니다.
/* 아래의 do while 은 응용 프로그램 범주가 잘못 입력되었는지 여부를 결정하는 데 사용됩니다 */
하다
{
Printf ("등록 범주를 입력하십시오." 수학 "또는" 영어 "또는" 데이터 구조 ":);
가져오기 (p-> Data.examtype);
}
그리고 (0! = strcmp ("영어", p-> Data.examtype) & & amp0! = strcmp ("수학", p-> Data.examtype) & & amp0! = strcmp ("데이터 구조", p-> Data.examtype));
다음 경우 (n)
{
Printf ("등록 성공 \ n");
}
기타
{
Printf ("수정 성공 \ n");
}
P 를 반환합니다
}
//사전 삽입 방법;
비어 있습니다
Link_to_tail (목록 l, 위치 p)
{
P->; Next = L-& gt;; 다음으로,
L-> Next = p;;
}
//xx 라는 첫 번째 요소를 찾아 위치를 반환합니다.
위치
찾기 (목록 l)
{
위치 p = L-& gt;; 다음으로,
문자 이름 [10];
Printf ("찾으려는 후보자의 이름을 입력하십시오:");
가져오기 (이름);
그리고 (p! = NULL & amp& amp0! = strcmp (p-> Data.name, name))
{
P = p-& gt;; 다음으로,
}
P 를 반환합니다
}
//연결된 목록이 비어 있는지 테스트합니다.
(Internationalorganizations 와 동일) 국제기구
Is_empty (목록 l)
{
L-> 를 반환합니다 Next = = NULL
}
//현재 위치가 바닥글인지 테스트합니다.
(Internationalorganizations 와 동일) 국제기구
Is_last (위치 p, 목록 l)
{
P-> 를 반환합니다 Next = = NULL
}
//이름이 xx 인 후보자 정보를 출력합니다.
비어 있습니다
이름 정보 업로드 (목록 l)
{
위치 p = 찾기 (l);
만약 (p! = 비어 있음)
{
Printf ("찾으시는 후보 정보: \ n");
Printf ("입학 번호:% s \ t 이름:% s \ t 성별:% s \ t 성별:% HD \ 주제: %s\n\n", p-> Data.examno, p-> Data.name, p-> Data.sex, p-> Data.age, p-> Data.examtype);
}
기타
{
Printf ("찾고있는 학생이 없습니다. \ n ");
}
}
//루핑하여 수험생 정보를 만듭니다.
(Internationalorganizations 와 동일) 국제기구
Ciculation_make ()
{
Int n = 2;;
하다
{
Printf ("후보자 정보 생성을 계속하시겠습니까? "1" 을 입력해주세요. 없음 "0":);
Scanf("%d ",& ampn);
Getchar ();
}
그리고 (n! = 0 & amp& ampn! = 1);
N 을 반환합니다
}
//수험생 정보를 출력하시겠습니까?
비어 있습니다
Put_information (위치 p)
{
Int n = 2;;
하다
{
Printf ("후보자에 대한 정보를 출력하시겠습니까? "1" 을 입력해주세요. 없음 "0":);
Scanf("%d ",& ampn);
Getchar ();
}
그리고 (n! = 0 & amp& ampn! = 1);
다음 경우 (n)
{
Printf ("입학 번호:% s \ t 이름:% s \ t 성별:% s \ t 주제:% HD \ 주제: %s\n", p-> Data.examno, p-> Data.name, p-> Data.sex, p-> Data.age, p-> Data.examtype);
}
}
//모든 후보자에 대한 정보 출력 여부
(Internationalorganizations 와 동일) 국제기구
Judge_put_all ()
{
Int n = 2;;
하다
{
Printf ("모든 후보자에 대한 정보를 출력하시겠습니까? "1" 을 입력해주세요. 없음 "0":);
Scanf("%d ",& ampn);
Getchar ();
}
그리고 (n! = 0 & amp& ampn! = 1);
N 을 반환합니다
}
//모든 후보자에 대한 정보를 출력합니다.
비어 있습니다
Put_all (목록 l)
{
만약 (l-> Next == NULL)
{
Printf ("지금 신청할 후보자가 없습니다! \ n ");
}
기타
{
위치 p = L-& gt;; 다음으로,
그리고 (p! = 비어 있음)
{
Printf ("입학 번호:% s \ t 이름:% s \ t 성별:% s \ t 주제:% HD \ 주제: %s\n", p-> Data.examno, p-> Data.name, p-> Data.sex, p-> Data.age, p-> Data.examtype);
P = p-& gt;; 다음으로,
}
}
//getchar ();
}
//후보자 데이터 삭제 여부를 묻습니다.
(Internationalorganizations 와 동일) 국제기구
판사 삭제 값 ()
{
Int n = 2;;
하다
{
Printf ("후보자의 데이터를 삭제하시겠습니까? 예, "0" 대신 "1" 을 입력하십시오.);
Scanf("%d ",& ampn);
Getchar ();
}
그리고 (n! = 0 & amp& ampn! = 1);
N 을 반환합니다
}
//첫 번째 이름이 xx 인 요소를 찾아 바로 앞 위치를 반환합니다.
위치
Find_previous (목록 l)
{
위치 q = L;;
위치 p = L-& gt;; 다음으로,
문자 이름 [10];
Printf ("찾으려는 후보자의 이름을 입력하십시오:");
가져오기 (이름);
그리고 (p! = NULL & amp& amp0! = strcmp (p-> Data.name, name))
{
Q = p;;
P = p-& gt;; 다음으로,
}
만약 (p! = 비어 있음)
{
Q 를 반환합니다
}
기타
P 를 반환합니다
}
//지정된 후보자에 대한 정보를 삭제하고 출력합니다.
(Internationalorganizations 와 동일) 국제기구
값 삭제 (목록 l)
{
Int n = 2;;
위치 q = null;
위치 p = find _ previous (l); //후보자의 정보 주소를 반환합니다.
If( NULL == p)
{
Printf ("삭제할 후보자가 없습니다. \ n");
0 을 반환합니다
}
기타
{
Q = p->; 다음으로,
P->; Next = q-& gt;; 다음으로,
Printf ("삭제에 성공했습니다. \ n 삭제된 후보자 정보는 다음과 같습니다. \ n”);;
Printf ("입학 번호:% s \ t 이름:% s \ t 성별:% s \ t 주제:% HD \ 주제: %s\n", q-> Data.examno, q-> Data.name, q-> Data.sex, q-> Data.age, q-> Data.examtype);
무료 (q);
1;
}
}
//해당 주소에 대한 검사 정보를 출력합니다.
(Internationalorganizations 와 동일) 국제기구
배치 위치 정보 (위치 p)
{
만약 (p! = 비어 있음)
{
Printf ("입학 번호:% s \ t 이름:% s \ t 성별:% s \ t 성별:% HD \ 주제: %s\n\n", p-> Data.examno, p-> Data.name, p-> Data.sex, p-> Data.age, p-> Data.examtype);
1;
}
기타
{
Printf ("당신이 찾고 있는 학생이 없습니다." " );
0 을 반환합니다
}
}
//메뉴 기능
비어 있습니다
메뉴 (목록 l)
{
Printf("\t\t\t? A. 수험생 입학 \ n ");
Printf("\t\t\t? B. 수험생 정보 조회 \ n ");
Printf("\t\t\t? C. 후보자 정보 수정 \ n ");
Printf("\t\t\t? D. 후보자 정보 삭제 \ n”);;
Printf("\t\t\t? E. 모든 후보자에 대한 정보 \ n ");
Printf("\t\t\t? F. 프로그램 작성자 정보 \ n ");
Printf("\t\t\t? G? 프로그램을 종료합니다. \ n ");
Char n =' h
그리고 (n! = 'g')
{
뭐해? //입력이 올바른지 확인합니다.
{
Printf ("문자 번호로 기능 선택:");
N = getchar ();
Getchar ();
Putchar ('\ n');
(n<A' | | n & gtg') 인 경우
{
Printf ("잘못된 문자 번호. \ n ");
}
}
While(n & lt;; A' | | n>G');
스위치 (n)
{
사례 "a":
{
Printf ("등록된 수험생에 대한 정보를 입력하십시오. \ n");
위치 p = make_node( p,1); //새 노드 만들기
Link_to_tail( L, p); //테이블에 새 노드 연결
Put _ information (p); -응? //후보자에 대한 정보를 출력하시겠습니까?
Putchar ('\ n');
}
깨뜨리다
사례' b':
{
Put _ name _ information (l);
Putchar ('\ n');
}
깨뜨리다
사례' c':
{
Int n = 0;;
위치 p = null;
Printf ("수정 중입니다. \ n ");
P = 찾기 (l);
N = put _ pos _ information (p);
다음 경우 (n)
{
Make_node( p, 0);
Put _ information (p); -응? //후보자에 대한 정보를 출력하시겠습니까?
}
Putchar ('\ n');
}
깨뜨리다
사례' d':
{
Printf ("삭제하는 중입니다. \ n ");
Delete _ val (l);
Putchar ('\ n');
}
깨뜨리다
사례' e':
{
Put _ all (l);
Putchar ('\ n');
}
깨뜨리다
사례' f':
{
Printf ("? 수정 날짜 버전 번호? 수정한 사람? 내용 수정 \ n ");
Printf ("-\ n");
Printf ("? 20 18.6. 19 v2.0? 첸 baichuan 주 메뉴 추가 \ n”);;
Printf ("? 20 18.6.23 v3.0? 천백천? 파일 생성 기능 추가 \ n \ n ");
Printf ("버전 번호는 v2.0 \ n");
Putchar ('\ n');
}
깨뜨리다
기본값:
깨뜨리다
}
}
Printf ("사용해 주셔서 감사합니다. 즐거운 생활 되세요." " );
Getch ();
}
확장 데이터:
C 언어는 기본 개발에 널리 사용되는 범용 컴퓨터 프로그래밍 언어입니다. C 언어의 설계 목표는 낮은 수준의 메모리를 간단한 방식으로 컴파일하고 처리할 수 있는 프로그래밍 언어를 제공하고, 적은 수의 기계 코드를 생성하며, 운영 환경 지원 없이 실행할 수 있는 프로그래밍 언어를 제공하는 것입니다.
C 언어는 많은 기본 처리 기능을 제공하지만 플랫폼 간 기능은 그대로 유지됩니다. 표준 사양으로 작성된 C 언어 프로그램은 여러 컴퓨터 플랫폼에서 컴파일할 수 있으며 일부 임베디드 프로세서 (단일 칩 또는 MCU) 와 수퍼컴퓨터를 포함할 수도 있습니다.
1980 년대, 다른 개발자가 사용하는 C 언어 문법의 차이를 피하기 위해, 미국 국가표준국은 완전한 C 언어 미국 국가표준문법 (ANSI C) 을 제정하여 C 언어의 원시 표준으로 삼았다. [1]? 현재 20 1 1 1 년 2 월 8 일 국제표준화기구 (ISO) 와 국제전기위원회 (IEC) 가 발표한 표준 c/kloc-0
C 언어는 C++ 및 Java 와 같은 객체 지향 프로그래밍 언어와 달리 프로세스 지향 컴퓨터 프로그래밍 언어입니다.
컴파일러는 주로 Clang, GCC, WIN-TC, SUBLIME, MSVC, 터보 c 등입니다.
참고 자료:
바이두 백과 -C 언어