데이터 구조 과목 에 설 치 된 학생 관리 시스템 (C 언어)
56502 단어 C 언어
#include
#include
#define LL sizeof(stu)
#define N 3
int COUNT = 10;
int num;
typedef struct student
{
int no; //
char name[20]; //
char sex[10]; //
int score[N]; //
struct student *next;
}stu;
stu *creatlist(void)
{
stu *p1,*p2,*head=NULL;
num=0;
p1=p2=(stu *)malloc(LL);
printf(" : , , , , ,
");
scanf("%d%s%s",&p1->no,p1->name,p1->sex);
for(int i=0;i<N;i++)
scanf("%d",&p1->score[i]);
while(p1->no!=0)
{
num++;
if(num==1)
head=p1;
else
p2->next=p1;
p2=p1;
p1=(stu*)malloc(LL);
scanf("%d%s%s",&p1->no,p1->name,p1->sex);
for(int i=0;i<N;i++)
scanf("%d",&p1->score[i]);
}
p2->next=NULL;
return head;
}
//
stu * import(){
stu * p ,*head,*q;
FILE * fp;
head = p = q = (stu*)malloc(LL);
if((fp = fopen("D://t.txt","r"))==NULL){
printf("file not open
");
exit(1);
}
for(int i =1 ;i<=COUNT;i++){
fscanf(fp,"%d %s %s %d %d %d
",&p->no,p->name,p->sex,&p->score[0],&p->score[1],&p->score[2]);
if(i==COUNT){
p->next = NULL;
break;
}
q = (stu*)malloc(LL);
p->next = q;
p = q;
}
fclose(fp);
return head;
}
//
void lookup( stu *head ,int no)
{
stu *p1=head;
if(head==NULL)
printf("
");
while(p1->no!=no&&p1->next!=NULL)
p1=p1->next;
if(p1->no==no)
{
printf(" \t\t \t \t \t \t
");
printf("%d\t\t%s\t%s\t%d\t\t%d\t\t%d
",p1->no,p1->name,p1->sex,p1->score[0],p1->score[1],p1->score[2]);
}
else
printf("
");
}
//
stu* alter( stu *head ,int no)
{
stu *p1=head;
if(head==NULL)
printf("
");
while(p1->no!=no&&p1->next!=NULL)
p1=p1->next;
if(p1->no==no)
{
printf(" \t\t \t \t \t \t
");
printf("%d\t\t%s\t%s\t%d\t\t%d\t\t%d
",p1->no,p1->name,p1->sex,p1->score[0],p1->score[1],p1->score[2]);
printf("
");
scanf("%d%s%s%d%d%d",&p1->no,p1->name,p1->sex,&p1->score[0],&p1->score[1],&p1->score[2]);
}
else
printf("
");
return head;
}
//
void showlist(stu *p1)
{
printf(" \t\t \t\t \t \t \t
");
if(p1==NULL)
printf(" !
");
else
while(p1!=NULL)
{
printf("%d\t\t%s\t\t%s\t%d\t\t%d\t\t%d
",p1->no,p1->name,p1->sex,p1->score[0],p1->score[1],p1->score[2]);
p1=p1->next;
}
}
//
void datalist(stu * head){
printf("
");
printf(" 1, 0
");
int n ;
scanf("%d",&n);
if(n==1){
clearlist();
COUNT = 0;
}
FILE * fp ;
if((fp = fopen("D://t.txt","a+"))==NULL){
printf("file not open
");
exit(1);
}
while(head!=NULL){
COUNT++;
fprintf(fp,"%d %s %s %d %d %d
",head->no,head->name,head->sex,head->score[0],head->score[1],head->score[2]);
head = head -> next;
}
fclose(fp);
}
//
void clearlist(){
remove("D://t.txt");
return ;
}
//
stu *del(stu* head,int no)
{
stu *p1,*p2=NULL;
if(head==NULL)
{
printf(" !
");
goto end;
}
p1=head;
while(p1->no!=no&&p1->next!=NULL)
{
p2=p1;
p1=p1->next;
}
if(p1->no==no)
{
num--;
if(p1==head)
head=p1->next;
else
p2->next=p1->next;
}
end:
return (head);
}
//
stu *clear(stu* head)
{
stu *p1,*p2=NULL;
if(head==NULL)
{
printf(" !
");
goto end;
}
p1=head;
while(p1->no!=0&&p1->next!=NULL)
{
p2=p1;
p1=p1->next;
}
if(p1->no==0)
{
num--;
p2->next=NULL;
}
else
printf(" !
");
end:
return (head);
}
//
stu *insert( stu *head,stu *worker )
{
stu *p1,*p2=NULL,*p0=worker;
p1=head;
if(head==NULL)
{
head=p0;
p0->next=NULL;
}
else
{
while(p1->no<p0->no&&p1->next!=NULL)
{
p2=p1;
p1=p1->next;
}
if(p1->no==p0->no){
printf(" ,
");
return head;
}
if(p1->no>p0->no)
{
if(p1==head)
head=p0;
else
p2->next=p0;
p0->next=p1;
}
else
{
p1->next=p0;
p0->next=NULL;
}
}
num++;
return head;
}
//
void print(void){
printf("*********************************************************
");
printf("* *
");
printf("*********************************************************
");
printf("1 \t\t2 ( )
"
"3 \t\t\t4
"
"5 \t\t\t6
"
"7 \t\t\t8
"
"9 \t\t\t10 !
");
printf("********************************************************
");
printf("
");
}
void Seemnue(void){
printf("*********************************************************
");
printf("1 \t\t2 ( )
"
"3 \t\t\t4
"
"5 \t\t\t6
"
"7 \t\t\t8
"
"9 \t\t\t10 !
");
printf("********************************************************
");
}
int main()
{
print();
int h,t,n;
stu *k;
stu *hh;
while(scanf("%d",&h)!=EOF)
switch(h)
{
case 1:
printf(" 0 0 0 0 0 0
");
k=creatlist();
printf("
");
break;
case 2:k = import();
k = clear(k);
printf("
");
break;
case 3:
printf("
");
scanf("%d",&t);
k=del(k,t);
printf("
");
break;
case 4:
printf("
");
printf(" \t \t \t \t \t
");
hh=(stu*)malloc(LL);
scanf("%d%s%s",&hh->no,hh->name,hh->sex);
for(int i=0;i<N;i++)
scanf("%d",&hh->score[i]);
k=insert(k,hh);
printf("
");
break;
case 5: printf("
");
scanf("%d",&n);
lookup(k,n);
printf("
");
break;
case 6: showlist(k); printf("
"); break;
case 7: printf("
");
scanf("%d",&n);
k = alter(k,n);
printf("
"); break;
case 8: datalist(k); printf("
"); break;
case 9: Seemnue(); printf("
"); break;
case 10: printf(" , !
");break;
}
return 0;
}
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
C 언어 구현 천둥 제거 게임 상세 정보먼저 작은 메뉴를 표시하고 게임을 할지 여부를 선택하십시오.사용자가 종료를 선택하면 프로그램 실행이 끝나고, 사용자가 게임을 선택하면 지뢰 제거 위치 좌표를 입력하라는 메시지가 표시됩니다.사용자가 입력한 좌표가 바둑...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.