CSDN博客

img ywchen2000

一个简单的学生成绩管理程序

发表于2002/12/17 8:52:00  2091人阅读

分类: C语言

#include<stdlib.h>
#include<stdio.h>
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:%d/n",pointer->num);
   printf("name:%s/n",pointer->name);
   printf("china:%d/n",pointer->china);
   printf("english:%d/n",pointer->english);
   printf("math:%d/n",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:%d/n",pointer->num);
    printf("name:%s/n",pointer->name);
    printf("china:%d/n",pointer->china);
    printf("english:%d/n",pointer->english);
    printf("math:%d/n",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 modefiy/n");
    printf("enter 1 modefiy name/n");
    printf("enter 2 modefiy china/n");
    printf("enter 3 modefiy english/n");
    printf("enter 4 modefiy math/n");
    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;
    }
pingjufen(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:%d/n",ppchina);
 printf("english ping jun fen:%d/n",ppenglish);
 printf("math ping jun fen:%d/n",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 exit/n");
     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下运行通过呀
0 0

相关博文

我的热门文章

img
取 消
img