《面向对象程序设计》
实习报告
院系:管理学院
班级:物流管理1001-1002班
姓名:王力1012030129
董安勇1002030229
王超峰1002030231
高嘉乐1002030152
齐明伟1002030228
黄朝霞1002030221
候倘娟1002030220 实习时间:2011.12.26-2012.1.5
一、实习目的
1.了解系统的集成环境、系统的菜单、工具栏、命令窗口、对话框;掌握主窗口、工具栏和命令窗口的使用方法;掌握项目的创建、打开、使用和关闭方法;熟悉常用工具的操作。
2.掌握创建数据库、数据表的方法;掌握数据表记录的操作命令;熟悉菜单和命令的使用。
3.了解基本命令的使用方法;掌握常用函数、表达式的使用方法,掌握程序控制结构的使用和程序设计,掌握变量的作用范围和自定义函数的使用。
4.了解应用程序界面的设计;掌握表单设计器及表单属性、方法和事件;掌握表单容器、控件之间的引用关系;掌握控件的事件程序的编写方法;熟悉表单属性的设置和修改。
5.熟练掌握常用算法程序、常用统计程序、数据排序方法、简单数据加密和解密程序、矩阵基本操作程序的编写、调试和使用。
6.了解菜单设计器创建和使用菜单的方法;掌握菜单的创建和修改方法,掌握快捷菜单的创建方法,掌握创建表单菜单的方法;熟悉有关菜单的基本内容。
二、实验内容
实验一基本算法练习
1.求素数
概念:素数是一个大于2且只能被1和本身整除的数。
基本算法:对于一个数,若不能被2,3,……m1/2整除,则该数为素数。
实验:编写程序求1000以内的所有素数,用编辑框显示,运行效果
如图
2.计算最大公约数和最小公倍数
任给两个正整数m和n,计算它们的最大公约数和最小公倍数。
基本算法:r = m Mod n,若r>0,则将n赋值给m,则将r赋值给n,继续计算,直到r=0。
实验:任意输入两个正整数m和n,计算它们的最大公约数和最小公倍数
3.对任意偶数进行素数分解
编写程序验证100-200之间的所有偶数都能够分解为两个素数之和,并在编辑框中输入结果。
运行效果如图
4.穷举法
穷举法(枚举发):将可能出现的情况逐一进行测试,判断是否满足条件。
编写程序解决百钱买百鸡问题:公鸡5元/只,母鸡3元/只,小鸡一元买3只,用100元买100只鸡,问有哪些购买方案?
实验三常用统计练习
1.成绩统计
利用文本框作为数据的输入和输出,输入数学、语文、英语3门课程的成绩,然后计算它们的总成绩、平均成绩,并根据平均成绩计算其等级。
运行效果如图。
2.字符统计
分类统计是经常遇到的问题,是将一批数据按分类条件统计每一类中包含的个数。
例如:将学生的成绩按优秀、良好、中等、及格、不及格五等统计各等级的人数;职工工资按职称进行统计;统计一篇英文中各个字母的个数等。
实验:任意输入一段字符,统计输入字符中各个字母、各数字、空格、
其它字符的个数。
3.大量输入数据的处理
用文本框只能输入少量的数据,当用编辑框输入大量数据时,如何将数据分离出来,这是解决实际问题经常碰到的问题。
编写程序:用编辑框输入一系列的数据,对输入的数据进行自动识别(非数据不允许录入);将输入的数据分离出来存放在数组中,再将数组中的数据显示在其它编辑框中。
实验四常用排序方法
1.选择法排序
选择法排序是最为简单且易理解的算法,其基本思想是每次将最小(或最大)的数找出来放在序列的最前面。
假设按递增法将有n个数的数组A(1To n)进行排列,步骤为:
(1)假定最小值Temp,将Temp与A(2)进行比较,若A(2)<A(1),则令Temp= A(2),直到比较到A(n),这样Temp中就存放了A(1)~A(n)中的最小数,将Temp所指向的元素与A(1)进行交换,从而将A(1)~A(n)中的最小数存放在数组的第1个位置。
(2)对除第1个数外的其余n-1个数再按步骤(1)的方法选出次小的数,与第2个数交换位置。
(3)依次类推,经过n-1遍后构成递增序列。
若要按递减次序排列,只要每次选最大的数即可。
编写程序:随机产生10个两位数,用选择法进行递增排序。
2.冒泡法排序
冒泡排序是常用的一种排序方法。
假设n个元素按递增的顺序排序
第一轮:从数组的第一项开始,每一项(i)都与下一项(i+1)进行比较。
如果下一项的值较小,就将这两项的位置交换,直到最后第n-1与第n项进行比较,将最小的数排列在最前。
第二轮:从数组的第二项开始,每一项都与下一项进行比较。
如果下一项的值较小,就将这两项的位置交换,直到最后,将次最小的数排列在第二项。
以此类推,直到n-1项与第n项进行比较交换,完成递增法排序。
3.二维数组排序
二维数组排序方法是:先将二维数组的元素放到一维数组中,用上述的方法将一维数组排序,排序后再将一维数组转化为二维数组。
实验:随机产生一个4*5 的二维数组,按升序排列。
4.从有序数组中删除一个元素
操作方法:首先要找到要删除的元素位置k,然后从K+1到n个位置开始向前移动,最后将数组元素减少1。
示例:已知有序数组N(10)=(1,4,7,10,13,16,19,22,25),将值为
13 的元素删除。
实验五加密解密与数制转换
1.数据加密与解密
简单数据加密解密的实现方法是:将字母和数字采用后移N位来实现。
编写程序:根据输入的后移位数,将输入的字符进行加密和解密。
2.数制转换
输入任意进制(二进制、八进制、十进制、十六进制)数,然后按要求将其转换成其他进制的数。
实验六矩阵的基本运算
随机产生数组A(4,4),数组元素为10-99之间的两位数;随机产
生数组B(4,4),数组元素为100-999之间的三位数;按下列要求对矩阵进行操作。
1)对A、B矩阵进行求和运算;
2)对A、B矩阵进行乘积运算;
3)对A、B矩阵进行转置运算;
4)在A、B矩阵乘积运算中,找出最大素数及所在行、列位置;
5)显示矩阵A的上三角形,显示矩阵B的下三角形;
6)将矩阵A的第1行和第3行互换,矩阵B的第1列和第3列互换;
7)显示矩阵A的主、副对角线上的元素,并求出这些元素的和。
界面设计及运行效果如图
三、实习总结
经过两周的实习,我们对VB的综合运用能力有所提高,对于各种控件的用法、功能及属性有了深刻的认识和了解,把课堂上学的东西用到了实践中,扩展和增加了我的VB知识和数据库知识。
在操作的过程中,无论是VB的界面设计、程序代码的编写,VB与数据库的连接来实现数据的管理,都从懵懵懂懂逐渐一步一步熟悉,许多没掌
握的知识也有所消化,很多没注意的细节也有所掌握。
通过对界面窗体的设置了解到平常以为很简单的操作,控件的属性也有很大的学问,很多的属性以前上机练习的时候都忽视了,通过对属性的设置,对界面的设计使我们体验到了极大的乐趣;查找资料的过程也是一个自主学习的过程,培养了我们自主学习的意识。
特别是整个实习过程,许多不懂、不会的知识点,通过查阅资料、询问同学和老师都有所理解,学到了更多的知识。
整个实习,是我们受益匪浅。
然而,实习中还存在许多问题没有解决。
首先,对VB的程序代码编写不熟,因此程序的运行并没有到达预期所设想的效果,还有许多小知识点没有很好的掌握。
其次,在对数据库和VB的链接这也存在问题,运用向导还可以,而综合运用进行查询这不理解,也不会实际操作。
最后,就是动感图形、图片的应用。
由于平时学习动手能力太差,很多知识都没有很好掌握,在运用的过程中存在很多问题。
总而言之,这次试验让我学到很多,看到自己设计出来的学生选课系统,虽然不是很好,但这是我们第一次做系统程序,很有成就感,也很开心。
在以后的学习中,应该把这种实习的方法也融合进去,达到学以致用的效果,以提升实际操作能力。
实习过程中,老师应该多加强指导,以达到更好的实习效果。