第18章汇总统计模块开发_第1页
第18章汇总统计模块开发_第2页
第18章汇总统计模块开发_第3页
第18章汇总统计模块开发_第4页
第18章汇总统计模块开发_第5页
已阅读5页,还剩12页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第18章汇总统计模块的开发本章目录18.1任务说明18.2任务分析18.3任务实施18.4知识点详解18.5项目完善18.1任务说明通过学生成绩管理系统,我们可以方便地

进行学生信息的录入、输出以及查找,但

是除了这些基本功能,有时候我们还需要

知道各个分数段成绩的学生人数、某门课

程及格人数或某门课程的平均分数等等,

而这些问题都属于汇总统计的范畴。因此

我们开发了汇总统计模块来解决这些问题。18.2任务分析“按语文成绩各分数段统计学生的人数”

要求我们统计出语文成绩各分数段的人数,常规的做法是先遍历结构体数组中的数据

元素,并依次判断当前记录的语文成绩所

处的成绩区间,如果当前记录的语文成绩

分数处于某个区间,则该区间的总人数加

一。18.2任务分析(续)本模块的解题思路如图所示:18.3任务实施本模块N-S图如下图所示:汇总统计模块的N-S图18.3任务实施(续)本功能模块的函数实现原型如:int

statistic(stStu

student[],intlength)其中参数student为用于保存待统计学生记录的数组,length为记录个数。struct

student{int

number;

char

name[

20

];float

chinese;float

math;float

english;};#

define

N

10main(

){struct

studentinti,index;stud

[N];intarrayresult[10]={0};printf(“请输入学生信息:\n”);for(i=0;i<N;i++){fflush(stdin);

printf(“学号:”);

scanf(”%d”,&stud

[i].number);printf(“姓名:”);

scanf(”%s”,stud

[i].name);printf(“语文成绩:”);

scanf(”%d”,&

stud

[i].chinese);printf(“数学成绩:”);scanf(”%d”,&

stud

[i].math);printf(“英语成绩:”);scanf(”%d”,

&

stud

[i].english);}for(i=0;i<N;i++){index=stud[i].chinese/10;arrayresult[index]++;}for(i=0;i<10;i++)

printf(“%d分到%d分的人数为%d\n”,i*10,i*10+9,arrayresult[i]);}18.5项目完善本模块以“按学生的总分成绩进行排序”为例进行开发,实现的主要步骤如下:1、根据当前记录计算出当前记录的学生成绩总分;2、选择一种排序算法如冒泡法、选择法等对总分进行排序。下面以选择排序法为例,分析本模块的实现思路,其对应的N-S图如下:18.5项目完善(续)按总成绩排序模块N-S图#include

"stdio.h"#define

N

5struct

student{char

name[20];int

chinese;int

math;int

english;int

avg;};••main(){inti,n;structstudentstud[N],t;•••••••••for(i=0;i<N;i++){printf("请输入第%d学生姓名:",i+1);scanf("%s",stud[i].name);printf("请输入语文成绩:");

scanf("%d",&stud[i].chinese);printf("请输入数学成绩:");scanf("%d",&stud[i].math);printf("请输入英语成绩:");

scanf("%d",&stud[i].english);}for(i=0;i<N;i++)•stud[i].avg=(stud[i].chinese+stud[i].math+stud[i].english)/3;•for(n=N;n>1;n--)for(i=0;i<n-1;i++)if(stud[i]>stud[i+1]){t=stud[i];stud[i]=stud[i+1];stud[i+1]=t;}••printf(“排序后学生的信息:");for(i=0;i<N;i++){

printf(“第%d名学生的成绩:",i+1);printf("姓名:%s\n",stud[i].name);printf("语文:%d\n",stud[i].chinese);printf("数学:%d\n",stud[i].math);printf(

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论