raptor程序设计案例教程-ch7
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
第7章 I/O程序设计
《RAPTOR程序设计案例教程》
学习目标
何为工程化计算? 计算的原始数据从何而来? 计算的结果可以在哪里输出? 伪随机数的重要性和用途。
何为工程化计算?
对于很多实用的工程软件来说,它所需要 输入的数据量比较大,有时候需要借助大 量的输入数据完成科学计算,在这种情况 下,依靠前面所说的通过用户键盘输入显 然既费时费力,又不太可能实现
由于字符串可以当成是元素全为字符的数 组,所以每次读入一行字符串后,使用循 环语句将每个字符的ascii加1即可
文档的加密与解密
Main子图
加密与解密
加密与解密 Cipher Vs. decipher
加密解密中的文件内容
图形界面中的输入输出
例7-5 设计一个视窗界面下的
加法程序,要求在图形 界面下列出算式,并使 用视窗交互功能完成加 法数据的输入
输出重定向结束
经过成功调用Redirect_Output函数,程序将 其计算结果输出到指定的文件。在文件输 出的完成后,需要重新设置RAPTOR环境, 使后续的输出内容继续写到其输出主控制 台,需要重新调用Redirect_Output函数,这 个时候用False(No)作为参数
Redirect_Output(False)
分析与思考
图形界面下如何接收来自键盘的单个输入 数字?
如何将来自键盘的多个数字输入组合成一 个完整的参与加法运算的数?
两个加数如何结束输入? 为了使程序界面更为美观,整个符号的显
示需要对该符号区域做居中处理。
模块设计
Main子图控制整个过程; Init子图负责初始化视窗和加数; Screen_input子程序负责从键盘接受
Redirect_Output("file.csv") Redirect_Output("C:\User\cxq\CS101\datafile")
在运行过程中,进行文件名输入的输出重 定向
Redirect_Output(TRUE) 此语句将文件名的输入延迟到运行时间。当 Redirect_Output函数调用执行时,RAPTOR会打开 文件名对话框,用户输入文件名并用于输出
借助来自键盘的每个数字,将其做加权处 理可以得到完整的数字
通过设置一个特殊键来实现每个加数的结 束,如回车键(借助get_key_string函数的值 判断)
图形加法器的实现要点
为了使程序界面更为美观,整个符号的显示需要 对该符号区域做居中处理
如display子程序给出五个参数:x1,y1,x2,y2,text; 其中(x1,y1)为将要处理区域左上角坐标,(x2,y2)为 右下角坐标,text为要显示的内容
输出重定向
输出语句可以用来将数据输出到一个文本文件 RAPTOR程序执行过程中遇见一个输出语句,系统
会检查输出是否已经被重定向(redirected) 如果输出被重定向,这意味着已经指定了一个
输出文件,此时输出的数据将写入到指定的文 件中
如果输出没有被重定向,则输出数据依然显示 在主控制台(masterconsole)
居中处理时分别取x1+x2和y1+y2的中点(假设 x2>x1,y2>y1)
特别注意:取中点时还要考虑内容本身的长度,内容 本身的长度可以通过get_font_width*length_of(string)获 得,高度可以通过get_font_height获得
本章小结
基本输入输出,如键盘输入和主控制台输出对于 需要大量信息录入的程序来说显然是无法满足的 ,这时就需要借助新的方式来完成输入
读入成绩表
数据文件
1000以内质数的文件输出
1000以内质数的文件输出
测素子程序
文档的加密和解密
例7-4 :要求对一 个文本文档进行加 密,或者对一个加 密过的文本文档进 行解密。加密要求 使用最简单的加密 方法:n=1的凯撒 加密。
分析与设计
凯撒密码是一种基于简单替换的密码术。 原理如下:用每个字母后移n位得到的字母 来代替原来的字母。相应的,解码的过程 就是将每个字母前移n位。这里我们取最简 单的n=1。加密时,将每个字符换成ascii码 大1的字符,如‘p’换成‘q’,‘3’换 成‘4’等等
入; Display子程序负责输入字符串的正规化显示
图形界面下的加法器
Main子图
图形界面下的加法器
Init子图
图形界面下的加法器
Screen_input子程序
完成屏幕中数据 的输入与整理
图形界面下的加法器
Display子程序
运行结果
图形加法器的实现要点
接收键盘来的单个输入数字可以借助 get_key或者get_key_string函数来实现,将 函数的值赋给某一变量即可完成该操作
基本输入输出实例
基本输入输出
RAPTOR基本输入的对话框
RAPTOR主控台输出
文件数据的输入输出
文件输出,就是将计算结果保存到文件中
利用文件可以与其他应用软件交换计算结 果
例如,将某个计算结果保存成为电子表格可以 读入的文件格式(.csv),那么,这些计算结果 就可以为电子表格和数据库管理系统读入后进 行图形化或检索处理
文件输出举例
文件输出的结果实例
文件输出的结果保 存在.csv文件中
.csv文件为逗号分 隔的文本文件,在 Windows中会自动 调用excel打开
从文件输入计算数据
从文件中读入计算需要的基本数据,可以 减少人机交互,节省调式时间
这在图和树类抽象数据结构的算法设计中 ,特别重要
例如,由于一个有4个顶点的图,往往需要有16 个数据组成的邻接矩阵来表达,如果通过键盘 输入该矩阵,工作效率极低且容易出错
同样,对于大量数据的输出也不能仅借助 主控制台。那有什么办法来高效完成这项 工作呢?
基本输入输出
例7-1: 编写一个小程序,实现百分制到四级 分制的转换,规则如下:
若分数在[90,100]之间,则输出“A”; 若分数在[80,89]之间,则输出“B”; 若分数在[60,79]之间,则输出“C”; 若分数在[0,59]之间,则输出“D”。 分数由用户通过键盘输入
《RAPTOR程序设计案例教程》
学习目标
何为工程化计算? 计算的原始数据从何而来? 计算的结果可以在哪里输出? 伪随机数的重要性和用途。
何为工程化计算?
对于很多实用的工程软件来说,它所需要 输入的数据量比较大,有时候需要借助大 量的输入数据完成科学计算,在这种情况 下,依靠前面所说的通过用户键盘输入显 然既费时费力,又不太可能实现
由于字符串可以当成是元素全为字符的数 组,所以每次读入一行字符串后,使用循 环语句将每个字符的ascii加1即可
文档的加密与解密
Main子图
加密与解密
加密与解密 Cipher Vs. decipher
加密解密中的文件内容
图形界面中的输入输出
例7-5 设计一个视窗界面下的
加法程序,要求在图形 界面下列出算式,并使 用视窗交互功能完成加 法数据的输入
输出重定向结束
经过成功调用Redirect_Output函数,程序将 其计算结果输出到指定的文件。在文件输 出的完成后,需要重新设置RAPTOR环境, 使后续的输出内容继续写到其输出主控制 台,需要重新调用Redirect_Output函数,这 个时候用False(No)作为参数
Redirect_Output(False)
分析与思考
图形界面下如何接收来自键盘的单个输入 数字?
如何将来自键盘的多个数字输入组合成一 个完整的参与加法运算的数?
两个加数如何结束输入? 为了使程序界面更为美观,整个符号的显
示需要对该符号区域做居中处理。
模块设计
Main子图控制整个过程; Init子图负责初始化视窗和加数; Screen_input子程序负责从键盘接受
Redirect_Output("file.csv") Redirect_Output("C:\User\cxq\CS101\datafile")
在运行过程中,进行文件名输入的输出重 定向
Redirect_Output(TRUE) 此语句将文件名的输入延迟到运行时间。当 Redirect_Output函数调用执行时,RAPTOR会打开 文件名对话框,用户输入文件名并用于输出
借助来自键盘的每个数字,将其做加权处 理可以得到完整的数字
通过设置一个特殊键来实现每个加数的结 束,如回车键(借助get_key_string函数的值 判断)
图形加法器的实现要点
为了使程序界面更为美观,整个符号的显示需要 对该符号区域做居中处理
如display子程序给出五个参数:x1,y1,x2,y2,text; 其中(x1,y1)为将要处理区域左上角坐标,(x2,y2)为 右下角坐标,text为要显示的内容
输出重定向
输出语句可以用来将数据输出到一个文本文件 RAPTOR程序执行过程中遇见一个输出语句,系统
会检查输出是否已经被重定向(redirected) 如果输出被重定向,这意味着已经指定了一个
输出文件,此时输出的数据将写入到指定的文 件中
如果输出没有被重定向,则输出数据依然显示 在主控制台(masterconsole)
居中处理时分别取x1+x2和y1+y2的中点(假设 x2>x1,y2>y1)
特别注意:取中点时还要考虑内容本身的长度,内容 本身的长度可以通过get_font_width*length_of(string)获 得,高度可以通过get_font_height获得
本章小结
基本输入输出,如键盘输入和主控制台输出对于 需要大量信息录入的程序来说显然是无法满足的 ,这时就需要借助新的方式来完成输入
读入成绩表
数据文件
1000以内质数的文件输出
1000以内质数的文件输出
测素子程序
文档的加密和解密
例7-4 :要求对一 个文本文档进行加 密,或者对一个加 密过的文本文档进 行解密。加密要求 使用最简单的加密 方法:n=1的凯撒 加密。
分析与设计
凯撒密码是一种基于简单替换的密码术。 原理如下:用每个字母后移n位得到的字母 来代替原来的字母。相应的,解码的过程 就是将每个字母前移n位。这里我们取最简 单的n=1。加密时,将每个字符换成ascii码 大1的字符,如‘p’换成‘q’,‘3’换 成‘4’等等
入; Display子程序负责输入字符串的正规化显示
图形界面下的加法器
Main子图
图形界面下的加法器
Init子图
图形界面下的加法器
Screen_input子程序
完成屏幕中数据 的输入与整理
图形界面下的加法器
Display子程序
运行结果
图形加法器的实现要点
接收键盘来的单个输入数字可以借助 get_key或者get_key_string函数来实现,将 函数的值赋给某一变量即可完成该操作
基本输入输出实例
基本输入输出
RAPTOR基本输入的对话框
RAPTOR主控台输出
文件数据的输入输出
文件输出,就是将计算结果保存到文件中
利用文件可以与其他应用软件交换计算结 果
例如,将某个计算结果保存成为电子表格可以 读入的文件格式(.csv),那么,这些计算结果 就可以为电子表格和数据库管理系统读入后进 行图形化或检索处理
文件输出举例
文件输出的结果实例
文件输出的结果保 存在.csv文件中
.csv文件为逗号分 隔的文本文件,在 Windows中会自动 调用excel打开
从文件输入计算数据
从文件中读入计算需要的基本数据,可以 减少人机交互,节省调式时间
这在图和树类抽象数据结构的算法设计中 ,特别重要
例如,由于一个有4个顶点的图,往往需要有16 个数据组成的邻接矩阵来表达,如果通过键盘 输入该矩阵,工作效率极低且容易出错
同样,对于大量数据的输出也不能仅借助 主控制台。那有什么办法来高效完成这项 工作呢?
基本输入输出
例7-1: 编写一个小程序,实现百分制到四级 分制的转换,规则如下:
若分数在[90,100]之间,则输出“A”; 若分数在[80,89]之间,则输出“B”; 若分数在[60,79]之间,则输出“C”; 若分数在[0,59]之间,则输出“D”。 分数由用户通过键盘输入