西安交大C++程序设计第十一章作业Word文档下载推荐.docx
- 文档编号:15297391
- 上传时间:2022-10-29
- 格式:DOCX
- 页数:26
- 大小:416.62KB
西安交大C++程序设计第十一章作业Word文档下载推荐.docx
《西安交大C++程序设计第十一章作业Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《西安交大C++程序设计第十一章作业Word文档下载推荐.docx(26页珍藏版)》请在冰豆网上搜索。
<
"
域宽、精度为"
WIDTH<
:
\n"
;
cout.precision(WIDTH);
//全局作用
cout.width(WIDTH);
//只起一次作用
cout<
12345<
1.2345<
endl;
}
}
2.实验结果:
3.结论:
(1)域宽不够时会自动补足。
(2)精度只需一次定义则一直有效。
(3)域宽需要每次输出时均进行定义
(二)第二题:
编写一个程序,将华氏温度0度~212度转化为浮点型摄氏温度,浮点精度为3.转换公式为如下:
Celsius=5.0/9.0*(Fahrenheit-32);
输出用两个右对齐序列,摄氏温度前面加上正负号。
doubleCelsius,Fahrenheit;
cout.precision(3);
转换结果为:
for(Fahrenheit=0;
Fahrenheit<
=212;
Fahrenheit++)
cout.unsetf(ios:
showpos);
Celsius=5.0/9.0*(Fahrenheit-32);
华氏"
度=摄氏"
cout.setf(ios:
Celsius<
度\n"
(三)第三题:
编写一个程序,打印出ASCⅡ字符集中码值为33~126的字符的ASCⅡ码表。
要求输出十进制值、八进制值、十六进制值以及码值所表示的字符。
inta;
charw;
字符八进制十进制十六进制\n"
for(a=33;
a<
=126;
a++)
w=a;
w<
\t"
oct<
dec<
hex<
四、第四题:
修改例11-2中的程序,重载>
>
运算符,使其能够直接使用cin语句输入Date类对象。
//日期类定义date.h
#ifndefDATE_H
#defineDATE_H
#include<
classDate
friendostream&
operator<
(ostream&
constDate&
);
friendistream&
operator>
(istream&
Date&
intday,month,year;
voidIncDay();
//日期增加一天
intDayCalc()const;
//距基准日期的天数
staticconstintdays[];
//每月的天数
public:
Date(inty,intm,intd);
//构造函数
Date(intm,intd);
//构造函数,年默认为系统当前年份
Date();
//构造函数,默认为系统日期
voidSystemDate();
voidSetDate(intyy,intmm,intdd);
//日期设置
voidSetDate(intmm,intdd);
//日期设置,年默认为系统年份
boolIsLeapYear(intyy)const;
//是否闰年?
boolIsEndofMonth()const;
//是否月末?
voidprint_ymd()const;
//输出日期yy_mm_dd
voidprint_mdy()const;
//输出日期mm_dd_yy
constDate&
operator+(intdays);
//日期增加任意天
operator+=(intdays);
intoperator-(constDate&
ymd)const;
//两个日期之间的天数
voidShow(Date&
da);
};
#endif
//Date类成员函数定义date.cpp
time.h>
#include"
date.h"
constintDate:
days[]={0,31,28,31,30,31,30,
31,31,30,31,30,31};
//构造函数
Date:
Date(inty,intm,intd){SetDate(y,m,d);
Date(intm,intd){SetDate(m,d);
Date(){SystemDate();
voidDate:
SystemDate()
{//取得系统日期
tm*gm;
time_tt=time(NULL);
gm=gmtime(&
t);
year=1900+gm->
tm_year;
month=gm->
tm_mon+1;
day=gm->
tm_mday;
SetDate(intyy,intmm,intdd)
month=(mm>
=1&
&
mm<
=12)?
mm:
1;
year=(yy>
=1900&
yy<
=2100)?
yy:
1900;
if(month==2&
IsLeapYear(year))
day=(dd>
dd<
=29)?
dd:
else
=days[month])?
SetDate(intmm,intdd)
constDate&
operator+(intdays)
{//重载+
for(inti=0;
i<
days;
i++)
IncDay();
return*this;
operator+=(intdays)
{//重载+=
intDate:
operator-(constDate&
ymd)const
{//重载-
intdays;
days=DayCalc()-ymd.DayCalc();
returndays;
boolDate:
IsLeapYear(inty)const
if(y%400==0||(y%100!
=0&
y%4==0))
returntrue;
returnfalse;
IsEndofMonth()const
returnday==29;
//二月需要判断是否闰年
returnday==days[month];
IncDay()
{//日期递增一天
if(IsEndofMonth())
if(month==12){//年末
day=1;
month=1;
year++;
}
else{//月末
month++;
elseday++;
DayCalc()const
intdd;
intyy=year-1900;
dd=yy*365;
if(yy)dd+=(yy-1)/4;
for(inti=1;
i<
month;
i++)
dd+=days[i];
if(IsLeapYear(year)&
(month>
2))
dd++;
dd+=day;
returndd;
print_ymd()const
cout<
year<
"
-"
<
month<
day<
endl;
print_mdy()const
char*monthName[12]={"
January"
"
February"
"
March"
April"
May"
June"
July"
August"
September"
October"
November"
December"
};
monthName[month-1]<
'
<
Show(Date&
da
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 西安 交大 C+ 程序设计 第十一 作业