




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
C++程序设计第4章类与对象字符和字符串的应用文件操作(读与写)商品类(添加新功能)4.9案例实训(日期类)1.学过的接收字符及字符串的方法
A)单个字符char
ch;cin>>ch;或者cin.get(ch)或者ch=cin.get()B)字符串定义字符数组char
c1[30];接收用户输入的字符串cin.getline(c1,30)【例1】结合读文件解决具体问题。创建文件夹(目录)int
mkdir(const
char
*dirname
)主函数mkdir(“d:\\me”)mkdir(“.\\me”)mkdir(“me”)find函数int
find(const
char
*s,
int
pos
=
0);从pos开始查找字符串s在当前字符串的位置,0就相当于当前字符串开始的位置,当查找到需要查找的字符串在当前串字符串中的位置的时候,返回的是这一字符串第一个字符在当前字符串的位置,如果没有搜索到要需要寻找的字符串,那么find函数将返回-1,表示一个不存在的位置,这个不存在的位置在string类中可以用string::npos或者-1来表示。string::nposreplace()string
&replace(int
p0,
int
n0,const
char
*s);删除从p0开始的n0个字符,然后在p0处插入字符串s。n0可以用strlen()来获得编写文字替换程序,要求程序界面交互性好,通用性强。例如:把一个文本文件中凡是good的地方都变成bad。下面一段文字可用于测试。Buying
those
shares
was
a
good
move,
we
are
makinga
good
profit
out
of
them.
I
suggest
you
raise
a
glassand
drink
to
good
friends
and
good
times.A
good
outdoor
antenna
will
provide
goodreception.Good
retention
doesn't
mean
a
good
score.代码中的字符数组可以直接定义为string类对象吗?分析1:while(!ifile.eof()){ifile>>str1;cout<<str1;}存在问题---str1中保存每个单词,输出时无空格间隔我们需要把整个文本文件中的所有字符都保存下来。问题:程序中的c1,c2能否使用string类型?提示:
c1.length()
获取string类型变量的长度反向迭代器是一种反向遍历容器的迭代器。也就是,从最后一个元素到第一个元素遍历容器。begin和end操作产生指向容器内第一个元素和最后一个元素的下一个位置的迭代器,如下所示。这两个迭代器通常用于标记包含容器中所有元素的迭代范围。c.begin()返回一个迭代器,它指向容器c的第一个元素c.end()返回一个迭代器,它指向容器c的最后一个元素的下一个位置c.rbegin()返回一个逆序迭代器,它指向容器c的最后一个元素c.rend()返回一个逆序迭代器,它指向容器c的第一个元素前面的位置【例题4】判断某字符串是否回文,如果一个字符串逆序后与原始字符串相同,则该字符串为回文字符串。下面的代码用于字符串逆序,请编写回文的程序!#include
<string>int
main(){stringstr("cvicses");strings(str.rbegin(),str.rend());cout
<<s<<endl;return0;}思考:当用户输入的字符串为abc
cba时,无法得出
“是回文”的结论,为什么?string
str;getline(cin,str);//cin>>str;#include
<iostream>#include
<fstream>#include
<string>using
namespace
std;classstu{stringnum,name;public:void
setnum(string
n="000"){num=n;}void
setname(string
na="李四"){name=na;}string
getnum(){returnnum;}string
getname(){returnname;}};自动显示库存量不足一定值的货物信息display_goods_information_shortage()2)统计读取上个月的销售情况统计:计算上个月每种产品的销售额。
statistics_goods_sale()统计销售数量最大的十种产品、产生利润最大的十种商品1.案例说明本节设计一个功能相对完整的日期类。该类具有下列功能:判别某天是星期几、某年是否为闰年、两天之间间隔多少天、获取系统的当前日期、输出月历,以及再过多少日是哪一天等。2.编程思想(1)闰年判别方法。某年是否为闰年的判定条件为:如果某年能被400整除,或者能被4整除但不能被100整除,则该年是闰年。(2)某天是星期几的计算方法。例程中根据年月日计算某天是星期几的方法使用了基姆拉尔森计算公式:W
=
(d+2*m+3*(m+1)/5+y+y/4-y/100+y/400)
mod
7两天之间间隔多少天的算法。类中的减法运算符重载函数longDate::operator-(Date&dt)实现了对象与另一天相减所得的天数。如果相减的另一天(函数接收的实参)在被减这天(对象自身)之前,返回正数,表示已过了多少天。反之,返回负数,表示还有多少天。若两者相同,则返回0。月历的显示。为显示月历,需要知道该月的第一天是星期几和该月有多少天。类中的isWeek和mdays成员函数分别实现了这两个功能。系统日期的获取。系统提供了获取机器日期的函数,类中静态成员函数sysDate的功能是返回当前系统日期。再过多少天是哪一天的计算方法。类中的加法重载函数实现了加若干天后是某天的功能,其实现方法是先把天数与当前day相加存储在days中,再用循环不断减去当前月的后继月份的天数并修改m和y变量,直到days小于或等于某月份的天数。(7)重载string类型转换运算符。该函数中使用了stringstream类,它包含在<sstream>库中。stringstream类的用法与
iostream流类相似,使用流插入运算符可将数据输出至
stringstream对象,再用流提取运算符将stringstream对象中的数据输出至string对象。stri
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工业管道焊缝的检测方法与案例
- 工业自动化技术的现状与趋势
- 工业设计在产品开发中的作用
- 工业设计新品的创新与市场分析
- 工业节能的挑战与解决方案
- 工作压力的缓解与管理
- 工作环境优化与员工满意度提升
- 工程中的环境保护法规与实践
- 工程师培训中的数据可视化技术
- 工厂设备安全与维护管理
- 《 大学生军事理论教程》全套教学课件
- 无线电装接工考试:初级无线电装接工考试题库(题库版)
- 石家庄市国企招聘考试真题题库2024版
- 探索神奇的植物世界智慧树知到期末考试答案章节答案2024年成都师范学院
- 2024-2030年中国机器人关节模组行业市场竞争态势及前景战略研判报告
- 实验室仪器设备等采购项目培训方案
- 三江学院辅导员考试试题2024
- UASB+SBR处理果汁废水设计说明书及图纸
- 华图教育:2024年国考面试白皮书
- 2024年海港区社区工作者招聘笔试冲刺题(带答案解析)
- 国开2024春专科《高等数学基础》形考任务1-4试题及答案
评论
0/150
提交评论