面向对象实习报告2022
实习题目一
1.三个自定义类
本题有三个自定义的类:点类VecPosition,圆类circle,矩形类Rect,运用类的继承思想从这三个类中抽象出公共基类base。其中base中有一个纯虚函数virtual void draw()=0; VecPosition类主要实现各个运算符的点的构造,运算符的重载,求两点距离,判断一个点是否在给定其他几个点的范围内,以及与向量有关的几何运算。
Circle类主要实现圆对象的构造,圆的相关参数设置,求取圆的周长函数(doubleCircle::getCircumference())、面积函数(double Circle::getArea()),判断一个点是否在圆内bool Circle::isInside(VecPosition pos),求两个圆交点函数 int Circle::getIntersectionPoints(Circle c,VecPosition *p1,VecPosition *p2)返回加点个数。求两个圆的相交面积double Circle::getIntersectionArea(Circle c)。
矩形由左上点坐标和右下点坐标确定。包括矩形的构造,参数的设置修改,求矩形的面积,周长,以及判断一个点是否在矩形内。
2.可视化界面
建立单文档工程,添加画图菜单,如下图:
三个菜单项分别画点,画线,画矩形。
在view.h中添加如下变量:CPoint类的 m_oldpt,m_pt用于记录画图的起点坐标和终点坐标。Circle m_circle,Rect m_rect,用于构造圆和矩形。afx_msg void
OnLButtonDown(UINT nFlags, CPoint point)是响应鼠标按下的消息,并将当前坐标传给m_oldPoint。
用switch分支控制画图种类,在view类中加入变量i,添加三个菜单消息响应函数,对i进行赋值;
当点击菜单项“点”时,i=0;
当点击菜单项“圆” 时,i=1;
当点击菜单项“矩形”时,i=2;
在view中添加void C实º习一View::OnLButtonUp(UINT nFlags, CPoint point)用来响应鼠标左键弹起消息。三种图形的绘制在该函数中完成。具体绘图代码如下:
void C实习一View::OnLButtonUp(UINT nFlags, CPoint point) { CString str=\"\",str1=\"\"; // TODO: 在此添加消息处|理程序代码和或调用默认值
VecPosition pt1,pt2; Circle cir1; Rect Rect1;
pt1.setVecPosition(m_pt.x,m_pt.y); pt2.setVecPosition(point.x,point.y);
面向对象程序设计课程设计
CClientDC pDC(this);///////客户区绘图对象
CBrush*poidBrush=CBrush::FromHandle((HBRUSH)GetStockObject(NULL_BRUSH));//设置透明画刷,以免绘制的图形之间相互覆盖
/*CBrush*poidBrush=*/pDC.SelectObject(poidBrush);//将画刷选入设备环境
switch(i) { case 0://///////////////////点和圆关系
str=\"该点的坐标为\\r\\n\";
str1.Format(\"%s\",pt1.str().c_str()); str+=str1;
if(m_ncir!=0 && m_nrect!=0)
{
{
if(m_circle.isInside(pt1))
str+=\"\\r\\n点在圆的内部?\";
else
str+=\"\\r\\n点不在圆的内部?\";
}
{
if(m_rect.isInside(pt1))
str+=\"\\r\\n点在矩形的内部\";
else
str+=\"\\r\\n点不在矩形的内部\";
}
}
else if(m_ncir!=0 && m_nrect==0)
{ if(m_circle.isInside(pt1))
str+=\"\\r\\n点在圆的内部\";
else
str+=\"\\r\\n点不在圆的内部\";
}
else if(m_ncir==0 && m_nrect>0)
{ if(m_rect.isInside(pt1))
str+=\"\\r\\n点在矩形的内部\";
else
str+=\"\\r\\n点不在矩形的内部\";
}
MeageBox(str,\"显示:\");
- 12
面向对象程序设计课程设计
str=str+str1+\"\\r\\n\";
double d=cir1.getIntersectionArea(m_circle);////相交面积
str1=\"两圆的相交面积为:\\r\\n\";
str+=str1;
str1.Format(\"%f\",d);
str+=str1;
MeageBox(str);
}
else
{
}
}
m_ncir++;//记录圆的个数
MeageBox(str);
break;
case 2:////////////////////矩形
pDC.Rectangle(CRect(m_pt,point));
VecPosition p3,p4;
p3.setVecPosition(m_pt.x,m_pt.y);
p4.setVecPosition(point.x,point.y);
m_rect.setPosLeftTop(p3);
m_rect.setPosRightBottom(p4);
double area=m_rect.getArea();
double Circumference=m_rect.getCircumference();
CString str1,str2,str3,str4,str5,str6,str7,str8;
str1=\"左上角坐标:\\r\\n\";
str2.Format(\"%s\",pt1.str().c_str());
str3=\"\\r\\n右下角坐标:\\r\\n\";
str4.Format(\"%s\",pt2.str().c_str());
str5=\"\\r\\n矩形周长:\\r\\n\";
str6.Format(\"%f\",Circumference);
str7=\"\\r\\n矩形面积:\\r\\n\";
str8.Format(\"%f\",area);
MeageBox(str1+str2+str3+str4+str5+str6+str7+str8,\"显示:\");
m_nrect++;
break;
} CView::OnLButtonUp(nFlags, point);
- 34
面向对象程序设计课程设计
- 56
面向对象程序设计课程设计
3.算法设计
给对话框添加Read函数,用于将文件中的数据读到数组中。在读文件是由于一行一行读取时不知道每一行的字节长度,所以用了CFile类的派生类CStdioFile,该类的ReadString能够读取一行,遇到换行符即停止。在字符串的分割时候也遇到了一些问题,找资料后得以解决。str.Left(str.Find(\"\\t\"))以空格为界读取左侧内容。str=str.Mid(str.Find(\"\\t\")); str=str.Trim();用于找到空格,并移除。多次这样操作便可将文本文件中的数据提取出来
void C成绩管理系统Dlg::Read(void) { CStdioFile file(\"a.txt\",CFile::modeRead);
if(file) {
int i=0;
CString str,str1,str2,str3,str4,str5,str6;
while (file.ReadString(str))
{
str1=str.Left(str.Find(\"\\t\"));
//stu[i].num=str1;
str=str.Mid(str.Find(\"\\t\"));
str=str.Trim();
str2=str.Left(str.Find(\"\\t\"));
//stu[i].name=str2;
str=str.Mid(str.Find(\"\\t\"));
str=str.Trim();//str2读出后删掉,便于读取str3
//str.TrimLeft();//缺省时删除空格
str3=str.Left(str.Find(\"\\t\"));
//stu[i].major=str3;
str=str.Mid(str.Find(\"\\t\"));
str=str.Trim();
//str.TrimLeft();
str4=str.Left(str.Find(\"\\t\"));
//stu[i].mathgrade=atof(str4);
str=str.Mid(str.Find(\"\\t\"));
str=str.Trim();
//str.TrimLeft();
str5=str.Left(str.Find(\"\\t\"));
//stu[i].Englishgrade=atof(str5);
str=str.Mid(str.Find(\"\\t\"));
str=str.Trim();
//str.TrimLeft();
str6=str;
stu[i].num=str1;////////对student赋值
stu[i].name=str2;
stu[i].major=str3;
- 78
面向对象程序设计课程设计
MeageBox(\"没有此人!\",\"\",MB_ICONWARNING);
break; } } }
// TODO: 在此添加控件通知理程序代码 } 添加功能实现:
将六个编辑框中的数据组合成字符串,写到文件末尾。
void C成绩管理系统Dlg::OnBnClickedButton2()//添加 { UpdateData(TRUE); Read();
for(int j=0;stu[j].num!=\"\";) {j++; m_count=j; } for(int i=0;i
CStdioFile of; CString str,str1; str=str1=\"\"; if(of.Open(\"a.txt\",CFile::modeReadWrite|CFile::modeCreate|CFile::modeNoTruncate))
while(of.ReadString(str))
{
str1=str.Left(str.Find(\"\\t\"));
int s=atoi(str1);
int n=atoi(m_num);
- 910
面向对象程序设计课程设计
file.SeekToBegin(); for(int i=0;stu[i].num!=\"\";i++){ CString str,str1,str2,str3,str4,str5,str6; str1=stu[i].num; str2=stu[i].name; str3=stu[i].major; str4.Format(\"%f\",stu[i].mathgrade); str5.Format(\"%f\",stu[i].Englishgrade); str6.Format(\"%f\",stu[i].physicalgrade); str=str1+\" \"+str2+\" \"+str3+\" \"+str4+\" \"+ str5+\" \"+str6+\"\\r\\n\";
file.Write(str,str.GetLength()); }
file.Close(); } 排序功能的实现:
使用冒泡排序的算法将学生按照总分高低排序,将排序后的学生数据写入到文件“b.txt”中。
void C成绩管理系统Dlg::OnBnClickedButton4() {
int j=0; for( j=0;stu[j].num!=\"\";) j++; m_count=j;
for(int i=0;stu[i].num!=\"\";i++) {
for(int b=0;b
{
if(stu[b].grade
{ Student st;
st=stu[b];
stu[b]=stu[b+1]; stu[b+1]=st;
}
else if(stu[b].grade==stu[b+1].grade &&
stu[b].mathgrade
{
Student st=stu[b];
stu[b]=stu[b+1]; stu[b+1]=st;
- 1112
+str3+\" 面向对象程序设计课程设计
另外,添加,排序,删除的结果写在文件a.txt和b.txt中
总
结
第一个题目增加了对类的继承派生,以及抽象基类的理解。同时也学会了如何将自定义的类文件加到MFC工程中去。更重要的是,熟悉了如何利用GDI绘图,知道了单文档工程的几大类的关系。
第二个题目让我学会了运用MFC封装的文件类处理文件,掌握了对字符串的处理和数据的提取。但第二个题目在视图显示方面还有很多不足,对大量数据的显示不到位。添加,排序,删除的结果从文件中查看还很不方便。我会继续学习者方面知识,在这方面加以完善。
13
《面向对象程序设计》
实习报告
学 年:20010-201
1学年第一学期
试验名称:面向对象程序设计 姓 名:李
芳
班 级:电子商务(本)0902班 学 号:0902110206
一、实习目的
1.了解SQL Server的集成环境、系统的菜单、工具栏、企业管理器、查询分析器的使用方法。
2.掌握创建数据库、数据表的方法;
掌握数据表的操作命令;
熟悉T-SQL命令的使用。
3.了解基本命令的使用方法;
掌握常用函数、表达式的使用方法,掌握程序控制结构的使用和程序设计,掌握变量的作用范围和自定义函数的使用。
4.熟悉VB与数据库管理系统的连接方法,较熟练地掌握利用向导、数据环境、数据控件等工具开发应用程序的基本操作界面。
5.熟练掌握常用算法程序、常用统计程序、数据排序方法、简单数据加密和解密程序、矩阵基本操作程序的编写、调试和使用。
在这几天的实习,培养了我们对于visual basic 的开发平台软件和开发岗位所需能力。实习过程中能够掌握对计算机编程的基本思路和方法语句等,尤其是编一个程序的创新思想,养成良好的可视化程序编程思维,培养自己较强的逻辑思维能力和创新思维能力,最终能够应用Visual Basic开发平台解决社会实际工作的需求,软件开发的能力。此外,在开发程序的同时,还增强了我们的团队协作精神。
通过这个实习进一步了解计算机语言和编程。掌握VB中的常用控件的属性和事件、方法。利用控件编写程序。
二、实习内容
一、
SQL Server基本操作
1.数据库操作
2.创建学生情况表及数据录入
学生情况表206结构设计
学生情况表206记录信息
课程情况表206结构设计
课程情况表206记录信息
选课情况表206结构设计
选课情况表206记录信息
二、程序设计
1.SQL Server 与程序设计语言连接
1)利用VB数据窗体向导生成学生情况表206的录入界面如下:
选课情况表206
课程情况表(主从)206
学生情况表(主从)206
2).利用数据控件设计数据表操作界面,用数据控件完成各数据表的添加、修改、删除、查询等操作的窗体。
数据表综合操作206
2.编写程序求1000以内的所有素数。
3.计算最大公约数和最小公倍数
4.对任意偶数进行素数分解
5.百钱百鸡问题
6、成绩统计
7.字符统计
8.选择法排序
9.冒泡法排序
10.设计程序封面
11.系统集成界面设计
三、实习总结
1、主要收获
通过实习,我掌握Visual Basic程序设计的相关理论知识,掌握VB语言开发简单应用程序的总体思路和步骤,熟悉其开发环境,掌握常用的基本控件的实用方法和系统属性的设置。在熟悉VB语言基本语法、语句结构的基础上,能利用VB语言采用不同的编程语句实现相同的功能,并解决实际中的一些问题。理解数据库的概念和优势,掌握VB的数据库访问技术,能进行数据绑定控件的连接和设置,了解SQL语言的简单实用,能进行数据库相关的简单应用程序的开发。通过参考实例,能进行实用窗体的设计,并添加相应的控件,进行消息映射,并在控件中显示信息,实现信息的添加,删除,查找等功能,最终完成一个实用的管理系统的开发和设计。利用所学知识进行VB程序开发的整体规划和语言测试。通过参与综合实验,使我能够对VB程序设计产生更为实际的感性认识,能对VB应用程序的开发有一个完整的认识,能借鉴VB语言应用的成功经验并运用到实际工作中去,为将来从事V B程序设计相关的工作打下坚实的基础,以更好的适应社会对程序设计应用人才的需要。
2、总结的经验
a、作系统前,先构思系统,根据要完成的功能,进行模块划分。
b、先添加控件,再编程;
变量先定义,再使用,并注意初始化。
c、代码书写规范,一定要按层次结构书写。注意适当添加注释,对子函数,变量进行说明
3、心得体会
事情。这次设计使我的编程水平提高了一大步,使我充分的认识到合作的可贵。由于这次设计涉及到数据库,我的学到了不少VB与数据库连接的知识,对数据库的操作有了进一步的了解。这次设计对我的综合能力是一次很好的锻炼,但是我必须承认自己的能力和知识还很肤浅。所以今后我的学习道路还是很漫长的。最后,在这里我要衷心的感谢我们的指导老师刘春光,谢谢他的悉心指导和热心帮助。由于我水平有限,加之时间短暂,学到的 知识还有很多的
四、参考资料
1.《SQL Server应用教程》人民邮电出版社 主编:郑阿奇 2.《Visual Basic程序设计》中国矿业大学出版社 主编:龚尚福 3.《VB程序设计案例汇编》 沈洪、施明利等 清华大学出版社
4.《VB6.0程序设计实训教程》 杨克玉 机械工业出版社 5.《VB程序设计》 孟德欣等 清华大学出版社 (2009-07出版) 6.百度文库
《面向对象程序设计》实习报告
班级:
学号:
姓名:
指导教师:
实习时间:
一.实习目的
1.学习怎样启动和退出 VB,熟悉 VB 的工作环境 2.掌握基本控件的重要属性、事件;
3.熟练掌握在窗体上建立上述控件的操作方法;
4.熟练掌握事件过程代码的编写;
5.掌握建立基于图形界面的应用程序的过程
6.学习用属性窗口设置对象属性及用代码设置对象属性的方法。
7.学习如何用对象(窗体和控件)建立界面及在代码编辑器中输 入程序代码的基本操作。
8 .基本掌握用 VB 开发应用程序的一般步骤。
二.程序设计
实验 1
基本算法练习
1.编写程序求“自己学号后 3 位到 500”以内的所有素
数及自然数对。
2.编写程序“计算最大公约数和最小公倍数”
实验:计算3个数的最大公约数和最小公倍数,并以最小公倍数作为总金额, 计算人民币各种票额的张数
3.编写程序“歌德巴赫猜想及守形数”
4.编写程序“百钱百鸡问题”
实验:编写程序解决百钱买百鸡问题:公鸡5元/只,母鸡3元/只,小鸡一元买 3只,用100元买100只鸡,问有哪些购买方案?
实验 2
1.成绩统计
常用统计练习
实验:利用文本框作为数据的输入和输出,产生数学、语文、英语、计算机等 4 门课程的成绩
2.字符统计
实验:随机产生 200 个“32 到自己学号后 3 位”且小于 128 的随机数,将其 转换成相应字符,形成一段统计字符。统计字符中各个字母、各数字、空格、其它 字符的个数。
实验 3
1.选择法排序
常用排序方法
实验:随机产生 10 个“学号后 3 位到 500 之间”的数,用选择法进行递增序。
2.冒泡法排序
实验: 随机产生 10 个“50 到学号后 3 位之间”的数,然后用冒泡法按递增的 顺序进行排序。
3.二维数组排序
实验:随机产生“10 到学号后 3 位之间”的数,形成一个 4*5 的二维数组,按 升序排列。
4.从有序数组中删除一个元素
实验要求:随机产生“1 到学号后 3 位之间”的 10 个数,然后产生 1-10 间的随机 数,确定删除元素,最后得出删除后的结果
实验 4 加密解密与数制转换
1.数据加密与解密
根据产生的后移位数,将输入的字符进行加密和解密。
2.数制转换
输入任意进制(二进制、八进制、十进制、十六进制)数,然后按要求将其转 换成其他进制的数。(要求,至少有一个数为自己学号后3位)
实验 5
矩阵的基本运算
随机产生数组 A(4,4),数组元素为 10-99 之间的两位数;
随机产 生数组 B(4,4),数组元素为“学号后 3 位-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 的主、副对角线上的元素,并求出这些元素的和
实验 6
综合应用
1.数据文件管理(编写应用程序实现学生基本信息的管理)
2.梵塔问题
传说印度教的主神梵天创造世界时,在印度北部的圣庙里安放了一块铜板, 铜板上插着3根钢针,在一根钢针下从下到上放着由大到小的64个金盘。梵天要 求僧侣们不停地按下面规则把64个金盘移到另一根钢针上,等64个金盘全部移 动完成时,便是世界毁灭之日
3.设计程序封面
封面中必须使用图形控件作出简单的图形,有文字滚动显示,根据自己的 构思,设计一个创意封面
3.系统集成界面设计
将上面的各种程序集成到一个管理系统。三、实习总结
今年 12 月 28 日至 1 月 9 日,我们进行了 VB 程序设计实习
1 月 1 日我做好了一个程序,编程不算太难,但是我没有把
它在短时间做好,用了很长的时间。这一天我觉得过得很快,因
为我的头在不停的思考,我觉得我们应给扪心自问一下一个学期
我们到底学会了什么?我们目前所学的都有会吗?上课的时候
我们都有好好学了吗?如果让我们自己做会做吗?
这天我考虑了很多。我考虑了如果说让我们自己再去做上些
新颖的东西如何去做好呢?答案是:我们不会做。我们缺少创新
精神和肯踏踏实实干的实干精神,基础掌握不牢靠这是我们最大
的缺点。
通过这次实习我们使用到了 VB 中的文本框控件(TEXT)、
标签控件、命令按钮控件和数组。我们按照老师的要求完成了十
几个个程序。在其过程中,我们遇到了很多问题和困难,发现在
之前的学习中,所学的东西不能完全掌握。这次实习,是我在学
习上的一次考验,让我深深体会到了实训操作的重要性。虽然此
次实习已结束,时间不长,但意义很大。它使我了解自己的短处,
让我知道要从什么方面对自己进行补充,这对我今后的学习和工
作将产生很大的影响。
参考书目:
1.《Visual Basic 程序设计》龚尚福主编,中国矿业大学出版
2007.8
(本报告为vb实习报告,封面请自行填写)
实习报告
题
目: 所属系、部 : 班
级:
姓
名:
学
号: 指 导 教 师:
2011年6月
一、实习目的
熟练掌握面向对象的概念、特点和基本的程序设计方法,熟悉使用常用的算 法解决实际问题。
二、实习时间
2011年6月13日-17日 三、实习地点 教学楼A302机房 四、实习内容
1、编写程序,将乘法“九九表”存入数组中,单击显示按扭,可以在当前窗口中显示出来;
单击交换按扭后,弹出输入框,根据输入框里输入的数据交换乘法“九九表”中任意两行对应的数。
《99乘法表交换》设计代码
Dim a(9) Fork = 1 To n Dim b(9) b(k) = k Private Sub Command1_Click() Print n & \"*\" & b(k) & \"=\"; Fori = 1 To 9 n * b(k); a(i) = i Next k Print Forj = 1 To i i = i + 1 Print a(i) & \"*\" & a(j) & \"=\"; End If a(i) * a(j); If i = n Then Next j Fork = 1 To m Print b(k) = k Next i Print m & \"*\" & b(k) & \"=\"; End Sub m * b(k); Private Sub Command2_Click() Next k Fori = 1 To 9 Print a(i) = i i = i + 1 Next i End If Dim m%, n% Forj = 1 To i m = InputBox(\"输入第一行号\") Print a(i) & \"*\" & a(j) & \"=\"; n = InputBox(\"输入第二行号\") a(i) * a(j); Fori = 1 To 9 Next j a(i) = i Print If i = m Then Next i End Sub
图1-1《99乘法表交换》设计界面
图1-1《99乘法表交换》运行界面
2、由随机函数产生10道一位整数与两位整数相加的加法题。产生的加法题依次显示在屏幕上,每产生一道题后,由用户输入答案,如果答案正确,记10分;
如果答案错误,允许第二次输入答案,第二次输入答案正确,记5分,错误记0分。最后给出总得分。
《十道加法题》设计代码
Private Sub Command1_Click() s = 0 For i = 1 To 10 a = Int(10 * Rnd) b = Int(10 + 10 * Rnd) m = \"第\" & i & \"题 \" & a & \"+\" & b c = Val(InputBox(m & \" 第一次回答\", \"作答\")) If a + b = c Then s = s + 10 n = m & \" 10分\" Else c = Val(InputBox(m & \"
第二次回答\", \"作答\"))
If a + b = c Then s = s + 5
n = m & \" 5分\" Else
n = m & \" 0分\" End If End If
Form1.Print n
Form1.Print \"当前得分\", s, \"分\"
Print Next i
Form1.Print \"总分\"; s End Sub
Private Sub Command2_Click() End End Sub
Private Sub Form_Load() Form1.AutoRedraw = True
Form1.Print \"加法题,单击“开始答题”开始,\"
End Sub
图2-1《十道加法题》设计界面
图2-2《十道加法题》运行界面 2、设计一个用户登录检测程序,若用户输入的用户名和密码均无误,显示“欢迎使用本系统”,否则提示用户名或密码错误,请用户重新输入。若用户名或密码连续三次输入错误,则显示“对不起,您不是本系统的合法用户”,然后退出。要求系统一共有三个用户,且每个用户对应不同的密码。
《登录界面》设计代码
Dim i% Private Sub Command1_Click() Dim a$, b$, c$, q, w, e a = \"liuyang\" b = \"linning\" c = \"lanjun\" q = 123 w = 456 e = 789 If (Text1.Text = a And Text2.Text = q) Or(Text1.Text = b And Text2.Text = w) Or(Text1.Text = c And Text2.Text = e) Then Label3.Caption = \"密码正确,欢迎使用本系统\" Print \"密码正确,欢迎使用本系统\"
Else
Label3.Caption = \"密码错误,请重新输入\"
Text2.Text = \"\" End If i = i + 1 If i = 3 Then
MsgBox \"你不是合法用户\", 48 End End If End Sub
图 3-2《登录窗口》运行界面 图3-1《登录窗口》设计界面
4、编写程序,计算你从出生当天开始计算,到2011年5月31(本题程序计算出生至当前日期)日一共经过了多少天。 要求:1、出生日期从键盘输入
2、正确处理和判断闰年问题
《出生天数计算》设计代码Private Sub Command1_Click()
a = Year(Now) b = Month(Now) c = Day(Now) Print \"系统当前日期\" Print a, b, c d = Val(InputBox(\"请输入出生年份\")) e = Val(InputBox(\"请输入出生月份\")) f = Val(InputBox(\"请输入出生日期\")) For i = d + 1 To a1 "开始累计今年月份
If i = 1 Or i = 3 Or i = 5 Or i = 7 Or i = 8 Or i = 10 Or i = 12 Then
k = k + 31
ElseIf i = 4 Or i = 6 Or i = 9 Or i = 11 Then k = k + 30
ElseIf i = 2 Then k = k + 28 " End If Next i
If e = 1 Or e = 3 Or e = 5 Or e = 7 Or e = 8 Or e = 10 Or e = 12 Then
k = k + (31f) ElseIf e = 2 Then k = k + (28x - y
If 5 * x + y + 0.5 * z = 100 Then Picture1.Print x, y, z
Next y Next x End Sub
图5-1《换钱》运行界面
五、实习总结
经过了接近一周的实习,真正的在机器上设计和运行自己的程序,困难很多,同时更多的是收获,每一次接到的任务,从构思到设计编码,最后调试,完成一系列的工作,最终开到自己设计出来的程序,感受颇多。在每一个程序的设计中,首先面临的是程序设计的思想,其次在考虑算法和编码的过程中,总是有很多问题,比如“Dim a(9) Forj = 1 To i Dim b(9) Print a(i) & \"*\" & a(j) & \"=\"; Private Sub Command1_Click() a(i) * a(j); Fori = 1 To 9 Next j a(i) = i Print”
这段代码中设计的思想一旦成熟,编码变很简单,在另外的设计中有很多的细节问题,比如“If i = 1 Or i = 3 Or i = 5 Or i = 7 Or i = 8 Or i = 10 Or i = 12”一段编码当中开始使用了 “ If i = 1 or 2 or 3 or 4 ”,在调试的过程中问题总不能解决,就是应为这样一个很小的很细微的语法错误,而导致了长时间耽搁在这样的一个程序上。
编程是一个细致活,要求每一句代码都必须准确,否则会导致计算结果不准甚至运行出错,每一个程序到必须要求很细致,很完美,总之编程很辛苦的。
编程是一个实在活,要求每一个设计都必须在机器上进行编码,调试,要求算法必须可以实现,和资源的可调度的要求,编程很实际,同时也解决很多实际的问题。
总之,实习给我的锻炼很多,在其中提高也很多,收获很多。
《面向对象程序设计》
实习报告
班级:电子商务
学号:xx
姓名xx
指导教师:
实习时间:2011.12.26-2012.1.6
一、实习目的
经过两个周的面向对象程序设计的实习,让我再次复习了SQL和VB的相关知识,因为自己这这学期的课程中对VB和SQL都有学习。虽然我们的上机课是有限的,但是在这次的实习中让我更加的对自己多掌握的知识做了个很详细的补充。由于两个周基本上都是自己在电脑上亲自操作完成任务,所以我就更加熟悉和掌握其具体应用的方法。当然在这个任务完成的工程中会遇到很多的难题,所以就要靠自己努力不懈的看书弄懂,还有问老师和四周的同学,把不懂的地方尽量通过这几种渠道把它弄懂。在整个实习过程中,我清楚并掌握了SQL Server的集成环境、系统的菜单、工具栏、企业管理器、查询分析器的具体使用方法还有掌握了创建数据库、数据表等的方法,了解并知道数据表的操作命令以及T-SQL命令的使用。在编写代码的时候,我大概了解VB基本命令的使用方法;
掌握常用函数、表达式的使用方法,掌握程序控制结构的使用和程序设计,掌握变量的作用范围和自定义函数的使用。以及熟悉了VB与数据库管理系统的连接方法等。这些都是要通过自己的实际操作中慢慢的的熟悉和了解的。我觉得这样的实习不仅让我在这两门重要的编程课中加深自己的知识,同时在以后的工作中能够有更大的用途。
这次的实习,在我自己来看,虽然还存在很多的问题,但是总体的效果还是很好的。老师的逐渐提醒和同学们之间的共同商量,都能够让我受益匪浅。还有还渐渐的掌握了一些小的程序的编程,这让我在vb和sql上有更加深刻的掌握,对我的以后工作还是学习上都是百利无一害的。
二、实验内容
在这次的实习中我完成了SQL SERVER的基本操作,如创建学生情况表等三个表以及录入记录;
SQL Server 与程序设计语言连接,从中对之前的三个表的录入信息等;
程序设计语言基本算法中的求素数和自然数对、最大公约数和公倍数问题、百钱百鸡问题等;
常用统计算法中的成绩统计和字符统计问题;
常用排序方法中的选择排序法和二维数组排序问题;
以及加密解密、数值转换问题;
矩阵的综合运算;
学生管理信息系统、集成界面已经程序封面的设计等问题。
但是同时由于知识的不全面也没有完成如冒泡排序法、梵塔问题。
1.创建学生情况表107及数据录入
图 1-1 学生情况表107结构设计
图 1-2 学生情况表107的记录信息
2.创建课程情况表107及数据录入
图 2-1 课程情况表107结构设计
图 2-2 课程情况表107的记录信息
3.创建选课情况表107及数据录入
图 3-1 选课情况表107结构设计
图 3-3 选课情况表107的记录信息
实验二
SQL Server 与程序设计语言连接
图2-1 学生情况表综合查询
图2-1学生情况表记录
图2-2学生情况表网格
图2-3学生情况与选课主从
图2-4课程情况与选课主从
图2-5课程情况表网格
图2-6选课情况表记录
图2-7选课情况表网格
实验三
程序设计语言基本算法
1.求“107到500”以内的所有素数及自然数对。
图3-1 素数及自然数对程序运行界面图
2.计算最大公约数和最小公倍数
图3-2 计算最大公约数和最小公倍数的运行结果图
3.百钱百鸡问题
图3-3 百钱百鸡问题的运行结果图
实验四 常用统计算法
1.成绩统计
图4-1成绩统计的运行结果图 2.字符统计
图4-2 字符统计的运行结果图
实验五
常用排序方法
1.选择法排序
图5-1选择法排序的运行结果图 2.二维数组排序
图5-2 二维数组排序的运行结果图
实验六
加密解密与数制转换
1.数据加密与解密
图6-1 简单数据加密解密的运行结果图 2.数制转换
图6-2数制转换的运行结果图
实验七
矩阵的基本运算
图7-1 矩阵操作的运行结果图
实验八
综合应用
1.数据文件管理
图8-1 学生基本信息管理系统
2.设计程序封面
图8-2 程序封面示意图
3.系统集成界面设计
图8-3集成系统界面
三、实习总结
主要收获:经过两个周的面向对象程序设计实习,让我对与VB和SQL的综合运用能力有了很大的提高和长进。因为我们大部分的时间都是实际操作,这样子的话使我们每个同学都能够很好的将书本知识转化为实践能力,在实践中慢慢的发现自己的不足和知识的欠缺。而在这个过程中,我学到了远远比在书本上学到的东西多得多的能力,比如SQL的基本操作和命令的熟练运用,VB的程序代码的编写以及界面的绘制等等,在这次的实习中我都能够慢慢的掌握并且运用在实际的实习中。这不经让我在这两门课程中从不太了解逐渐一步一步熟悉,许多没掌握的知识也有所消化,很多没注意的细节也有所掌握。尤其是在我在不懂的时候通过查阅资料、询问老师和同学商量的过程中也让我更加的对这次的实习感到万分的高兴,这种宝贵的机会更能调动我们的自己动手的能力,更快的提高我们掌握知识的速度。
存在问题:虽然说这次的实习我学到了很多的知识和丰富的经验,但是我在实习中是存在许多问题没有解决。比如:
一、在VB方面,对于难一点的程序设计,它的程序代码编写我还是觉得写起来很困难,这样的话对于我的程序的运行上面就会出现很多次的小问题导致不能正常运行,还是没有很好的学习到更加深层次的复杂性的程序设计。
二、在SQL方面,虽然在创建数据库、创建表、插入记录上面我已经很熟练的掌握并且能够很好的运用,但是在连接方面我还是存在很大的问题,只能死记硬背老师给教的步骤,然后慢慢的调试。尤其在于实验二中的学生情况表的综合查询方面,我还是有点不能很好的理解和运用。
三、毕竟实习的时间是很短暂的,在这个短短的两个周内要好好看书,然后再慢慢的在电脑上调试还是需要时间的,所以在于很多的任务上我还是第一次涉及到,比如封面设计的绘制图形、设计集成界面等,都要通过有关的书籍看懂再自己设计的,所以还不能设计出更加好看的图形,只能是涉及绘制那种最简单的图形。
四、对与VB的有些实习任务比如冒泡排序法和梵塔问题,在这次的实习中通过看书和同学商量,我还是对于这两个程序有点手足无措,虽然大致的程序界面能够很好的设置下来,但是还是存在很多的问题,这说明了在VB的复杂性的程序设计方面我还是有一些问题的。 实习需要改进的意见:首先我觉得对于我自己来说,最重要的还是多看书,在这次实习中我觉得我真的看的有关这个方面的书籍真的是太少太少了,这让我在实习中会遇到很多无论是细小的问题还是理论上的问题,都会遇到很多的困难,所以利用这个寒假还是要好好的在这个方面得到提高。其次我要在自己不懂的地方自己实在不能解决的要请教老师和赶紧和同学商量,要把详细的问题请问老师,不能大而化之的问。这样才能真正的知道哪里欠缺,哪里真正的掌握。最后,就是常常和四周的同学沟通和商量,这样的效率也比较的高,也能知道更多别的同学所掌握的知识,这样更加的丰富了自己的知识和能力。还有就是,这样的实际操作的实习机会应该多点给我们学生,自己动手做才能更好的学到知识。
总之,在这次的实习中我得到了很多的知识,也获得了丰富的经验,在这次的实习中使我受益匪浅,希望以后能够多多的得到这样的机会来提高自己。
参考资料:
1.《SQL Server应用教程》郑阿奇、刘启芬、顾韵华编写.人民邮电出版社,2008.12月第一版 2.《Visual Basic 程序设计》龚尚福编写.中国矿业大学出版社,2007年8月第一版
3.《Visual Basic6.0程序设计实务入门》陈建成、陈柏宏、黄珮莹、陈泽雄、林清祥编写.中国铁道出版社,2001年4月第一版 4.《基于VB和SQL的数据库编程技术》刘志妩、张焕君、马秀丽编写,清华大学出版社,2008年4月第一版
5.《Visual Basic程序设计教程》周霭如、官士鸿编写,清华大学出版社,2000年3月第一版
气象局实习报告(共8篇)
平面实习报告(共12篇)
调查报告对象(共18篇)
平面公司实习报告(共9篇)
pr0tel实习报告(共5篇)
上一篇:实习报告内容怎么写
下一篇:业务助理实习报告(共合集)