• 学生管理系统(线性链表的简单应用)


    说实话,这个程序和教务处管理系统没有什么区别!!!!

    还是废话不多说!!!请看程序!!!

    #include<iostream>
    #include<stdio.h>
    #include<math.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;

    #define LEN sizeof(struct student)
    struct student
    {  
     int num;//学号
        char name[20];//姓名
        double foxscore;//fox成绩
        double cscore;//C语言
        double englishscore;//英语成绩
        struct student *next;
    };


    int main()
    {
     void InputData(struct student *A);//输入数据
     void PrintData(struct student *B);//打印数据
     struct student *DeleteData(struct student *C);//删除数据
     void CorectData(struct student *D);//修改数据
     void InsertData(struct student *E);//插入数据
     void AverData(struct student *F);//数据统计
     struct student *head,*pt;
     int ch;
     pt=head=(struct student *)malloc(LEN);
     printf("欢迎使用本学生管理系统,请输入你要进行的操作:\n");
     printf("----------------------------------------------------------------\n");
     printf("                 初始数据     请按“1”                           \n");                   
     printf("                 打印数据     请按“2”                           \n");
     printf("                 删除数据     请按“3”                           \n");
     printf("                 修改数据     请按“4”                           \n");
     printf("                 插入数据     请按“5”                           \n");
     printf("                 数据统计     请按“6”                           \n");
     printf("                 结束操作     请按“7”                           \n");
     printf("----------------------------------------------------------------\n");
     
     while(cin>>ch)
     {
       if(ch==7)
       {
       printf("感谢您的使用,系统应用已经自动关闭\n");
       break;
       }
     switch(ch)
     {
     case 1:InputData(head);break;
     case 2:PrintData(head);break;
     case 3:head=DeleteData(head);break;
     case 4:CorectData(head);break;
     case 5:InsertData(head);break;
     case 6:AverData(head);break;
     default: printf("输入错误,请重新输入数据\n");
     }
     printf("欢迎使用本学生管理系统,请输入你要进行的操作:\n");
     printf("----------------------------------------------------------------\n");
     printf("                 初始数据     请按“1”                           \n");                   
     printf("                 打印数据     请按“2”                           \n");
     printf("                 删除数据     请按“3”                           \n");
     printf("                 修改数据     请按“4”                           \n");
     printf("                 插入数据     请按“5”                           \n");
     printf("                 数据统计     请按“6”                           \n");
     printf("                 结束操作     请按“7”                           \n");
     printf("----------------------------------------------------------------\n");
     
     }

     return 0;
    }


     


    void InputData(struct student *A)//初始数据
    {
      int Num;
      struct student *p1;
      p1=A;
      printf("请输入要存储的学生个数:\n");
      cin>>Num;
      while(Num--)
      {
         printf("学号   姓名   for成绩   c语言成绩   英语成绩\n");
      scanf("%d%s%lf%lf%lf",&p1->num,&p1->name,&p1->foxscore,&p1->cscore,&p1->englishscore);
       p1->next=(struct student *)malloc(LEN);
       if(Num)
       p1=p1->next;
       else
       p1->next=NULL;
     
        
      }
     

       
     
    }


    void PrintData(struct student *B)//打印数据
    {
       struct student *p;
       p=B;
       while(p!=NULL)
       {
         printf("学号   姓名   for成绩   c语言成绩   英语成绩\n");
      printf("%d   %s   %.2lf   %.2lf   %.2lf\n",p->num,p->name,p->foxscore,p->cscore,p->englishscore);
      p=p->next;
       }
    }


    struct student *DeleteData(struct student *C)//删除数据
    {
        struct student *p,*pre;
     p=C;
     int Num;
     printf("请输入你要进行删除的学生的序号\n");
     cin>>Num;
     if(C->num==Num)
     {
      C=C->next;
      return C;
     }
     else
     {
     
     pre=p;
     while(p!=NULL)
     {

        
      
      
      if(p->num==Num)
       {
        pre->next=pre->next->next;
               break;
       }

          pre=p;
       p=p->next;
          
     }
    }

    return  C;
    }

    void CorectData(struct student *D)//修改数据
    {
     struct student *p;
     int Num;
     p=D;
     printf("请输入你要修改的学生的学号;\n");
     cin>>Num;
        while(p!=NULL)
     {
      if(p->num==Num)
      {
       printf("请输入你要修改的学生的信息\n");
       printf("学号   姓名   for成绩   c语言成绩   英语成绩\n");
       scanf("%d%s%lf%lf%lf",&p->num,&p->name,&p->foxscore,&p->cscore,&p->englishscore);
      }
         p=p->next;
     }
    }


    void InsertData(struct student *E)//插入数据
    {
     struct student *p;
     p=E;
     while(p->next!=NULL)
      p=p->next;
      p->next=(struct student *)malloc(LEN);
      p->next->next=NULL;
      printf("请输入你要插入的学生数据\n"); 
      printf("学号   姓名   for成绩   c语言成绩   英语成绩\n"); 
      scanf("%d%s%lf%lf%lf",&p->next->num,&p->next->name,&p->next->foxscore,&p->next->cscore,&p->next->englishscore);
    }

    void AverData(struct student *F)//平均成绩
    {
        struct student *p;
     p=F;
     double sumfox=0,sumc=0,sumenglish=0;
     int count=0;
     while(p!=NULL)
     { 
      sumfox+=p->foxscore;
      sumc+=p->cscore;
      sumenglish+=p->englishscore;
      p=p->next;
     count++;
     }
    printf("这些同学的平均成绩如下:\n");
    printf("c语言成绩:\n");
    printf("%.3lf\n",sumc/count);
    printf("fox成绩:\n");
    printf("%.3lf\n",sumfox/count);
    printf("英语成绩:\n");
    printf("%.3lf\n",sumenglish/count);
    }

  • 相关阅读:
    java简单计算器,只能鼠标点击数字
    可以掉落和滑动的星星
    servlet生成数字验证码
    web服务器底层-http请求与相应
    Codeforces 990D Graph And Its Complement 【构造】【性质】
    2018美团CodeM编程大赛 Round A Problem 2 下棋 【贪心】
    Codeforces 988F Rain and Umbrellas 【dp】
    Codeforces 988D Points and Powers of Two 【性质】【卡常】
    Codeforces 981D Bookshelves 【dp】【性质】
    POJ 2104 K-th Number 【主席树】【不带修改】
  • 原文地址:https://www.cnblogs.com/xiohao/p/2892966.html
Copyright © 2020-2023  润新知