C语言实现学生奖学金评定系统

本文实例为大家分享了C语言实现学生奖学金评定系统的具体代码,供大家参考,具体内容如下

说明:

学生综合积分由文化积分和德育积分构成,文化积分是所有门课程成绩总和除以课程门数(平均分),德育积分是参加各类活动的积分,学生综合积分=文化积分×70%+德育积分×30%。按照学生综合积分排名,获得一等奖学金1名学生,获得二等奖学金2名学生,获得三等奖学金3名学生,项目要求输入班级学生成绩信息,输出获得奖学金的学生名单。已知学生成绩信息包括学号、姓名、英语成绩、网络成绩、C语言成绩、数据库成绩、文化积分、德育积分和综合积分,运行结果如图所示。

实例分析与实现

首先,按照学生成绩信息的组成定义结构体,输入各门课程成绩和德育积分,根据已知的公式,求出文化积分和综合积分;然后,按照学生综合积分从高到低进行排名,并输出排名结果;最后,输出下标为0的学生获得一等奖学金,下标为1和2的学生获得二等奖学金,下标为3、4、5的学生获得三等奖学金。具体算法如下。

① 定义结构体类型student。
② 利用定义的结构体类型定义一个十名学生的数组。
③ 利用for循环输入十名学生的各门课成绩,计算学生文化积分和综合积分。
④ 利用for循环嵌套对学生的成绩按总积分由高到低进行排序。
⑤ 打印总积分从高到低的排序结果、获得奖学金学生名单。
⑥实现输出每门课程不及格学生名单。

#include <stdio.h>
#include <windows.h>
#include<string.h>
#define NUM 10  //修改NUM就可以加学生数量

struct student_scores{//定义学生属性
    int ID;//学号
    char name[20];//姓名
    float english;//英语
    float net;//网络
    float c_;//c语言
    float sql_;//数据库
    float ave;//文化积分
    float deyu;//德育  德育积分是参加各类活动的积分
    float zonghe;//综合        
};

//学生综合积分由文化积分和德育积分构成,文化积分是所有门课程成绩总和除以课程门数(平均分),
//德育积分是参加各类活动的积分,学生综合积分=文化积分×70%+德育积分×30%。按照学生综合积分排名,
//获得一等奖学金1名学生,获得二等奖学金2名学生,获得三等奖学金3名学生,项目要求输入班级学生成绩信息,输出获得奖学金的学生名单。

void main()
{    
    struct student_scores student[NUM],temp;//定义一个结构体名称数组 10个学生
    int i,k;
    printf("请按1键开始录入\n");    
    printf("请输入学号、姓名、英语成绩、网络成绩、C语言成绩、数据库成绩、德育积分>:\n");    
    printf("-----------------------------------------------------------------------\n");
    for( i=0;i<NUM;i++)//动态录入
    {            
        scanf("%d ",&student[i].ID);
        scanf("%s ",&student[i].name);                                              
        scanf("%f %f %f %f %f",&student[i].english,&student[i].net,&student[i].c_,&student[i].sql_,&student[i].deyu);
        student[i].ave=(student[i].english+student[i].net+student[i].c_+student[i].sql_)/4;//文化积分(平均分)
        student[i].zonghe=student[i].ave*70/100+student[i].deyu*30/100;
    }
    printf("-----------------------------------------------------------------------\n");    
    printf("\n");
//    system("cls");//清屏
    for( i=0;i<NUM-1;i++)
    {
        for(k=0;k<NUM-1-i;k++)
        {
            if(student[k].zonghe<student[k+1].zonghe)
            {
                temp.ID = student[k].ID;
                for(i=0;i<20;i++)
                {
                    temp.name[i] = student[k].name[i];
                }
                temp.ave = student[k].ave;
                temp.deyu = student[k].deyu;
                temp.zonghe = student[k].zonghe;
                
                student[k].ID = student[k+1].ID;
                for(i=0;i<20;i++)
                {
                    student[k].name[i] = student[k+1].name[i];
                }
                student[k].ave = student[k+1].ave;
                student[k].deyu = student[k+1].deyu;
                student[k].zonghe = student[k+1].zonghe;

                student[k+1].ID = temp.ID;
                for(i=0;i<20;i++)
                {
                    student[k+1].name[i] = temp.name[i];
                }
                student[k+1].ave =temp.ave;
                student[k+1].deyu =temp.deyu;
                student[k+1].zonghe = temp.zonghe;
            }
        }
    }
    printf("成绩排名<学号、姓名、文化积分、德育积分、总积分>:\n");    
    printf("-----------------------------------------------------------------------\n");
    printf("\n");
    for(i=0;i<NUM;i++)
    {
        printf("%d ",student[i].ID);
        printf("%s ",student[i].name);                                              
        printf("%f %f %f\n",student[i].ave,student[i].deyu,student[i].zonghe);
    }
    printf("-----------------------------------------------------------------------\n");
    printf("奖学金名单如下:\n");    
    printf("-----------------------------------------------------------------------\n");
    printf("一等奖学金获得者:%s\n",student[0].name);
    printf("二等奖学金获得者:%s %s\n",student[1].name,student[2].name);
    printf("三等奖学金获得者:%s %s %s\n",student[3].name,student[4].name,student[5].name);
    system("pause");
}

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

(0)

相关推荐

  • C语言链表实现歌手评分系统

    本文实例为大家分享了C语言链表实现歌手评分系统的具体代码,供大家参考,具体内容如下 此程序可以添加文件操作用于保存歌手得分等信息,此程序实现了链表的增删查和链表冒泡排序交换节点功能 #include <stdio.h> #include <stdlib.h> #include <string.h> //创建结构体及其成员 typedef struct Node { int num;//编号 char name[20];//姓名 float grade[10];//评委评

  • C语言实现学生奖学金评定系统

    本文实例为大家分享了C语言实现学生奖学金评定系统的具体代码,供大家参考,具体内容如下 说明: 学生综合积分由文化积分和德育积分构成,文化积分是所有门课程成绩总和除以课程门数(平均分),德育积分是参加各类活动的积分,学生综合积分=文化积分×70%+德育积分×30%.按照学生综合积分排名,获得一等奖学金1名学生,获得二等奖学金2名学生,获得三等奖学金3名学生,项目要求输入班级学生成绩信息,输出获得奖学金的学生名单.已知学生成绩信息包括学号.姓名.英语成绩.网络成绩.C语言成绩.数据库成绩.文化积分.

  • C语言实现学生打卡系统

    本文实例为大家分享了C语言实现学生打卡系统的具体代码,供大家参考,具体内容如下 题目描述 1.学生信息及打卡情况的录入 2.修改某个学生的打卡情况 3.查询某个学生的打卡情况 4.旷课学生的姓名及次数 5.学生打卡的总评分数计算 完整代码 #define _CRT_SECURE_NO_WARNINGS 1 #include <stdlib.h> #include <stdio.h> #include <string.h> FILE *fp; //定义文件 char a;

  • C语言实现学生选课系统完整版

    本文实例为大家分享了C语言实现学生选课系统的具体代码,供大家参考,具体内容如下 #include<stdio.h> #include<stdlib.h> int N1,N2,kk1,kk2,kk3; struct couse * head1; struct student * head2; struct couse//课程信息结构体 { int num1; char name1[20]; int score; int nelepeo;//课程已选人数 int Melepeo;//课

  • C语言实现学生选课系统

    本文实例为大家分享了C语言实现学生选课系统的具体代码,供大家参考,具体内容如下 代码: #include<stdio.h> #include<windows.h> #include<stdlib.h> #include<conio.h> typedef unsigned char uint8_t; typedef unsigned short uint16_t; typedef unsigned int uint32_t; #define CLASS_CLS

  • C语言实现学生考勤系统

    本文实例为大家分享了C语言实现学生考勤系统的具体代码,供大家参考,具体内容如下 项目要求: 学生考勤系统 功能:学生考勤系统应包含各班学生的全部信息.每个学生是一条记录,包括姓名.性别.学号.出勤情况等.本系统可模拟考勤过程,记录考勤结果,并能够在课程结束后按照设定的考勤评分标准自动给出每个学生的考勤分数. 分步实施: (1)初步完成总体设计,搭好框架,确定人机对话界面,确定函数个数:(2)最低要求:建立一个文件,包括同一个班的10个学生的必要信息,能对文件进 行补充.修订.删除. 采用结构体数

  • C语言实现学生信息管理系统(文件版)

    本文实例为大家分享了C语言实现学生信息管理系统的具体代码,供大家参考,具体内容如下 下面是我自己用写的学生信息管理系统,为了增加数据的利用率,分为学生端和教师端,同时实现账号密码登录,以文件的形式将其存入. 代码如下 #include <stdio.h> #include <string.h> #include <string> #include<Windows.h> #define USER "TOM" // 事先定义用户名,用于登录页

  • C语言实现学生信息管理系统(单链表)

    本文实例为大家分享了C语言实现学生信息管理系统的具体代码,供大家参考,具体内容如下 /*copyright(c)2016.烟台大学计算机学院 * All rights reserved, * 文件名称:text.Cpp * 作者:吴敬超 * 完成日期:2016年7月1日 * 版本号:codeblock * * 问题描述: 学生信息管理系统 * 输入描述: * 程序输出: 输出结果 */ #include <stdio.h> #include <stdlib.h> #include

  • C语言版学生成绩管理系统

    本文实例为大家分享了C语言版学生成绩管理系统的具体代码,供大家参考,具体内容如下 #include<stdio.h> #include<stdlib.h> #include<time.h> #include<conio.h> #include<string.h> #include<algorithm> char buf[255]; char c=14; char path[]="D:\\data"; char tm

  • C语言实现学生学籍管理系统

    本文实例为大家分享了C语言实现学生学籍管理系统的具体代码,供大家参考,具体内容如下 #include<stdio.h> #include<conio.h> #include<stdlib.h> #include<string.h> #include<windows.h> //**********************************结构体************************************* struct score

  • C语言实现学生选修课程系统设计

    本文实例为大家分享了C语言学生选修课程系统的具体代码,供大家参考,具体内容如下 我编程的时间不长,所以这里面肯定有一些错误,或者存在更好的解决方案,欢迎大神上课!谢谢! ps:寻找一起学习的小伙伴! 代码: /********************************* *主题:学生选修课程系统设计 * *设计要求: *1.添加功能:程序能够任意添加课程和学生记录,可提供选择界面供用户选择所需要添加的类别,要求编号要唯一,如果添加了重复编号的记录是,则提示数据添加重复并取消添加. *2.查

随机推荐