⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 student.cpp

📁 这个是C语言的课程设计 主要是有关学生管理系统的
💻 CPP
字号:
#include <stdio.h>
#include <malloc.h>
#define NULL 0
#define LEN sizeof(struct student)
struct student
{
 long num;
 long chn;
 long math;
 long eng;
struct student *next;

};
int n;
struct student *creat(void)            /*Creat Start*/
{
 struct student *head;
 struct student *p1,*p2;
 n=0;
 p1=p2=(struct student*)malloc(LEN) ;
 scanf("%ld,%ld,%ld,%ld",&p1->num,&p1->chn,&p1->math,&p1->eng);
 head=NULL;
 while(p1->num!=0)
   {
    n=n+1;
    if (n==1)head=p1;
    else p2->next=p1;
    p2=p1;
    p1=(struct student*)malloc(LEN);
     scanf("%ld,%ld,%ld,%ld",&p1->num,&p1->chn,&p1->math,&p1->eng);

   }
   p2->next=NULL;
   return(head);
}

void print(struct student *head)      /*Print Start*/
{
 struct student *p;
 printf("\nNow,These %d records are:\n",n);
 printf(" Num    Chn   Math    Eng\n");
 p=head;
 if(head!=NULL)
 do
  {
   printf("%ld    %ld   %ld      %ld\n",p->num,p->chn,p->math,p->eng);
   p=p->next;
   } while (p!=NULL);
}


 struct student *del(struct student *head,long num)	  /*Del Start*/
 {
  struct student *p1,*p2;
  if (head==NULL)  {printf("\nlist null! \n");goto end;}
  p1=head;
  while(num!=p1->num&&p1->next!=NULL)
      {p2=p1;p1=p1->next;}
  if (num==p1->num)
  {
   if (p1==head)head=p1->next;
   else p2->next=p1->next;
   printf("delete:%ld\n",num);
   n=n-1;
  }
  else printf("%ld not been found! \n",num);
  end:                               /*Something wrong at here';'&':'*/
  return(head);
 }


 struct student *insert(struct student *head, struct student *stud)   /*Insert*/
  {
   struct student *p0,*p1,*p2;
   p1=head;
   p0=stud;
   if(head==NULL)
     {head=p0;p0->next=NULL;}
   else
     {
     while ((p0->num>p1->num)&&(p1->next!=NULL))
      {
       p2=p1;
       p1=p1->next;}
       if(p0->num<=p1->num)
       {
	 if (head==p1)head=p0;
	 else p2->next=p0;
	 p0->next=p1;

       }
       else
	 {p1->next=p0;p0->next=NULL;}
     }
     n=n+1;
     return(head);
  }




  /*MMMMMMMMMMMMMMMMAIN*/

void main()
{
 struct student *head,*stu;
 long del_num;
 int choose;
int choose2;
 mainmenu:
 printf("                                                                              \n");
 printf("                                                                              \n");
 printf("                                                                              \n");
 printf("                                                                              \n");
 printf("                     Welcome to the Student Score MIS           \n");
 printf("*******************************Main Menu**************************************\n");
 printf("*                                                                            *\n"); 
 printf("*                           1> Input Records                                 *\n");
 printf("*                           2> Delete Records                                *\n");
 printf("*                           3> Insert Records                                *\n");
 printf("*                           4> Require Records                               *\n"); 
 printf("*                           0>     Exit                                      *\n");
 printf("*                                                                            *\n"); 
 printf("******************************************************************************\n");
 scanf("%d",&choose);
 switch(choose)
 {
  case 1:
     printf("Input records(Enter 0 to exit):\n");
     printf("     Sample:10102,90,100,80\n");
     printf("\n");
     printf(" Num Chn Math Eng\n");
     head=creat();
     print(head);
     break;
  case 2:
     printf("\n Input the deleted number(Enter 0 to exit):\n");
     print(head);
     printf("\n");
     printf("     Sample:10102\n");
     printf("\n");
	  scanf("%ld",&del_num);
      while(del_num!=0)
	 {
	 head=del(head,del_num);
	  print(head);
	 printf("Input the deleted number(Enter 0 to exit):\n");
	 scanf("%ld",&del_num);
	 }
       break;
  case 3:
      printf("\nInput the inserted record(Enter 0 to exit):\n");
      print(head);
      printf("\n");
      printf("     Sample:10102,90,100,80\n");
      printf("\n");
      printf(" Num Chn Math Eng\n");
      stu=(struct student *) malloc(LEN);
      scanf("%ld,%ld,%ld,%ld",&stu->num,&stu->chn,&stu->math,&stu->eng);
      while(stu->num!=0)
       {
	 head=insert(head,stu);
	 print(head);
	 printf("Input the inserted record(Enter 0 to exit):\n");
	 stu=(struct student *)malloc(LEN);
	 scanf("%ld,%ld,%ld,%ld",&stu->num,&stu->chn,&stu->math,&stu->eng);
       }
      break;
  case 4:
       printf("                                                                              \n");
	printf("                                                                              \n");
	printf("                                                                              \n");
	printf("                                                                              \n");
	printf("                     Welcome to the Student Score MIS           \n");
	printf("*******************************Main Menu**************************************\n");
	printf("*                                                                            *\n");
	printf("*                           1> Require All Records                           *\n");
	printf("*                           0> Exit                                          *\n");
	printf("*                                                                            *\n");
 	printf("******************************************************************************\n");
 	scanf("%d",&choose2);
 	switch(choose2)
    {case 1:
             print(head);
      	     printf("\n");
       goto mainmenu;
      case 0:
        goto mainmenu;

    }
      
      
        
  case 0:
     goto end2;

  } 
  goto mainmenu;
  end2:
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -