데이터 구조 순서 표 의 응용 - 학생 정보 통계
4216 단어 데이터 구조 전문 지식
1 、선형 표 의 정의 파악 하기;
2 、선형 표 의 기본 동작, 예 를 들 어 구축, 찾기, 삽입, 삭제 등 을 파악 합 니 다.
실험 내용:
학생 정보 (학 번, 이름, 성적) 를 포함 하 는 순서 표 와 링크 는 다음 과 같은 기능 을 가지 게 합 니 다.
(1) 지 정 된 학생 개수 에 따라 학생 정 보 를 하나씩 입력 합 니 다.
(2) 학생 표 에 있 는 모든 학생 의 관련 정 보 를 하나씩 표시 합 니 다.
(3) 이름 을 찾 아 이 학생 의 학 번 과 성적 을 되 돌려 줍 니 다.
(4) 지 정 된 위치 에 따라 해당 하 는 학생 정보 (학 번, 성명, 성적) 를 되 돌려 줄 수 있다.
(5) 학생 정 보 를 지정 하여 표 에 지정 한 위치 에 삽입 합 니 다.
(6) 지정 한 위치의 학생 기록 삭제 하기;
(7) 통계표 중 학생 개수.
참고 정보 :
Definition of structure student :
typedef struct {
char no[8]; //8 학위
char name[20]; // 성명.
int price; // 성적
}Student;
Definition of sequential list:
typedef struct {
Student *elem; // 데이터 요 소 를 가리 키 는 기본 주소
int length; // 선형 표 의 현재 길이
}SqList ;
Definition of linked list :
typedef struct LNode{
Student data; // 데이터 필드
struct LNode *next; // 포인터 영역
}LNode,*LinkList;
실험 요구 :
(1) 프로그램 은 적당 한 주석 을 추가 하고 프로그램의 작성 은 사용 해 야 한다. 들 여 쓰기 형식 。
(2) 절 차 는 반드시 갖 추어 야 한다. 건장 성, 즉 입력 데이터 가 불법 일 때, 절차 도 적절하게 반응 할 수 있다. 삽입 삭제 시 지정 한 위치 가 잘못 되 었 습 니 다. 잠깐 만.
(3) 절차 인터페이스 가 우호 적 이 고 프로그램 이 실 행 될 때 사용 자 는 해당 하 는 알림 정보 에 따라 조작 할 수 있다.
#include
#include
#include
#include
#define OK 1
#define ERROR 0
#define OVERFLOW -2
typedef int Status; //Status , 。
#define MAXSIZE 100
typedef struct
{
char name[20];//
char no[10];//
double score;//
}Student;
typedef Student ElemType;
typedef struct
{
ElemType *elem; //
int length;//
}SqList;
void input(ElemType *e)//
{
printf("
");
scanf("%s",e->no);
printf("
");
scanf("%s",e->name);
printf("
");
scanf("%lf",&e->score);
}
void output(ElemType *e)//
{
printf(" : %-10s, : %-20s, : %-10.2lf
", e->no, e->name, e->score);
}
Status InitList(SqList *L)//
{
L->elem=(ElemType*)malloc(sizeof(ElemType)*MAXSIZE);// MAXSIZE
if(!L->elem)
exit(OVERFLOW); //
L->length=0; // 0
return OK;
}
int LocateElem(SqList *L,ElemType e)//
{
int i;
for(i=0;ilength;i++)
if(!strcmp(L->elem[i].name,e.name))
{
return i+1;
}
return 0;
}
Status ListInsert(SqList *L,int i,ElemType e) //
{
int j;
system("cls");
if(i<1||i>L->length+1)//
{
return ERROR;
}
if(L->length==MAXSIZE)//
{
return ERROR;
}
for(j=L->length-1;j>=i-1;j--)
L->elem[j+1]=L->elem[j];
L->elem[i-1]=e;
++L->length;//
return OK;
}
Status ListDelete(SqList *L,int j,char *e)//
{
if(j!=L->length&&j>0)
{
strcpy(e,L->elem[j].name);
for(;j<=L->length;j++)
L->elem[j-1]=L->elem[j];
}
else//
return ERROR;
--L->length;//
return OK;
}
int main()
{
int i,j,len,m,temp,a;
char res[20];
ElemType e,b;
SqList L;
int n;
printf("****** ******
");//
printf("1. 。
");
printf("2. 。
");
printf("3. 。
");
printf("4. 。
");
printf("5. 。
");
printf("6. 。
");
printf("7. 。
");
printf("8. 。
");
printf("0. 。
");
n=-1;
while(n!=0)
{
printf(" :
");
scanf("%d",&n);
switch(n)
{
case 1: //
if(InitList(&L))
printf("
");
else
printf("
");
break;
case 2: //
printf(" (<100)
");
scanf("%d",&len);
for(i=0;i
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
데이터 구조 도의 기본 조작 실현실험 제목: 그림 의 기본 조작 실현 실험 환경: Visual C++ 6.0 실험 목적: 그림 의 인접 행렬 과 인접 표 두 개의 저장 구조 와 표 시 를 파악 한다. 그림 의 DFS 와 BFS 두 가지 스 트 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.