#include <stdio.h>
#include<string.h>
#include<malloc.h>
//å
¨å±åé
struct student
{
int num;
char name[20];
char kecheng[20];
float score;
struct student *next;
};
struct student *head=NULL;
//çé¢ãè°ç¨å½æ°å£°æ
void cover0();//主çé¢
void cover1();//å
é¨
//ååè½å½æ°å£°æ
void add();//æ·»å è®°å½
void display();//æ¾ç¤ºææè®°å½
void search();//æå§åæ¥æ¾
void order();//ææ绩æåº
//主ç¨åº
int main()
{
{//欢è¿çé¢
printf(" **************************欢è¿ä½¿ç¨**************************\n");
printf(" * *\n");
printf(" * 欢è¿ä½¿ç¨ å¦çæ绩管çç³»ç» *\n");
printf(" * *\n");
printf(" * BY å°èå *\n");
printf(" * 2010-8-29 *\n");
printf(" * *\n");
printf(" ************************************************************\n\n");
}
cover0();//主çé¢
return 0;
}
//end of main()
//主çé¢
void cover0()
{
char demand;
//æ¾ç¤ºçé¢ï¼è¯»åæ令demand
{
printf(" **********************å¦çæ绩管çç³»ç»**********************\n");
printf(" * *\n");
printf(" * *\n");
printf(" * 1ï¼æ·»å æç»©è®°å½ *\n");
printf(" * 2ï¼å¸®å©åå
³äº *\n");
printf(" * 0ï¼éåº *\n");
printf(" * *\n");
printf(" * *\n");
}
scanf("%c",&demand);
while ((demand>'2')||(demand<'0'))
{
scanf("%c",&demand);
}
printf(" ************************************************************\n\n");
//æ§è¡æä½
switch (demand)
{
case '0'://éåº
printf(" **************************谢谢使ç¨**************************\n");
printf(" * *\n");
printf(" * è°¢è°¢ä½¿ç¨ å¦çæ绩管çç³»ç»verion0.0 *\n");
printf(" * *\n");
printf(" * BY å°èå, 2010-8-29 *\n");
printf(" * *\n");
printf(" ************************************************************\n\n\n");
break;
case '1'://æ·»å æ绩记å½
cover1();
break;
case '2'://帮å©åå
³äº
printf(" *************************帮å©åå
³äº*************************\n");
printf(" * *\n");
printf(" * å¦çæ绩管çç³»ç»verion0.0 *\n");
printf(" * BY å°èå, 2010-8-29 *\n");
printf(" * *\n");
printf(" * @ä¾æ®æ示èåè¾å
¥ç¸åºæ°åï¼ä»¥å车ç»æ *\n");
printf(" * ï¼èèç³»ç»æ¬èº«æ¿åè½åï¼è¯·å¿è¿ç»è¾å
¥å¤ä¸ªæ°å *\n");
printf(" * @æ·»å æ°æ®æ¶ï¼ä»¥-1çå¦å·ç»æè¾å
¥ *\n");
printf(" * *\n");
printf(" * 欢è¿æåºå®è´µæè§åå»ºè®®ï¼ *\n");
printf(" * 0ï¼è¿å *\n");
printf(" ************************************************************\n\n");
scanf("%c",&demand);
cover0();
break;
}
}
//end of cover0()
//å
é¨
void cover1()
{
char demand='9';
while (demand!='0')
{
//æ¾ç¤ºçé¢ï¼è¯»åæ令demand
if (head==NULL)
{//é¾è¡¨ä¸æ è®°å½æ¶
printf(" ***********************å½åæ æ°æ®***************************\n");
printf(" * *\n");
printf(" * 1ï¼è¾å
¥è®°å½ 0ï¼è¿å主çé¢ *\n");
printf(" * *\n");
scanf("%c",&demand);
while ((demand>'1')||(demand<'0'))
{
scanf("%c",&demand);
}
}
else
{//é¾è¡¨ä¸æè®°å½æ¶
printf(" **************************åå¤å°±ç»ª**************************\n");
printf(" * *\n");
printf(" * 1ï¼æ·»å è®°å½ 2ï¼æ¾ç¤ºææè®°å½ *\n");
printf(" * 3ï¼æå§åæ¥æ¾ 4ï¼ææ绩æåº *\n");
printf(" * 0ï¼è¿å主çé¢ *\n");
printf(" * *\n");
scanf("%c",&demand);
while ((demand>'4')||(demand<'0'))
{
scanf("%c",&demand);
}
}
//æ§è¡æä½
switch (demand)
{
case '0'://è¿å主çé¢
printf(" * > > > > > *\n");
break;
case '1'://è¾å
¥è®°å½
add(); break;
case '2'://æ¾ç¤ºææè®°å½
display(); break;
case '3'://æå§åæ¥æ¾
search(); break;
case '4'://ææ绩æåº
order(); break;
}
}//end of while (demand!='0')
//æ¸
空é¾è¡¨
{
struct student *p1;
for (p1=head;p1!=NULL;)
{
head=head->next;
free(p1);
p1=head;
}
printf(" * > > > > > *\n");
printf(" * ï¼æªä¿åæ°æ®å·²æ¸
空 *\n");
printf(" * *\n");
printf(" ************************************************************\n\n");
}
cover0();//è¿å主çé¢
}
//end of cover1()
void add()
{
struct student *newh,*p1,*tail;
int checkn;
printf(" * > > > > > *\n");
printf(" * æ·»å è®°å½ *\n");
printf(" * *\n");
printf(" * 请ä¾æ¬¡å¦å·ï¼å§åï¼è¯¾ç¨ï¼æ绩ãä»¥ç©ºæ ¼åå¼ï¼ä»¥å车ç»æ *\n");
printf(" * ç»ææ·»å è®°å½ï¼è¯·è¾-1 *\n");
printf(" * *\n");
scanf("%d",&checkn);
if (checkn!=-1)//å¦æç´æ¥ä¸éåº
{
//æ°å»ºé¾è¡¨
newh=malloc(sizeof(struct student));
newh->num=checkn;
scanf("%s %s %f",&newh->name,&newh->kecheng,&newh->score);
newh->next=NULL;
tail=newh;
scanf("%d",&checkn);
while (checkn!=-1)//å¦æä¸éåº
{
p1=malloc(sizeof(struct student));
p1->num=checkn;
scanf("%s %s %f",&p1->name,&p1->kecheng,&p1->score);
p1->next=NULL;
tail->next=p1;
tail=tail->next;
scanf("%d",&checkn);
}
//ä¸èé¾è¡¨è¿æ¥
if ((head)==NULL)
head=newh;
else
{
p1=head;
while ((p1->next)!=NULL)
p1=p1->next;
p1->next=newh;
}
printf(" * ï¼æ°æ®æ·»å æå *\n");
}
}
//end of add()
void display(void)
{
struct student *p=head;
printf(" * > > > > > *\n");
printf(" * å
¨é¨è®°å½ *\n");
printf("%12s%12s%12s%12s\n","å¦å·","å§å","课ç¨","æ绩");
while(p!=NULL)
{
printf("%12d%12s%12s%12.0f\n",p->num,p->name,p->kecheng,p->score);
p=p->next;
}
printf(" * *\n");
}
//end of display()
void search(void)
{
char obj[20];
struct student *p=head;
printf(" * > > > > > *\n");
printf(" * æå§åæ¥æ¾ *\n");
printf(" * 请è¾å
¥æ¨è¦æ¥æ¾çåå¦å§å *\n");
scanf("%s",obj);
while((strcmp(p->name,obj)!=0)&&((p->next)!=NULL))
{
p=p->next;
};
if(strcmp(p->name,obj)==0)
{
printf(" * 该åå¦ä¸ªäººä¿¡æ¯ä¸ºï¼ *\n");
printf("%12s%12s%12s%12s\n","å¦å·","å§å","课ç¨","æ绩");
printf("%12d%12s%12s%12.0f\n",p->num,p->name,p->kecheng,p->score);
}
else
printf(" * ï¼æ¥æ æ¤äºº *\n");
}
//end of search()
//ææ绩æåº:å泡æ³
void order()
{
void display();
struct student *p0,*p1,*p2,*p3;
int leng=0,lennow;
for (p1=head;p1!=NULL;p1=p1->next)
leng++;
p0=malloc(sizeof(struct student));
p0->next=head;
head=p0;
for (lennow=leng-1;leng>0;leng--,lennow=leng-1)
for (p1=p0;lennow>0;p1=p1->next,lennow--)
{
p2=p1->next;
p3=p2->next;
if (p2->score<p3->score)
{
p2->next=p3->next;
p3->next=p2;
p1->next=p3;
}
}
head=head->next;
free(p0);
printf(" * ï¼æåºæå *\n");
display();
}
//end of order()
温馨提示:答案为网友推荐,仅供参考