C++程序设计案例教程 刘玉山 第9章流新.pptVIP

C++程序设计案例教程 刘玉山 第9章流新.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第9章 流 学习目标 1)了解格式化输入和输出。 2)理解I/O流的概念。 3) 掌握文件流的用法。 第9章 流 9.1 I/O流的概念 9.2 格式化输入和输出 9.3 文件流 9.1 I/O流的概念 流是C++中提供的一种针对输入和输出处理的一种技术。 9.1.1常用的流对象及输入和输出 输入流类istream重载了运算符“”,用于数据输入,其原形如下: istream operator( istream,类型修饰); 其功能是从输入流中提取一个数据赋值给一个变量。 输出流类ostream重载了运算符“”,用于数据输出,其原形如下: ostream operator( ostream ,类型修饰); 其功能是把表达式的值插入到输出流中。 9.2 格式化输入和输出 任务1:针对信息管理系统中出现的界面问题进行有些的格式控制,使其界面友好。 在信息管理系统中的运行中发现,界面显示有点乱,主要体现在查询功能中的各个子模块的输出。有时输出不符合用户的要求,比如成绩的统计的输出,对平均分,通过率的输出,本来想让其显示两位小数,但是却显示了6位小数。现在通过格式控制,使其界面变得更友好一些。 通过菜单项“小圆点”的序号来对菜单项的选择,这就要求菜单项只能是用数字组成,而不能是其它字符。 在添加和修改成绩时,对输入的数据的检查。 (2)任务分析与设计 对于信息管理系统采用二级菜单的方式进行显示。 在信息管理系统中的运行中发现,界面出现乱的原因,很大程度上是由于没能对输出进行有效的字符格式的控制。 比如查询功能中的各个子模块的输出,因为其中输出的字符是可变的,所以在前面没有进行有效的控制。导致了界面显得有点乱。 (3)任务实现 见程序Student90.cpp (4)要点总结 coutsetiosflags(ios::left);使输出的字符左对齐。 cout setw(5);指定要输出的字符的宽度为5,默认情况下,用空格补齐。 coutsetprecision(3);指定要输出的数据的精度为3。 (4)要点总结 对菜单项选择时菜单项序号的输入的检查和转换是通过把当前的输入的字符存储在数组中,然后调用系统提供的功能函数atoi(const char *),如果返回为0,表示输入的字符不是整数;否则返回转换后的相应的整数。 对成绩输入和修改时的数据检查和转换也是通过把当前的输入的字符存储在数组中,然后调用系统提供的功能函数atof(const char *),如果返回为0,表示输入的字符不能转换为数字;否则返回转换后的相应的double类型,因为这里的成绩类型为float,所以还必须进行一次强制类型转换,使其为float类型。 (5)涉及到知识点 1 1)格式控制:通过控制符来完成的。 在系统提供的头文件中iomanip.h中,创建一些函数来对I/O进行一些格式控制。 2) 转换函数:atoi(const char *)和atof(const char *) 9.3文件流 任务2:要永久性的保存学生的数据信息。 (1)任务描述 在上一个任务中,我们实现了系统界面的友好优化。现在需要进一步的对系统进行调整。使其输入的数据信息能够保存下来,便于以后查询。这需要保存的信息有学生的信息、科目信息和成绩信息等。 (2)任务分析与设计 因为需要保存学生、科目和成绩的信息,那么就必须存储在磁盘上。要永久性的保存,这里选择以文件的形式存储在外存中。 由于现在的系统已经实现了把数据都存储在数组中。所以这里只需要实现数组到文件的转换即可。这里新设置一个功能保存数据和提取数据。 (2)任务分析与设计 因为在程序中学生、科目和成绩数据分别保存在三个数组中,所以这里相应的也把这三个数组中的数据也保存在三个文件中student.dat、subject.dat和score.dat。 对于提取数据,在程序开始执行时,先从文件中提取数据到数组中,然后在开始其它的工作。 同时为了避免,工作后忘了保存,所以在退出时实现了自动保存数据到文件中。 (3)任务实现 见程序student91.cpp (4)要点总结 对于保存数据模块saveFile()来说: 1 1)用的是文件输出流ofstream的对象,当data目录下没有相应的文件时,系统默认创建一个文件。当打开文件失败时,返回1。当打开文件成功时,开始保存数据到该文件中,并且在保存的过程中每一个字段之间以“空格”字符作为分隔符。保存数据完毕后,关闭该文件流对象。返回0。 2)文件目录的分割符要用“\\”。 (4)要点总结 对于从score.dat中提取数据

文档评论(0)

118压缩包课件库 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档