1、1(C+)(C+)面向对象程序设计面向对象程序设计Object-Oriented Programming in C+Chapter 3 Keyboard Input and Chapter 3 Keyboard Input and Screen OutputScreen Output2引入:类和对象引入:类和对象C+程序中怎程序中怎样描述样描述“李美李美”同学?同学?3引入:类和对象引入:类和对象抽象抽象共同特征:共同特征:求平均成绩求平均成绩显示三科成绩及显示三科成绩及平均值平均值学号学号姓名姓名高数成绩高数成绩英语成绩英语成绩C+成绩成绩属性行为44属性属性行为行为数据数据函数函数obje
2、ct(方法方法)&|现实世界现实世界C+5引入:类和对象引入:类和对象抽象抽象共同特征:共同特征:求平均成绩求平均成绩显示三科成绩及显示三科成绩及平均值平均值学号学号姓名姓名高数成绩高数成绩英语成绩英语成绩C+成绩成绩属性行为class studentint id;char name20;float score3;float ave;float score_ave();void show();6class studentprivate:int id;char name20;float score3;float ave;public:student(int n,char*na,float s1,
3、float s2,float s3);float score_ave();void show();student:student(int n,char*na,float s1,float s2,float s3)id=n;strcpy(name,na);score0=s1,score1=s2,score2=s3;float student:score_ave()/求平均值求平均值 ave=(score0+score1+score2)/3;return ave;void student:show()coutNo:idtName:nameendl;cout高数高数:score0t英语英语:scor
4、e1tC+:score2endl;cout平均成绩为平均成绩为ave=aveendl;7void main()student st(001,“李美李美,100,100,100);st.score_ave();st.show();8引入:类和对象引入:类和对象class studentint id;char name20;float score3;float ave;float score_ave();void show();学号学号姓名姓名高数高数英语英语C+C+平均平均学号学号姓名姓名高数高数英语英语C+C+平均平均001001李美李美 100100100100100100 100100填充
5、填充9引入:类和对象引入:类和对象class studentint id;char name20;float score3;float ave;float score_ave();void show();student lm(001,“李美李美”,100,100,100,100)实例化实例化主程序主程序main()student lm(001,“李美李美,100,100,100);lm.score_ave();lm.show();1010 补充补充 计算机体系结构计算机体系结构 1111123.1 Simple Keyboard InputuData StreamlData stream ob
6、jects are used to perform basic input and output of data to and from various devices such as the keyboard and the screen.lA stream is a data communication object connected to an input or output device.ucout:standard output stream associated with SCREENl:The extraction operator is used to read data f
7、rom keyboad.133.1 Simple Keyboard InputuExample:eads a number from the keyboard and stores it in the variable num 14流(流(stream)stream)u流流(stream)表示信息从源到目的端的流动表示信息从源到目的端的流动,负责,负责建立建立数据生产者和消费者之间的联系数据生产者和消费者之间的联系,数据按顺序从一数据按顺序从一个对象传送到另一对象个对象传送到另一对象。uC+的输入输出流是指由若干字节组成的的输入输出流是指由若干字节组成的字节序列字节序列,这,这 些字节些字节
8、中的数据按顺序从一个对象传送到另一对象。中的数据按顺序从一个对象传送到另一对象。流流15u 输出输出流流Output stream:数据从内存传送到某个载体或设备中;数据从内存传送到某个载体或设备中;u 输入流输入流 Input stream:数据从某个载体或设备传送到内存中数据从某个载体或设备传送到内存中;-内存内存-coutcin概念理解:输入输出概念理解:输入输出(IO)(IO)流流16-内存内存-coutcin概念理解:输入输出概念理解:输入输出(IO)(IO)流流u在在C+中,输入输出流被定义为类。中,输入输出流被定义为类。C+I/O 库中的类称为库中的类称为流类(流类(stream
9、 class)。ucin 和和cout是是iostream流类流类的的全局全局对象对象,在,在 中进中进行了定义行了定义。所以,它们在所以,它们在main()开始之前已经初始化。开始之前已经初始化。177.2.2 7.2.2 标准输入流标准输入流 u cinuistream类的对象,它从标准输入设备类的对象,它从标准输入设备(键盘键盘)获取获取数据数据.程序中的变量通过流提取符程序中的变量通过流提取符“”从流中提取从流中提取数据数据,“”实际上是实际上是istream类的一个成员函数,所以类的一个成员函数,所以cinu coutuostream类的对象,它向标准输出设备类的对象,它向标准输出设
10、备(屏幕屏幕)输出数据输出数据u数据通过流插入符数据通过流插入符“”插入到输出流中插入到输出流中,u“”实际上实际上是是ostream类的一个成员函数,类的一个成员函数,所以所以cout 183.2 Manipulators(流操纵符流操纵符)uManipulators are used to modify input and output data streams.lendl,setw,setfill,fixed,setprecisionendl:skip to the start of a new line on the screensetw:set the width of a data
11、 field which is the number of columns that the data item occupies on the screen;setfill:change the“padding”character from a space to any other character.setw:设置数据域的宽度,即数据项在屏幕上所占的列数。:设置数据域的宽度,即数据项在屏幕上所占的列数。只对下一个数据项起作用。只对下一个数据项起作用。所属头文件:所属头文件:iomanipcout endl endl endl can be used anywhere endlsetfill
12、:用于把占位符从空格改变为其他字符。用于把占位符从空格改变为其他字符。对所有后继项起作用。对所有后继项起作用。所属头文件:所属头文件:iomanip193.2 ManipulatorsuExample:How to use manipulators#include Line 4 is required for any manipulator,like setw,that has a value in parentheses.If the field width is set too small to display a value,the width is automatically expa
13、nded so that all the digits in the value are displayed203.2 ManipulatorsuExample:How to use setfill and setwsetfill change the“padding”character from a space to“*”setw applies only to the next data item in the output streamsetfill remains in effect for all subsequent data items sent to the output st
14、ream.213.2 Manipulators(流操纵符流操纵符)setprecision:指定要显示的数据的位数。:指定要显示的数据的位数。对所有后继项起作用。对所有后继项起作用。所属头文件:所属头文件:iomanipfixed放置在放置在 setprecision之前:之前:指定小数点后的显示位数。指定小数点后的显示位数。对所有后继项起作用。对所有后继项起作用。所属头文件:所属头文件:iomanip223.2 Manipulatorsusetprecision:specify the number of digits of a number to display233.3 Single-c
15、haracter input and outputuCharacter Input and Output:generate an invisible blank or white space on the screen,such as Tab、Enter and the space bar.lInputno matter what it is read from keyboardAlternatively,the function get()associated with the input stream object cin can be usedlOutputcout and its;th
16、e output stream object cout has a member function put()that can be used to display a character;noskips:使用它能够读入空白字符。:使用它能够读入空白字符。所属头文件:所属头文件:iomanip或者用:或者用:cin.get()显示字符:显示字符:cout.put()243.3 Single-character input and outputuExample:How to achieve single-char input&outputA function is a block of prog
17、ram code that carries out a specific task,which will be discussed in future.Read a single character from keyboard(Including whitespace characters)25Programming pitfallsProgramming pitfallsu1.Do not mix up the insertion operator.The insertion operator is used to insert data into the output stream;the
18、 extraction operator is used to read data from the input stream.u2.Some manipulators apply only to the next data field(e.g.setw);others(e.g.setprecision)stay in effect for all subsequent data fields.u3.The line#include is required for a manipulator that has a value in parentheses,e.g.setw(4).Other manipulators,like endl,do not require this line.26Quick syntax referenceQuick syntax reference27Q&AQ&A
侵权处理QQ:3464097650--上传资料QQ:3464097650
【声明】本站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是网络空间服务平台,本站所有原创文档下载所得归上传人所有,如您发现上传作品侵犯了您的版权,请立刻联系我们并提供证据,我们将在3个工作日内予以改正。