- //********************************************************
- //* 程序作者: 兔至
- //* 完成日期: 2018 年 3 月 2 日
- //* 章 节: 第一章
- //* 题 号: 习题 4
- //* 题 目: 学生成绩统计
- // 从键盘输入一个班 (全班最多不超过 30 人) 学生某门课
- // 的成绩, 当输入成绩为负值时, 输入结束, 分别实现下列功能:
- // (1)统计不及格人数并打印不及格学生名单;
- // (2)统计成绩在全班平均分及平均分之上的学生人数, 并打印这些学生的名单;
- // (3)统计各分数段的学生人数及所占的百分比
- // 注: 将成绩分为六个分数段,
- // 60 分以下为第 0 段,
- // 60~69 为第 1 段,
- // 70~79 为第 2 段,
- // 80~89 为第 3 段,
- // 90~99 为第 4 段,
- // 100 分为第 5 段
- // 编程要求:
- // (1). 较好的用户输入输出提示信息
- // (2). 使用子函数来实现上述各个功能
- // (3). 最好不要使用全局变量
- //********************************************************
- #include < iostream > #include < string > using namespace std;
- struct score {
- string name;
- float point;
- };
- void fail(score Score);
- void exce(score Score);
- void per(score Score);
- int main() {
- score Score[30];
- int i;
- char code;
- for (i = 0; Score[i].point >= 0; i++) {
- cout << "请输入学生姓名:";
- cin >> Score[i].name;
- cout << endl;
- cout << "请输入该学生成绩:";
- cin >> Score[i].point;
- cout << endl;
- }
- cout << "A 统计不及格人数并打印不及格学生名单 \ nB 统计成绩在全班平均分及平均分之上的学生人数, 并打印这些学生的名单 \ nC 统计各分数段的学生人数及所占的百分比 \ n 请输入您想进行的操作代号:";
- cin >> code;
- switch (code) {
- case(A):
- fail( * Score);
- break;
- case (B):
- exce( * Score);
- break;
- case (C):
- per( * Score);
- break;
- }
- return 0;
- }
- void fail(score Score) {
- int i,
- count = 0;
- cout << "不及格的学生为:";
- for (i = 0; Score[i].name != \0; i++) {
- if (Score[i].point < 60) {
- count++;
- cout << Score[i].name << " ";
- }
- }
- cout << endl;
- cout << "不及格的人数为:" << count;
- }
- void exce(score Score) {
- float ave;
- int sum = 0,
- count = 0,
- i,
- Count = 0;
- for (i = 0; Score[i].name != \0; i++) {
- count++;
- sum += Score[i].point;
- }
- ave = sum / count;
- cout << "成绩在平均分及其上的学生为:";
- for (i = 0; Score[i].name != \0; i++) {
- if (Score[i].point >= ave) {
- cout << Score[i].name << " ";
- Count++;
- }
- }
- cout << endl;
- cout << "成绩在平均分及其上的学生人数为:" << Count << endl;
- }
- void per(score Score) {
- int count = 0,
- count_0 = 0,
- count_1 = 0,
- count_2 = 0,
- count_3 = 0,
- count_4 = 0,
- count_5 = 0,
- i;
- float per0,
- per1,
- per2,
- per3,
- per4,
- per5;
- for (i = 0; Score[i].name != \0; i++) {
- count++;
- if (Score[i].point < 60) count_0++;
- else if (Score[i].point >= 60 && Score[i].point <= 69) count_1++;
- else if (Score[i].point >= 70 && Score[i].point <= 79) count_2++;
- else if (Score[i].point >= 80 && Score[i].point <= 89) count_3++;
- else if (Score[i].point >= 90 && Score[i].point <= 99) count_4++;
- else if (Score[i].point == 100) count_5++;
- }
- per0 = count_0 / (100 * count);
- per1 = count_1 / (100 * count);
- per2 = count_2 / (100 * count);
- per3 = count_3 / (100 * count);
- per4 = count_4 / (100 * count);
- per5 = count_5 / (100 * count);
- cout << "各分数段的学生人数及所占的百分比:\n";
- cout << "第 0 段:" << per0 << "%" << endl;
- cout << "第 1 段:" << per1 << "%" << endl;
- cout << "第 2 段:" << per2 << "%" << endl;
- cout << "第 3 段:" << per3 << "%" << endl;
- cout << "第 4 段:" << per4 << "%" << endl;
- cout << "第 5 段:" << per5 << "%" << endl;
- }
想要传递结构数组到子函数里, 但是子函数里用 Score[i].point 就会提示格式不相称
- //********************************************************
- //* 程序作者: 兔至
- //* 完成日期: 2018 年 3 月 1 日
- //* 章 节: 第一章
- //* 题 号: 习题 3
- //* 题 目: 身高预测: 每个做父母的都关心自己孩子成人后的身高,
- // 据有关生理卫生知识与数理统计分析表明, 影响小孩成人后
- // 的身高的因素包括遗传饮食习惯与体育锻炼等小孩成人
- // 后的身高与其父母的身高和自身的性别密切相关
- // 设 faHeight 为其父身高, moHeight 为其母身高, 身高预测公式为
- // 男性成人时身高 =(faHeight + moHeight)×0.54cm
- // 女性成人时身高 =(faHeight×0.923 + moHeight)/2cm
- // 此外, 如果喜爱体育锻炼, 那么可增加身高 2%; 如果有良好的卫
- // 生饮食习惯, 那么可增加身高 1.5% 编程从键盘输入用户的性别
- // (用字符型变量 sex 存储, 输入字符 F 表示女性, 输入字符 M 表示男性)
- // 父母身高(用实型变量存储, faHeight 为其父身高, moHeight 为其母身高)
- // 是否喜爱体育锻炼(用字符型变量 sports 存储, 输入字符 Y 表示喜爱,
- // 输入字符 N 表示不喜爱)是否有良好的饮食习惯等条件
- // (用字符型变量 diet 存储, 输入字符 Y 表示良好, 输入字符 N 表示不好)
- // , 利用给定公式和身高预测方法对身高进行预测
- // 编程要求: 有用户输入输出提示信息
- //********************************************************
- #include<iostream>
- using namespace std;
- int main()
- {
- float kheight,faheight,moheight;
- char sex,diet,sports;
- cout << "儿童身高神预测"<<endl;
- cout << endl;
- cout << "请输入父亲身高:";
- cin >> faheight;
- cout << endl;
- cout << "请输入母亲身高:";
- cin >> moheight;
- cout << endl;
- cout << "请输入孩子性别:";
- cin >> sex;
- cout << endl;
- if(sex == F)
- kheight=(faheight*0.923+moheight)/2;
- else
- kheight=(faheight + moheight)*0.54;
- cout << "请问您的孩子喜爱运动吗?";
- cin >> sports;
- if(sports==Y)
- kheight*=1.02;
- cout << endl;
- cout << "请问您的孩子是否有良好的饮食习惯?";
- cin >> diet;
- cout << endl;
- if(diet==Y)
- kheight*=1.015;
- cout << "您的孩子的预测身高为:"<<kheight<<"cm\n[注: 此预测仅供娱乐]";
- return 0;
- }
这个倒是挺好玩??
来源: http://www.bubuko.com/infodetail-2514321.html