C语言学生成绩管理系统源码

 更新时间:2022年03月02日 09:27:30   作者:reg183  
这篇文章主要为大家详细介绍了C语言学生成绩管理系统源码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C语言学生成绩管理系统的具体代码,供大家参考,具体内容如下

效果如下:

代码如下:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

struct student{
        int num;
        char name[20];
        float score1;
        float score2;
        float score3;
        double total;
}stu[4];


void a();
void b();
void c();
void d();
void e();
int main(void)
{
    //printf("Hello World!\n");


       int n;
       while(n!=6){

           printf("\t student score manage system\n");
           printf("1-input all student's score!\n");
           printf("2-show all student's score!\n");
           printf("3-output student's average score!\n");
           printf("4-output student's score and rank!\n");
           printf("5-result output txt file!\n");
           printf("6-exit!\n");
           scanf("%d",&n);
           switch(n){
               case 1:a();break;
               case 2:b();break;
               case 3:c();break;
               case 4:d();break;
               case 5:e();break;
               case 6:printf("******ByeBye******");break;
           }
       }

    return 0;
}

//输入成绩
void a(){
    int i;
    for(i=0;i<4;i++){
        printf("input num name score1 score2 score3: ");
        scanf("%d%s%f%f%f",&stu[i].num,stu[i].name,&stu[i].score1,&stu[i].score2,&stu[i].score3);
    }

    for(i=0;i<4;i++){
        stu[i].total=stu[i].score1+stu[i].score2+stu[i].score3;
    }
}
//输出成绩
void b(){
    int i;
    printf("num \t name \t score1 \t score2 \t score3 \t total \n");
    for(i=0;i<4;i++){
        printf("%d \t %s \t %f \t %f \t %f \t %f \n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].total);
    }
}

//求平均成绩
void c(){

    double total=0;
    double avg;
    int i;
    for(i=0;i<4;i++){
        total+=stu[i].total;
    }
    avg=total/4.0;
    printf("avg is :%f \n",avg);
}

//按照总成绩排序
void d(){
    struct student temp;
    int i,j;
    for(i=0;i<4;i++){

        for(j=i+1;j<4;j++){
            temp=stu[i];
            stu[i]=stu[j];
            stu[j]=temp;
        }
    }

    printf("num \t name \t score1 \t score2 \t score3 \t total \n");
    for(i=0;i<4;i++){
        printf("%d \t %s \t %f \t %f \t %f \t %f \n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].total);
    }
}

// 保存数据到文件
void e(){

    int i;
    FILE *fp;
    fp=fopen("E:/result.txt","w");

    fprintf(fp,"num \t name \t score1 \t score2 \t score3 \t total \n");

    for(i=0;i<4;i++){
        fprintf(fp,"%d \t %s \t %f \t %f \t %f \t %f \n",stu[i].num,stu[i].name,stu[i].score1,stu[i].score2,stu[i].score3,stu[i].total);

    }

    printf(" save success! \n ");
}

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • C++实现五子棋游戏

    C++实现五子棋游戏

    这篇文章主要为大家详细介绍了C++实现五子棋游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • C++对象模型和this指针详解

    C++对象模型和this指针详解

    这篇文章主要介绍了详解C++对象模型和this指针,是C++入门学习中的基础知识,需要的朋友可以参考下,希望能够给你带来帮助
    2021-10-10
  • C语言链接属性的实践应用

    C语言链接属性的实践应用

    C语言中链接属性决定如何处理在不同文件中出现的标示符,下面这篇文章主要给大家介绍了关于C语言链接属性的实践应用,文中通过示例代码介绍的非常详细,需要的朋友可以参考下
    2022-03-03
  • C++ 基础编程之十进制转换为任意进制及操作符重载

    C++ 基础编程之十进制转换为任意进制及操作符重载

    这篇文章主要介绍了C++ 基础编程之十进制转换为任意进制及操作符重载的相关资料,需要的朋友可以参考下
    2017-02-02
  • 哈夫曼的c语言实现代码

    哈夫曼的c语言实现代码

    着先通过 HuffmanTree() 函数构造哈夫曼树,然后在主函数 main()中自底向上开始(也就是从数组序号为零的结点开始)向上层层判断,若在父结点左侧,则置码为 0,若在右侧,则置码为 1。最后输出生成的编码
    2013-07-07
  • C++11 并发指南之std::thread 详解

    C++11 并发指南之std::thread 详解

    这篇文章主要介绍了C++11 并发指南之std::thread 详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-02-02
  • OpenCV实现特征检测和特征匹配方法汇总

    OpenCV实现特征检测和特征匹配方法汇总

    一幅图像中总存在着其独特的像素点,这些点我们可以认为就是这幅图像的特征,成为特征点,本文主要介绍了OpenCV实现特征检测和特征匹配方法,感兴趣的可以了解一下
    2021-08-08
  • 详解c++优先队列priority_queue的用法

    详解c++优先队列priority_queue的用法

    本文详细讲解了c++优先队列priority_queue的用法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-12-12
  • C++编程模板匹配超详细的识别手写数字实现示例

    C++编程模板匹配超详细的识别手写数字实现示例

    大家好!本篇文章是关于手写数字识别的,接下来我将在这里记录我的手写数字识别的从零到有,我在这里把我自己的写代码过程发出来,希望能帮到和我一样努力求知的人
    2021-10-10
  • C++深入探究二阶构造模式的原理与使用

    C++深入探究二阶构造模式的原理与使用

    C++中经常会因为调用系统资源失败导致出现BUG,所以在类调用构造函数需要分配系统资源时会出现BUG,从而导致类对象虽然被创建,但是只是个半成品,为了避免这种情况需要使用二阶构造模式
    2022-04-04

最新评论