C++ 学习笔记_0019_数组(多科成绩单、电子词典)

来源:互联网 发布:mac ppt 播放视图设置 编辑:程序博客网 时间:2024/05/16 11:38
【项目4-多科成绩单】用二维数组score[][4]保存同学们的高数、英语、C++成绩及总成绩(在此假设学生的学号为整型的连续值,用数组的行下标作学号)。在此基础上,完成下面的操作:
(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
原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 政府咨询电话打不通怎么办 公务员准考证丢了怎么办 行测老打40多分怎么办 网上没有报名的怎么办? 上大学转户口怎么办 梅菜扣肉勾芡怎么办 有个精神病妈妈怎么办 妈得了精神病该怎么办 思维不正常的人怎么办 妈妈是个精神病怎么办 我老婆有精神病怎么办 在郑州怎么办完税证明 中专没考上大专怎么办 考研两次没考上怎么办 2018造价员取消后怎么办 造价员取消了投标怎么办 造价员考试取消后怎么办 只拿到结业证怎么办 本科只有结业证怎么办 健身后肌肉水肿怎么办 大腿面肌肉疼怎么办 跑步后大腿酸疼怎么办? 运动后大腿胀痛怎么办 尔雅课程没看完怎么办 国家课程校本化怎么办 上海买房限购怎么办 投资公司要求回购股份怎么办 超过应届生落户年龄怎么办 造价员章到期了怎么办 造价员继续教育过期了怎么办 sd卡存储不够怎么办? 进项税大于销项税怎么办 公司扣员工奖金怎么办 墙面大面积有霉怎么办 电脑总是断网怎么办 造价师资格证书丢了怎么办 行测做题速度太慢怎么办 普通话准考证丢了怎么办 信用卡还款逾期了怎么办 淮北建洗煤厂需要怎么办 建设工程不结算怎么办