首页 > 代码库 > 学生成绩管理程序(C语言dos程序)
学生成绩管理程序(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环境下运行成功的,至于有些代码的用法可能与其它的编译器有差别,不过都是少数甚至没有。
本程序不用做其它用途。
学生成绩管理程序(C语言dos程序)
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。