已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
程序设计基础课程设计指导书计算机应用基础课程设计指导书适用专业: 车辆工程、汽车服务工程、热能与动力工程(汽车发动机)、交通运输、交通工程课程代码: 6011339 学时: 2周 学分: 2 编写单位: 交通与汽车工程学院 编 写 人: 审 核 人: 审 批 人: 批准时间: 2011 年 04月 28 日一、课程设计的目的通过本课程设计实践教学所要求达到的目的是:1、 使学生加深理解、验证、巩固课堂教学内容,加深对可视化编程思想的理解,强化Visual Basic对程序流程控制、常用控件的属性、事件、方法的理解和使用;2、 提高学生的编程能力、程序的调试能力,理论联系实际的能力;3、 培养学生综合运用所学知识解决实际问题的能力,发挥学生的想象力和创新能力;4、 提高他们独立思考能力,自学能力和团队协作能力。二、课程设计组织形式1、课堂讲解2、学生上机3、教师指导三、课程设计进行步骤及要点1、指导教师根据编写课程设计指导书;2、指导教师向每位学生下达“课程设计任务书”;3、指导教师课堂讲授要点,学生按照任务书上的要求,查阅相关文献、编制程序、上机调试程序,指导教师在机房现场指导、答疑;4、解答疑问,指导学生撰写“课程设计说明书”;5、学生的计算机程序刻光盘,打印“课程设计说明书”;6、指导教师根据“成绩评定标准”评定课程设计的成绩;7、课程设计资料整理归档。四、课程设计进度安排课程设计学时为2周,安排如下:第1周 星期一 : 发放指导书、给每一位学生下达任务书;第1周 星期二 星期五:教师课堂讲解要点;学生上机编制、调试程序、教师现场指导、答疑;第2周 星期一 星期四:教师课堂讲解要点;学生上机编制、调试程序,教师现场指导、答疑;学生撰写“课程设计说明书”;第2周 星期五:学生修改、完善、打印说明书,程序刻盘,上交课程设计材料。五、推荐参考资料1杨明广.王秀华. Visual Baisc程序设计教程.中国科学技术出版社,2006.11,21世纪教材;2王秀华.余建坤. Visual Baisc程序设计上机和级考实训教程.中国科学技术出版社,2006.11,21世纪教材;4龚沛曾. Visual Baisc程序设计简明教程(第二版).高等教育出版社,20035曾强聪.新编Visual Basic程序设计教程.清华大学出版社,20046刘瑞新.Visual Basic程序设计教程(第二版).电子工业出版社,2003六、其他附录:部分课程设计题目关键算法及代码提示:1. 制作简单动画图1 简单动画新建工程,在窗体上添加两个图片框,名称分别为P1、P2,其中的图片分别是一个航天飞机和一朵云彩,将BorderStyle属性均设置为0。添加一个计时器,名称为Timer1,一个命令按钮,名称为C1,标题为“发射”。要求:(1)设置计时器的相关属性,使其在初始状态下不计时。(2)设置计时器的相关属性,使其每隔0.1秒调用Timer事件过程一次。(3)为相关的事件过程编写代码,使得在运行时单击“发射”按钮,则航天飞机每隔0.1秒向上移动一次(100缇),当到达P2的下方时停止移动。运行效果如图5.5所示。根据上述要求,应在设计时将计时器的Enabled属性设置为False,将Interval属性设置为100毫秒。2. 数制转换制作一个将十进制整数转换为二进制、八进制和十六进制数的程序。十进制整数转换为其他(N)进制数的基本方法是“N除取余,逆排序”,即用N去除十进制整数,取其余数,再用N去除商,取余数,如此反复,直至商为零。将每次所得余数逆序排列,即为要转换的N进制数。在十六进制数中有“A”“F”6个特殊数码,与十进制数1015相对应,为了便于转换,可将“0”“F”16个数码存入一个下界为0,上界为15的静态字符串型数组中。转换时按照数组元素的下标取出对应的字符即可。该数组同样适用于向二进制和八进制的转换。(1)设计界面及设置属性在窗体上放置两个文本框,用于输入十进制数和显示转换结果,名称分别为txtInput和txtResult,将Text属性均设为空。添加一个组合框,将名称改为cboSelect。如图7-1所示,选择该控件属性窗口的List属性,单击右侧的下拉按钮,在弹出的下拉框中输入三项内容:“二进制”、“十进制”和“十六进制”(每项输入完成后按Ctrl+Enter组合键换行);再选择属性窗口的ItemData属性,单击右侧的下拉按钮,在弹出的下拉框中输入三项内容:“2”、“8”和“16”,分别与List属性中各项相对应。再添加两个命令按钮,Caption属性分别为“转换”和“结束”。说明:组合框的ItemData属性是一个长整型数的数组,它的项目数(元素个数)与控件的List属性(本质是字符串数组)的项目数相等。ItemData属性中的各项与List属性中的各项一一对应。在本程序中,当用户选择待转换的数制(如“二进制”)时,可以直接利用ItemData属性中对应的数值进行计算。 (a) 设置List属性 (b) 设置ItemData属性图7-1 设置组合框属性(2)编写代码定义一个模块级的字符串型静态数组Char(15),默认下界为0。在窗体的Form_Load事件中将字符09、AF赋予该数组各元素,以备调用。在组合框的单击事件中,将用户选择的进制通过组合框的ItemData属性获取进制基数存入变量以备计算。在“转换”按钮的单击事件中,通过循环进行“N除取余,逆排序”,将用户输入的十进制数转换为其他进制。在循环中,根据每次所得余数,取Char数组中对应位置的“0F”字符,即转换为特定进制的数码字符。将每次所得数码字符按以下方式存入字符串变量即可实现“逆排序”:字符串变量 = 数码字符 & 字符串变量注意:数码字符应在“&”连接符之前。程序运行效果如图7-2所示。 (a) 十进制转二进制 (b) 十进制转八进制 (c) 十进制转十六进制图7-2 数制转换2. 用单选按钮控件数组设置文本框的字体颜色和背景色创建一个含有16个元素的单选按钮控件数组,代表QBColor函数可返回的16种颜色,用鼠标左键单击其中任一单选按钮,将文本框的字体颜色(即前景色)设置为对应颜色,右键单击时,将文本框的背景色设置为对应颜色。(1)设计界面在窗体上放置一个文本框,一个框架。在框架中添加一个单选按钮Option1,将Option1的Index属性设为0,Style属性设为1-Graphical,Caption属性设为空,BackColor设为黑色,Height和Width均设为270。界面设计如图7-3(a)所示。(2)编写代码在窗体的Form_Load事件中,通过For循环用Load语句添加单选按钮控件数组元素(1)(15),同时调用QBColor函数为新添加的单选按钮设置背景色(QBColor函数的参数值与单选按钮的下标相等),新添加的单选按钮从左向右依次排列。注意将新的控件数组元素设为可见(Visibal=True)。在单选按钮Option1的MouseDown事件中,要用到由系统提供的该事件过程传送的两个参数:Button和Index。Button参数用于判断用户按下的是哪一个鼠标键,Index参数用于判断用户操作的是哪一个单选按钮。根据对这两个参数的判断,即可将选中的单选按钮的背景色赋值给文本框的前景色或背景色。程序设计和运行界面如图7-3所示。 (a) 设计时界面 (b) 运行界面1 (c) 运行界面2图7-3 单选按钮控件数组3. 求数组元素的最大值在窗体上添加一个名称为Text1的文本框控件数组,含四个文本框,初始内容均为空。添加一个命令按钮,名称为Command1,标题为“求最大值”。程序运行后,在四个文本框中各输入一个整数并存入整型数组,然后单击命令按钮,求出数组元素的最大值,并在窗体上显示出来,如图7-4所示。图7-4 求数组元素的最大值程序代码如下:Private Sub Command1_Click() 单击求最大值按钮 Dim i As Integer, M As Integer Dim Ar(3) As Integer For i = 0 To 3 将文本框中的数据存入数组 Ar(i) = Val(Text1(i).Text) Next M = Ar(0) 先假定第一个元素最大 For i = 1 To 3 求最大值 If Ar(i) M Then M = Ar(i) Next Print 最大值是: ; MEnd Sub提示:对上述代码略作修改,即可实现求数组元素的最小值,请读者自行完成。4. 数组元素排序在窗体上添加一个名称为Text1的文本框控件数组,含四个文本框,初始内容均为空。添加一个命令按钮,名称为Command1,标题为“按升序排序”。程序运行后,在四个文本框中各输入一个整数,如图7-5(a)所示,并存入整型数组;然后单击命令按钮,使数组元素按升序排序,并在文本框中显示出来,如图7-5(b)所示。 (a) 排序前 (b) 排序后图7-5 数组元素排序5. 用Select Case语句访问控件数组创建一个如图4-8所示的计数器,程序运行时,若单击“开始计数”按钮,即开始计数,每隔1秒,文本框中的数加1;单击“停止计数”按钮,则停止计数。要求命令按钮为控件数组,并且用Select Case语句访问其中的元素。在窗体上添加一个文本框,名称为Text1,初始内容为0。添加一个名称为C1的命令按钮控件数组,含两个命令按钮,标题分别为“开始计数”和“停止计数”。添加一个计时器,名称为Timer1,将其Enabled属性设置为False,Interval设置为1000。图7-6 计数器6. 统计字母出现次数统计字符串中ABCD各字母出现的次数(不区分大小写)。在窗体上添加两个文本框,名称分别为Text1和Text2,初始内容均为空,MultiLine属性设置为True,ScrollBars属性设置为2。添加两个命令按钮,名称分别为C1和C2,标题分别为“显示”和“统计”。程序运行时,单击“显示”按钮,随机生成字母ABCD(或abcd)和空格,并显示在Text1中;单击“统计”按钮,统计Text1中ABCD各字母出现的次数(不区分大小写),并将结果显示在Text2中。运行结果如图7-7所示。图7-7 统计字母出现次数分析:统计ABCD各字母出现的次数需要建立一个含有4个元素的数组(下界为1),各元素下标+64表示对应字母的ASCII码值,元素的值为字母出现的次数。从字符串中逐一取出字符,转换为大写字母(以便不区分大小写)进行判断,并对数组元素赋值。1. 温标转换编写一个函数过程(Function过程),实现摄氏温标与华氏温标之间的相互转换。两种温标转换的公式如下:华氏温度() = 摄氏温度9/532摄氏温度() = (华氏温度32)5/9(1)设计界面及设置属性在窗体上放置一个文本框Text1,设Text属性为空。添加5个标签,设Label1的Caption属性为空,BorderStyle属性为1-Fixed Single,背景色为白色;设Label2和Label3的Caption属性均为空;设Label4和Label5的Caption属性分别为“输入温度”和“转换温度”。添加两个命令按钮,Caption属性分别为“摄氏华氏”和“华氏摄氏”。(2)编写代码创建一个自定义函数TransTh,用于两种温标的相互转换。该函数含有两个参数(形参),分别为单精度型和逻辑型,用于传送待转换温度和温标类型标志。函数的返回值为字符串型。在函数过程中,根据温标类型标志进行换算,将换算结果用Format函数保留一位小数后返回。在两个命令按钮的单击事件中以文本框中的温度和温标类型标志作为实参调用TransTh函数。若转换类型为摄氏华氏,则设温标类型标志为True,否则为False。调用函数后将返回值显示在Label1中,并根据温标转换类型,将Label2和Label3的Caption属性分别设为“”或“”。此外,在文本框的键盘事件(KeyPress)过程中,需对用户按键进行过滤,若按键非数字键或回删键,则使按键无效。程序运行界面如图8-1所示。 (a) 摄氏华氏 (b) 华氏摄氏图8-1 温标转换程序代码如下:Option ExplicitPrivate Sub cmdCtoF_Click() 摄氏华氏 If Trim$(Text1) = Then Text1 = 0 调用自定义函数 Label1.Caption = TransTh(Val(Text1.Text), True) Label2 = Label3 = End SubPrivate Sub cmdFtoC_Click() 华氏摄氏 If Trim$(Text1) = Then Text1 = 0 调用自定义函数 Label1.Caption = TransTh(Val(Text1.Text), False) Label2 = Label3 = End SubPrivate Sub Form_Load() Label2 = Label3 = End Sub自定义函数:摄氏温标与华氏温标相互转换Private Function TransTh(sngT As Single, blnCtoF As Boolean) As String If blnCtoF Then TransTh = Format(sngT * 9 / 5 + 32, 0.#) 摄氏华氏 Else TransTh = Format(sngT - 32) * 5 / 9, 0.#) 华氏摄氏 End IfEnd FunctionPrivate Sub Text1_KeyPress(KeyAscii As Integer) 文本框键盘事件过程 若按键非数字键或回删键,取消按键 If Not IsNumeric(Chr(KeyAscii) And KeyAscii 8 Then KeyAscii = 0 End IfEnd Sub2. 求多个数的最大公约数编写一个用辗转相除法求两个数的最大公约数的子过程(Sub过程),通过多次调用该子过程,求出多个数(超过两个数)的最大公约数。分析:对多个数的求最大公约数时,先求出前两个数的最大公约数,将所得最大公约数与第三个数求最大公约数,以此类推。在计算过程中,只要出现最大公约数为1,即不必再对后续的其他数求公约数。3. 编制判断某数是否为素数的函数过程编制判断参数n是否为素数的函数过程,名称为IsPrime。函数的返回值类型为逻辑型,如果n是素数,则返回True,否则返回False。利用该函数查找小于某数的最大素数。在窗体上添加一个文本框,名称为Text1;添加一个标签,名称为Label1;添加一个命令按钮,名称为Command1,标题为“计算”。程序运行时,在Text1中输入数字,单击“计算”按钮后,找出小于该数的最大素数,并显示在Label1中。如图8-3所示。图8-3 查找小于某数的最大素数在前面的“实验六 循环结构程序设计”实验中,有一个“找素数”的实验项目,将其中判断素数的程序段独立出来,即可构成判断素数的函数过程。4. 求指定范围的素数之和利用上一项目中编制的判断素数的函数过程,分别求出100200之间和200400之间的素数之和,并显示在文本框中。在窗体上添加两个单选按钮,名称分别为Opt1和Opt2,标题分别为“100-200之间素数”和“200-400之间素数”;一个文本框,名称为Text1;一个命令按钮,名称为Cmd1,标题为“计算”。程序运行后,如果选中一个单选按钮并单击“计算”按钮,则计算出该单选按钮标题所指明范围的所有素数之和,并在文本框中显示出来。如图8-4所示。图8-4 求指定范围的素数之和5. 按指定范围和条件求和编制一个通用过程,名称为DivSum,其功能是求m到n之间能被d整除的数之和。程序运行时在适当的事件过程中调用该通用过程,按指定范围和条件求和。在窗体上添加一个文本框,名称为Text1;添加一个命令按钮,名称为C1,标题为“计算”;添加两个单选按钮,名称分别为Op1、Op2,标题分别为“求500到600之间能被7整除的数之和”、“求500到600之间能被3整除的数之和”(如图8-5所示)。程序运行时,选中一个单选按钮,再单击“计算”按钮,即可按照选定的单选按钮后的文字要求计算,并把计算结果放入文本框中。图8-5 按指定范围和条件求和6. 扩展组合框的功能组合框由单行文本框和列表框组合而成。为了与普通文本框相区别,可将组合框的文本框部分称为“编辑框”。本实验项目要求对组合框的功能进行扩展:当用户在编辑框中输入内容时,自动检索已有的列表项,将相匹配的列表项显示在编辑框中。当用户在编辑框中输入内容并按回车键后,在组合框中添加不重复的列表项。将这两项扩展功能编制成Public自定义过程,放在标准模块(.bas)中,供其他各模块调用。(1)设计界面及设置属性在窗体上放置两个组合框,Combo1的属性采用默认值,设Combo2的Style属性为1-Simple Combo,适当调整其大小。添加四个标签,用于对组合框的样式及其功能作简要注释。(2)编写代码在当前工程中添加一个标准模块(工程添加模块),模块名称自定。在模块中添加两个作用范围为Public的自定义子过程,分别命名为“AutoMatch”和“AddCboItem”,用于实现列表项自动匹配和添加新项目。为了增强代码的通用性,为两个子过程各设置一个组合框对象类型的形参。两个子过程的起始行如下:Public Sub AutoMatch(cboX As ComboBox)Public Sub AddCboItem(cboX As ComboBox)当调用子过程时,用需要执行上述功能的特定组合框的名称作为实参即可。例如:Call AutoMatch(Combo1) 以组合框对象为参数调用自动匹配子过程Call AddCboItem(Combo2) 以组合框对象为参数调用添加项目子过程在列表项自动匹配子过程(AutoMatch)中,将用户已输入的字符与组合框中已有项目逐项进行模糊比较(用Like运算符),若有匹配者,则在编辑框中显示。在添加新项目子过程(AddCboItem)中,将用户已输入的内容与组合框中已有项目逐项进行准确比较(不分大小写,可用UCase或LCase函数转换),若列表中无该项目,则添加到列表中。在窗体的Form_Load事件中,向两个组合框中添加若干项目以便测试。上述两个扩展组合框功能的子过程需要在组合框的不同事件中调用。AutoMatch子过程在组合框的Change事件中调用。为了避免用户按删除键或回删键时也进行自动匹配操作,需要设置一个模块级的逻辑型标志变量,在组合框的KeyDown事件中对用户按键进行判断,若用户按了删除键或回删键,将标志变量设为False,否则为True。在组合框的Change事件中调用AutoMatch子过程之前,先检查该标志变量,若为False,则不调用AutoMatch子过程,即不进行自动匹配处理。AddCboItem子过程在组合框的KeyDown事件中调用。若用户按了回车键,则调用该过程,添加新的列表项。程序运行界面如图8-6所示。 (a) 在下拉式组合框中输入“s” (b) 在简单组合框中输入“计算” (c) 在下拉式组合框中输入“朋友”后按回车键 (d) 在简单组合框中输入“User”后按回车键图8-6 组合框功能扩展7. 编制带有数组参数的函数过程修改前面“实验七 数组”中“求数组元素的最大值”的实验项目,将其中查找数组元素的程序段独立出来,构成函数过程FindMax。本实验项目的界面设计和运行结果与上述实验项目相同。说明:使用数组名和一对空括号可以将整个数组传递给一个过程。数组参数只能用传址方式,参数表中的数组名后仅保留(),省略维数。在过程内可用LBound和UBound函数确定数组上下界。程序代码如下:自定义函数过程 Fi
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 火工品装配工岗前创新实践考核试卷含答案
- 打桩工岗前环保知识考核试卷含答案
- 精准:甲状腺癌靶向护理查房:一例BRAF V600E患者全程管理
- 2025年中国黄苗甘蓝种子市场调查研究报告
- 2025年中国高背扶手椅市场调查研究报告
- 前沿:透明细胞肉瘤靶向教学课件:Pembrolizumab临床应用与研究进展
- 破局:肝癌靶向教学课件:钇90微球疗法
- 2026-2030中国电池储能系统管理单元行业市场发展趋势与前景展望战略分析研究报告
- 吊顶设施日常检修防脱落安全常识
- 钢铁厂物流管理规范
- 浙江鸿盛化工有限公司年产20254吨2,4-二硝基氯苯技改项目项目环境影响报告书
- 新生儿呛奶应急措施
- 2023届广州市天河区五年级数学第二学期期末综合测试试题含解析
- 劳动合同模板
- 自主移动机器人教学课件第4章 导航规划 1 概述及路径规划
- 江西省卫生系列高级专业技术人员工作质量与职业道德评估表
- 无人驾驶汽车 PPT
- YY/T 0996-2015尿液有形成分分析仪(数字成像自动识别)
- GB/T 3956-1997电缆的导体
- GB/T 2-2016紧固件外螺纹零件末端
- FZ/T 01057.8-2012纺织纤维鉴别试验方法第8部分:红外光谱法
评论
0/150
提交评论