c++ primer plus 习题答案(3)
p296.3
#include<iostream>
#include<cstdlib>
#include<string>
#include<cstring>
#include<new>
using namespace std;
struct chaff
{
char dross[];
int slag;
};
void setarray(chaff *pt);
void showarray(chaff *pt); int main(){
char buffer[];
chaff ar[], *pt;
pt = new(buffer)chaff[];
setarray(pt);
showarray(pt);
system("pause");
return ;
} void setarray(chaff *pt){
int i;
char adross[], pdross[], ch;
cout << "enter a line\n";
cin.get(adross, );
while (cin){
cin.get(ch);
while (ch != '\n')
cin.get(ch);
break;
}
strcpy(pt->dross, adross);
cout << "enter another line\n";
cin.get(pdross, );
while (cin){
cin.get(ch);
while (ch != '\n')
cin.get(ch);
break;
}
strcpy((pt + )->dross, pdross);
cout << "enter two integer\n";
cin >> pt->slag;
cin >> (pt + )->slag;
cin.get();
} void showarray(chaff *pt){
cout << pt->dross << " " <<
pt->slag << endl <<
(pt + )->dross << " " <<
(pt + )->slag << endl;
}
p296.4
sales.cpp #include<iostream>
#include"sales.h"
using namespace std; void SALES::setsales(Sales &s, const double ar[], int n){
int num, i, sum=;
if (n <= QUARTERS)
num = n;
else num = QUARTERS;
for (i = ; i < num; i++){
s.sales[i] = ar[i];
sum += s.sales[i];
}
s.average = sum / num;
s.max = s.sales[];
s.min = s.sales[];
for (i = ; i < num; i++){
if (s.max < s.sales[i])
s.max = s.sales[i];
if (s.min>s.sales[i])
s.min = s.sales[i];
}
} void SALES::setsales(Sales &s){
cout << "enter double into an array\n";
int i;
double sum = ;
for (i = ; i < QUARTERS; i++){
cin >> s.sales[i];
sum += s.sales[i];
}
s.average = sum / QUARTERS;
s.max = s.sales[];
s.min = s.sales[];
for (i = ; i < QUARTERS; i++){
if (s.max < s.sales[i])
s.max = s.sales[i];
if (s.min>s.sales[i])
s.min = s.sales[i];
}
} void SALES::showsales(const Sales & s){
for (int i = ; i < QUARTERS; i++)
cout << s.sales[i] << " ";
cout << "average is " << s.average << endl <<
"max is " << s.max << endl <<
"min is " << s.min << endl;
} 驱动程序 #include<iostream>
#include<cstdlib>
#include<string>
#include<cstring>
#include"sales.h"
using namespace std; int main(){
cout << "enter a number you want to fill the array\n";
int n, i;
cin >> n;
double *ar = new double[n+];
cout << "enter an double array\n";
for (i = ; i < n; i++)
cin >> ar[i];
SALES::Sales ex1, ex2;
SALES::setsales(ex1, ar, n);
SALES::setsales(ex2);
SALES::showsales(ex1);
SALES::showsales(ex2);
delete[]ar;
system("pause");
return ;
} 头文件 namespace SALES
{
const int QUARTERS = ;
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);
}
p332.1
#include<iostream>
#include<cstdlib>
#include<cstring>
using namespace std; class Bankacount{
char name[];
char num[];
double deposit;
public:
Bankacount(char *pt="nobody", char *ar="", double balance=0.0);
~Bankacount();
void storage(double ct);
void withdraw(double ct);
void show()const;
}; Bankacount::Bankacount(char *pt, char *ar, double balance)
{
strncpy(name, pt, );
name[] = '\0';
strncpy(num, ar, );
num[] = '\0';
deposit = balance;
} Bankacount::~Bankacount(){ } void Bankacount::storage(double ct){
if (ct < )
cout << "the deposit must be positive\n";
else deposit += ct;
} void Bankacount::withdraw(double ct){
if (ct<)
cout << "the deposit must be positive\n";
else deposit -= ct;
} void Bankacount::show()const{
cout << "name is " << name << endl
<< "number is " << num << endl
<< "deposit now is " << deposit << endl;
} int main(){
Bankacount acount1("GE", "asdf", 0.0);
Bankacount acount2;
Bankacount acount3 = Bankacount("DELL", "34WE", 2.3);
acount1.show();
acount2.show();
acount3.show();
acount1.storage(4.5);
acount2.withdraw(2.7);
acount1.show();
acount2.show(); system("pause");
return ;
}
c++ primer plus 习题答案(3)的更多相关文章
- c++ primer plus 习题答案(1)
c++ primer plus 习题答案用的是第五版,IDE仍然是vs2013.我只标注了题号,具体的题目找下书上对应内容吧. p110.8 #include<iostream> #inc ...
- c++ primer plus 习题答案(8)
p475.2 //头文件: class Cd{ private: char *performers; char *label; int selections; double playtime; pub ...
- c++ primer plus 习题答案(7)
p427.4 //头文件: #include<iostream> #ifndef STACK_H_ #define STACK_H_ typedef unsigned long Item; ...
- c++ primer plus 习题答案(6)
p425.1 #include<iostream> #include<cstring> #include<cstdlib> using namespace std; ...
- c++ primer plus 习题答案(5)
p333.7 #include<iostream> #include<cstring> #include<cstdlib> using namespace std; ...
- c++ primer plus 习题答案(4)
p333.3 #include<iostream> #include<cstdlib> #include<cstring> #include<string&g ...
- c++ primer plus 习题答案(2)
p221.8 #include<iostream> #include<cstdlib> #include<cstring> using namespace std; ...
- C++Primer第五版——习题答案目录
目前正在刷<C++Primer>这本书,会在博客上记录课后习题答案,答案仅供参考. 因为水平有限,如有有误之处,希望大家不吝指教,谢谢! 目录地址 使用的系统为:win 10,编译器:VS ...
- 《C++Primer》第五版习题答案--第五章【学习笔记】
<C++Primer>第五版习题答案--第五章[学习笔记] ps:答案是个人在学习过程中书写,可能存在错漏之处,仅作参考. 作者:cosefy Date: 2020/1/15 第五章:语句 ...
随机推荐
- 排序方法之标准库中的快排 qsort ()函数
C标准库qsort()函数的用法(快排) 使用快速排序例程进行排序 头文件:stdlib.h 用 法: void qsort(void *base, int nelem, int width, i ...
- saiku之固定维度(必选维度)
工作中遇到的问题,记录下来方便以后查找. 在saiku中如何设定固定维度? 找到WorkspaceDropZone.js文件,在synchronize_query: function(){}方法中的“ ...
- oracle 快照(snapshot) 管理
----手工创建oracle 快照 BEGIN DBMS_WORKLOAD_REPOSITORY.CREATE_SNAPSHOT (); END; / ---删除快照 详细快照信息能够查看视图 ...
- framework层和native层实现联网控制(iptable方式)
最近工作中,需要开发一个功能----联网控制,这个功能其实用过root的安卓机应该都知道,禁止某个应用连接移动网络或者wifi. root后,通过su去执行iptable的命令就可以根据uid去控制应 ...
- 块对象block小结
blcok的形式 ^(参数列){主体} block作为返回值
- 2016-09-07 J2EE基础知识之JSP_部分
1.JSP(Java Server Pages) java服务器页面,其根本是一个简化的Servlet设计.JSP技术有点类似ASP技术,它是在传统的网页HTML(标准通用标记语言的子集)文件(*.h ...
- Dijkstra算法求单源最短路径
Description 在每年的校赛里,所有进入决赛的同学都会获得一件很漂亮的t-shirt.但是每当我们的工作人员把上百件的衣服从商店运回到赛场的时候,却是非常累的!所以现在他们想要寻找最短的从商店 ...
- shell检测interface是否已分配ip,qt调用shell脚本
#include <QCoreApplication>#include <QDebug>#include <QTextStream>#include <QDi ...
- VC++ SetLayeredWindowAttributes 部分窗口透明鼠标穿透
在初始化中使用下面两行代码 ModifyStyleEx(0, WS_EX_LAYERED); ::SetLayeredWindowAttributes(m_hWnd, RGB(1, 255, 0), ...
- 为steghide实现字典破解功能
steghide是一个隐写术软件,可以在图片.音频等文件里隐藏数据. 鉴于原始的steghide在解密数据时不能选择字典文件破解,于是本人就用python简单地为其实现字典破解功能. -------- ...