面向对象实习报告

上传人:壹****1 文档编号:562241195 上传时间:2023-04-21 格式:DOCX 页数:22 大小:33.42KB
返回 下载 相关 举报
面向对象实习报告_第1页
第1页 / 共22页
面向对象实习报告_第2页
第2页 / 共22页
面向对象实习报告_第3页
第3页 / 共22页
面向对象实习报告_第4页
第4页 / 共22页
面向对象实习报告_第5页
第5页 / 共22页
点击查看更多>>
资源描述

《面向对象实习报告》由会员分享,可在线阅读,更多相关《面向对象实习报告(22页珍藏版)》请在金锄头文库上搜索。

1、面向对象实习报告(共 5篇)第1篇:面向对象实习报告实习题目一1. 三个自定义类本题有三个自定义的类:点类VecPosition,圆类circle,矩形类Rect,运 用类的继承思想从这三个类中抽象出公共基类base。其中base中有一个纯虚函 数virtual void draw()=0; VecPosition类主要实现各个运算符的点的构造, 运算符的重载,求两点距离,判断一个点是否在给定其他几个点的范围内,以及 与向量有关的几何运算。Circle 类主要实现圆对象的构造,圆的相关参数设置,求取圆的周长函数 ( doubleCircle:getCircumference() )、 面 积

2、函 数 ( double Circle:getArea() ), 判 断 一 个 点 是 否 在 圆 内 bool Circle:isInside(VecPosition pos) , 求 两 个 圆 交 点 函 数 int Circle:getIntersectionPoints(Circle c,VecPosition *p1,VecPosition *p2) 返 回 加 点 个 数 。 求 两 个 圆 的 相 交 面 积 double Circle:getIntersectionArea(Circle c)。矩形由左上点坐标和右下点坐标确定。包括矩形的构造,参数的设置修改, 求矩形的面积

3、,周长,以及判断一个点是否在矩形内。2. 可视化界面 建立单文档工程,添加画图菜单,如下图: 三个菜单项分别画点,画线,画矩形。在view.h中添加如下变量:CPoint类的m_oldpt, m_pt用于记录画图的起 点坐标和终点坐标。Circle m_circle,Rect m_rect,用于构造圆和矩形。afx_msg voidOnLButtonDown(UINT nFlags, CPoint p o i n t )是响应鼠标按下的消息,并将 当前坐标传给m_oldPoint。用switch分支控制画图种类,在view类中加入变量i,添加三个菜单消息 响应函数,对i进行赋值;当点击菜单项“

4、点”时,i=0;当点击菜单项“圆”时,i=1;当点击菜单项“矩形”时,i=2;在 view 中添加 void C 实 习一 View:OnLButtonUp(UINT nFlags, CPoint point)用来响应鼠标左键弹起消息。三种图形的绘制在该函数中完成。具体绘图 代码如下:void C 实习一 View:0nLButtonUp(UINT nFlags, CPoint point) CString str=”,str1=”; / TODO: 在此添加消息处|理程序代码和或调用默 认值VecPosition pt1,pt2; Circle cir1; Rect Rect1; pt1.s

5、etVecPosition(m_pt.x,m_pt.y);pt2.setVecPosition(point.x,point.y);面向对象程序设计课程设计CClien tDC pDC( this);/客户区绘图对象CBrush*poidBrush=CBrush:FromHandle(HBRUSH)GetStockObject(NULL_BRUSH );/设置透明画刷,以免绘制的图形之间相互覆盖/*CBrush*poidBrush=*/pDC.SelectObject (poidBrush) ;/将画刷选入设备 环境switch(i) case 0:/点和圆关系st r=”该点的坐标为rn”;

6、str1.Format(”%s”,pt1.str().c_str(); str+=str1;if(m_ncir!=0 & m_nrect!=0)if(m_circle.isInside(pt1)str+二”rn点在圆的内部?”;elsestr+二”rn点不在圆的内部?”;if(m_rect.isInside(pt1)str+=”rn点在矩形的内部”;elsestr+=”rn点不在矩形的内部”;else if(m_ncir!=0 & m_nrect=0) if(m_circle.isInside(pt1)str+二”rn点在圆的内部”;elsestr+二”rn点不在圆的内部”;else if(m

7、_ncir=0 & m_nrect0) if(m_rect.isInside(pt1)str+=”rn点在矩形的内部”;elsestr+=”rn点不在矩形的内部”;MeageBox(str,” 显示:”);- 12面向对象程序设计课程设计str=str+str1+”rn”;double d二cirl.ge tint ersec tio nArea(m_circle);/相交面积str1=”两圆的相交面积为:rn”;str+=str1;str1.Format(”%f”,d);str+=str1;MeageBox(str);else m_ncir+;/记录圆的个数MeageBox(str);bre

8、ak;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,str

9、5,str6,str7,str8;str1=” 左上角坐标:rn”; str2.Format(”%s”,pt1.str().c_str();str3=”rn 右下角坐标:rn”; str4.Format(”%s”,pt2.str().c_str(); str5二”rn 矩形周长:rn” ; str6.Format(”%f”,Circumference);str7二”rn 矩形面积:rn”; str8.Format(”%f”,area);显示:”);MeageBox(str1+str2+str3+str4+str5+str6+str7+str8,” m_nrect+;break; CView:O

10、nLButtonUp(nFlags, point);- 34面向对象程序设计课程设计- 56面向对象程序设计课程设计3. 算法设计给对话框添加Read函数,用于将文件中的数据读到数组中。在读文件是由于 一行一行读取时不知道每一行的字节长度,所以用了 CFile 类的派生类 CStdioFile,该类的ReadString能够读取一行,遇到换行符即停止。在字符串 的 分 割 时 候 也 遇 到 了 一 些 问 题 , 找 资 料 后 得 以 解 决 。 str.Left(str.Find(”t”) 以 空 格 为 界 读 取 左 侧 内 容 。 str=str.Mid(str.Find(t);

11、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”);/stui.num=str1;str=str.Mid(str.Find(”t”);str=str.Trim();str2=str

12、.Left(str.Find(”t”);/stui.name=str2;str=str.Mid(str.Find(”t”);str=str.Trim();/str2读出后删掉,便于读取str3/s tr.TrimLef t();/缺省时删除空格str3=str.Left(str.Find(”t”);/stui.major=str3;str=str.Mid(str.Find(”t”);str=str.Trim();/str.TrimLeft();str4=str.Left(str.Find(”t”);/stui.mathgrade=atof(str4);str=str.Mid(str.Find(

13、”t”);str=str.Trim();/str.TrimLeft();str5=str.Left(str.Find(”t”);/stui.Englishgrade=atof(str5);str=str.Mid(str.Find(”t”);str=str.Trim();/str.TrimLeft();str6=str;stui.num二stri;/对 student 赋值stui.name=str2;stui.major=str3;- 78 面向对象程序设计课程设计MeageBox(” 没有此人! ”,”,MB_ICONWARNING);break; / TODO: 在此添加控件通知理程序代码

14、 添加功能实现: 将六个编辑框中的数据组合成字符串,写到文件末尾。void C 成 绩 管 理 系 统 Dlg:OnBnClickedButton2()/ 添 加 UpdateData(TRUE); Read();for(int j=0;stuj.num!=”;) j+; m_count=j; for(int i=0;iCStdioFile of;CString str,stri;str=stri=”;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;stui.num!=”;i+) CStringstr1=stui.num;str

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 学术论文 > 其它学术论文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号