第二学期4章类与对象7周_第1页
第二学期4章类与对象7周_第2页
第二学期4章类与对象7周_第3页
第二学期4章类与对象7周_第4页
第二学期4章类与对象7周_第5页
已阅读5页,还剩11页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论