C程序 学生管理系统
以下是用c语言编写的学生成绩管理系统的简单代码,可以用vc运行(供参考)
#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//定义接点
    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—〉datenumber==m)
           
              printf("=>你输入的学号与已有同学的学号相同,请重新输入!\n”);
              q=head-〉next;
              break
            }
            else
           
              q=q->next;
              if(q==NULL) n=1;
           
        }
    }
    p—〉datenumber=m;
    printf(”=〉请输入性别!\n”);
    gets(p—〉datesex);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->dateclanguge=m;
    p-〉dateaverage=(p—>date.math+p->date.eglish+p—〉date.clanguge);
    q=head—〉next;
    head-〉next=p;
    p—〉next=q;
    head->datenumber++;
}
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—〉datenumber——;
            printf(”=〉删除%s成功!\n”,p-〉datename);
            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->datenumber);
                  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->datenumber,p-〉datesex,p—〉datemath,
                        p-〉dateeglish,p->date.clanguge,p->dateaverage);
                        p=p—>next;
                   
                    break
            case 2:printf(”=〉请输入查姓名!\n");
                  gets(N);
                  fflush(stdin);
                  p=head—>next;
                  while(p)
                 
                      if(strcmp(p-〉datename,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—>datename,p—〉datenumber,p—〉date.sex,p->datemath,
                        p—〉dateeglish,p-〉printf怎么读英语dateclanguge,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—>datenumber==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—>datesex,p-〉date.math,
                        p-〉dateeglish,p->date.clanguge,p-〉dateaverage);
                        break;
                   
                    else
                   

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