C++PrimerPlus学习——第九章编程练习
前两天有事情去了,没有好好学,之后要补回来
9-1
main.cpp
#include <string.h>
#include <iostream>
#include"golf.h"const int GolfSize = 3;
int main()
{golf ann;setgolf(ann, "Ann Birdfree", 24);showgolf(ann);golf andy;setgolf(andy);golf g[GolfSize];int j = 0;for (int i = 0; i < GolfSize; i++){j = setgolf(g[i]);if (j == 1)showgolf(g[i]);else if (j == 0)break;}return 0;
}
golf.h
const int Len = 40;struct golf
{char fullname[Len];int handicap;
};
void setgolf(golf& g, const char* name, int hc);int setgolf(golf& g);void handicap(golf& g, int hc);void showgolf(const golf& g);
golf.cpp
#include <string.h>
#include <iostream>
#include"golf.h"void setgolf(golf& g, const char* name, int hc)
{strcpy_s(g.fullname, name);g.handicap = hc;
}int setgolf(golf& g)
{using std::cout;using std::cin;cout << "Please enter fullname: \n";cin.getline(g.fullname, 50);if (!strcmp(g.fullname, ""))return 0;cout << "Please enter handicap: \n";cin >> g.handicap;cin.get();return 1;
}
void handicap(golf& g, int hc)
{g.handicap = hc;
}void showgolf(const golf& g)
{using std::cout;cout << "fullname: " << g.fullname << "\n";cout << "handicap: " << g.handicap << "\n";
}
9-2
需要用getline才能获取空行
#include <iostream>
#include<string>
using namespace std;void strcount(const string str);int main()
{string input;char next;cout << "Enter a line:\n";getline(cin, input);while (input != ""){strcount(input);cout << "Enter the next line (empty line to quit):\n";getline(cin, input);}cout << "Bye\n";return 0;
}void strcount(const string str)
{static int total = 0;int count = 0;cout << "\"" << str << "\" contains ";count = str.size();total += count;cout << count << " characters\n";cout << total << " characters total\n";
}
9-3
同样需要stcpy_s
(1)
#include <iostream>
#include <string>struct chaff
{char dross[20];int slag;
};int main()
{using namespace std;chaff* cf = new chaff[2];strcpy_s(cf[0].dross, "gugugu");cf[0].slag = 6;strcpy_s(cf[1].dross, "biubiubiu");cf[1].slag = 9;for (int i = 0; i < 2; i++){cout << "dross, slag: " << cf[i].dross << ", " << cf[i].slag << endl;}//delete cf;<buffer>指定的是静态内存,不需要用delete释放return 0;
}
(2)
#include <iostream>
#include <string>struct chaff
{char dross[20];int slag;
};
const int BUF = 512;
const int N = 2;
char buffer[BUF];int main()
{using namespace std;chaff* cf = new (buffer) chaff[N];strcpy_s(cf[0].dross, "gugugu");cf[0].slag = 6;strcpy_s(cf[1].dross, "biubiubiu");cf[1].slag = 9;for (int i = 0; i < 2; i++){cout << "dross, slag: " << cf[i].dross << ", " << cf[i].slag << endl;}//delete cf;<buffer>指定的是静态内存,不需要用delete释放return 0;
}
9-4
main.cpp
#include <iostream>
#include"Sales.h"
using namespace SALES;int main()
{Sales a, b;double arr[3] = { 1.1, 22, 4.4 };setSales(a, arr, 3);showSales(a);setSales(b);showSales(b);return 0;
}
Sales.cpp
#include <iostream>
#include"Sales.h"
using namespace std;void SALES::setSales(Sales& s, const double ar[], int n)
{double sum = 0;double max = ar[0];double min = ar[0];if (n < QUARTERS){for (int i = 0; i < n; i++){s.sales[i] = ar[i];sum += ar[i];if (max < ar[i])max = ar[i];else if (min > ar[i])min = ar[i];}s.average = sum / n;s.max = max;s.min = min;for (int i = n; i < QUARTERS; i++)s.sales[i] = 0;}elsecout << "too long\n";
}
void SALES::setSales(Sales& s)
{double sum = 0;cout << "Enter four numbers:\n";for (int i = 0; i < QUARTERS; i++){std::cin >> s.sales[i];}double max = s.sales[0];double min = s.sales[0];for (int i = 0; i < QUARTERS; i++){sum += s.sales[i];if (max < s.sales[i])max = s.sales[i];else if (min > s.sales[i])min = s.sales[i];}s.average = sum / QUARTERS;s.max = max;s.min = min;
}
void SALES::showSales(const Sales& s)
{cout << "Sales" << "\n";cout << "Average: " << s.average << "\n";cout << "max: " << s.max << "\n";cout << "min: " << s.min << "\n";
}
Sales.h
#ifndef SALES_h_
#define SALES_h_
namespace SALES
{const int QUARTERS = 4;struct Sales{double sales[QUARTERS];double average;double max;double min;};void setSales(Sales& s, const double ar[], int n);void setSales(Sales& s);void showSales(const Sales& s);
}
#endif
C++PrimerPlus学习——第九章编程练习相关推荐
- C++ Primer Plus 第九章编程题练习
C++ Primer Plus 第九章编程题练习 第一题 题目描述 下面是一个头文件: const int Len = 40;struct golf {char fullname[Len];int h ...
- 读书笔记:《C++ PrimerPlus》 第九章~第十一章
第一章 预备知识 第二章 开始学习C++ 第三章 处理数据 第四章 复合类型 第五章 循环和关系表达式 第六章 分支语句和逻辑运算符 第七章 函数--C++的编程模块 第八章 函数探幽 第九章 内存模 ...
- java 为什么违例差错控制_JAVA编程思想学习 — 第九章 (违例差错控制)
1.违例自变量 和 Java 的其他任何对象一样, 需要用 new 在内存堆里创建违例,并需调用一个构建器.在所有标准违例中,存在着两个构建器: 第一个是默认构建器,第二个则需使用一个字串自变量,使我 ...
- 记录——《C Primer Plus (第五版)》第九章编程练习第九题
第九题:为了使程序清单9.8中的函数to_binary()更一般化,可以在 心的函数to_base_n()中使用第二个参数,且该参数的范围从2到10. 然后,这个新函数输出第一个参数在第二个参数规定的 ...
- Android群英传学习——第九章、Android系统信息与安全机制
1.Android系统信息获取 1.1 android.os.Build android.os.Build类里面的信息非常丰富,它包含了系统编译时的大量设备.配置信息,下面列举了一些常用的信息: ● ...
- 记录——《C Primer Plus (第五版)》第九章编程练习第十题
第十题:编写并测试一个函数Fibonacci(),在该函数中使用循环替代 递归完成斐波纳契数列的计算. # include <stdio.h>void Fibonacci(int);int ...
- 记录——《C Primer Plus (第五版)》第九章编程练习第八题
第八题:用递归函数重做第七题. # include <stdio.h>double recur(double num, int cnt);int main(void) {double nu ...
- 记录——《C Primer Plus (第五版)》第九章编程练习第六题
第六题:编写一个程序,使其从标准输入读取字符,直到遇到文件 结尾.对于每个字符,程序需要检查并报告该字符是否是一个字母. 如果是的话,程序还应该报告该字母在字母表中的数值位置.例如 c和C的字母位置都 ...
- 记录——《C Primer Plus (第五版)》第九章编程练习第四题
第四题:两数值的谐均值可以这样计算:首先对两数值的倒数取 平均值,最后再取倒数.编写一个带有两个double参数的函数, 计算这两个参数的谐均值.(为了测试,个人编写了驱动程序) # include ...
最新文章
- 不容错过的Pandas小技巧:万能转格式、轻松合并、压缩数据,让数据分析更高效...
- 鸟哥的Linux私房菜(基础篇)- 第二十四章、 X Window 配置介绍
- MyBatis——insert并返回主键ID解决方案
- ASP.NET Core远程调试
- 解决cv2.error: OpenCV(4.0.0)的方法
- JimuReport积木报表——分组报表怎么做
- QUIC - 低时延互联网传输层协议
- TensorFlow tf.keras.layers.GlobalAveragePooling1D
- 使用 logback + slf4j 进行日志记录
- python剑指offer剪绳子
- eclipse里面自动添加get和set方法
- 3月面经汇总-字节跳动,美团,腾讯算法岗
- 安徽合肥一共享单车堆放点发生火灾
- TakeColor取色器的使用
- Flash Builder 4.6 序列号
- 《达拉崩吧》扣哒世界版——在扣哒世界中学习编程
- 别人教我学计算机的作文,我学会了电脑作文(通用3篇)
- 母亲节祝福html源码,有创意的母亲节祝福语大全
- STM32第九课(Input Capture, HAL)
- 年龄在线计算机,年龄计算器在线计算2021 抖音上很火的精确年龄岁数计算器查询 - 房贷计算器...