




已阅读5页,还剩13页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计基础课程设计交通与汽车工程学院课程设计说明书课 程 名 称: 程序设计基础课程设计 课 程 代 码: 8234580 题 目: 数组元素的基本处理 年级/专业/班: 08 车辆工程 汽车电子 学 生 姓 名: 卢汉 学 号: 332008030606004 开 始 时 间: 2011 年 5 月 30 日完 成 时 间: 2011 年 6 月 11 日课程设计成绩:学习态度及平时成绩(30)技术水平与实际能力(20)创新(5)说明书(计算书、图纸、分析报告)撰写质量(45)总 分(100)指导教师签名: 年 月 日目 录 摘要21 引言32 方案设计42.1数组元素处理方案设计42.1.1系统功能描述42.1.2系统结构分析42.1.3系统流程分析42.2程序界面和代码设计62.2.1系统工程设计框架62.2.2系统各界面设计及代码设计63 结果分析 10结论 15致谢 16参考文献 17摘 要随着计算机的普及,计算机高级语言已经运用到生活中的各个方面,本次课程设计使用VB语言作为开发工具,进行了数组元素的基本处理的程序设计,该程序能实现数组元素的基本处理功能,进行数组产生、排序、插入、删除、保存等操作,计算结果简便明了,运行界面清晰实用,操作方便,易于实际处理。关键词: 数组 处理 1 引 言 随着科学技术的发展,计算机已经应用到生活、工作的各个方面。VB一种可视化的、面向对象和采用事件驱动方式的高级程序设计语言,可用于开发Windows环境下的各类应用程序。本次课程设计主要内容就是使用VB编制简单、实用的小程序,以巩固我们所学的计算机VB语言知识,提高分析问题和解决问题的能力,锻炼我们独立动手的能力。1.1 问题的提出 对数组的操作是学习计算机语言的重点,课本上没有一个程序对数组的操作包含了所有的内容。因而在经过一段时间的学习要提高对数组学习和认识时,就要把对数组的操作进行对比,掌握对数组的操作,查阅课本很不方便,课本上的程序散乱,这样造成我们时间浪费,效率低,不便于我们抓注重点。为了提高我们学习的效率,方便学习所以,有必要设计素组元素操作系统。1.2任务与分析1.2.1设计题目数组元素的基本处理1.2.2主要内容 设计一常用算法程序,实现数组元素的产生、排序、插入、删除、保存等操作。1.2.3具体要求设计合理的用户界面,编制程序,实现如下功能:1、产生N个随机正整数(运行时N由用户输入),显示,并保存;2、对产生的数据排序后,显示,并保存;3、删除一个数,如果此数据在数组中存在,则删除,显示删除后的结果;如没有,显示“没有找到,无法删除!” ,并保存;实现多次删除,不能越界;4、插入一个数,显示插入后的结果,并保存;实现多次插入超载,不能越界;5、使用按钮时,要考虑到按钮之间的联动,比如在没有产生数之前,单击排序是没有意义的,没有排序之前,插入是没有意义的,等等;6、用菜单操作实现上述功能。2设计方案 首先根据题目要求设计合理界面,确定哪些控件会用到,要考虑到操作的方便性和美观性。再按题目的功能要求编写对象的事件代码,并其逐一进行调试和修改。 2.1程序功能设计 2.1.1系统功能描述 根据设计要求,程序要达到的功能如下: (1)、输入一个数产生随机数; (2)、对这组数进行排序保存; (3)、能实现对数组删除等操作; (4)、对数组进行排序等操作。2.1.2系统结构分析根据上面对系统功能的描述,构建出系统的总体功能结构图,如图1所示数组元素的基本处理产生随机数对数组进行排序操作对数组进行删除操作对数组进行插入数操作图12.1.3系统流程分析本系统运行后从进入以下界面。程序的主要工作流程图如图2所示。 开始排序删除插入结束图2 系统主要工作流程图2.2程序界面和代码设计 2.2.1系统工程设计框架在设计程序之前,应先布局整个工程。本系统可设立一个工程文件,取名为工程1.VBP,1个窗体文件,如图3所示:图3工程内容2.2.2 系统各界面设计根据功能,在本系统中设计了1个窗体。(1)系统主界面系统主界面的功能是是对数组进行删除,排序,插入等操作系统主界面如图4所示图4 主界面主要代码如下:Dim a() As IntegerDim n As IntegerPrivate Sub Form_load() Text1.Text = Text2.Text = Text3.Text = Text4.Text = Text5.Text = In1.Enabled = False Em1.Enabled = False Order1.Enabled = False Save.Enabled = FalseEnd SubPrivate Sub Gen1_Click()Dim j As Integer, temp As Integer n = Val(Text1.Text) ReDim a(n) For i = 1 To n a(i) = Int(Rnd() * 32768 + 1) Text5.Text = Text5.Text + Str(a(i) Next i Save.Enabled = True Order1.Enabled = True In1.Enabled = False Em1.Enabled = FalseEnd SubPrivate Sub OrderA11_Click(Index As Integer) For i = LBound(a) To UBound(a) - 1 For j = i + 1 To UBound(a) If a(i) a(j) Then temp = a(i) a(i) = a(j) a(j) = temp End If Next j Next i For i = 1 To n Text2.Text = Text2.Text + Str(a(i) Next i Em1.Enabled = True In1.Enabled = TrueEnd SubPrivate Sub OrderD11_Click(Index As Integer) For i = LBound(a) + 1 To UBound(a) - 1 For j = i + 1 To UBound(a) If a(i) a(j) Then temp = a(i) a(i) = a(j) a(j) = temp End If Next j Next i For i = 1 To n Text2.Text = Text2.Text + Str(a(i) Next i In1.Enabled = True Em1.Enabled = TrueEnd SubPrivate Sub In1_Click()Text4.Text = S = Val(InputBox(请输入要插入的数据) ReDim Preserve a(n + 1) If a(1) a(2) Then For i = 1 To n If S a(n) Then a(n + 1) = S End If If a(1) a(2) Then For i = 1 To n If S a(i) Then For j = n To i Step -1 a(j + 1) = a(j) Next j a(i) = S Exit For End If Next i If S a(n) Then a(n + 1) = S End If End If For i = 1 To n + 1 Text4.Text = Text4.Text + Str(a(i) Next iEnd SubPrivate Sub Em1_Click() Text3.Text = S = Val(InputBox(请输入要删除的数据) ReDim Preserve a(n) f = False For i = 1 To n If S = a(i) Then f = True For j = i + 1 To n a(j - 1) = a(j) Next j End If Next i If f = True Then For i = 1 To n - 1 Text3.Text = Text3.Text + Str(a(i) Next i Else MsgBox 没有找到,无法删除 End IfEnd SubPrivate Sub Exit_Click() EndEnd SubPrivate Sub Save_Click() Open App.Path + data1.dat For Output As #1 For i = 1 To n Write #1, a(i) Next i Close #1End Sub3 结果分析 输入一个数,结果见图5所示。图5输入数据单击“产生原始数据”按钮,运行结果见图6示。图6查询成绩 单击“排序”按钮,运行结果见图7示。单击“升序”按钮,运行结果见图7.1示。 图7.1单击“降序”按钮,运行结果见图7.2示。图7.2单击“删除数据”按钮,运行结果见图8示。 图8删除数据单击“插入数据”按钮,运行结果见图9示。 图9插入数据通过运行程序,本次课程设计大体达到了预期要求,但也存在着一些不足,删除后再插入后不正确,在后面多出现了末尾的那个一个数,多次修改,结果把程序越改越错,怎么找也没有找到,鉴于时间紧急,未加仔细考虑,反而使时间浪费很多,设想可以增加一个过程,判断当前的数组个数是否为与输入数个数相等,如果小于则显示少显一位,如果大于等于则全部显示,其中要用到指针来读取数组,然后判断数组个数,在VB中没有提供指针,无法运用数组指针来实现这一功能,所以用C语言可以实现程序的功能。虽然做了保存的菜单选项,但保存的结果很是不直观,它是把数据保存在文档之中,不能直接看到他保存的状态,没有看到数据被保存生成的过程,我们只能看到保存的结果,所以看结果时还要去看目录文件下的文件。这次VB课程设计的界面不太美观,应该把删除和插入放在一个菜单下,分别作为子菜单。显示结果时觉把删除和插入放在一个文本框中显示就够了。结 论本次课程设计使用动态数组,实现随机产生一组数,排序,添加,删除等功能。其中用到了随机文件的读写,数组的定义与操作,常用控件的使用(列表框,文本框,单选按扭等)等等。通过本次课程设计,巩固了VB语言知识,提高了综合运用所学知识解决实际问题的能力。虽然程序中存在诸多的问题,比如,删除后再插入有些问题,在后面多了一个数,是末尾的那个数,希望在以后的学习中不断探索,不断学习,扎实掌握VB,掌握面向对象的程序设计语言,计算机的设计语言实质大多都一样,只是其表象存在一定的差别,但是程序设计的思想在各种语言中是完全相同的,因为程序设计思想是人所创造的,必然体现的人的逻辑思维过程,比如循环,选择,排序,调用子程序等在每一种程序设计的语言中都相同,在这次课程设计中积累的一些方法,比如对程序调试,以前在用汇编时还不太熟悉和应用,通过这次课程设计终于领会了一些,但还是不够,只是比学习C语言时要好些,那时还不知调试,只会运行程序,看结果。这次又重新复习了基本的程序设计方法,这对我学习求其它语言是个很好的基础和发展,特别是我以前没有接触过面向对象的程序设语言,通过学习VB打下一定的基础,在以后的学习程序语言更快。这次也犯了很多的错误,但都逐步克服,错误的积累也是一种经验的积累,对以后的学习和工作大有好处。希望在在这次课程设计中积累的这些宝贵的经验对于以后的学习和工作能发挥它的作用。 致 谢 在本次课程设计中,我得到了很多人的帮助。尤其特别感谢杨桃,在我最困难的时候,程序无法运行正确时候,帮我仔细调试程序-谢谢您! 当然这次最应该感谢的是滕老师,如不是她的高超的教学艺术和思想,我绝不可能很快的进入VB的门,并把Vb大概的掌握,这次课程设计没有她,根本无法做,因为我以前只学过C语言和汇编语言,面向对象的语言没有接触过,所以最初学习时很是不太理解,但滕老师的指导下和点拨下,我跌跌撞撞的把课程设计完成了,滕老师对我的课程设计来说是居功至伟,再次深深的感谢滕老师。还有李涛,没有你们的鼎力支持,我不可能顺利的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025私人汽车租赁合同范本范本
- 会议培训定点合同范本
- 简单蔬菜购销合同范本
- 家庭存储出租合同范本
- 水饺虾仁采购合同范本
- 编写村志合同范本
- 回收厂区废料合同范本
- 酒店拆墙合同范本
- 协议购房合同范本
- 保函转让合同范本
- 医院培训课件:《主动脉夹层的护理》
- 2024版《皮肌炎的临床表现》课件
- 2024年广东湛江廉江市部分机关(镇街道)单位招聘政府雇员11人易考易错模拟试题(共500题)试卷后附参考答案
- 醉里乾坤大壶中日月长-初中语文九年级第六单元名著导读《水浒传》整本书阅读精读研讨课 公开课一等奖创新教学设计
- DB13(J)-T 8580-2024 双面彩钢板复合风管技术规程
- 第一章 有理数 大单元教学设计-2024-2025学年七年级数学上册(人教版2024)
- AQ 2029-2010 金属非金属地下矿山主排水系统安全检验规范(正式版)
- JGJ153-2016 体育场馆照明设计及检测标准
- 小学小升初数学试卷(基础题)
- 2024年交管12123学法减分考试题库和答案
- 黄瓜栽培技术及病虫害防治
评论
0/150
提交评论