C++ 学习笔记_0019_数组(多科成绩单、电子词典)
来源:互联网 发布:mac ppt 播放视图设置 编辑:程序博客网 时间:2024/05/16 11:38
【项目4-多科成绩单】用二维数组score[][4]保存同学们的高数、英语、C++成绩及总成绩(在此假设学生的学号为整型的连续值,用数组的行下标作学号)。在此基础上,完成下面的操作:
(1)设计输入成绩的函数,输入3科成绩后可以自动求出总分,并将数据全保存到数组中;
(2)输出各门课及总分的最高成绩、最低成绩、平均成绩和成绩的标准偏差;
(3)输出考得总分最高、最低同学的人数及对应的学号。
(1)设计输入成绩的函数,输入3科成绩后可以自动求出总分,并将数据全保存到数组中;
(2)输出各门课及总分的最高成绩、最低成绩、平均成绩和成绩的标准偏差;
(3)输出考得总分最高、最低同学的人数及对应的学号。
要求:学生人数num在main()函数中输入,score[][4]数组也是main()函数的局部变量,最好将其他功能也设计成函数,使main()函数尽可能地简单。
#include<iostream>#include<cmath>#include<string>using namespace std;void input(double s[][4], int n);double max(double s[][4], int n, int i);double min(double s[][4], int n, int i);double avg(double s[][4], int n, int i);double stdev(double s[][4], int n, int i);void output_result(double s[][4], int n);int main(){int i, num;string temp;double score[100][4];string course[4] = {"高等数学", "英语", "C++", "总分"};cout << "输入学生人数:";cin >> num;cout << "输入学生成绩(按高数、英语、C++的顺序依次输入:)" << endl;for (i = 0; i < num; i++){cin >> score[i][0] >> score[i][1] >> score[i][2];score[i][3] = score[i][0] + score[i][1] + score[i][2];}cout << "输入的学生成绩:" << endl << endl;cout << "学号\t高数\t英语\tC++\t总分" << endl;for (i = 0; i < num; i++){cout << i << '\t' << score[i][0] << '\t';cout << score[i][1] << '\t';cout << score[i][2] << '\t';cout << score[i][3] << endl;}cout << endl;for (i = 0; i < 4; i++){cout << course[i] << "的最高成绩是" << max(score, num, i) << ",";cout << "最低成绩是" << min(score, num, i) << ",";cout << "平均成绩是" << avg(score, num, i) << ",";cout << "成绩的标准差是" << stdev(score, num, i) << endl << endl;}output_result(score, num);return 0;}double max(double s[][4], int n, int j){double m = s[0][j];for (int i = 1; i < n; i++)if (m < s[i][j])m = s[i][j];return m;}double min(double s[][4], int n, int j){double m = s[0][j];for (int i = 1; i < n; i++)if (m > s[i][j])m = s[i][j];return m;}double avg(double s[][4], int n, int j){double sum = s[0][j];for (int i = 1; i < n; i++)sum += s[i][j];return sum / n;}double stdev(double s[][4], int n, int j){double a, x, sum = 0;a = avg(s, n, j);if (n == 1) return 0;for (int i = 0; i < n; i++){x = s[i][j] - a;sum += x*x;}return sqrt(sum/(n-1));}void output_result(double s[][4], int n){double m = max(s, n, 3);int i, c = 0;bool first = true;cout << "总分最高分为:" << m;for (i = 0; i < n; i++){if (s[i][3] == m)c++;}cout << ",有" << c << "人达到最高分,他们的学号是:";for (i = 0; i < n; i++){if (s[i][3] == m)if (first){cout << i;first = false;}else{cout << "、" << i;}}cout << endl << endl;m = min(s, n, 3);c = 0;first = true;cout << "总分最低分为:" << m;for (i = 0; i < n; i++)if (s[i][3] == m)c++;cout << ",有" << c << "人达到最低分,他们的学号是:";for (i = 0; i < n; i++){if (s[i][3] == m)if (first){cout << i;first = false;}else{cout << "、" << i;}}cout << endl;}
电子词典
词典下载在贺老师原文
#include<iostream>#include<fstream>#include<cstdlib>#include<string>using namespace std;string e[8000], c[8000];int wordsNum = 0;int BinSeareh(int low, int high, string k);int main(){string key;ifstream infile("dictionary.txt", ios::in);if (!infile){cerr << "open error!" << endl;exit(1);}while (infile >> e[wordsNum] >> c[wordsNum])//成功,则重复从文件中读取{++wordsNum;}infile.close();do{cout << "请输入要查询的单词(输入000结束):";cin >> key;if (key == "000")break;else{int low = 0, high = wordsNum - 1;int index = BinSeareh(low, high, key);if (index == -1)cout << "查无此词!" << endl << endl;elsecout << key << "的中文意思是:" << c[index] << endl << endl;}}while(1);cout << "欢迎再次使用!" << endl << endl;return 0;}//二分查找int BinSeareh(int low, int high, string k){int mid;while(low <= high){mid = (low + high) / 2;if (e[mid] == k)return mid;if (e[mid] > k)high = mid - 1;elselow = mid + 1;}return -1;}
0 0
- C++ 学习笔记_0019_数组(多科成绩单、电子词典)
- C++ 学习笔记_0018_数组(数组排序、杨辉三角、带姓名的成绩单)
- 多科成绩单(必看啊)
- 【二维数组】15周项目四(带名字)。多科成绩单
- 【二维数组】15周项目四。多科成绩单
- 多科成绩单
- 多科成绩单
- 多科成绩单--char5
- 多科成绩单【一】
- 多科成绩单
- 多科成绩单
- 多科成绩单
- 多科成绩单【二】
- 多科成绩单
- 多科成绩单
- 多科成绩单
- 多科成绩单
- 多科成绩单
- equals()方法和“==”的区别
- c++ 36 对象动态创建
- 对英文论文代写工作的流程的简介以及收费情况的介绍
- 傅立叶:你让我如何理解你?
- linux Argument list too long错误解决方法
- C++ 学习笔记_0019_数组(多科成绩单、电子词典)
- ATL实现ACTIVEX控件异步回调javascrip(未完再续)
- 编程中的命名规范
- 不确定性原理的前世今生 · 数学篇(一)
- 作用域中容易忽略的小细节
- 在Java,IO中的一些比较
- 人品计算器作业
- 求此效果该如何实现
- Leetcode_26_Remove Duplicates from Sorted Array