一個簡單的學生成績管理程式 (轉)

amyz發表於2007-10-17
一個簡單的學生成績管理程式 (轉)[@more@]#include
#include
struct list{
 int num;
 char name[256];
 int china;
 int english;
 int math;
 struct list *next;
};
typedef struct list node;
typedef node *link;
printf_list(link head)
{
 link pointer;
 pointer=head;
 while(pointer!=NULL)
 {
 printf("number:%dn",pointer->num);
 printf("name:%sn",pointer->name);
 printf("china:%dn",pointer->china);
 printf("english:%dn",pointer->english);
 printf("math:%dn",pointer->math);
 pointer=pointer->next;
 }
 }
link creat_list(link head)
{
 int cnum;
 char cname[256];
 int cchina;
 int cenglish;
 int cmath;
 link pointer,new;
 int i;
 head=(link)malloc(sizeof(node));
 if(head==NULL)
 { printf("memory allocate failure!!n");
 exit(0);}
 else{
 printf("please input number:");
 scanf("%d",&cnum);
 printf("please input name:");
 scanf("%s",&cname);
 printf("please input china:");
 scanf("%d",&cchina);
 printf("please input english:");
 scanf("%d",&cenglish);
 printf("please input math:");
 scanf("%d",&cmath);
 head->num=cnum;
 for(i=0;i<256;i++)
 {
 head->name[i]=cname[i];
 }
 head->china=cchina;
 head->english=cenglish;
 head->math=cmath;
 head->next=NULL;
 pointer=head;
 while(1)
 {
 new=(link)malloc(sizeof(node));
 if(new==NULL){
 printf("memory allocate failure!!n");
 exit(0);}
 printf("please input number:");
 scanf("%d",&cnum);
 if(cnum==0){
break; }
 printf("please input name:");
 scanf("%s",cname);
 printf("please input china:");
 scanf("%d",&cchina);
 printf("please input english:");
 scanf("%d",&cenglish);
 printf("please input math:");
 scanf("%d",&cmath);
 new->num=cnum;
 for(i=0;i<256;i++){
 new->name[i]=cname[i];}
 new->china=cchina;
 new->english=cenglish;
 new->math=cmath;
 new->next=NULL;
 pointer->next=new;
 pointer=new;
 }
 }
 return head;
}
search_chengji(int key1,link head)
{
 link pointer;
 pointer=head;
 while(pointer!=NULL)
 {
 if(pointer->num==key1)
 {
 printf("number:%dn",pointer->num);
 printf("name:%sn",pointer->name);
 printf("china:%dn",pointer->china);
 printf("english:%dn",pointer->english);
 printf("math:%dn",pointer->math);
 }
 pointer=pointer->next;
 }
}
link modify_chengji(link head,int key3)
{

 link pointer;
 char xname[256];
 int xchina;
 int xenglish;
 int xmath;
 int choose,i;
 pointer=head;
 printf("enter 0 exit modefiyn");
 printf("enter 1 modefiy namen");
 printf("enter 2 modefiy chinan");
 printf("enter 3 modefiy englishn");
 printf("enter 4 modefiy mathn");
 scanf("%d",&choose);
 switch(choose)
 {
 case 1:
 printf("please input name:");
 scanf("%s",&xname);
 break;
 case 2:
 printf("please input china:");
 scanf("%d",&xchina);
 break;
 case 3:
 printf("please input english:");
 scanf("%d",&xenglish);
 break;
 case 4:
 printf("please input math:");
 scanf("%d",&xmath);
 break;
 }
 while(1){
 pointer=pointer->next;
 if(pointer->num==key3)
 {
 if(choose==1)
 { for(i=0;i<256;i++)
 {
pointer->name[i]=xname[i];
}
break;
}
 else if(choose==2)
 { pointer->china=xchina;
 break;}
 else if(choose==3)
 { pointer->english=xenglish;
 break;
 }
 else if(choose==4)
{pointer->math=xmath;
 break;}
 }
 }
 return head;
}
link delete_chengji(link head,int key2)
 {
 link pointer;
 link back;
 pointer=head;
 while(1)
 {
 if(head->num==key2)
 { head=pointer->next;
 free(pointer);
 break;
 }
 back=pointer;
 pointer=pointer->next;
 if(pointer->num==key2)
 {
 back->next=pointer->next;
 free(pointer);
 break;}
 }
 return head;
}
link insert_chengji(link head,link new,int key3)
{
 link pointer;
 pointer=head;
 while(1)
 {
 if(pointer==NULL){
 new->next=head;
 head=new;
 break;}
 if(pointer->num==key3){
 new->next=pointer->next;
 pointer->next=new;
 break;}
 pointer=pointer->next;
 }
 return head;
 }
jufen(link head)
{
 link pointer;
 int pchina,ppchina;
 int penglish,ppenglish;
 int pmath,ppmath;
 int count;
 pchina=0;
 penglish=0;
 pmath=0;
 count=0;
 pointer=head;
 while(1)
 {
 pchina=pchina+pointer->china;
 penglish=penglish+pointer->english;
 pmath=pmath+pointer->math;
 count=++count;
 if(pointer->next==NULL)
 {
 break;
 }
 pointer=pointer->next;
}
 ppchina=pchina/count;
 ppenglish=penglish/count;
 ppmath=pmath/count;
 printf("china ping jun fen:%dn",ppchina);
 printf("english ping jun fen:%dn",ppenglish);
 printf("math ping jun fen:%dn",ppmath);
}
main()
{
 for(;;)
 {
 link head;
 link new;
 int key;
 int keynum;
 printf("0>exit the programm.n");
 printf("1>create list.n");
 printf("2>search chengji.n");
 printf("3>modify chengji.n");
 printf("4>delete chengji.n");
 printf("5>add chengji.n");
 printf("6>pingjunfeng.n");
 printf("7>print chengji.n");
 scanf("%d",&key);
 switch(key){
 case 0:
 exit(0);
 case 1:
 head=creat_list(head);
 if(head!=NULL)
 { printf_list(head);}
 break;
 case 2:
 printf("please input 0 Exit.n");
 printf("please input number for search:");
 scanf("%d",&keynum);
 if(keynum==0){
break;  }
 search_chengji(keynum,head);
 break;
 case 3:
 printf("please input number for modify:");
 scanf("%d",&keynum);
 head=modify_chengji(head,keynum);
 if(head!=NULL)
 {
 printf_list(head);
 }
 break;
 case 4:
 printf("please input 0 exitn");
 printf("please input number for delete:");
 scanf("%d",&keynum);
 if(keynum==0){
break;  }
 head=delete_chengji(head,keynum);
 break;
 case 5:
 if(head!=NULL){
 new=(link)malloc(sizeof(node));
 printf("please input number:");
 scanf("%d",&new->num);
 if(new->num==0){
 break;}
 printf("please input name:");
 scanf("%s",&new->name);
 printf("please input china:");
 scanf("%d",&new->china);
 printf("please input english:");
 scanf("%d",&new->english);
 printf("please input math:");
 scanf("%d",&new->math);
 printf("please input the data number for insert:");
 scanf("%d",&keynum);
 head=insert_chengji(head,new,keynum);
 if(head!=NULL) {
 printf_list(head);}
 }
 break;
 case 6:
 pingjufen(head);
 break;
 case 7:
 printf_list(head);
 break;
 }
 }
 }
給在TC2.0下執行透過呀

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752019/viewspace-977285/,如需轉載,請註明出處,否則將追究法律責任。

相關文章