学生成绩管理程序(C语言dos程序)

在昨天写的一个血生成绩管理程序

给大家分享一下

本程序仅供学习交流

代码如下:

  1 /*本程序为简单的学生信息管理系统,作为技术交流,并不作为其它用途*/
  2 #include<stdio.h>
  3 #include<string.h>
  4
  5 void rank1(float b[]);
  6 int count = 1;
  7 //结构体
  8 struct student
  9 {
 10     char name[10];    //学生的姓名
 11     char subject[10];    //学生的科目
 12     float score[5];    //学生的成绩
 13     float sum;    //学生的总成绩
 14     float average;    //学生的平均分
 15     float min;    //最低分
 16     float max;    //最高分
 17     int rank;    //排名
 18 };
 19 struct student stu[5];
 20 //主函数
 21 int main()
 22 {
 23     char name1[5][10] = { "刘玮","刘然","刘潇","刘鑫","刘鹏" };
 24     char subject1[5][10] = { "语文","数学","英语","物理","化学" };
 25     char title[11][10] = { "姓名","语文","数学","英语","物理","化学","总分","平均分","最高分","最低分","排名" };
 26     int i, j;
 27     float b[5];
 28     //复制姓名到结构体里面
 29     for (i = 0;i < 5;i++)
 30     {
 31         strcpy_s(stu[i].name, name1[i]);
 32         strcpy_s(stu[i].subject, subject1[i]);
 33     }
 34
 35     printf("请根据提示输入一下信息:\n\n");
 36     //根据提示输入各位学生的成绩信息
 37     for (i = 0;i < 5;i++)
 38     {
 39         printf("请输入%s的成绩:\n", stu[i].name);
 40         for (j = 0;j < 5;j++)
 41         {
 42             printf("%s:", stu[j].subject);
 43             scanf_s("%f", &stu[i].score[j]);
 44         }
 45         printf("\n");
 46     }
 47     //处理个学生的信息
 48     for (i = 0;i < 5;i++)
 49     {
 50         stu[i].sum = 0;
 51         stu[i].min = stu[i].max = stu[i].score[0];
 52         for (j = 0;j < 5;j++)
 53         {
 54             stu[i].sum += stu[i].score[j];
 55             if (stu[i].max < stu[i].score[j])    stu[i].max = stu[i].score[j];
 56             if (stu[i].min > stu[i].score[j])    stu[i].min = stu[i].score[j];
 57         }
 58         stu[i].average = stu[i].sum / 5;
 59     }
 60     //把总分复制到另一个数组里面方便调用
 61     for (i = 0;i < 5;i++)
 62         b[i] = stu[i].sum;
 63     //调用排名函数
 64     rank1(b);
 65     //对学生成绩信息进行输出
 66     printf("学生成绩信息处理为:\n\n");
 67     for (i = 0;i < 11;i++)
 68         printf("%s\t", title[i]);
 69     printf("\n");
 70     printf("-------------------------------------------------------------------------------------------\n");
 71     for (i = 0;i < 5;i++)
 72     {
 73         printf("%s\t", stu[i].name);
 74         for (j = 0;j < 5;j++)
 75         {
 76             printf("%.f\t", stu[i].score[j]);
 77         }
 78         //输出总分
 79         printf("%.f\t", stu[i].sum);
 80         //输出平均分
 81         printf("%.2f\t", stu[i].average);
 82         //输出最高分
 83         printf("%.f\t", stu[i].max);
 84         //输出最低分
 85         printf("%.f\t", stu[i].min);
 86         //输出排名
 87         printf("第%d名", stu[i].rank);
 88         printf("\n");
 89     }
 90 }
 91 //对学生成绩进行排名的函数
 92 void rank1(float b[])
 93 {
 94     int i, j;
 95     float temp;
 96     //用冒泡排序法对数组进行排序(由大到小)
 97     for (i = 0;i < 5;i++)
 98     {
 99         for (j = 0;j<5 - i;j++)
100         {
101             if (b[j] < b[j + 1])
102             {
103                 temp = b[j];
104                 b[j] = b[j + 1];
105                 b[j + 1] = temp;
106             }
107         }
108     }
109     printf("成绩总分排名为:\n\n");
110     //对数组进行排名
111     for (i = 0;i < 5;i++)
112         for (j = 0;j < 5;j++)
113             if (b[i] == stu[j].sum)
114             {
115                 stu[j].rank = count++;
116                 break;
117             }
118     //解决排名为0的问题
119     for (i = 0;i < 5;i++)
120     {
121         if (stu[i].rank == 0)
122         {
123             for (j = 0;j < i;j++)
124             {
125                 if (stu[j].sum == stu[i].sum)
126                     stu[i].rank = stu[j].rank - 1;
127             }
128         }
129     }
130
131 }

声明:本人的程序是在vs环境下运行成功的,至于有些代码的用法可能与其它的编译器有差别,不过都是少数甚至没有。

本程序不用做其它用途。

时间: 2024-07-31 01:18:01

学生成绩管理程序(C语言dos程序)的相关文章

学生成绩管理C语言版

[标题]学生成绩管理的设计与实现 [开发语言]C语言 [概要设计]使用结构体存储学生的学号.姓名和成绩信息,实现对学生成绩类的基本操作:增加.删除.查询.排序 [测试数据]按提示输入5组正确的正确的数据和5组有问题的数据,查看程序能否运行正确 [测试结果]基本功能运行正确,异常输入无法处理(关于性能对比测试,查看C++版:http://www.cnblogs.com/forerve/p/3908716.html) [详细设计] 1 #include<stdio.h> 2 #include<

《C语言编写 学生成绩管理系统》

/* (程序头部凝视開始)* 程序的版权和版本号声明部分* Copyright (c) 2011, 烟台大学计算机学院学生 * All rights reserved.* 文件名: 学生成绩管理系统 * 作 者: 刘江波 * 完毕日期: 2012 年 6 月 23 日* 版 本 号: v.623 * 对任务及求解方法的描写叙述部分 * 程序头部的凝视结束 */ #include "stdio.h" #include"string" /*定义学生结构体*/ struc

C语言文件实现学生成绩管理

C语言实现学生成绩管理 项目简介 用C语言的链表及文件操作实现学生成绩的管理,实现主要的添加.修改.删除.查询的主要功能,并在程序关闭时将数据存储在二进制的文件中并加密.下一次打开程序,先解密二进制文件,然后将数据读入内存,再允许用户的操作. 程序简示图 功能介绍 1. 加密数据: 程序结束时,现将生成的链表,写入二进制的临时文Temp.dat,再运用加密函数,将Temp.dat加密到文件Data.dat(就相当于数据库),并删除文件Temp.dat.程序开始运行时,先获取文件Data.dat的

C语言练手自己编写学生成绩管理系统

#include<stdio.h> #include<stdlib.h> /*定义学生结构体*/ struct Student { char ID[20]; char Name[20]; float Mark1; float Mark2; float Mark3; float Avarage; }; /*声明学生数组及学生数量*/ struct Student students[1000]; int num=0; /*计算平均成绩*/ float Avg(struct Studen

【学生成绩管理系统】 大二c语言作业

几年前写的了,只能在命令行窗口运行,虽然比较挫,还是有一定参考价值... #include <cstdio> #include <conio.h> #include <iostream> #include <process.h> #include <stdlib.h> #include <algorithm> #include <cstring> #include <cmath> #define N 5 con

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

C语言实现了学生成绩管理系统,可以进行学生成绩的增加,删除,更新,查询,计算和展示. 完整代码如下: #include<stdio.h> #include<stdlib.h> #include<string.h> typedef struct person //定义结构体 { char num[10]; //学号 char name[20]; //姓名 float cyuyan; //C语言成绩 float en; //物理学成绩 float ji; //原子物理成绩

C语言学生成绩管理系统(简易版)

1 #include<stdio.h> 2 #include<stdlib.h> 3 #include<string.h> 4 5 int readstudents(struct students stu[]); //读取学生信息 6 int readsexcode(struct sexcode sex[]); //读取性别代码 7 int readcollegecode(struct collegecode colle[]); //读取学院代码 8 void tran

《C语言 学生成绩管理系统》

/* (盯着先拔头筹程序) * 该计划的版权声明和版本号 * Copyright (c) 2011, 烟台大学计算机学院学生的学校 * All rights reserved. * 文件名: 学生成绩管理系统 * 作 者: 刘江波 * 完毕日期: 2012 年 6 月 23 日 * 版 本 号: v.623 * 对任务及求解方法的描写叙述部分 * 程序头部的凝视结束 */ #include "stdio.h" #include"string" /*定义学生结构体*/

[项目记录] 用c语言完成的一个学生成绩管理系统

一.要求: 学生成绩管理系统 某班有最多不超过30人(具体人数由键盘输入)参加期末考试,最多不超过6门(具体门数由键盘输入).使用链表编程实现如下菜单驱动的学生成绩管理系统. 从文件读入每个学生个人信息和成绩信息,可以由键盘输入文件名.读入成功提示读入学生记录的个数,不成功提示相应出错信息. 增量式手动录入每个学生的学号.姓名和各科考试成绩.不考虑中文姓名,但需要考虑重名情况下的处理,学生的学号是唯一的. 计算每门课程的总分和平均分: 计算每个学生的总分和平均分: 按每个学生的总分由高到低排出名