资源描述
课程设计
20 ~ 20学年第二学期
设计题目 计算机语言程序设计课程设计-英汉小词典
目录
20 ~ 20学年第二学期 1
1 概述 3
1.1 程学设计目的 3
1.2 程序的基本功能 3
1.3其它功能 3
1.4 扩展功能 3
2 课题的分析 4
2.1 Button1查找 4
2.2 Button添加 4
2.3 Button3修改 4
2.4 Button4删除 4
3 3模板格式说明 5
3.1 设计窗体如下: 5
3.2 功能模块的划分 5
3.3 各控件的属性 5
3.4 功能模块的说明(主要流程和代码) 6
4 课程设计总结: 14
4.1 完成情况 14
4.2 遇到的问题及解决 14
5 (附录)参考文献 15
1 概述
1.1 程学设计目的
本次题目的设计的操作与实践是为了使学生了解使用VB 2005程序设计方法,实现面向对象程序设计的相关理论知识和设计技巧,在一定程度上提高面向对象程序设计的综合设计能力,具体掌握的基本能力有以下几方面:
l 了解一个英汉小词典开发的全过程。
l 熟悉一些常用控件的使用,例如文件列表、标签、文本框、按钮、列表框等。
l 熟悉一些常用控件的方法、事件的使用。
l 熟悉顺序文件的读写。
l 熟悉字符串的处理方法。
1.2 程序的基本功能
设计程序,左边列表框中的单词表由读取文件英汉小词典.txt得到,选择某单词后,会在上面的文本框中显示相应的内容,并且在右边显示相应的中文解释。
1.3其它功能
具有搜索、增加、修改、删除等功能。若做过增加、修改、删除,应对英汉词典.txt做相应的修改。
1.4 扩展功能
在文本框中输入单词时,程序会及时地将已输入的字符开头的所有单词显示在列表框中,供用户浏览;优化搜索算法。
2 课题的分析
2.1 Button1查找
输入单词可以找到对应的中文意思
2.2 Button添加
添加词典中没有的英语单词及其中文意思
2.3 Button3修改
修改小词典中错误的单词及其中文意思
2.4 Button4删除
将单词从小词典中删除
3 3模板格式说明
3.1 设计窗体如下:
图1.1设计窗体
3.2 功能模块的划分
搜索:在程序中输入单词,可搜索到此单词的中文意思。
添加:向小词典中增添没有的单词。
修改:修改所选中的单词。
删除:删除所选中的单词。
3.3 各控件的属性
控件
名称
属性
属性值
备注
Button1
搜索
click
Forecolor:black
Backcolor: White
Font:宋体,9pt,
用于搜索英文单词中文意思
Button2
添加
click
Forecolor: black
Backcolor: White
Font: 宋体,9pt,
用于添加英文单词及中文意思
Button3
修改
click
Forecolor: black
Backcolor: White
Font: 宋体,9pt,,
修改单词及其中文意思
Button4
删除
click
Forecolor: black
Backcolor: White
Font: 宋体,9pt,
删除单词及其中文意思
Form1
英汉小词典
load
Font:宋体,9pt,
Lable1
请输入对应的单词
Backcolor: White
Forecolor: black
Boredstyle: Fixed3D
Font: 宋体,9pt,
Textbox1
TextChanged
Backcolor: White
输入单词
Listbox1
SelectedIndex
Changed
click
Borderstyle :fixed3D
Backcolor: White
Forecolor: WindowText
显示小词典中单词内容
3.4 功能模块的说明(主要流程和代码)
3.4.1
Button1 用于当在textbox1中输入一个单词时,Listbox1中该单词所在的位置能被选中,同时在Listbox2中能够显示单词的中文解释
图1.2搜索
Button2 用于向列表框中添加单词
图1.3添加
Button3 用于修改列表框中的单词
图1.4修改
Button4 用于删除列表框中选定的单词
图1.5删除
3.4.2主要功能模块流程图
Button1搜索:
单击搜索
读取输入textbox1的单词
判断输入内容是否为空
是
否
提示textbox1重新输入
用循环结构在数组中寻找该元素
判断是否存在
Msgbox(无此单词)
在listbox1显示英文
在listbox2显示中文
不存在
存在
Button2添加:
单击添加
读取inputbox1的单词
判断是否为空
请重新输入
读取inputbox1的内容
是
否
判断是否为空
请重新输入
将单词添加到listbox1中
是
否
用循环结构判断该单词是否已经存在
判断是否存在textbox1.text=Word(i,0)
信息提示已存在
信息提示添加成功
是
否
在listbox1选择删除单词单词
Button3修改:
在listbox1选择修改单词
修改单词
判断单词是否为空
提示单词不能为空
修改汉语意思
是
否
判断汉语意思是否为空
将修改过的单词和意思替换原单词和意思
信息提示内容不能为空
是
否
Button4删除:
确定要删除吗
是
否
结束程序
删除成功
3.4.3程序代码:
Public Class Form1
Dim a(), b() As String
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim c(1) As String
Dim i As Integer
FileOpen(1, "英汉小词典.txt", OpenMode.Input) '利用Fileopen()函数打开文件")
Do While Not EOF(1)
c = Split(LineInput(1), " ") '对文本内容利用Split函数按空格分离,放到数组中,并在Listbox中显示
ListBox1.Items.Add(c(0)) '向列表框中添加项目
ListBox2.Items.Add(c(1))
Loop
ReDim b(ListBox2.Items.Count - 1) '重新定义数组b()
For i = 0 To ListBox2.Items.Count - 1
b(i) = ListBox2.Items(i)
Next
ReDim a(ListBox1.Items.Count - 1) '重新定义数组a()
For i = 0 To ListBox1.Items.Count - 1
a(i) = ListBox1.Items(i)
Next
ListBox2.Items.Clear() '清空列表框中的项目
FileClose(1)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a, b As String '定义字符串变量
a = TextBox1.Text
b = Not ListBox1.Items.Contains(a)
If TextBox1.Text = "" Then
MessageBox.Show("不能输入空字符,请重新输入")
End If
ListBox1.Text = a
End Sub
Private Sub ListBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ListBox1.Click
TextBox1.Text = ListBox1.Items(ListBox1.SelectedIndex) '选中Listbox1中的内容,该内容在Textbox1中显示
End Sub
Private Sub ListBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox1.SelectedIndexChanged
ListBox2.Items.Clear()
ListBox2.Items.Add(b(ListBox1.SelectedIndex)) '在Listbox2中显示Listbox1中选中的英
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim s, i As String '定义字符串变过量及整形变量
Dim l, m, n As Integer
s = InputBox("请输入想要添加的单词", "添加一个新的单词") '用Inputbox函数进行输入
If s = "" Then
MsgBox("单词不能为空,请输入单词", 5, "输入单词")
Do While MsgBox("单词不能为空,请输入单词", 5, "输入单词") = MsgBoxResult.Retry
s = InputBox("请输入想要添加的单词", "单词添加")
Loop
End If
i = InputBox("请输入中文意思!", "单词添加")
If i = "" Then
MsgBox("中文解释不能为空,请输入中文翻译", 5, "输入中文")
Do While MsgBox("中文解释不能为空,请输入中文翻译", 5, "输入中文") = MsgBoxResult.Retry
s = InputBox("请输入中文意思!", "单词添加")
Loop
If s = a(l) Then
MsgBox("单词已存在")
End If
End If
m = UBound(a) '添加单词,并将单词及其中文解释分别添加在Listbox1和Listbox2中
For l = 0 To m
If s < a(l) Then Exit For
Next l
ReDim Preserve a(m + 1) '重新定义a()数组,显示添加后数组
For n = m To l Step -1 '从项目最后往上移,腾出位置
a(n + 1) = a(n)
Next
a(l) = s
ReDim Preserve b(m + 1) '重新定义b()数组,显示添加后数组
For n = m To l Step -1
b(n + 1) = b(n)
Next
b(l) = i
ListBox1.Items.Clear()
For n = 0 To UBound(a)
ListBox1.Items.Add(a(n))
Next
FileOpen(1, "英汉小词典.txt", OpenMode.Output)
For n = 0 To UBound(b)
PrintLine(1, a(n) & " " & b(n)) '将添加的单词及中文解释添加到txt文本中显示
Next
FileClose(1)
MessageBox.Show("添加成功")
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Dim m, n As String
Dim j As Integer
If -1 = ListBox1.SelectedIndex Then
MsgBox("请选择单词再进行修改")
ListBox1.Focus()
Exit Sub
End If
m = InputBox("请修改单词", "修改单词", a(ListBox1.SelectedIndex))
n = InputBox("请输入修改单词的中文解释", "修改单词", b(ListBox1.SelectedIndex))
a(ListBox1.SelectedIndex) = m
b(ListBox1.SelectedIndex) = n
ListBox1.Items.Clear()
For j = 0 To UBound(b)
ListBox1.Items.Add(b(j))
Next
MsgBox("修改成功", , "修改")
FileOpen(1, "英汉小词典.txt", OpenMode.Output)
For j = 0 To UBound(b)
PrintLine(1, a(j) & " " & b(j)) '将修改后的单词及中文解释在txt中重新显示
Next
FileClose(1)
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Dim x, i, h As Integer
Dim m As String
If ListBox1.SelectedIndex = -1 Then '未选中ListBox1中的任一项
MsgBox("请先选择单词") : Exit Sub
Else
MsgBox("确认删除吗?", 1)
If MsgBox("确认删除吗?", 1) = MsgBoxResult.Ok Then
m = a(ListBox1.SelectedIndex)
h = UBound(a) '从数组中删除数据
For x = 0 To h
If m = a(x) Then Exit For
Next x
For i = x + 1 To h
a(i - 1) = a(i)
Next
h = h - 1
ReDim Preserve a(h)
End If
For i = x + 1 To h
b(i - 1) = b(i)
Next
h = h - 1
ReDim Preserve b(h) '重新定义a()数组,显示删除后数组
ListBox1.Items.Clear()
For i = 0 To UBound(a)
ListBox1.Items.Add(a(i))
Next
MsgBox("删除成功", , "删除")
End If
FileOpen(1, "英汉小词典.txt", OpenMode.Output)
For i = 0 To UBound(b) '将删除的单词及中文解释从txt文本中剔除
PrintLine(1, a(i) & " " & b(i))
Next
FileClose(1)
End Sub
End Class
4 课程设计总结:
4.1 完成情况
课程设计结束时,所设计程序基本完成,实现了课程设计所要求的基本功能,通过此次实践我们掌握了VB 2005的基本操作,提高了我们面向对象程序设计的综合设计能力,达到了预期的目的。
4.2 遇到的问题及解决
编写程序时,部分语句掌握不流畅,程序运行时出现错误。经过上网查询相关资料以及询问老师后将问题解决。
5 (附录)参考文献
李春葆,金晶,曾平.VB.NET2005程序设计教程. 北京:清华大学出版社,2009
龚沛曾.Visual Basic.NET程序设计教程.高等教育出版社,2010
孙践知.Visual Basic.NET程序设计.清华大学出版社,2010
孙秀梅、巩建华、 等.Visual Basic开发实战1200例.清华大学出版社; (2011年1月1日)
◆◆
评论读取中....
上海应用技术学院课程设计任务书
课程名称
程序设计基础VB.net课程设计
课程代码
B704009
设计题目
英汉小词典
题目序号
3
设计时间
20——20
系(院)
专业
班级
一、课程设计任务(条件)、具体技术参数(指标)
1.所需知识点:
(1)文本文件读写
(2)字符串处理
(3)数组使用
(4)列表框和组合框控件的使用
2.功能要求:
基本要求:设计如图所示的程序界面,左边列表框中的单词表由读取文件英汉词典.txt得到,选择某单词后,会在上面的文本框中显示相应的内容,并且在右边显示相应的中文解释。具有搜索、增加、修改、删除等功能。若做过增加、修改、删除,应对英汉词典.txt做相应的修改。详情参考样例文件。
拓展要求:在文本框中输入单词时,程序会及时地将已输入的字符开头的所有单词显示在列表框中,供用户浏览;优化搜索算法。
二、对课程设计成果的要求(课程设计报告内容)
1. 用简练、清晰的语言描述课程设计题目的要求和功能。
2. 程序整体结构(模块划分)以及各模块的功能描述。
3. 主要模块的算法(用流程图描述)。
4. 在各模块中,说明使用的变量名及其用途。
5. 程序的界面、交互方式和操作方法的说明。
6. 报告内容完整、层次清晰,绘制图表规范正确。
7. 报告需要交电子版和打印版,源程序交电子版。
三、课程设计工作进度:
天数
工作进度安排
1
选择课题、熟悉和理解课题、分析课题的要求。
2
进行课题功能设计
3-5
编写程序
6-7
调试、修改程序
8-9
课程设计报告撰写
10
提交报告、演示程序并答辩。
四、主要参考资料
龚沛曾.Visual Basic.NET程序设计教程.高等教育出版社,2010
孙践知.Visual Basic.NET程序设计.清华大学出版社,2010
指导教师(签名): 教研室主任(签名):
年 月 日 年 月 日
展开阅读全文