电子书.doc
《电子书.doc》由会员分享,可在线阅读,更多相关《电子书.doc(11页珍藏版)》请在冰豆网上搜索。
华东交通大学
课程设计
学号__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="*(无注释)*"Or