第04章 数据文件

合集下载

SPM04

SPM04

需求管理中的问题举例z需求的隐含错误z需求不明确、含糊z用户刁难、用户不断增加需求z需求变更z开发人员的镀金本章要点软件需求定义软件需求开发过程定义需求规格的方法案例分析软件需求的类型z 从项目管理的角度功能需求 性能需求 环境需求 用户界面需求 资源使用需求 成本消耗需求 开发进度需求 预先估计以后系统可能达到的目标z 从项目开发的角度功能需求系统必须执行的功能 非功能需求一些限制性要求需求管理的重要性需求管理与项目管理的关系z项目需求是制定项目计划,开发项目产品和从事项目活动的依据z项目的计划、项目的开发活动及开发的产品应与项目需求保持一致,随需求的变化而调整需求获取图示需求获取需要执行的活动z了解客户方的所有用户类型以及潜在的类型,然后根据他们的要求来确定系统的整体目标和系统的工作范围z对用户进行访谈和调研z需求分析人员对收集到的用户需求做进一步的分析和整理对于用户提出的每个需求都要知道”为什么”,并判断用户提出的需求是否有充足的理由将那种以“如何实现”的表述方式转换为“实现什么”的方式(需求分析阶段关注的目标是“做什么”,而不是“怎么做”分析由用户需求衍生出的隐含寻求,并识别用户没有明确提出来的隐含需求(经常会因为对隐含需求考虑得不够充分日引起需求变更)z需求分析人员将调研的用户需求以适当的方式呈交给用户方和开发方的相关人员明确标识未确定的需求项使需求符合系统的整体目标保证需求项之间的一致性,解决需求项之间可能存在的冲突获取需求的注意事项z识别真正的客户z正确理解客户的需求z具备较强的忍耐力和清晰的思维z说服和教育客户需求分析需求分析是为最终用户所看到的系统建立一个概念模型,是对需求的抽象描述需求分析应该执行的活动z以图形表示的方式描述系统的整体结构(包括系统的边界与接口)z通过原型、页面流或其他方式向用户提供可视化的界面,用户可以对需求做出自己的评价z以模型描述系统的功能项、数据实体、外部实体、实体之间的关系、实体之间的状态转换等方面的内容需求分析的时间z设计方案的时候z项目开始的时候z接管一个项目的时候z需求变更的时候需求分析的难点z问题的复杂性z交流的障碍z不完备性和不一致性z需求的易变性编写需求规格z需求分析工作完成的一个基本标志是形成了一份完整的、规范的需求规格说明书z需求规格说明书的编制是为了使用户和软件开发者双方对该软件的初始规定有一个共同的理解,使之成为整个开发工作的基础软件需求规格说明的原则z从现实中分离功能,即描述要“做什么”而不是“怎样实现”z要求使用面向处理的规格说明语言(或称系统定义语言)z如果被开发软件只是一个大系统中的一个元素,那么整个大系统也包括在规格说明的描述之中z规格说明必须包括系统运行环境z规格说明必须是一个认识模型z规格说明必须是可操作的z规格说明必须容许不完备性并允许扩充规格文档参考引言系统定义应用环境功能规格性能需求产品提交实现约束质量描述其它签字认证需求验证z需求是正确的吗?z需求是一致的吗?z需求是完全的吗?z需求是实际可行的吗?z需求是客户需要的吗?z需求是可检验的吗?z需求是可跟踪的吗?z最后的签字需求变更需求总在变化需求变更管理管理和控制需求基线的过程需求变更控制系统z一个正式的文档,说明如何控制需求变更z建立变更审批系统申请人项目名称4.3 需求建模的方法z原型方法z结构化分析法z面向对象的用例分析法z关键功能列表法原型方法的类型z进化型开发出来用于了解问题,并形成被交付软件的部分或全部的基础z抛弃型开发出来以便更多地了解问题或探究可能的方案的灵活性或者合理性,是尝试性软件,不用于被交付软件的实际部分4.3.2 结构化分析方法(SA,Structured Analysis)z20世纪70年发展起来的面向数据流的方法z是一种自顶向下逐步求精的分析方法z根据软件内部数据传递、变换的关系进行分析结构化分析方法-技术数据流图(DFD)数据字典(DD)系统流程图数据流图的层次结构为了表达数据处理过程的数据加工情况,需要采用层次结构的数据流图按照系统的层次结构进行逐步分解,并以分层的数据流图反映这种结构关系,能清楚地表达和容易理解整个系统顶层流图仅包含一个加工,它代表被开发系统。

第04章-TCP与IP协议2

第04章-TCP与IP协议2

2
TCP/IP参考模型的层次
• • • • 应用层(application layer) 传输层(transport layer) 互联层(internet layer) 主机-网络层(host-to-network layer)
3
TCP/IP 参考模型与 OSI 参考模 型的对应关系
应用层 表示层 会话层 传输层 网络层 数据链路层 物理层 传输层 互联层 主机-网络层 应用层
5
TCP/IP参考模型的各层功能
• 传输层 – 相当OSI参考模型的网络层,在源主机与目的 主机之间建立用于会话的端-端连接 – 传输控制协议(transport control protocol, TCP)是一种可靠的面向连接协议,允许将源 主机的字节流无差错地传送到目的主机 – 用户数据报协议(user datagram protocol, UDP)是一种不可靠的无连接协议,主要用于 不要求分组顺序到达的传输
4.1.3 TCP/IP参考模型
• 在TCP/IP协议研究时,并没有提出参考模型 • 1974年,Kahn定义最早的TCP/IP参考模型 • TCP/IP协议共出现6个版本,目前使用的是 版本4,通常称为IPv4 • IPv6被称为下一代的IP协议
1
TCP/IP协议的特点
• TCP/IP是开放的协议标准 • 独立于特定的计算机硬件与操作系统 • 独立于特定的网络硬件,可以运行在局域网、 广域网中 • 统一的网络地址分配方案,使每个设备在网 中有唯一的地址 • 标准化的高层协议,可提供多种可靠的服务
6
应用层的主要协议
• 远程登录协议(Telnet) • 文件传输协议(file transfer protocol,FTP) • 简单邮件传输协议(simple mail transfer protocol,SMTP) • 域名系统(domain name system,DNS) • 简单网络管理协议(simple network management protocol,SNMP) • 超文本传输协议(hyper text transfer pro/IP参考模型的各层功能

第04章 密码学原理

第04章 密码学原理

57 10 63 14
49 2 55 6
41 59 47 61
33 51 39 53
25 43 31 45
17 35 23 37
9 27 15 29
1 19 7 21
58 11 62 13
50 3 54 5
42 60 46 28
34 52 38 20
26 44 30 12
18 36 22 4
第4章 网络安全密码学基本理论
密码学是一门研究信息安全保护的科学。它最早可追溯到 几千年前,主要用于军事和外交通信。随着网络与信息技术的 发展,密码学的应用不再局限于军事、政治、外交领域,而是 逐步应用于社会各个领域,例如电子商务、个人安全通信、网 络安全管理等。 密码学的发展可大致划分为四个阶段:
第4章 网络安全密码学基本理论 第一个阶段:从古代到1949年。该时期的密码学没有数学
第4章 网络安全密码学基本理论 4.1.2 密码学基本概念
密码学,是保护明文的秘密以防止攻击者获知的科学。
密码分,析学是在不知道密钥的情况下识别出明文的科学。
明文,是指需要采用密码技术进行保护的消息。
密文,是指用密码技术处理“明文”后的结果,通常称为加
密消息。
第4章 网络安全密码学基本理论
将明文变换成密文的过程称作加密(encryption)。 其逆过程,即由密文恢复出原明文的过程称作解密
道交换密钥,以保证发送消息或接收消息时能够有供使用的密钥。
第4章 网络安全密码学基本理论
加密
解密
明文
密文
密文
明文
图4-1 私钥密码体制原理示意图
第4章 网络安全密码学基本理论 密钥分配和管理是极为重要的问题。 为了保证加密消息的安全,密钥分配必须使用安全途径, 例如由专门人员负责护送密钥给接收者。 同时,消息发送方和接收方都需要安全保管密钥,防止非 法用户读取。 另外的问题是密钥量。由于加密和解密使用同一个密钥, 因此,与不同的接收者进行加密通信时,需要有几个不同的密

midas第04章 模型

midas第04章 模型

第四章“模型”中的常见问题 (3)4.1 如何进行二维平面分析? (3)4.2 如何修改重力加速度值? (3)4.3 使用“悬索桥建模助手”时,如何建立中跨跨中没有吊杆的情况?* (3)4.4 使用“悬臂法桥梁建模助手”时,如何定义不等高桥墩? (4)4.5 程序中的标准截面,为什么消隐后不能显示形状?* (4)4.6 如何复制单元时同时复制荷载? (5)4.7 复制单元时,单元的结构组信息能否同时被复制? (5)4.8 薄板单元与厚板单元的区别? (6)4.9 如何定义索单元的几何初始刚度? (6)4.10 索单元输入的初拉力是i端或j端的切向拉力吗? (7)4.11 如何考虑组合截面中混凝土的收缩徐变? (8)4.12 定义收缩徐变函数时的材龄与定义施工阶段时激活材龄的区别?* (8)4.13 如何自定义混凝土强度发展函数? (9)4.14 如何定义变截面梁?* (9)4.15 使用“变截面组”时,如何查看各个单元截面特性值?* (10)4.16 如何定义鱼腹形截面? (11)4.17 如何定义设计用矩形截面?* (11)4.18 如何输入不同间距的箍筋?* (12)4.19 定义联合截面时,“梁数量”的含义? (13)4.20 如何定义哑铃形钢管混凝土截面? (13)4.21 导入mct格式截面数据时,如何避免覆盖已有截面? (14)4.22 如何定义“设计用数值型截面”的各参数? (16)4.23 如何考虑横、竖向预应力钢筋的作用? (17)4.24 板单元“面内厚度”与“面外厚度”的区别? (18)4.25 定义“塑性材料”与定义“非弹性铰”的区别? (19)4.26 定义“非弹性铰”时,为什么提示“项目:不能同时使用的材料、截面和构件类型”?204.27 为什么“非弹性铰特性值”不能执行自动计算? (21)4.28 为什么“非弹性铰特性值”自动计算的结果P1〉P2? (21)4.29 程序中有多处可定义“阻尼比”,都适用于哪种情况? (22)4.30 如何定义弯桥支座?* (24)4.31 如何快速定义多个支承点的只受压弹性连接? (25)4.32 如何模拟满堂支架? (25)4.33 如何连接实体单元和板单元? (25)4.34 如何模拟桩基础与土之间的相互作用? (26)4.35 梁格法建模时,如何模拟湿接缝? (27)4.36 为什么用“弹性连接”模拟支座时,运行分析产生了奇异?* (27)4.37 为什么两层桥面之间用桁架单元来连接后,运行分析产生奇异?* (28)4.38 “梁端刚域”与“刚域效果”的区别? (28)4.39 为什么定义梁端刚域后,梁截面偏心自动恢复到中心位置? (29)4.40 为什么“只受压弹性连接”不能用于移动荷载分析? (29)4.41 为什么“刚性连接”在施工阶段中不能钝化? (30)4.42 如何考虑PSC箱梁的有效宽度? (30)4.43 为什么只考虑节点质量进行“特征值分析”时,程序提示“ERROR”? (31)4.44 如何删除重复单元? (31)第四章 “模型”中的常见问题4.1 如何进行二维平面分析?具体问题MIDAS/Civi 为三维空间分析程序,如何进行二维平面分析?相关命令模型〉结构类型...问题解答“结构类型”对话框中有多种结构类型可供选择(3-D 、X-Z 平面、Y-Z 平面、X-Y 平面、约束RZ )。

光盘使用说明模板

光盘使用说明模板

1.本书1~21章所附代码的运行环境操作系统:Windows Server 2003或Windows XP Professional开发环境:Microsoft Visual Studio 2005数据库:SQL Server 2005Web 服务器:IIS 5.1及以上版本2.本书所附光盘范例第1章(\Chapter 01)示例描述:本章演示 2.0网站的预编译以及学习A 2.0的前置知识。

WebSite 文件夹创建的 2.0 Web 站点。

www 文件夹 第一个用C#开发的Web 应用程序。

bianyi.bat 编译网站的批处理文件。

form.html 表单范例。

css.html CSS 范例。

第3章(\Chapter 03)示例描述:本章介绍C# 2.0程序设计基础。

3-01.cs第一个C#程序。

3-02.cs不导入命名空间来改写程序3-01.cs 。

3-03.cs ReadLine()方法读数据。

3-04.cs常量的使用。

3-05.cs整型类型的使用。

3-06.cs结构类型的使用。

3-07.cs枚举类型的使用。

3-08.cs用一个输入参数通过值传递一个变量给一个方法。

3-09.cs一维数组的使用。

3-10.cs使用代理类型。

3-11.cs使用接口。

3-12.cs装箱操作。

3-13.cs字符串操作。

3-14.csif 语句的使用。

3-15.csswitch 语句的使用。

CD光盘使用说明3-16.cs while语句的使用。

3-17.cs do-while语句的使用。

3-18.cs for语句的使用。

3-19.cs 异常捕获:try-catch语句的使用。

3-20.cs 异常捕获:try-finally语句的使用。

3-21.cs 异常捕获:try-catch-finally语句的使用。

3-22.cs get和set对属性的值进行读写操作。

3-23.cs 方法的使用。

Visual FoxPro 实用教程(第2版)(十一五国家规划)第04章 表单

Visual FoxPro 实用教程(第2版)(十一五国家规划)第04章 表单

4.1 面向对象的程序设计
当失去焦点时的事件触发顺序: Valid事件 LostFocus事件 DeActivate事件. 表单释放时事件触发的顺序: 表单(Form)的QueryUnload事件; 表 单 集 (FormSet) 的 Destry 事 件 表 单 的 Destry事件 控件的 Destry Destry Destry事件; 表单的UnLoad事件 表单集的UnLoad事件; 数据环境 (Dataenvironment)AfterCloseTables事件; 数据环境Destry事件 数据环境临时表 Destry事件.
第4章 表 单
4.1 面向对象的程序设计 4.2 创建表单 4.3 表单的属性,事件和方法 表单的属性, 4.4 表单应用举例
4.1 面向对象的程序设计
1. 概述 传统的结构化程序设计是自顶向下的功能设计.结构化程序设计通 过顺序,条件分支和循环三种控制流程进行编程. 面向对象(Object)的程序设计即OOP(Object Oriented Program).它 的设计方法是按照人们的习惯思维方式建立模型,模拟客观世界.客 观世界是由一系列具有动作的对象构成,一个复杂的对象包含若干个 简单的对象,每个对象都具有的一些性质,执行的一些操作和对应的 一些动作. 对象所具有的性质称为对象的属性;对象所执行的一些操作称为对 象的方法;对象所对应的动作称为对象的事件.对象之间通过消息进 行联系. VFP是面向对象的数据库程序设计语言,VFP应用程序的用户界面一 般由表单,菜单和控件等对象构成的,各个对象之间的联系完全取决 于操作.程序的运行并没有固定的顺序. VFP采用事件驱动的方式,通过编写"事件"的程序代码,为对象规 定了被某个"事件"激活时对应的动作以及所要进行处理的具体内容, 由各个对象编写的事件代码集合在一起,就构成了应用程序.

网络应用技术开篇-第04章 传输层协议TCP和UDP





135端口:135端口主要用于使用RPC(Remote Procedure Call, 远程过程调用)协议并提供DCOM(分布式组件对象模型)服务。 冲击波病毒利用RPC漏洞攻击,利用错误格式处理不正确的消息 造成的。 137、138、139端口:NETBIOS Name Service :其中137、 138是UDP端口,当通过网上邻居 传输文件时用这个端口。只需要向 这端口发个请求,就可以获得该计 算机名称,用户名IIS是否在运行。 139端口: NETBIOS Session Service 图获得NetBIOS/SMB服务。这个协 议被用于windows文件和打印机共 享和SAMBA。 443端口:Https 网页浏览端口,能 提供加密和通过安全端口传输的另一 种HTTP,作用同139完全相同。


3.利用UDP的应用程序要承担可靠性方面的全部工 作
UDP封装
以太网帧
帧头
IP报头
UDP报头
UDP数据
校验码
UDP报文
IP数据报 帧是给传输过程中交换设备阅读的,IP数据报是给路由器阅读的,UDP报文 是给传输路径的两端的主机阅读的
UDP的端口

UDP使用端口对给定主机上的多个目标进行区分 TCP和UDP各自拥有自己的端口号
TCP中的序列编号

TCP将数据流作为组合成段的字节序列传送 为每一个字节分配一个唯一的序列编号 第一个字节的序列编号是在连接建立开始时确定的 每个TCP报的序列编号是分配给段中的数据的第一 个字节的序列编号
源主机 目的主机
81 80 79 SEQ79
78 77 76 75 74 SEQ74
TCP提供的服务

智能物流 第04章


决策的高级阶段
– 企业根据数据对未来做出趋势判断,或者根据特定数学模型获得的分类信息,对未来市 场进行预测,为行动提供指南。 – 趋势预测分析法:指数平滑分析、时间序列回归分析等方法,以及数据挖掘技术和运筹 规划中的其他方法等等。
商业智能的概念
商业智能系统
商业智能的核心技术
商业智能在智能物流中的应用
报表系统
被替代
商业智能系统
商业智能是企业利用现代信息技术收集、管理和分析结构化和非结构化的商业数据和 信息,创造和累积商务知识和见解,改善商务决策水平,采取有效的商务行动,完善 各种商务流程,提升各方面商务绩效,增强综合竞争力的智慧和能力。 因此,随着企业信息化的不断深化,商业智能逐渐成为企业决策者的重要工具。
5. 数据挖掘(Data Mining, DM)
– 它负责进行数据汇总、概念描述、分类、聚类、相关性分析、偏差分析、演变分析、建 模、预测等。 – 常用的软件:SAS, SPSS等。
6. 信息展示(Display)
– 它负责通过图形、图表、图像、模拟仿真等易于人们所辨识的方式展现原始数据间的复 杂关系、潜在信息及发展趋势,以便决策者能够更好地利用所掌握的信息资源。 – 常用的软件:微软的ReportingServices, CrystalReport工具,BusinessObjects等;另 一类为OLAP展现工具,包括微软的SSAS或者 Excel等。
– 决策所需要的信息是对原始数据的分类、汇总、排序,以获得对经营活动的直观印象。 – 数据:销售、市场、财务、运营等方面。
决策的中级阶段
– 在中级阶段,是对分类汇总数据中的明细数据和相关关键绩效指标(Key Performance Indicator, KPI)的展现,以及对相关联的明细数据,从不同角度进行的交叉观测,以 获得对数据反映出的商业结果的原因探索。 – 主要KPI:财务分析指标;反映客户管理的指标;反映流程管理的指标;反映人力资源方 面的指标。

工程经济学第04章工程项目评价的基本方法

Pd ( 累 计 净 现 金 流 量 现 值 开 始 出 现 正 值 的 年 数 - 1 ) + 上 一 年 累 计 净 现 金 流 量 现 值 的 绝 对 值 出 现 正 值 年 份 净 现 金 流 量 的 现 值
第 36页
【例4-9】
某项目的原始投资F0=-20000元,以后各年净 现金流量如下:第1年为3000元,第2~10年 为5000元。项目计算期为10年,求动态投资 回收期。
第 24页
(3)总投资利税率
总 投 资 利 税 率 = 年 利 总 税 投 总 资 额 100%
计算出的总投资利税率要与规定的行业标准 投资利税率(若有的话)或行业的平均投资 利税率进行比较,若前者大于或等于后者, 则认为项目是可以考虑接受的。
第 25页
(4)资本金利润率
资 本 金 利 润 率 = 资 年 本 利 金 润 100%
独立运用该指标,难以正确判断不同方案的 优劣,有时会出现决策失误。
静态投资回收期被广泛作为项目评价的辅助 指标,与其他指标结合使用。
第 10页
2.差额投资回收期(△Pt)
差额投资回收期也称追加投资回收期。 所谓差额投资是指两个方案比较时,一方案
比另一方案多投资的差额。 差额投资回收期:一个方案较另一个方案多
第 6页
【例4-1】P79
某项目的原始投资F0=-20000元,以后各年净现金 流量如下:第1年为3000元,第2~10年为5000元。 项目计算期为10年,求回收期。
解:累计净现金流量开始出现正值的年份是第5年:
5
( C I C O ) t 2 0 0 0 0 3 0 0 0 5 0 0 0 5 0 0 0 5 0 0 0 5 0 0 0 3 0 0 0 0

C语言程序设计第4章

技能目标
能够使用if语句和switch语句,进行 选择结构程序设计 会利用多分支结构解决较复杂逻辑 判断问题
目录
CONTENTS
00 案例4 百分制转换等级制 01 4.1 选择结构判定条件的构成 02 4.2单分支和双分支选择结构程序设计 03 4.3 多分支选择结构程序设计
目录
CONTENTS
04 4.4 小结 05 4.5 拓展案例
案例4 百分制转换等级制
问题描述
学生成绩管理系统中需要对老师录入的百分制转换为等 级制。百分制与等级制的对应关系如下:90-100 对应A、 80-89对应B、70-79对应C、60-69对应D、0-59对应E。
问题分析
这是一个需要根据不同条件作出相应选择的程序,根据 描述,我们可以定义float变量fScore用来存放成绩值, 从而根据题目列出下列条件表达式: fScore>=90&&fScore<=100 your grade is A fScore>=80&&fScore<=89 your grade is B fScore>=70&&fScore<=79 your grade is C fScore>=60&&fScore<=69 your grade is D fScore>=0&&fScore<=59 your grade is E
4.4 小结
(1)嵌套if-else语句和switch语句都是用来实现多分支选择结构的,它们的 应用环境不同,嵌套if-else 语句用于对多条件并列测试,从中取一的情形; switch语句用于单条件测试,从其多种结果中取一种的情形。 (2)一般情况下用switch能解决的问题,用嵌套if-else 也一样能解决,反 之用嵌套if-else 语句能解决的问题用switch也能解决,在使用时要根据具体 问题灵活运用。 (3)如果多分支选择结构中需要判断的逻辑关系只是是否相等,则最好用 switch语句。switch语句的执行效率高于嵌套if-else语句。
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第04章 数据文件 4.1 有关基本概念; 4.2 文件的打开与关闭; 4.3 单字符读写函数fgetc/fputc 4.4 格式化读写函数fprintf/fscanf 4.5 读写数据块函数fread/fwrite 4.6 读写字符串函数fgets/fputs 4.7 文件定位函数

4.1 有关基本概念

1. 文件是存储在外部介质上的数据的集合; 2. 文件路径是指文件在外部介质上的存储位置,一般应该由盘符、路径组成;例如:“c:\chen\yong\myphoto\”; 3. 读文件是指从外部介质将文件内容读入内存的过程; 4. 写文件是指将内存中的数据写入外部介质的过程; 5. 文件名(含扩展名)是读写文件的依据,在C语言中,只支持8.3格式文件名; 6. 文件扩展名:一般标明文件的类型,它与某种应用程序相关联,如扩展名为DOC的文件就与WORD应用程序相联。数据文件建议扩展名为TXT,以方便用记事本打开查看内容; 7. 完整描述一个文件包含四个部分:盘符、路径、文件名和扩展名,盘符和路径在一定条件下可省略; 8. ASCII文件:按ASCII码编码存储信息的文件,这类文件可以用记事本查看其内容; 9. 二进制文件:按信息在内存中形式原样存储形成的文件,这类文件一般不可以用记事本查看内容。 10. ASCII码文件与二进制文件在存储字符信息时并无区别,例如:将“陈勇”存入两种文件中是完全相同的,但在保存数值信息时就会差别很大,例如将整型数22373分别存入两类文件,再用记事本打开看到的是: 11. 文件类型指针:是一种结构体类型,类型名为FILE(注意大写); 12. 文件的打开:指用fopen函数在存储器文件和文件指针之间建立联系的过程,要读写文件必须首先按正确的方式打开文件; 13. 文件的关闭:指用fclose函数将存储器文件和文件指针之间联系断开的过程,对文件读写完成后应该关闭文件; 14. 文件读写位置指针:每一个打开文件内部指向数据的指针,文件的读写总是从该指针位置开始的。该指针位置可以用ftell函数检测到。当指针指向文件末尾时,feof函数值为真。

4.2 文件的打开与关闭 1.文件打开函数fopen,使用格式: 文件类型指针=fopen(文件名,文件使用方式) 2. 如果文件打开成功,则以后就可以通过文件类型指针对文件进行各种操作,如果打开不成功(如文件不存在、路径不对等),指针指向NULL; 3. 常用的打开文件程序段如下: if((fp=fopen(文件名,使用方式))==NULL) {printf("Open file error!\n");exit(0);} 4. 文件使用方式见P355,常用r和w以ASCII码方式打开文本文件,用rb和wb以二进制编码方式打开二进制文件(文本文件也可以以二进制方式打开); 5. 文件关闭格式:fclose(文件类型指针); 1文件打开函数fopen,使用格式: 文件类型指针=fopen(文件名,文件使用方式) 2. 如果文件打开成功,则以后就可以通过文件类型指针对文件进行各种操作,如果打开不成功(如文件不存在、路径不对等),指针指向NULL; 3. 常用的打开文件程序段如下: if((fp=fopen(文件名,使用方式))==NULL) {printf("Open file error!\n");exit(0);} 4. 文件使用方式见P355,常用r和w以ASCII码方式打开文本文件,用rb和wb以二进制编码方式打开二进制文件(文本文件也可以以二进制方式打开); 5. 文件关闭格式:fclose(文件类型指针);

4.3 单字符读写函数fgetc/fputc

示例1:从键盘上键入字符,将字符写入文件中,直到输入字符“#”为止。 #include "stdio.h" int main() { FILE *fp; char ch; if((fp=fopen("c:\\chen\\f1.txt","w"))==NULL) {printf("open error!");exit(0);} while((ch=getchar())!='#') fputc(ch,fp); fclose(fp); printf("\nOK!"); return 0; } 示例2:从刚才建立的文件中将数据逐一读出并显示在屏幕上。 #include "stdio.h" int main() { FILE *fp; char ch; if((fp=fopen("c:\\chen\\f1.txt","r"))==NULL) {printf("open error!");exit(0);} while((ch=fgetc(fp))!=EOF) putch(ch); fclose(fp); return 0; } 示例3:文件复制,从键盘上指定一个源文件名和目标文件名,将源文件复制到目标文件中。 #include "stdio.h" int main() { FILE *fp1,*fp2; char fn1[100],fn2[100],ch; printf("from:");gets(fn1); printf(" to:");gets(fn2); fp1=fopen(fn1,"rb"); fp2=fopen(fn2,"wb"); if(fp1==NULL||fp2==NULL) {printf("open error!");exit(0);} while((ch=fgetc(fp1))!=EOF) fputc(ch,fp2); fclose(fp1);fclose(fp2); printf("\nOK!"); return 0;} 示例4:文件加密,从键盘上指定一个源文件名和目标文件名,将源文件按位取反加密到目标文件中。 #include "stdio.h" int main() { FILE *fp1,*fp2; char fn1[100],fn2[100],ch; printf("from:");gets(fn1); printf(" to:");gets(fn2); fp1=fopen(fn1,"rb"); fp2=fopen(fn2,"wb"); if(fp1==NULL||fp2==NULL) {printf("open error!");exit(0);} while((ch=fgetc(fp1))!=EOF) fputc(~ch,fp2); fclose(fp1);fclose(fp2); printf("\nOK!"); return 0;} }

4.4 格式化读写函数fprintf/fscanf

示例5:随机生成200个4位数的整数,以ASCII码形式保存在文件out1.txt中。 #include "stdio.h" int main() { FILE *fp; int i,x; fp=fopen("c:\\chen\\out1.txt","w"); //create new file if(fp==NULL) {printf("open error!");exit(0);} for(i=0;i<200;i++) { x=rand()%9000+1000; printf("%5d",x); //print to screen fprintf(fp,"%5d",x); //print to file } fclose(fp); printf("\nOK!"); return 0;} 示例6:读出保存在文件out1.txt中的数据,将个位+十位大于千位+百位的数输出到屏幕的同时,保存到另一个ASCII码文件out2.txt中。 #include "stdio.h" int main() { FILE *fp,*fp1; int i,x; fp=fopen("c:\\chen\\out1.txt","r"); fp1=fopen("c:\\chen\\out2.txt","w"); if(fp==NULL||fp1==NULL){printf("open error!");exit(0);} for(i=0;i<200;i++) { fscanf(fp,"%d",&x); //得到千位、百位、十位、个位,再判断 //if(条件成立) {printf("%5d",x); fprintf(fp1,"%5d",x);} } fclose(fp);fclose(fp1); return 0; } 示例7:从键盘输入3个学生的姓名、四门课成绩,写入ASCII文件out3.txt中。 #include "stdio.h" int main() { FILE *fp; char xm[20]; int i,a,b,c,d; fp=fopen("c:\\chen\\out3.txt","w"); if(fp==NULL) {printf("open error!");exit(0);} for(i=0;i<3;i++) { scanf("%s%d%d%d%d",xm,&a,&b,&c,&d); fprintf(fp,"%s %d %d %d %d\n",xm,a,b,c,d); } fclose(fp); printf("\nOK!"); return 0; } 示例8:利用EXCEL创建一个包括姓名、四门课成绩在内的若干学生成绩单out4.txt,读出其中内容。 #include "stdio.h" int main() { FILE *fp; char xm[20];int a,b,c,d; fp=fopen("c:\\chen\\out4.txt","r"); if(fp==NULL) {printf("open error!");exit(0);} while(!feof(fp)) { fscanf(fp,"%s%d%d%d%d",xm,&a,&b,&c,&d); printf("%-10s%10d%10d%10d%10d\n",xm,a,b,c,d); } fclose(fp); printf("\nOK!"); return 0; } 4.5 读写数据块函数fread/fwrite

相关文档
最新文档