1、课程设计 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 功能模块的划
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 熟悉一些常用控件的方法、事件的使用。
3、 l 熟悉顺序文件的读写。 l 熟悉字符串的处理方法。 1.2 程序的基本功能 设计程序,左边列表框中的单词表由读取文件英汉小词典.txt得到,选择某单词后,会在上面的文本框中显示相应的内容,并且在右边显示相应的中文解释。 1.3其它功能 具有搜索、增加、修改、删除等功能。若做过增加、修改、删除,应对英汉词典.txt做相应的修改。 1.4 扩展功能 在文本框中输入单词时,程序会及时地将已输入的字符开头的所有单词显示在列表框中,供用户浏览;优化搜索算法。 2 课题的分析 2.1 Button1查找 输入单词可以找到对应的中文意思 2.2 Button添加 添加词典中没有
4、的英语单词及其中文意思 2.3 Button3修改 修改小词典中错误的单词及其中文意思 2.4 Button4删除 将单词从小词典中删除 3 3模板格式说明 3.1 设计窗体如下: 图1.1设计窗体 3.2 功能模块的划分 搜索:在程序中输入单词,可搜索到此单词的中文意思。 添加:向小词典中增添没有的单词。 修改:修改所选中的单词。 删除:删除所选中的单词。 3.3 各控件的属性 控件 名称 属性 属性值 备注 Button1 搜索 click Forecolor:black Backcolor: White Font:宋体,9pt
5、 用于搜索英文单词中文意思 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:宋体,9p
6、t, 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
7、Button1 用于当在textbox1中输入一个单词时,Listbox1中该单词所在的位置能被选中,同时在Listbox2中能够显示单词的中文解释 图1.2搜索 Button2 用于向列表框中添加单词 图1.3添加 Button3 用于修改列表框中的单词 图1.4修改 Button4 用于删除列表框中选定的单词 图1.5删除 3.4.2主要功能模块流程图 Button1搜索: 单击搜索 读取输入textbox1的单词 判断输入内容是否为空 是 否 提示textbox1重新输入 用循环结构在数组中寻找该元素 判断是否存在 Msgbox
8、无此单词) 在listbox1显示英文 在listbox2显示中文 不存在 存在 Button2添加: 单击添加 读取inputbox1的单词 判断是否为空 请重新输入 读取inputbox1的内容 是 否 判断是否为空 请重新输入 将单词添加到listbox1中 是 否 用循环结构判断该单词是否已经存在 判断是否存在textbox1.text=Word(i,0) 信息提示已存在 信息提示添加成功 是 否 在listbox1选择删除单词单词 Button3修改: 在listbox1选择修改单词 修改单词 判断单词
9、是否为空 提示单词不能为空 修改汉语意思 是 否 判断汉语意思是否为空 将修改过的单词和意思替换原单词和意思 信息提示内容不能为空 是 否 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
10、 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
11、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
12、 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 = Text
13、Box1.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.Clic
14、k 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()
15、 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 = Input
16、Box("请输入想要添加的单词", "添加一个新的单词") '用Inputbox函数进行输入 If s = "" Then MsgBox("单词不能为空,请输入单词", 5, "输入单词") Do While MsgBox("单词不能为空,请输入单词", 5, "输入单词") = MsgBoxResult.Retry s = InputBox("请输入想要添加的单词", "单词添加") Loop End If i = I
17、nputBox("请输入中文意思!", "单词添加") If i = "" Then MsgBox("中文解释不能为空,请输入中文翻译", 5, "输入中文") Do While MsgBox("中文解释不能为空,请输入中文翻译", 5, "输入中文") = MsgBoxResult.Retry s = InputBox("请输入中文意思!", "单词添加") Loop If s = a(l) Then M
18、sgBox("单词已存在") 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
19、 '从项目最后往上移,腾出位置 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
20、) 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
21、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
22、 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)
23、 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 B
24、utton4_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("确认删除
25、吗?", 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
26、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)
27、 '重新定义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)
28、 '将删除的单词及中文解释从txt文本中剔除 PrintLine(1, a(i) & " " & b(i)) Next FileClose(1) End Sub End Class 4 课程设计总结: 4.1 完成情况 课程设计结束时,所设计程序基本完成,实现了课程设计所要求的基本功能,通过此次实践我们掌握了VB 2005的基本操作,提高了我们面向对象程序设计的综合设计能力,达到了预期的目的。 4.2 遇到的问题及解决 编写程序时,部分语句掌握不流畅,程序运行时出现错误。经过上网
29、查询相关资料以及询问老师后将问题解决。 5 (附录)参考文献 李春葆,金晶,曾平.VB.NET2005程序设计教程. 北京:清华大学出版社,2009 龚沛曾.Visual Basic.NET程序设计教程.高等教育出版社,2010 孙践知.Visual Basic.NET程序设计.清华大学出版社,2010 孙秀梅、巩建华、 等.Visual Basic开发实战1200例.清华大学出版社; (2011年1月1日) ◆◆ 评论读取中.... 上海应用技术学院课程设计任务书 课程名称 程序设计基础VB.net课程设计 课程代码 B704009 设计题目
30、 英汉小词典 题目序号 3 设计时间 20——20 系(院) 专业 班级 一、课程设计任务(条件)、具体技术参数(指标) 1.所需知识点: (1)文本文件读写 (2)字符串处理 (3)数组使用 (4)列表框和组合框控件的使用 2.功能要求: 基本要求:设计如图所示的程序界面,左边列表框中的单词表由读取文件英汉词典.txt得到,选择某单词后,会在上面的文本框中显示相应的内容,并且在右边显示相应的中文解释。具有搜索、增加、修改、删除等功能。若做过增加、修改、删除,应对英汉词典.txt做相应的修改。详情参考样例文件。 拓展要求:在文本框中输入单词时,程序
31、会及时地将已输入的字符开头的所有单词显示在列表框中,供用户浏览;优化搜索算法。 二、对课程设计成果的要求(课程设计报告内容) 1. 用简练、清晰的语言描述课程设计题目的要求和功能。 2. 程序整体结构(模块划分)以及各模块的功能描述。 3. 主要模块的算法(用流程图描述)。 4. 在各模块中,说明使用的变量名及其用途。 5. 程序的界面、交互方式和操作方法的说明。 6. 报告内容完整、层次清晰,绘制图表规范正确。 7. 报告需要交电子版和打印版,源程序交电子版。 三、课程设计工作进度: 天数 工作进度安排 1 选择课题、熟悉和理解课题、分析课题的要求。 2 进行课题功能设计 3-5 编写程序 6-7 调试、修改程序 8-9 课程设计报告撰写 10 提交报告、演示程序并答辩。 四、主要参考资料 龚沛曾.Visual Basic.NET程序设计教程.高等教育出版社,2010 孙践知.Visual Basic.NET程序设计.清华大学出版社,2010 指导教师(签名): 教研室主任(签名): 年 月 日 年 月 日






