




已阅读5页,还剩12页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
计算机程序设计基础(VB)实验指导书主编:刘华伟单位:信息工程学院实验一 VB6.0环境和程序设计初步一、实验目的1学会使用VB开发环境。2学会建立、编辑、运行一个简单的VB应用程序的全过程。3掌握变量的概念及使用。4通过程序实践结合课堂例子,理解类、对象的概念,掌握属性、事件、方法的应用。5学会如何用断点调试程序二、实验内容:1熟悉VB开发环境的标题栏、菜单栏、工具栏、窗体窗口、属性窗口、工程资源管理器窗口、代码窗口、立即窗口、窗体布局窗口、工具箱窗口的位置以及用法。2编写一个四则运算的功能,在界面上输入两个数,并设置加减乘除四个按钮,点击不同的按钮,显示不同的运算结果。步骤:(1)建立用户界面的对象。(2)对象属性的设置。(3)对象事件过程及编程。(4)保存和运行程序。3自己编写一个小程序,使用断点技术来测试程序运行过程中的某一瞬间,某变量的值。步骤:(1) 在某一个事件过程中编写一个5-10行的简单程序。(2) 在测试行的左端打上断点。(3) 运行程序,程序中断时将鼠标放在测试变量上。实验二 选择结构程序设计一、 实验目的1 掌握逻辑表达式的正确书写形式。2 掌握单分支与双分支语句的使用。3 掌握多分支条件语句的使用。4 掌握情况语句的使用与多分支条件语句的区别。二、 实验内容1 P307实验三的3.1,3.2,3.3,界面按自己思路设计。 其中实验3.1要求用两种方法实现。2 在界面上输入4个数,求最大值和最小值并显示,要求用两种方法实现。提示:先编写求最大值的程序,然后再编写求最小值的程序。实验三 循环和数组一、实验目的1理解循环结构的思想2学会用for语句编写程序3掌握数组的概念、用法4学会用for循环语句与数组结合来解决问题二、实验内容(1)课本101页第9题前两小题(2)求1-2+3-4+5-6+99-100(3)在界面上设计5个文本框,输入5个数并存入一数组中,通过for语句求出最大值,最小值以及和数,并在另外的几个文本框中显示出来.实验四 简单算法设计一、实验目的1巩固循环以及数组的知识2学习多重循环二、实验内容1验证歌德巴赫猜想:任意一个充分大的偶数,都可以分解成两个质数的和。编一个程序,界面上有三个文本框,在一个文本框中输入一个任意大的偶数,点击按钮后,在另两个文本框中显示出分解的两个质数。当输入的数小于5或者不是偶数时,用msgbox提示出错信息。(要注意存盘,输入的数据如果特别大,可能造成死机)。步骤:(1)先参照课本例题编写一个如何判断一个数是否是素数的小程序(2)用双重循环来实现数的分割。2用数组结合自定义类型实现以下功能:首先从界面上依次输入一些(不超过5个)学生的姓名和成绩信息,每输入一个学生信息,点击一下“下一个”按钮,输入5个学生后,依次自动显示出5个学生信息,然后在同一个窗体上设置查询功能,使得能够通过输入学生的姓名进行查询(设置姓名文本框以及查询按钮),若该姓名与曾经输入的某个学生的姓名相同,则在窗体的左上角显示出该学生姓名以及成绩,如果不同,则给出相应提示信息,如果输入的学生信息超过5个,给出出错信息。步骤:(1)定义一个存放学生信息的数组。(2)每次输入一个学生信息,都将其信息存入数组中。(3)每次输入一个学生信息,都要判断是否已经是第5个学生,如果是,就显示数组中所有学生信息,如果超过5,则给出出错信息。(4)输入需要查询的学生信息后,将其姓名与数组中存放的所有学生的信息进行比较,若存在相同,则显示出所有信息,若不存在相同的,显示相应提示信息。实验五 过程一、实验目的1掌握自定义函数过程和自过程的定义和调用方法。2掌握形参和实参的对应关系。3掌握变量、函数和过程的作用域。二、实验内容1求出1-50的所有素数,并依次显示在窗体的左上角,要求定义一个判断一个数是否为素数的函数,通过调用函数的方式来逐一求得。步骤:(1)定义一个判断一个数是否为素数的函数,首先确定参数的个数,类型,意义,然后确定返回值的类型。(2)通过循环的方法,将1-50的每个数都作为函数的参数调用一次,如果判断结果为真,则显示,若为假,则不显示。2在三个文本框上输入不等整数x,y,z,排列一下使得结果为xyz,并将结果依次显示在窗体的左上角。要求定义一个交换两个数的子过程,通过调用子过程的方式来求解。步骤:(1)复习课本83页例4.4,吃透思想。(2)程序中三处用到交换两个数的功能,因此将此功能定义成子过程。(3)在程序中将每一处交换两个数的地方都换成子过程调用的形式。实验六 常用控件和普通菜单设计一、实验目的1掌握单选钮、复选框、框架等控件的基本用法。2掌握菜单设计技术。二、实验内容1做一个简易考试系统,包括两道单选题,一道多选题(4个选项,正确答案为其中三个选项),一道填空题,要求所有的题目做在一个窗体界面上,题目及答案自定。评分标准为:单选题每题20分,多选题40分(错选不得分,漏选:选中一个得10分,选中两个得20分),填空题20分,满分100分,共4道题,点击提交按钮,用msgbox函数显示总成绩以及每题的得分情况。步骤:先设计一个单选题,调试成功了再设计一个单选题,在调试成功了设计多选题,单选题主要考虑如何用框架分组,多选题主要考虑实现按照评分标准判分,最后设计分数的显示功能。2设计一个三级菜单,每一级别并列项数不少于两项。实验七 项目实践-五子棋软件设计一、实验目的1通过五子棋软件设计或者自拟题目设计,巩固本课程所学的各个章节重点知识。2通过开发一个较大的系统,增强软件开发能力。3通过调试系统,增强逻辑思维能力。二、实验内容1基本要求:(1)输入两个对手名字,然后进入游戏界面。(2)用鼠标点击的方式在棋盘上摆放棋子,黑白交替。(棋盘15*15)(3)可以悔棋。(4)五子连在一起的时候能判断胜利,并且显示出胜利者的名字。(5)能够将棋局的结果保存,保存该棋局结束的状态、对手名字、 棋局名字(棋局名字在保存时由用户在相应的界面下添入)(此功能要求用数据库和文件两种技术实现)。(6)棋局能够恢复,即重新打开,打开后出现棋局结束的状态、对手名字(此功能要求用数据库和文件两种技术实现)。2其它要求:(1)界面友好、漂亮。(2)程序尽可能无bug。(3)程序健壮性强,基本上达到无论用户如何操作,软件都不出错,都有相应的处理方法。3设计步骤(1)首先做界面界面包括几个窗体,窗体上有相应的控件。因为需要画棋盘,所以必须有图形容器,这里用picturebox框第一个窗体是登陆界面,因为玩家姓名需要在程序中不断变换,因此需要将玩家名定义成两个变量,又因为这两个变量在几个窗体中都用到,所以在模块中定义为全局变量当五子棋主界面启动之后,首先系统要自动绘制棋盘。思路:用直线绘制棋盘-直线是由点绘制的-每个点都有坐标-改变坐标系为用户坐标系用户坐标系的定义要在窗体启动时实现。(2)坐标系的两个顶点坐标的确定?考虑到五子棋15*15,确定棋盘坐标系顶点为(-8, 8),(8, -8)(3)棋子的绘制与存储棋子的绘制用实心圆模式,颜色为黑色及白色两种。棋子在内存中的存储方式:因为表示各个棋子的数据类型都相同,所以考虑用数组存储,因为棋盘是二维的,因此棋子用二维数组a存储。a(i,j)表示用户坐标(i,j)的棋子状态,0表示此处无棋子,1表示此处为黑子,2表示此处为白子,下棋初始时,棋盘所有位置的初始状态都为0(4)下棋子的步骤鼠标点击棋盘交叉点附近的位置,系统应实现自动识别鼠标点击位置附近的交叉点解决方法:坐标系的变换已经将棋盘交叉点坐标整数化,因此系统所需要实现的功能即是将鼠标所点击的位置坐标化为整数即可,例如将(6.2, -5.3)变成(6, -5)。在交叉点上交替下黑白棋子。解决方法:定义一个逻辑数据类型变量blackwhite,该变量的值为真时下黑子,为假时下白子,每下一个棋子,该变量的值都要取反(NOT)。(5)判断赢棋每次下子时都必须进行赢棋判断,判断的依据是5个子按照横线、竖线或斜线连成一行。解决方法:2层循环。当有一方胜利时,棋局结束,此时在棋盘上继续点击,将不再下棋。解决方法:设置一个逻辑变量wuziqi,其值为真时说明棋局没有结束,可以在棋盘上放棋子,该值为假时,说明该棋局结束,不能放棋子。(6)五子棋保存棋局思路:保存棋局的功能即把内存中与棋局相关的数据(棋局名称、棋子位置、棋子颜色、棋局状态(即棋局是否结束)存入外存中,以便以后能够恢复棋局。保存的实现用两种技术实现:文件和数据库。采用数据库技术实现棋局保存:数据库设计:数据表字段:棋局名、x坐标、y坐标、该点状态值、下棋状态。每条记录表示棋盘上一个存储的点的信息。 要实现用数据库保存数据,就必须使程序连接到数据库上,这里用的是data控件,通过在程序中对data控件属性的设置来连接数据库、数据表。首先判断如果输入的棋局名和当前记录的棋局名相等,说明表中有输入棋局名对应的棋局信息,将其删除,判断过程是将用户输入的棋局名(字符串)从记录集(即表)的棋局字段顶端至下逐一比较在表的最后,也就是最后一条记录后加上新保存棋局的各条记录因为棋盘上空点居多,大部分点的信息为0,因此只需保存有棋子的点的信息用文件技术进行棋局保存,思路相同。(7)五子棋恢复棋局思路:首先从数据库文件中找到要恢复棋局的数据(即曾经保存的数据),然后把这些数据赋值给内存中相应的数组或者变量中,按照这些数据重新绘制棋盘和棋子,即完成了对棋局的恢复。窗体启动事件应该完成的事情:组合框中应该显示曾经保存的棋局名。因为每次保存棋局时,都是将棋局所有棋子的记录添加在表的最后,因此表中关于棋局名的记录只能是类似于aaabbbbccccc的形式,而不可能是abbcacc的形式,根据这个特点编程序取出表中不同的棋局名。具体算法:用一个字符串变量strfile初始值为空,从表的顶端向下依次移动记录指针,如果当前记录的棋局名字段和strfile不相等,说明进入另一个棋局的记录中,将该棋局记录的棋局名赋值给strfile,并加入到组合框中,一直到表中最后一个记录因为要从数据库中取出相关数据到a数组中,因此要将a数组所有数据清零。要建立一个data控件,与数据库连接起来,而后识别棋局(即表中的棋局名字段与在列表框中选择的棋局名比较),将数据库该棋局中所有信息都赋值给a数组及相关变量。刚才仅仅是数据的恢复,即将数据库中已经保存过的数据恢复到内存中,下一步应该根据内存中的数据重新绘制棋盘以及棋子。重新绘制棋盘是独立的一块功能,因此考虑用全局子过程来实现,该子过程定义在模块中。思路如下:清屏绘制棋盘根据a数组中的每一项的两个下标来决定绘制棋子的位置,根据每一项的值是1还是2来决定在该位置绘制何颜色的棋子。决定该黑白方走的blackwhite变量当时没有保存,可以采用在数据库中保存的方式来解决,本例中解决方法是通过数黑白棋子个数来决定恢复棋局
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2030中国动物疫苗市场免疫程序优化与营销策略报告
- 2025-2030中国功能性啤酒开发前景及健康宣称与法规合规评估报告
- 自然博物馆承包经营合同书5篇
- 2025安徽淮南高新区部分学校引进紧缺专业人才招聘39人模拟试卷及答案详解(历年真题)
- 2025年智能制造的能耗优化研究
- 2025年浙江大学医学院附属第二医院招聘医师助理人员若干人模拟试卷及答案详解(名师系列)
- 2025河南新乡市辉县市大成高级中学招聘考前自测高频考点模拟试题及一套答案详解
- 湖南襄阳南漳县招聘事业单位工作人员考试真题2024
- 2025年中国海峡人才市场将乐工作部见习生招聘2人考前自测高频考点模拟试题及答案详解(考点梳理)
- 2025北京化工大学化办公室(中心)招聘1人考前自测高频考点模拟试题及答案详解(有一套)
- 2025年中国声卡市场现状分析及前景预测报告
- 新人教版七年级上数学第一单元测试卷及答案
- 《职场压力管理》课件
- 公众号文章培训:提升写作技巧与个人风格
- 民航SMS安全管理体系
- 厨房设备采购合同模板
- 《劳动教育》 课件 专题二 夯实劳动技能 第一节 勤学生活技能
- 《水浒传》人物专题系列-鲁智深
- 一、福建长乐南阳陈氏族谱阜房分谱目录
- Unit-4-History-and-Traditions-B卷综合能力提升练(解析版)
- 《保护患者隐私》课件
评论
0/150
提交评论