第14周上机实践项目3——多科成绩单(3)
2014-11-30 21:30
239 查看
问题及代码
![](http://img.blog.csdn.net/20141130213023937)
学习感悟:虽然只是加了一项,但要做的工作好多。。。。。。
/* * Copyright (c) 2014, 烟台大学计算机学院 * All rights reserved. * 文件名称:test.cpp * 作 者:辛彬 * 完成日期:2014年 11 月 30 日 * 版 本 号:v1.0 * * 问题描述: 输出各门课及总分的最高成绩、最低成绩、平均成绩。 * 输入描述:学生的实际人数,各科的成绩。 * 程序输出:各门课及总分的最高成绩、最低成绩、平均成绩; */ #include<iostream> #include<string> using namespace std; void input(double s[][4],int n); //输入成绩 void output(double s[][4],int n); //输出成绩 double max(double s[][4],int n,int i); //求第i门课的最高成绩,i=3时是总分 double min(double s[][4],int n,int i); //求第i门课的最低成绩 double avg(double s[][4],int n,int i); //求第i门课的平均成绩 void fun(double s[][4],string n[],int ni); int main() { int i,num; string temp; double score[100][4]; //设一个班最多100人,实际按输入来 string course[4]= {"高等数学","英语","C++","总分"}; string name[100]; cout<<"输入学生人数:"; cin>>num; cout<<"他们的名字分别为:"; for(i=0;i<num;i++) cin>>name[i]; //(1)输入成绩并求出总分 input(score,num); //(2)输出成绩 output(score,num); //(3)输出各门课及总分的最高成绩、最低成绩、平均成绩和成绩的标准偏差; for(i=0; i<4; ++i) { cout<<course[i]<<"的最高成绩是"<<max(score,num,i)<<", "; cout<<"最低成绩是"<<min(score,num,i)<<", "; cout<<"平均成绩是"<<avg(score,num,i)<<", "; cout<<endl; } fun(score,name,num); return 0; } void input(double s[][4],int n) { int grade; for(int i=0; i<n; i++) { int sum=0; cout<<"第"<<i<<"位: "; for(int m=0; m<3; m++) { cin>>grade; sum+=grade; s[i][m]=grade; } s[i][3]=sum; cout<<"总分为:"<<sum<<endl; } } void output(double s[][4],int n) { for(int i=0; i<n; i++) cout<<"第一位: 高等数学:"<<s[i][0]<<" 英语:"<<s[i][1]<<" C++:"<<s[i][2]<<" 总分:"<<s[i][3]<<endl;; } double max(double s[][4],int n,int i) { int max=0,j; for(j=0;j<n;j++) if(max<s[j][i]) max=s[j][i]; return max; } double min(double s[][4],int n,int i) { int min=99999,j; for(j=0;j<n;j++) if(min>s[j][i]) min=s[j][i]; return min; } double avg(double s[][4],int n,int i) { int sum=0,j,avg; for(j=0;j<n;j++) sum+=s[j][i]; avg=sum/n; return avg; } void fun(double s[][4],string n[],int ni) { int m,j; double t; string temp; for(j=0;j<ni-1;j++) for(m=0;m<j-ni-1;m++) if(s[m][3]>s[m+1][3]) { t=s[m+1][3]; s[m+1][3]=s[m][3]; s[m][3]=t; temp=n[m+1]; n[m+1]=n[m]; n[m]=temp; } cout<<"成绩最高的为:"; for(m=0;m<ni-1;m++) if(s[m][3]==s[ni-1][3]) cout<<n[m]<<" "; cout<<n[ni-1]<<" "; }运行结果:
学习感悟:虽然只是加了一项,但要做的工作好多。。。。。。
相关文章推荐
- 第14周上机实践项目3——多科成绩单(2)
- 第14周上机实践项目2——带姓名的成绩单(2)
- 第14周上机实践项目2——带姓名的成绩单(1)
- 第14周上机实践项目3——多科成绩单(1)
- 数据结构上机实践第14周项目1 - 验证算法(折半查找)
- 第14周上机实践项目3 - 是否二叉排序树?
- 第14周上机实践项目1——折腾二维数组(4)
- 第14周上机实践项目1——小玩文件(3)
- 第14周上机实践项目1 - 验证算法(3)
- 第14周上机实践项目1——折腾二维数组(3)
- 第14周上机实践项目3——电子词典
- 数据结构上机实践第14周项目3 - 是否二叉排序树
- 第14周上机实践项目1 - 验证算法(2)
- 第14周上机实践项目1——小玩文件(1)
- 第14周上机实践项目4——电子词典
- 第14周上机实践项目1 - 验证算法(4)
- 第14周上机实践项目1——折腾二维数组(1)
- 第14周上机实践项目5——体会棋盘游戏中的数据存储(2)
- 第14周上机实践项目5——体会棋盘游戏中的数据存储(3)
- 数据结构上机实践第14周项目1 - 验证算法(折半查找)