C程序 学生管理系统
/* Note:Your choice is C IDE */
#include "stdio.h"
#include"stdlib.h"
#include"string.h"
typedef struct student//定义学生
{
    char name[10];
    int number;
    char sex[2];
    int math;
    int eglish;
    int clanguge;
    int average;
}student;
typedef struct unit//定义接点
printf怎么读英语{
    student date;
    struct unit *next;
}unit;
unit* build()//建立链表并返回指针
{
    unit *p;
    if((p=(unit*)malloc(sizeof(unit)))==NULL)
    { printf("=>初始化失败!");
        return 0;
    }
    else
    {p->next=NULL;
        p->date.number=0;//头结点存放学生人数
      printf("初始化成功!\n");
      return p;
    }
}
void add(unit *head)//增加学生
{
    unit *p,*q;
    int m,n=0;
    q=head->next;
    p=(unit*)malloc(sizeof(unit));
    printf("=>请输入新生姓名!\n");
    gets(p->date.name);fflush(stdin);
    printf("=>请输入学号!\n");
    while(n==0)
    {
        scanf("%d",&m);fflush(stdin);
        if(q==NULL) n=1;
        while(q)
        {
            if(q->date.number==m)
            {
              printf("=>你输入的学号与已有同学的学号相同,请重新输入!\n");
              q=head->next;
              break;
            }
       
            else
            {
              q=q->next;
              if(q==NULL) n=1;
            }
        }
    }
    p->date.number=m;
    printf("=>请输入性别!\n");
    gets(p->date.sex);fflush(stdin);
    printf("=>请输入数学成绩\n");
    scanf("%d",&m);fflush(stdin);
    p->date.math=m;
    printf("=>请输入英语成绩\n");
    scanf("%d",&m);fflush(stdin);
    p->date.eglish=m;
    printf("=>请输入c语言成绩\n");
    scanf("%d",&m);fflush(stdin);
    p->date.clanguge=m;
    p->date.average=(p->date.math+p->date.eglish+p->date.clanguge);
    q=head->next;
    head->next=p;
    p->next=q;
    head->date.number++;
}
   
void deletion(unit *head)//删除一名学生
{
    unit *p=head->next,*q=head;
    char N[10];
    printf("=>请输入你想删除的学生姓名!\n");
    gets(N);fflush(stdin);
    if(p==NULL)
    printf("=>系统无学生可删除!\n");
    while(p)
    {
        if(strcmp(p->date.name,N)==0)
        {
            q->next=p->next;
            head->date.number--;
            printf("=>删除%s成功!\n",p->date.name);
            free(p);
            break;
        }
        else
        {
            p=p->next;
            q=q->next;
            if(p==NULL)
            printf("=>你要删除的学生不存在,删除失败!\n");
        }
    }
}
int display(unit *head)//显示学生信息
{
    unit *p=head->next;
    int m,n=0;
    char N[10];
    if(p==NULL)
    {
        printf("=>系统无学生!\n");
        return 0;
    }
    while(n==0)
    {
        printf("******************************************************************************\n");
        printf("=>请选择你的操作!\n");
        printf("=>\t\t\t1.显示所有\t2.按姓名查\n\t\t\t3.按学号查\t4.返回主菜单\n");
        scanf("%d",&m);
        fflush(stdin);
        switch(m)
        {
            case 1:printf("\n=>该系统拥有%d名学生!\n\n",head->date.number);
                  p=head->next;
                  printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n\n");
                  while(p)
                    {
                        printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->date.name,p->date.number,p->date.sex,p->date.math,
                        p->date.eglish,p->date.clanguge,p->date.average);
                        p=p->next;
                    }
                    break;
            case 2:printf("=>请输入查姓名!\n");
                  gets(N);
                  fflush(stdin);
                  p=head->next;
                  while(p)
                  {
                      if(strcmp(p->date.name,N)==0)
                    {
                        printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n");
                        printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->date.name,p->date.number,p->date.sex,p->date.math,
                        p->date.eglish,p->date.clanguge,p->date.average);
                        break;
                    }
                    else
                    {
                        p=p->next;
                        if(p==NULL)
                        printf("=>你要查的学生不存在!");
                    }
                  }
                    break;
              case 3: printf("=>请输入查学号!\n");
                  scanf("%d",&m);
                  fflush(stdin);
                  p=head->next;
                  while(p)
                  {
                      if(p->date.number==m)
                    {
                        printf("\t姓名\t学号\t性别\t数学\t英语\tc语言\t综合\n");
                        printf("\t%s\t%d\t%s\t%d\t%d\t%d\t%d\n",p->date.name,p->date.number,p->date.sex,p->date.math,
                        p->date.eglish,p->date.clanguge,p->date.average);
                        break;
                    }
                    else
                    {

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。