欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

C语言-学生成绩管理系统

程序员文章站 2022-05-06 09:40:39
...

简单的C语言-学生成绩管理系统

我们在学习C语言后,需要对学完的知识做一个整合,而这个精简版的学生成绩管理系统是对于初学者再好不过的练手小项目了,代码如下:

#include<stdio.h>
#include<stdlib.h>
#include<string.h>
struct student
{
    float score;
    char *name;
};
struct student *initStudent(int len)//输入学生姓名成绩
{
    int i;
    struct student *p=(struct student*)malloc(len*sizeof(struct student));
    for(i=0;i<len;i++)
    {
        printf("请输入第%d个学生名字:",i+1);
        p->name=(char *)malloc(128);
        scanf("%s",p->name);
        printf("请输入第%d个学生成绩:",i+1);
        scanf("%f",&(p->score));
        p++;
    }
    return p-len;
}
void printMes(struct student *p,int len)//打印出学生信息
{
    int i;
    for(i=0;i<len;i++)
    {
        printf("第%d个学生:",i+1);
        printf("%s:%.2f\n",p->name,p->score);
        p++;
    }
}
struct student *printMax(struct student *p,int len)//找出成绩最高者
{
    int i;
    struct student *max=NULL;
    max=p;
    for(i=0;i<len;i++)
    {
        if(p->score>max->score)
        {
            max=p;
        }
        p++;
    }
    return max;
}
struct student *printMin(struct student *p,int len)//找出成绩最低者
{
    int i;
    struct student *min=NULL;
    min=p;
    for(i=0;i<len;i++)
    {
        if(p->score<min->score)
        {
            min=p;
        }
        p++;
    }
    return min;
}
float average(struct student *p,int len)//算出平均分
{
    float total=0;
    int i;
    for(i=0;i<len;i++)
    {
        total=total+p->score;
        p++;
    }
    return total/len;
}
int findStu(struct student *p,int len,char *name)//在学生中寻找有没有要找的人
{
    int i;
    for(i=0;i<len;i++)
    {
        if(strcmp(p->name,name)==0)
        {
            return 1;
        }
        p++;
    }
    return -1;
}
int main()
{
    int len=0;
    printf("请输入学生总人数:");
    scanf("%d",&len);
    struct student *p=initStudent(len);
    printMes(p,len);
    struct student *max=NULL;
    max=printMax(p,len);
    struct student *min=NULL;
    min=printMin(p,len);
    printf("max:%s %.2f\nmin:%s %.2f\n",max->name,max->score,min->name,min->score);
    printf("aver:%.2f\n",average(p,len));
    if(findStu(p,len,"tangxin")==-1)
    {
        printf("no people!\n");
    }
    else
    {
        printf("yes!\n");
    }
    
    return 0;
}

C语言-学生成绩管理系统

在学习的过程中,做一些小项目有助于提高编程与调试能力,但不应过多的停留在这个黑乎乎的方框中,C语言是用来干大事的,如果你有兴趣,不妨看看一个基于arduino的感应垃圾桶(很入门),带你走出这无聊的黑框框:
https://blog.csdn.net/weixin_47803347/article/details/108849864

相关标签: 笔记 c语言