`
java-mans
  • 浏览: 11341546 次
文章分类
社区版块
存档分类
最新评论

第16周报告2(任务4)--学生人数和成绩

 
阅读更多

第16周报告2(任务4)<wbr><br> 实验目的:学会使用循环控制语句解决实际问题<br> 实验内容:用循环控制语句编写程序,完成表达式的计算<br><br> * 程序头部注释开始(为避免提交博文中遇到的问题,将用于表明注释的斜杠删除了)<br> * 程序的版权和版本声明部分<br> * Copyright (c) 2011, 烟台大学计算机学院学生<br> * All rights reserved.<br> * 文件名称:<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><br> * 作<wbr><wbr><wbr> 者:<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr>雷恒鑫<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><br> * 完成日期:<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> 2011年<wbr><wbr><wbr><wbr><wbr>12<wbr> 月<wbr><wbr><wbr><wbr><wbr><wbr><wbr>09 日<br> * 版本号:<wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> V1.0<br><br> * 对任务及求解方法的描述部分<br> * 输入描述:学生人数和成绩<br> * 问题描述:(函数及数组的简单应用) 在数组score中将要存储某小组C++程序设计的成绩,请设计完成下面功能函数,并将它们组合成一个完整的应用:<br> (1)输入小组人数及成绩;<br> (2)输出该小组的最高成绩、最低成绩、平均成绩和成绩的标准偏差;<br> (3)输出考得最高成绩和最低成绩的同学的人数及对应的学号(设成绩对应的下标即学号,可能有相同的成绩)<br> * 程序输出:小组的最高成绩、最低成绩、平均成绩和成绩的标准偏差;最高成绩和最低成绩的同学的人数及对应的学号<br> * 问题分析:……<br> * 算法设计:……<br> * 程序头部的注释结束(此处也删除了斜杠)</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

#include <iostream>
#include<Cmath>
#include <iomanip>
using namespace std;
//在这个问题中,成绩和人数是核心数据,适合作为全局变量处理
int score[50];<wbr><wbr><wbr> //将score设为全局变量,在各个函数中可以直接使用<br> int num;<wbr><wbr><wbr><wbr><wbr><wbr><wbr> //小组人数也设为全局变量<br> void input_score();<br> int get_max_score();<br> int get_min_score();<br> double get_avg_score();<br> double get_stdev_score();<br> int count(int);<br> void output_index(int);</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

int main(void)
{
<wbr> int max_score,min_score;<br><wbr> cout&lt;&lt;"小组共有多少名同学?";<br><wbr> cin&gt;&gt;num;<br><wbr> cout&lt;&lt;endl&lt;&lt;"请输入学生成绩:"&lt;&lt;endl;<br><wbr> input_score();<wbr> //要求成绩在0-100之间<br><wbr> max_score=get_max_score();<br><wbr> cout&lt;&lt;endl&lt;&lt;"最高成绩为:"&lt;&lt;max_score&lt;&lt;",共有 "&lt;&lt;count(max_score )&lt;&lt;" 人。";<br><wbr> min_score=get_min_score();<br><wbr> cout&lt;&lt;endl&lt;&lt;"最低成绩为:"&lt;&lt;min_score&lt;&lt;",共有 "&lt;&lt;count(min_score )&lt;&lt;" 人。";<br><wbr> cout&lt;&lt;endl&lt;&lt;"平均成绩为:"&lt;&lt;get_avg_score();<br><wbr> cout&lt;&lt;endl&lt;&lt;"标准偏差为:"&lt;&lt;get_stdev_score();<br><wbr> cout&lt;&lt;endl&lt;&lt;"获最高成绩的学生(学号)有:";<br><wbr> output_index(max_score);<br><wbr> cout&lt;&lt;endl&lt;&lt;"获最低成绩的学生(学号)有:";<br><wbr> output_index(min_score);<br><wbr> cout&lt;&lt;endl;<br><wbr> system("PAUSE");<br><wbr> return 0;<br> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

// input_score函数提供给同学们参考
//input_score函数的功能是输入小组成员的成绩
void input_score()
{
<wbr><wbr><wbr> int i,*p=score;<br><wbr><wbr><wbr> for(i=0;i&lt;num;i++)<br><wbr><wbr><wbr><wbr><wbr><wbr> do<br><wbr><wbr><wbr><wbr><wbr><wbr> {<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> cout&lt;&lt;"输入第 "&lt;&lt;i&lt;&lt;" 位同学的成绩:";<br><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr><wbr> cin&gt;&gt;*(p+i);<br><wbr><wbr><wbr><wbr><wbr><wbr> }while(*(p+i)&lt;0||*(p+i)&gt;100);<br><wbr><wbr><wbr> return;<br><wbr>}<br><wbr><br> // get_max_score()函数的功能是求出num名同学的最高成绩<br> int get_max_score()<br> {<br><wbr>int max,i,*p=score;<br><wbr>max = *p;<br><wbr>for (i = 1;i &lt; num;i++)<br><wbr>{<br><wbr> if ( *(p+i) &gt; max )<br><wbr> {<br><wbr><wbr> max = *(p+i);<br><wbr> }<br><wbr>}<br><wbr>return max;<br> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

// get_min_score()函数的功能是求出num名同学的最低成绩
int get_min_score()
{
<wbr>int min,i,*p=score;<br><wbr>min = *p;<br><wbr>for (i = 1;i &lt; num;i++)<br><wbr>{<br><wbr> if (*(p+i)<wbr> &lt; min )<br><wbr> {<br><wbr><wbr> min =*(p+i);<br><wbr> }<br><wbr>}<br><wbr>return min;<br> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

// get_avg_score()函数的功能是求出num名同学的平均成绩
double get_avg_score()
{
<wbr>double sum = 0,aver;<br><wbr>int i,*p=score;<br><wbr>for (i = 0;i &lt; num;i++)<br><wbr>{<br><wbr> sum = sum +*(p+i) ;<br><wbr>}<br><wbr>aver = sum/i;<br><wbr>return aver;<br> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

// get_ stdev _score()函数的功能是求出num名同学成绩的标准偏差
double get_stdev_score()
{
<wbr>int i,*p=score;<br><wbr>double q = 0,s;<br><wbr>for (i = 0;i &lt; num;i++)<br><wbr>{<br><wbr> q = q+(*(p+i)-get_avg_score())*(*(p+i)-get_avg_score());<br><wbr>}<br><wbr>s = sqrt(q/(i-1));<br><wbr>return s;<br> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

// count(int s)函数的功能是返回值score数组中为s的元素的个数
int count(int s)
{
<wbr>int index = 0,i,*p=score;<br><wbr>for (i = 0;i &lt; num;i++)<br><wbr>{<br><wbr> if (*(p+i)==s)<br><wbr> {<br><wbr><wbr> index = index + 1;<br><wbr> }<br><wbr>}<br><wbr>return index;<br> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>


// output_index函数的功能是输出score数组中值为s的元素的下标(index)
//注意:值为s的元素可能有多个
void output_index(int s)
{
<wbr>int i,*p=score;<br><wbr>for (i = 0;i &lt; num;i++)<br><wbr>{<br><wbr> if (s==*(p+i))<br><wbr> {<br><wbr><wbr> cout&lt;&lt;setw(3)&lt;&lt;i;<br><wbr> }<br><wbr>}<br><wbr>return;<br> }</wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr></wbr>

<wbr></wbr>

<wbr><br> 运行结果:</wbr>



经验积累:
1.用指针访问数据就是要把数组score的首地址赋给指针变量*p.
2.
3.

上机感言:



分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics