电子书.doc

上传人:wj 文档编号:4701235 上传时间:2023-05-07 格式:DOC 页数:11 大小:188KB
下载 相关 举报
电子书.doc_第1页
第1页 / 共11页
电子书.doc_第2页
第2页 / 共11页
电子书.doc_第3页
第3页 / 共11页
电子书.doc_第4页
第4页 / 共11页
电子书.doc_第5页
第5页 / 共11页
电子书.doc_第6页
第6页 / 共11页
电子书.doc_第7页
第7页 / 共11页
电子书.doc_第8页
第8页 / 共11页
电子书.doc_第9页
第9页 / 共11页
电子书.doc_第10页
第10页 / 共11页
电子书.doc_第11页
第11页 / 共11页
亲,该文档总共11页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

电子书.doc

《电子书.doc》由会员分享,可在线阅读,更多相关《电子书.doc(11页珍藏版)》请在冰点文库上搜索。

电子书.doc

华东交通大学

课程设计

学号__20110110010527_

班级_____土木五班___

姓名__

指导教师_____熊李艳___

2012年6月18

目录

一、标题

二、需求分析 4

三、设计分析 4

四、关键技术 6

五、总结 6

六、完整的源程序 16

七、参考文献 20

课程设计(论文)任务书

土木建筑 学院  土木工程 专业 五 班   

一、课程设计(论文)题目  电子书  

二、课程设计(论文)工作自2012年6月10日起至12年6月14日止。

三、课程设计(论文)地点:

计算中心

四、课程设计(论文)内容要求:

1.本课程设计的目的

(1)使学生掌握系统各功能模块的基本工作原理;

(2)培养学生掌握程序设计的基本思路和方法;

(3)使学生掌握程序调试方法;

(4)培养学生分析、解决问题的能力;

(5)提高学生的论文写作能力。

2.课程设计的任务及要求

1)基本要求:

(1)分析系统各功能模块;

(2)选用合适的控件及算法;

(3)提出系统的设计方案;

(4)对所设计程序进行调试。

一、需求分析

1、设计电子书这个软件牵涉的知识点:

1、读文本文件2、字符串处理3、通用对话框的使用4、动态数组的使用

2、题目介绍

本题目要求编制一个“电子书”应用程序,该程序可以打开指定格式的文件,显示文本中保存的文本内容,并以一种方便的形式供使用者阅读。

3、⑴需要一个控件去连接磁盘,读取本地的文本文件。

⑵用户界面友好,功能明确,操作方便;可以增加其它功能或修饰

⑶快速准确找到电子书所在位置,确定路径。

⑷户界面中的菜单(或命令按钮)至少应包括“打开”、“上一个文本”、“下一个文本”、“退出”4项

⑸文本格式包括.txt和.cnt两种。

二.设计分析

这个软件一共需要三个控件,一个是LABELL,记录文件在哪里;一个是text1,用来显示文本,第三个控件是用来显示注释与译文。

“计算器”界面如图1所示的。

程序启动后,“目录”、“内容”和“注释与题解”中均为空(不显示任何内容),除了“打开”按钮之外,其他按钮均无效。

单击“打开”按钮,显示如图2(图2是在Windows7环境下截取的,若在WindowsXP环境下,截图会稍有不同,但都是“打开”对话框)所示的“打开”对话框,此对话框只显示扩展名为“.cnt”的电子书目录文件名。

从“打开”对话框中选择一个目录文件(如“唐诗五十首.cnt”),单击“打开”按钮后,程序打开此目录文件和与其同名但扩展名为“.txt”的正文文件,显示电子书的目录与内容。

图1

图2

(2)打开诗词文件之后(见图1),“目录”列表中显示电子书中目录,单击其中一条,“内容”框和“注释与题解”框中分别显示此篇文章的正文和注释、点评等内容。

(3)只要有电子书打开,所有的按钮就都可以使用了。

单击和,程序显示目录中前一篇或后一篇的内容。

如果当前显示的是第一篇文章的内容,则无效,如果显示的是最后一篇文章的内容,则按钮无效。

(4)打开新的电子书文件后,旧的文件自动关闭。

也可以单击按钮关闭当前电子书,这样就可以回到启动状态。

(5)在打开电子书时,如果程序在目录文件的同一文件夹中找不到相应的正文文件(例如,有“唐诗五十首.cnt”文件而没有“唐诗五十首.txt”文件),则显示图3所示的消息框。

三、关键技术

(1)、本题提供了“唐诗五十首”、“李白诗”、“杜甫诗”和“古代笑话”等4个电子书文件供大家调试程序使用。

也可以按规定格式自制诗词文件由本程序显示并阅读。

(2)、一个电子书由两个文件保存,二者的主文件名相同,扩展名分别为“.cnt”和“.txt”。

例如唐诗五十首是由“唐诗五十首.cnt”和“唐诗五十首.txt”共同定义的,二者均为文本文件且必须位于同一文件夹中。

前者为目录文件,其中每一行是诗词的题目(如图4所示)。

后者为正文文件,保存诗词的正文和注释、评点等内容。

同一个电子书的目录文件和正文文件的内容和顺序相互对应。

图4

(3)正文文件中保存了电子书的详细内容。

如图5所示,存储格式为:

*

正文1

*

正文1的注释、题解、点评等内容

*

正文2

*

正文2的注释、题解、点评等内容

*

……

*

正文n

*

正文n的注释、题解、点评等内容

*

在正文文件中,每篇文章的内容总是由一个星号“*”引导,且正文之后注释之前也有一个星号“*”隔开,整个文件的最后还有一个星号“*”。

可见,如果一个电子书中有n篇位置,则其中会有2*n+1个星号“*”。

图5

应注意的是,一个星号“*”不一定单独占一行,如图5所示。

所以,正确地判断星号的位置是正确显示电子书内容的关键。

(4)用“通用公共对话框”控件来显示“打开”对话框。

四、总结

四、总结

通过一周对VB课程设计,使我对VB程序设计的过程有了一个更加深入的了解,在原有知识的基础上得到了进一步的提高,对一些控件的运用能够更加熟练。

在VB编程语言中比较重要的编程语句有了更加深刻的记忆。

在同学的指导与帮助以及自己的努力下终于完成了我的课设题目:

电子书.

虽然在设计编程中遇到了一些问题与困难,但都以图书馆查资料或者请教同学的方式解决了,编程中充分认识到自己对于VB个控件使用熟练程度上和编程速度上的欠缺,同时对于增进了对DriveListBox、DirListBoxLABELLh和TEXT控件的掌握程度。

同时我也了解了VB的出现是一场技术革命,它在生活中各个方面都能发挥巨大的作用,虽然我的专业不是学计算机,但通过对vb的学习,很好的锻炼了我的思考能力和仔细程度。

五、完整源代码

PublicstrNameAsString'公共变量strName用于记录文件路径

PrivateSubCmdUpM_Click()

IfList1.Text=""ThenExitSub'若List1.Text为空字符则退出

Text1.Text=""'将两文本框设为空字符

Text2.Text=""

List1.ListIndex=List1.ListIndex-1'选种条目号减一

IfList1.ListIndex<0ThenList1.ListIndex=List1.ListCount-1'条目处于第一个时循坏到最后一个

EndSub

PrivateSubCmdDownM_Click()

Dimint1AsInteger'中间变量

Text1.Text=""

Text2.Text=""'将两文本框设为空字符

IfList1.Text=""

ThenExitSub'若List1.Text为空字符则退出

int1=List1.ListIndex'赋值

int1=int1+1'变量加一

Ifint1>List1.ListCount-1

Thenint1=0'条目处于最后一个时循坏到第一个

List1.ListIndex=int1'再赋值给List1.ListIndex激发List1_Click事件

EndSub

PrivateSubCmdOpen_Click()

DimstrLAsString'用于读取目录

CommonDialog1.Filter="目录文件(*.cnt)|*.cnt"'设定文件类型

CommonDialog1.ShowOpen'显示对话框

IfCommonDialog1.FileName=""

ThenExitSub'若按取消键则退出

List1.Clear'列表框清空

Text1.Text=""

Text2.Text=""'将两文本框设为空字符

Form1.Caption=Mid(CommonDialog1.FileName,1,Len(CommonDialog1.FileName)-4)

'使用Mid()函数改变窗体名称

strName=Mid(CommonDialog1.FileName,1,Len(CommonDialog1.FileName)-3)+"txt"'使用Mid()函数将cnt文件改变为txt文件并作为字符串赋给strName

OpenCommonDialog1.FileNameForInputAs#1'打开目录文件

DoWhileNotEOF

(1)'读写条目

LineInput#1,strL

List1.AddItemstrL

Loop

Close#1'关闭文件1

List1.ListIndex=0'开始时选中条目一激发Click事件

EndSub

PrivateSubList1_Click()

Dimbln1AsBoolean'由于判断两种*无注释*语句

Dimstr1AsString'用于读文件

Dimstr2AsString'用于读"*【注释】"语句时将【注释】读出而不带*

DimiAsInteger'用于记录*号数

Text1.Text=""'将两文本框设为空字符

Text2.Text=""

OpenstrNameForInputAs#2'读文本文件

DoWhileNotEOF

(2)'读写内容及注释

LineInput#2,str1'下面If语句用于记录*号数

Ifstr1="*"

Then'*单独一行

i=i+1

ElseIfstr1="*【注释】"

Then'*【注释】样式

i=i+1

ElseIfstr1="*(无注释)*"Orstr1="*(无注释)*"

Then'*(无注释)*样式

bln1=True

i=i+2

EndIf

'下面If语句用来写文件

Ifi=List1.ListIndex*2+1

Then'每一诗词开始前的*号数

Ifstr1="*"Orstr1="*(无注释)*"Orstr1="*(无注释)*"

Then

Text1.Text=""'开始读诗时将Text1.Text清空

Else

Text1.Text=Text1.Text+str1+Chr(13)+Chr(10)

'向Text1中增加诗词内容每加一句使用Chr()函数换行

EndIf

ElseIfi=List1.ListIndex*2+2Andstr1="*【注释】"

Then'*【注释】样式

str2=Mid(str1,2,Len(str1)-1)'将【注释】读出而不带*

Text2.Text=Text2.Text+str2+Chr(13)+Chr(10)'向Text2中增加文本内容"【注释】"

ElseIfi=List1.ListIndex*2+2Andstr1<>"*【注释】"

Then'*【注释】样式

Text2.Text=Text2.Text+str1+Chr(13)+Chr(10)

'向Text2中增加*【注释】行之后的注释语句

ElseIfbln1Then'开始对两种*无注释*语句进行判断

Ifi=List1.ListIndex*2+3Andstr1="*(无注释)*"

Then'*(无注释)*样式

Text2.Text=Mid(str1,2,Len(str1)-2)

ElseIfi=List1.ListIndex*2+3Andstr1="*(无注释)*"

Then'*(无注释)*样式

Text2.Text=Mid(str1,2,Len(str1)-2)

EndIf

EndIf

LoopClose#2'关闭文件2

EndSub

六、参考文献

《VisualBasic程序设计教程》《大学计算机基础》

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2