《c语言课程设计》---学生成绩管理系统



#include<stdio.h>
#include<stdlib.h>
#include<string.h>
/********定义学生结构体********/
typedef struct stu
{
    int  ID;
    char name[20];
    char sex[10];
char cla[20];
    int  Cyuyan;
    int  English;
    int  Math;
int  sum;
    float ave;
    struct stu *next;
}Student;




/***********初始化学生表*************/
Student *initStu()
{
    Student *q;
    q=(Student*)malloc(sizeof(Student));
    if(q!=NULL)
    {
        q->next=NULL;
        return q;
    }
    else 
        return NULL;
}


/**************创建学生数据表*********************/
int creat(Student *q)
{
    int flag,n;
    Student *pb;
    n=0;
    do
    {
        pb=(Student*)malloc(sizeof(Student));
        if(pb==NULL)
        {
            printf("创建失败!");
            return 0;
        }
        printf("Enter ID:");
        scanf("%d",&pb->ID);
        if(n==pb->ID)
        {
            printf("该学号已存在!\n");
            goto Again;
        }
       
        printf("Enter name:");
        scanf("%s",pb->name);
        printf("Enter sex:");
        scanf("%s",pb->sex);
printf("Enter cla:");
scanf("%s",pb->cla);
        printf("Please enter the scores of corse!\n");
printf("Enter Cyuyan:");
        scanf("%d",&pb->Cyuyan);
        while(pb->Cyuyan>100||pb->Cyuyan<0)
        {
            getchar();
            printf("Please enter again:");
            scanf("%d",&pb->Cyuyan);
        }
        printf("Enter English:");
        scanf("%d",&pb->English);
        while(pb->English>100||pb->English<0)
        {
            getchar();
            printf("Please enter again:");
            scanf("%d",&pb->English);
        }
        printf("Enter Math:");
        scanf("%d",&pb->Math);
        while(pb->Math>100||pb->Math<0)
        {
            getchar();
            printf("Please enter again:");
            scanf("%d",&pb->Math);
        }
pb->sum=pb->Cyuyan+pb->English+pb->Math;
        pb->ave=(float)(pb->Cyuyan+pb->English+pb->Math)/3;
        n=pb->ID;
        pb->next=q->next;
        q->next=pb;
Again:
printf("Want to continue??(1/0)\n");
        scanf("%d",&flag);
        
    }while(flag);
return 1;


}
/******************************************/
/*********************按学号查询学生信息****************/
Student *search(Student *q,int m)
{
    
    Student *s;
    s=q->next;
    while(s!=NULL&&s->ID!=m)
        s=s->next;
    if(s!=NULL)
        return s;
    else 
        return NULL;
}
/****************************************************************/
/**************************修改学生数据**************************/
int modify(Student *q,int m)
{
    int flag,n;
    Student *t;
    t=q->next;
    while(t!=NULL&&t->ID!=m)
        t=t->next;
    if(t!=NULL)
    {
        while(n)
        {
            printf("\n修改成绩科目:1.Cyuyan  2.English  3.Math:[ ]\b\b");
            scanf("%d",&flag);
            if(flag==1)
            {
                getchar();
                printf("\nEnter Cyuyan:");
                scanf("%d",&t->Cyuyan);
                while(t->Cyuyan>100||t->Cyuyan<0)
                {
                    getchar();
                    printf("\nEnter Cyuyan again:");
                    scanf("%d",&t->Cyuyan);
                }
            }
            else if(flag==2)
            {
                
                getchar();
                printf("\nEnter English:");
                scanf("%d",&t->English);
  • 6
    点赞
  • 33
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值