C语言学生成绩管理系统(综合项目)

这篇具有很好参考价值的文章主要介绍了C语言学生成绩管理系统(综合项目)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 这个代码主要实现以下功能:

C语言学生成绩管理系统(综合项目)

2. 用到的主要参数有:

    1.整型变量int n;用于储存学生人数和之后的循环判断。
    2.字符串char name[][];用于储存姓名。
    3.浮点型变量float score[];用于储存成绩。
    4.长整型变量long ID[Max];用于储存学号。

3.用到的子函数有:

int  Menu(void);                       系统菜单
void Readscore;                      录入每个学生的学号、姓名和考试成绩
void Aaverage;                        计算课程的总分和平均分
void Scoreuprand;                  按成绩由高到低排出名次表
void Scoredownrand;             按成绩由低到高排出名次表
void IDrand;                             按学号由小到大排出成绩表
void Zdrand;                            按姓名的字典顺序排出成绩表
void IDFind;                             按学号查询学生排名及其考试成绩
void NameFind;                       按姓名查询学生排名及其考试成绩
void Verious;                           按成绩分为5类统计每个类别的人数以及所占百分比
void ScoreList;                        输出每个学生的学号、考试成绩
void Mingzi;                             姓名交换函数
void Xuehao;                           学号交换函数
void Fenshu;                           交换函数
void Chengjidan;                    打印成绩单

4.下面呈现的是C语言学生成绩管理系统(综合项目)的全部代码。文章来源地址https://www.toymoban.com/news/detail-512598.html

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define Max 30

int  Menu(void);                                                       //系统菜单
void Readscore(float score[],long ID[],int n,char name[][21]);         //录入每个学生的学号、姓名和考试成绩
void Aaverage(float score[],int n);                                    //计算课程的总分和平均分
void Scoreuprand(float score[],long ID[],char name[][21],int n);       //按成绩由高到低排出名次表
void Scoredownrand(float score[],long ID[],char name[][21],int n);     //按成绩由低到高排出名次表
void IDrand(float score[],long ID[],char name[][21],int n);            //按学号由小到大排出成绩表
void Zdrand(float score[],long ID[],char name[][21],int n);            //按姓名的字典顺序排出成绩表
void IDFind(float score[],long ID[],char name[][21],int n);            //按学号查询学生排名及其考试成绩
void NameFind(float score[],long ID[],char name[][21],int n);          //按姓名查询学生排名及其考试成绩
void Verious(float score[],int n);                                     //按成绩分为5类统计每个类别的人数以及所占百分比
void ScoreList(float score[],long ID[],int n);                         //输出每个学生的学号、考试成绩
void Mingzi(char name[],char m[]);                                     //姓名交换函数
void Xuehao(long *px,long *py);                                        //学号交换函数
void Fenshu(float *px,float *py);                                      //分数交换函数
void Chengjidan(float score[],long ID[],char name[][21],int n);        //打印成绩单
int  main()
{
    int x;
    int n;
    char name[Max][21];
    float score[Max];
    long ID[Max];
    printf("--------------------欢迎使用学生成绩管理系统--------------------\n");
    printf("请输入班级人数:");
    scanf("%d",&n);
    getchar();
    while(1)
    {
        x=Menu();
        switch(x)
        {
            case 1:  Readscore(score,ID,n,name);        break;
            case 2:  Aaverage(score,n);                 break;
            case 3:  Scoreuprand(score,ID,name,n);      break;
            case 4:  Scoredownrand(score,ID,name,n);    break;
            case 5:  IDrand(score,ID,name,n);           break;
            case 6:  Zdrand(score,ID,name,n);           break;
            case 7:  IDFind(score,ID,name,n);           break;
            case 8:  NameFind(score,ID,name,n);         break;
            case 9:  Verious(score,n);                  break;
            case 10: Chengjidan(score,ID,name,n);       break;
            case 0:  return 0;                          break;
            default:printf("输入错误!");
        }
    }
}



//函数功能:显示菜单并选择子程序
//入口参数:无
//返回值:x
int Menu(void)     //---------菜单函数
{

    int x;system("cls");
    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("8.按姓名查询成绩\n");
    printf("9.成绩分析\n");
    printf("10.成绩单输出\n");
    printf("0.退出\n");
    printf("请输入你的选择:");
    scanf("%d",&x);
    return x;
}



//函数功能:录入每个学生的学号和考试成绩
//入口参数:score,ID,n,name
//返回值:无
void Readscore(float score[],long ID[],int n,char name[][21])     //---------录入函数
{
    system("cls");
    printf("--------------------成绩录入--------------------\n");
    int i;
    printf("输入学号、姓名和成绩:\n");
    for (i=0;i<n;i++)
    {
        //gets(name[i]);
        scanf("%ld %s %f",&ID[i],name+i,&score[i]);
    }
    system("pause");
}



//函数功能:计算课程的总分和平均分
//入口参数:score,n
//返回值:无
void Aaverage(float score[],int n)     //---------输出成绩总分和平均成绩函数
{
    system("cls");
    printf("--------------------成绩的总分和平均分--------------------\n\n");
    int i,sum=0;
    for(i=0;i<n;i++)
    {
        sum+=score[i];
    }
    printf("********成绩总和:%d   成绩平均分数:%.2f********\n",sum,sum/(float)n);
    system("pause");
}



//函数功能:按成绩由高到低排出名次表
//入口参数:score,ID,n,name
//返回值:无
void Scoreuprand(float score[],long ID[],char name[][21],int n)       //---------成绩升序排名函数
{
    system("cls");
    printf("--------------------成绩升序名次表--------------------\n");
    int i,j;
    for(i=0;i<n;i++)
        {
            for(j=i+1;j<n;j++)
            {
                if(score[i]>score[j])
                {
                    Fenshu(&score[i],&score[j]);
                    Mingzi(name[i],name[j]);
                    Xuehao(&ID[i],&ID[j]);
                }
            }
        }
    Chengjidan(score,ID,name,n);
    system("pause");
}



//函数功能:按成绩由低到高排出名次表
//入口参数:score,ID,n,name
//返回值:无
void Scoredownrand(float score[],long ID[],char name[][21],int n)     //---------成绩降序排名函数
{
    system("cls");
    printf("--------------------成绩降序名次表--------------------\n");
    int i,j;
    for(i=0;i<n;i++)
        {
            for(j=i+1;j<n;j++)
            {
                if(score[i]<score[j])
                {
                    Fenshu(&score[i],&score[j]);
                    Mingzi(name[i],name[j]);
                    Xuehao(&ID[i],&ID[j]);

                }
            }
        }
    Chengjidan(score,ID,name,n);
    system("pause");
}

//函数功能:按学号由小到大排出成绩表
//入口参数:score,ID,n,name
//返回值:无
void IDrand(float score[],long ID[],char name[][21],int n)     //---------学号排名函数
{
    system("cls");
    printf("--------------------学号降序成绩单--------------------\n");
    int i,j;
    for(i=0;i<n;i++)
        {
            for(j=i+1;j<n;j++)
            {
                if(ID[i]<ID[j])
                {
                    Xuehao(&ID[i],&ID[j]);
                    Fenshu(&score[i],&score[j]);
                    Mingzi(name[i],name[j]);
                }
            }
        }
    Chengjidan(score,ID,name,n);
    system("pause");
}



//函数功能:按名字在字典位置排出成绩表
//入口参数:score,ID,n,name
//返回值:无
void Zdrand(float score[],long ID[],char name[][21],int n)     //---------字典排名函数
{
    system("cls");
    int i,j,k;
    if(n==0)
    {
        printf("请先录入成绩!");
        return 0;
    }
    for(i=0;i<n;i++)
    {
        for(j=i+1;j<n;j++)
        {
            if(strcmp(name[i],name[j])>0)
            {
                Mingzi(name[i],name[j]);
                Xuehao(&ID[i],&ID[j]);
                Fenshu(&score[i],&score[j]);
            }
        }
    }
    printf("--------------------名字按照字典的顺序排序--------------------\n\n");
    Chengjidan(score,ID,name,n);
    system("pause");
}



//函数功能:按学号查询学生排名及其考试成绩
//入口参数:score,ID,n,name
//返回值:无
void IDFind(float score[],long ID[],char name[][21],int n)     //---------学号查找函数
{
    system("cls");
    printf("--------------------学号查询系统--------------------\n");long i=0;
    int low=0,high=n-1,mid,ret,j,k;
    printf("请输入学号:\n");
    ret=scanf("%ld",&k);
    while(ret!=1)
    {
        while(getchar()!='\n');
        printf("请重新输入正确的学号:\n");
        scanf("%ld",&k);
    }
    for(i=0;i<n;i++)
        {
            if(k==ID[i])
            {
                printf("查寻结果如下:\n");
                printf("\n学号:%ld  ",ID[i]);
                printf("姓名:%s  ",name[i]);
                printf("成绩:%f\n",score[i]);
                break;
            }
            if(k==(n-1)&&k!=ID[i])
            {
                printf("未找到该名同学,请重新输入学号\n");
            }
        }
        system("pause");

}


//函数功能:按姓名查询学生排名及其考试成绩
//入口参数:score,ID,n,name
//返回值:无
void NameFind(float score[],long ID[],char name[][21],int n)     //---------姓名查找函数
{
    system("cls");
    printf("--------------------姓名查询系统--------------------\n");long i=0;
    int a,j;
    char cha[11];
    char chu[11]="0";
    while(1)
    {
        printf("请输入姓名进行查询(输入“0”结束查询):\n");
        scanf("%s",cha);
        if(strcmp(cha,chu)==0)
        {
            printf("即将返回主菜单\n\n");
            return (0);
        }
        for(i=0;i<n;i++)
        {
            if(strcmp(cha,name[i])==0)
            {
                printf("姓名:%s  ",name[i]);
                printf("学号:%ld  ",ID[i]);
                printf("成绩:%f\n",score[i]);
                break;
            }
            if(i==(n-1)&&strcmp(cha,name[i])!=0)
            {
                printf("未找到该名同学,请重新输入姓名\n");
            }
        }
        system("pause");
    }
}



//函数功能:按成绩分为5类统计每个类别的人数以及所占百分比
//入口参数:score,n
//返回值:无
void Verious(float score[],int n)     //---------按成绩分类函数
{
    system("cls");
    printf("--------------------成绩分类表--------------------\n");
    int i;
    float x1=0,x2=0,x3=0,x4=0,x5=0;
    for(i=0;i<n;i++)
    {
        if(score[i]>=90&&score[i]<=100)
        {
            x1++;
        }
        else if(score[i]>=80&&score[i]<90)
        {
            x2++;
        }
        else if(score[i]>=70&&score[i]<80)
        {
            x3++;
        }
        else if(score[i]>=60&&score[i]<70)
        {
            x4++;
        }
        else
        {
            x5++;
        }
    }
    printf("优秀人数为:  %.f   占总人数的:%.2f%%\n",x1,(x1/n)*100);
    printf("良好人数为:  %.f   占总人数的:%.2f%%\n",x2,(x2/n)*100);
    printf("中等人数为:  %.f   占总人数的:%.2f%%\n",x3,(x3/n)*100);
    printf("及格人数为:  %.f   占总人数的:%.2f%%\n",x4,(x4/n)*100);
    printf("不及格人数为:%.f   占总人数的:%.2f%%\n",x5,(x5/n)*100);
    system("pause");
}



//函数功能:交换姓名
//入口参数:n,name
//返回值:无
void Mingzi(char name[],char m[])    //---------姓名交换函数
{
    char s[21];                    //---------中间储存字符串
    strcpy(s,name);
    strcpy(name,m);
    strcpy(m,s);
}



//函数功能:交换学号
//入口参数:n,ID
//返回值:无
void Xuehao(long *px,long *py)       //---------学号交换函数
{
    int x;
    x=*px;
    *px=*py;
    *py=x;
}



//函数功能:交换分数
//入口参数:score,n
//返回值:无
void Fenshu(float *px,float *py)     //---------分数交换函数
{
    int x;
    x=*px;
    *px=*py;
    *py=x;
}



//函数功能:打印成绩单
//入口参数:score,n,ID,name
//返回值:无
void Chengjidan(float score[],long ID[],char name[][21],int n)      //------------------------------成绩单函数
{
    int i;
    if(n==0)
    {
        printf("还没有录入成绩!");
    }
    printf("      姓名       学号        分数\n");
    for(i=0;i<n;i++)
    {
        printf(" %-2d   %-8s   %-8ld    %-2f\n",i+1,name[i],ID[i],score[i]);
    }system("pause");
}

到了这里,关于C语言学生成绩管理系统(综合项目)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包赞助服务器费用

相关文章

  • C语言课程设计-学生成绩管理系统

    C语言课程设计-学生成绩管理系统

    需求分析: 1.设计题目:学生成绩管理系统 2.系统功能需求分析:实现对学生各科成绩总分及平均分的排序,和成绩的查找 概要设计 1. 功能模块图 详细设计 1. 流程图 测试结果 :列出所有功能的运行界面,并作文字说明。 1.录入成绩:录入3个人的学号和各科成绩 2.每门课程

    2024年02月11日
    浏览(13)
  • C语言编程学生成绩管理系统

    C语言编程学生成绩管理系统

    目录 一、介绍 二、功能 1.录入学生 2.删除学生信息 3.修改学生信息 4.查询学生信息 5.所有学生信息 6.成绩排序  7.退出程序 三、代码 1.主函数 2.头文件 3.函数封装库         利用C语言,运用链表、指针、封装函数等基本知识实现一个学生管理系统。通过在终端对学生信息进

    2024年02月10日
    浏览(49)
  • 96 | Python 小项目—— 学生成绩管理系统

    学生成绩管理系统是一个简单的学生课程管理系统,旨在帮助学校或教育机构轻松管理学生的成绩和课程信息。系统提供了登录界面,只有管理员可以访问数据。通过创建一个CSV文件来存储学生信息,可以对数据进行修改和读取。系统使用TKINTER库创建了用户界面,实现了学生

    2024年02月13日
    浏览(14)
  • 学生成绩管理系统——C语言版(含源码)

    学生成绩管理系统——C语言版(含源码)

    一、开发环境 操作系统:Ununtu 16 开发环境工具:vscode 开发语言:C语言 二、功能需求 制作学生管理系统 在系统中能够实现 录入学生信息、帮助菜单、列出学生信息、计算总成绩平均值、根据总成绩平均值完成排序、根据学号查询学生信息、清屏、退出等功能。 三、功能说

    2024年02月08日
    浏览(14)
  • C语言课程设计_学生成绩管理系统

    C语言课程设计_学生成绩管理系统

    设计一个学生成绩排名系统。 1)  具备对成绩的管理功能(添加、删除、排序) 2)  具备对成绩的统计功能(最高分,最低分,平均分,及格率等) 3)  具备按学号、姓名、或课程名查询成绩的功能。 4)学生成绩应该保存在文件中。 备注:成绩记录以下信息:班级,学号,

    2024年02月11日
    浏览(9)
  • 学生成绩管理系统(C语言)(数组结构体)

    学生成绩管理系统(C语言)(数组结构体)

    学生成绩管理系统 利用结构体、排序查找算法以及模块化程序设计实现如下菜单驱动的学生成绩管理系统: 1) 首次批量输入每个学生的学号、姓名、和各科考试成绩。 2) 增添一个新学生的信息。 3) 增添一门新的学科的信息。 4) 按学生姓名或学号查询、修改、删除学生信

    2024年02月09日
    浏览(9)
  • C语言学生成绩信息管理系统(超详细版)

    C语言学生成绩信息管理系统(超详细版)

    主题:一个简易成绩管理系统 功能介绍: 1.以文本形式存储学生信息 2.对以存信息进行   1. 插入 2. 修改3. 删除  4.查询  5.成绩数字特征 目录 一:分析 二:查询  三:菜单 四:初始化函数 五:插入函数 六:修改函数 七:删除函数 八:数字特征 九:显示函数 要进行 插入

    2024年02月12日
    浏览(16)
  • 学生成绩管理系统(C语言有结构体实现)

    学生成绩管理系统(C语言有结构体实现)

    本文章介绍了一个通过C语言实现的一个简单的学生管理系统,该系统要是使用结构体数组来管理学生成绩数据的,通过该系统的练习能够对结构体的相关知识有更好的理解,提高逻辑思维能力。 系统运行,打开如下界面。列出系统帮助菜单(即命令菜单),提示输入命令 开

    2024年02月06日
    浏览(9)
  • Java项目:18 基于SpringBoot的学生成绩管理系统

    Java项目:18 基于SpringBoot的学生成绩管理系统

    作者主页:舒克日记 简介:Java领域优质创作者、Java项目、学习资料、技术互助 文中获取源码 基于springboot的学生成绩管理系统主要功能 分为两个端,教师和学生 教师的主要功能:学生信息、成绩信息的增删改查 学生的主要功能:我的成绩、我的总成绩的查看 1.运行环境:

    2024年02月21日
    浏览(14)
  • ChatGPT实现用C语言写一个学生成绩管理系统

    随着ChatGPT爆火,大家都在使用ChatGPT来帮助自己提高效率,对于程序员来说使用它来写代码怎么样呢?今天尝试让ChatGPT,写了一个学生成绩管理系统。 问题是:使用C语言写一个学生成绩管理系统,要求使用链表,实现增删改查功能。 下面是ChatGPT写的代码,用时不到30秒,速

    2023年04月13日
    浏览(43)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包