- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
河北工业大学计算机软件技术基础(VB)
课 程 设 计 任 务 书
本题难度级别:A 实现基本要求代码: 约200行 主要涉及: 控件、文件及算法
一、设计题目:开卷有益(出题人:曹新国)
本题目适合使用Android系统手机且安装了“开卷有益”软件看电子书的同学。完成本题需要较高的VB水平,涉及到文件读写、动态数组、控件数组、算法、字符串处理和图片等。
二、目的与要求1.目的培养学生综合利用语言进行程序设计的能力,主要是。基本要求。
支持背景选取,可以设置成GIF图片图案而非单一色彩,当背景图片小于显示窗口时,必须使用平铺功能以充满窗口。支持文字显示特性的设置(字体诸属性及前景色彩)。
可以随时停止滚动和继续滚动(用空格键)。3.创新要求在基本要求达到后,进行创新设计,、设计方法和基本原理
问题描述问题的解决方案Form_Load()
作一些初始化的工作。主要是设置初始滚动速度。
Sub Form_Resize()
窗体大小改变。调整平铺背景的大小和标签数目的多少,及按新宽度重新排版。
Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
处理各种快捷键,包括:空格键(键码32),上、下翻页键(33和34)小键盘加号和减号键(107、109),还有Home和End键(vbKeyHome、vbKeyEnd)。
说明:处理键盘按键时建议使用VB的常量定义,如vbKeyA,vbKeyF1等,见MSDN。
Sub CommandX_Click(Index As Integer)
处理各个命令。含打开文件,扫描章节,保存目录,加载目录,背景选择,字体指定,开始滚屏和退出,如果有创新部分,相应增加模块即可。
Sub Timer1_Timer()
定时器事件,让文本按一定的速度自动滚屏。移出顶部后要重新安排到最下面。
Function isChapter(ByVal s As String) As Boolean
判断是否是章节开始行,即该行是不是类似“第****章 *****”式样。
Sub List1_Click()
点击了章节列表,将指定章节装入数组中,按开始阅读后即可填充到标签上显示。
四、问题的描述文件件部分的内容课上没有讲过或者讲的不够细,此处给出将文本文件的内容读入内存中的字符串数组的示例代码(假设已经用通用对话框控件取得文件名并放入一个名为infile的字符串变量中):
当然,本题目是分章阅读,不能直接套用上述代码,在读入前需要先将文件指针定位到某章开始的位置,这可以用Seek语句来进行。具体位置通过章节扫描得到,并且保存到了数组中甚至文件中。
一旦数组中有了某章节的内容,将其内容按段分解成行后赋给标签的Caption属性,就可以显示出来了。在设计的时候只放一个下标为0的标签,运行时根据需要产生其它的标签。
自动滚屏可以在TIMER事件中更改各个标签的Top属性来做到。
按钮的自动消失和显现可以使用其Visible属性来控制。如果按钮比较多,可以将其放置在一个图片框中,然后控制图片框的Visible属性来达到同时消失或复现的目的。
2.动态标签数组的产生
因为文件可能比较大,不应该设置和文件中文本行数一样多的标签,标签的个数应该以窗口能容纳的标签个数确定,为了确保不出现空白(也不能浪费标签),可以用下式计算需要产生的标签个数。单个标签的高度会依字体设置自动变化,需要动态调整。
需要使用的标签个数 = (窗口有效高度 \ 单行字标签的高度) + 1
例如窗口的有效高度(Me.ScaleHeight,不包括标题栏和窗口边界)为200,单行标签的高度为30,则新产生7个标签即可,在显示的过程中反复利用这8个标签进行移动,完全移出顶部的标签再放到最下面(应该在窗口底部之下)并换上新的内容,然后再次随上面的标签一起移动。标签要设置AutoSize为True,但是Word要设置为False,这样才能确保使用固定数目的标签,方便滚屏处理。在改变窗口大小或者设置字体后均需调整标签数量。
3.文字字体和文字色彩的设置
这个问题就比较简单了,在设计时放一个“通用对话框控件”,利用其“显示打开文件对话框”功能ShowOpen来取得文本文件名,利用其ShowFont功能来进行字体字号等字体属性和前景色的设置。设置完字体后要重新计算需要的标签数量及重新填充显示内容。
4.如何平铺图片背景?
利用公共对话框的打开文件功能进行图片背景文件的选取。选择图片背景文件后,使用LoadPicture函数将其加载到Form的Picture属性中,然后使用PaintPicture方法平铺,因为提供的GIF是64x64大小,需要用循环将其平铺至整个窗口。
5.章节回目如何提取?
读入文件的
文档评论(0)