C 언어 는 순서 표 로 학생 정보 관리 시스템 을 실현 한다.
5042 단어 데이터 구조
#include
#include
#define MaxSize 1000
typedef struct Student
{
int num;
char name[20];
int age;
float score[10];
/*
//
bool operator == (const Student& datetype) const
{
if((num == datetype.num) && (stricmp(name, datetype.name)) && (age == datetype.age))
{
int flag=0;
for(int i=0;i<10;i++)
{
if(score[i] == datetype.score[i])
flag++;
}
if(flag==10)
return true;
else
return false;
}
return false;
}
bool operator < (const Student& datetype) const
{
if((num < datetype.num) && (stricmp(name, datetype.name)<0) && (age < datetype.age))
{
int flag=0;
for(int i=0;i<10;i++)
{
if(score[i] < datetype.score[i])
flag++;
}
if(flag==10)
return true;
else
return false;
}
return false;
}
*/
}DateType;
typedef struct SeqList
{
DateType data[MaxSize];
int last;
}SeqList;
//
SeqList* Init_SeqList()
{
SeqList* L = new SeqList;
if(L)
{
L->last= -1;
return L;
}
}
//
int Insert_SeqList(SeqList *L,int i,DateType x)
{
int j;
if(L->last+1==MaxSize)
return -1;
if(i<1||i>L->last+2)
return 0;
for(j=L->last;j>=i-1;j--)
L->data[j+1]=L->data[j];
L->data[i-1]=x;
L->last++;
return 1;
}
//
int Delete_SeqList(SeqList *L,int i)
{
int j;
if(i<1||i>L->last+1)
return 0;
for(j=i;j<=L->last;j++)
{
L->data[j-1]=L->data[j];
}
L->last--;
return 1;
}
//
int Location_SeqList(SeqList *L,DateType x)
{
int i=0;
while(i <= L->last && L->data[i].num == x.num)// (L->data[i]==x), 。 。 ,
i++; // , 。 , 。 , !
if(i>L->last)
return -1;
else
return i;
}
/*
//
void Part_SeqList(SeqList *L)
{
int i,j;
DateType x,y;
x=L->data[0];
for(i=1;i<=L->last;i++)
{
if(L->data[i]data[i];
for(j=i-1;j>=0;j--)
{
L->data[j+1]=L->data[j];
}
L->data[0]=y;
}
}
}
*/
//
void print(SeqList *L)
{
for(int i=0;i<=L->last;i++)
{
printf("%d %10s %2d",L->data[i].num,L->data[i].name,L->data[i].age);
for(int j=0;j<10;j++)
{
printf("%6.2f ",L->data[i].score[j]);
}
printf("
");
}
}
int main()
{
SeqList* p = Init_SeqList();
int num;
printf(" , , ,
");
for(int i=0;i<3;i++)
{
p->last++;
scanf("%d %s %d",&p->data[i].num,&p->data[i].name,&p->data[i].age);
for(int j=0;j<10;j++)
scanf("%f",&p->data[i].score[j]);
}
int flag;
printf(" :
");
printf("1.
");
printf("2.
");
printf("3.
");
printf("4.
");
scanf("%d",&flag);
//
if(flag==1)
{
DateType dd;
int locseat;
printf(" :
");
p->last++;
scanf("%d %s %d",&dd.num,&dd.name,&dd.age);
for(int j=0;j<10;j++)
scanf("%f",&dd.score[j]);
scanf("%d",&locseat);
int insert_flag=Insert_SeqList(p,locseat,dd);
if(insert_flag==-1)
printf(" , , !!
");
else if(insert_flag==0)
printf(" , !!
");
else
{
printf(" !!!
");
print(p);
}
}
// 1
if(flag==2)
{
int seat;
printf(" :
");
scanf("%d",&seat);
int delete_flag=Delete_SeqList(p,seat);
if(delete_flag==0)
printf(" , !!
");
else
{
printf(" !!!
");
print(p);
}
}
// 1
if(flag==3)
{
DateType d;
printf(" :
");
scanf("%d %s %d",&d.num,&d.name,&d.age);
for(int j=0;j<10;j++)
scanf("%f",&d.score[j]);
int location_flag=Location_SeqList(p,d);
if(location_flag==-1)
printf(" , !!
");
else
printf(" %d
",location_flag);
}
/*
//
if(flag==4)
{
Part_SeqList(p);
print(p);
}
*/
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
정수 반전Udemy 에서 공부 한 것을 중얼거린다 Chapter3【Integer Reversal】 (예) 문자열로 숫자를 반전 (toString, split, reverse, join) 인수의 수치 (n)가 0보다 위 또는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.