中南大学数学院大三年级面向对象报告.docx
- 文档编号:25895626
- 上传时间:2023-06-16
- 格式:DOCX
- 页数:16
- 大小:303.17KB
中南大学数学院大三年级面向对象报告.docx
《中南大学数学院大三年级面向对象报告.docx》由会员分享,可在线阅读,更多相关《中南大学数学院大三年级面向对象报告.docx(16页珍藏版)》请在冰豆网上搜索。
中南大学数学院大三年级面向对象报告
中南大学数学院大三年级面向对象报告
中南大学
面向对象设计实验报告
题目面向对象设计报告
学生姓名
学号
专业班级
指导老师
数学科学与计算技术学院
2011年11月
一:
实验内容
这三次试验主要包括鼠标画图,菜单,对话框,属性页,向导。
这些是面向对象设计的基本内容,在朱世华老师的精心指导下,我取得了一定的实验结果。
下面分三块叙述这三个实验。
二:
鼠标绘图
1鼠标绘图简介
Windows系统为显示多种颜色和样式的文本提供了强有力的的支持,可以通过调用各种各样的文本函数在不同的设备上精确的显示文本。
使用成员函数SetTextAlign()可以通过致指明一个基准点与边界矩形的位置关系来设置文本对齐方式。
调用成员函数SetTestColor()以及SetBkColor()可以改变前景和背景的颜色。
利用鼠标绘制图形
需要在CdrawView类中分别为WM_LBUTTONDOWN消息,WM_LBUTTONUP消息创建处理函数OnLButtonDown()以及OnLButtonUp()。
还需要增加变量用于记录起点和终点坐标。
程序代码是
VoidCdrawView:
:
OnLButton(UNITnFlags,Cpointpoint)
{
If(m_IsDragging)
{
m_EndPoint=point;
CclientDCClientDC(this);
xmlversion="1.0"encoding="UTF-8"standalone="yes"?
>
- //schemas.openxmlformats.org/officeDocument/2006/extended-properties"xmlns: vt="http: //schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes"> Normal xmlversion="1.0"encoding="UTF-8"standalone="yes"? > - corePropertiesxmlns: cp="http: //schemas.openxmlformats.org/package/2006/metadata/core-properties"xmlns: dc="http: //purl.org/dc/elements/1.1/"xmlns: dcterms="http: //purl.org/dc/terms/"xmlns: dcmitype="http: //purl.org/dc/dcmitype/"xmlns: xsi="http: //www.w3.org/2001/XMLSchema-instance"> CclientDCClientDC(this); { m_StartPoint=point; m_EndPoint=point; m_IsDragging=true; SetCapture(); CView: : OnLButtonDown(nFlags,point); 下面是过程中的截图 这张截图是属性 这张是类视图 这张截图是添加成员变量向导。 下面是鼠标绘图的绘图程序用户界面。 运行程序完全正常,界面如下。 ②一个简单的绘制直线,矩形椭圆图形。 需要编写一个简单的绘图程序,允许用户使用鼠标在用户区域中自由的绘制直线矩形及椭圆。 实现一个简单的绘图程序 先生成一个单文档MFC应用程序, 单击视图菜单的资源视图菜单项,调出资源试图窗口,展开资源DRAW,菜单资源定义在文件夹Menu中,文件夹中有一个名为IDR-MAINFRAME的菜单资源,双击将其打开, 在菜单编辑器中,可以根据“请在此输入”的提示,向程序菜单栏增加一个名为“工具”的新菜单,并在新的菜单栏下建立三个选项: 直线,矩形。 椭圆形。 将直线,矩形,椭圆形三个选项的ID设置库存中的。 程序代码是: Cdrawview: : cdrawview() { m_line=true; m_rectangle=flase; m_ellipse=false; voidCdrawView: : OnUpdateLine(CcmdUI*pCmdUI) xmlversion="1.0"encoding="UTF-8"standalone="yes"? > - webSettingsxmlns: r="http: //schemas.openxmlformats.org/officeDocument/2006/relationships"xmlns: w="http: //schemas.openxmlformats.org/wordprocessingml/2006/main"> optimizeForBrowser/> Voidcdrawview: : onellipse() { m_Line=false; m_Rectangle=false; m_Ellipse=true; 三,计算器 我还还做了一个简单的计算器。 就是简单的一个加法计算器。 问题是用面向对象程序设计方法设计一个简单的计算器程序,该程序能完成简单的整数的加减乘除运算。 我主要是用C++里面的循环结构,各种运算符,函数,控制语句,数据类型以及VB里面的基础知识,来编出一个简单的加法计算器。 运行结果还不错。 程序代码: usingSystem; usingSystem.Collections.Generic; usingSystem.Text; namespaceshangjiyi { /// ///此示例演示计算机两个数的加减乘除取余 /// classProgram { staticvoidMain(string[]args) { intfirst;//第一个操作数 intsecond;//第二个操作数 stringmyOprator;//运算符 intresult;//计算结果 //输入参与计算操作数和运算符 Console.WriteLine("我是第一个简单的计算器,可以实现两个整数的加减乘除取余"); Console.Write("请输入第一个操作数: "); first=int.Parse(Console.ReadLine()); Console.Write("请输入第二个操作数"); second=int.Parse(Console.ReadLine()); Console.Write("请输入运算符(+-*%): "); myOprator=Console.ReadLine(); //计算,并输出运算符 if(myOprator=="+")//加法 { result=first+second; Console.WriteLine("加上等于",first,second,result); } elseif(myOprator=="-")//减法 { result=first-second; Console.WriteLine("减去等于",first,second,result); } elseif(myOprator=="*")//乘法 { result=first*second; Console.WriteLine("乘以等于",first,second,result); } elseif(myOprator=="%")//取余 { result=first%second; Console.WriteLine("除以等于",first,second,result); } else { Console.WriteLine("对不起,我不认识你的运算符! "); } Console.ReadLine(); } } } 利用C++系统中的各种运算符,输入需要运算的数字,会有提示: 请输入第一个操作数,请输入第二个操作数。 然后选择四则混合运算中的加减乘除。 如果输入的运算符不在+-*%这四个运算符中,那么系统会提示"对不起,我不认识你的运算符! " 这是面向对象里面的加法计算器,在NUMBER1,NUMBER2,NUMBER3中输入想要计算的数字,点击ADD,就可以计算出它们的和。 上面两个图是加法运算器的截图,程序也好理解。 四: 对话框 MFC有对话框模版,直接用鼠标单击就可以创建一个对话框,在。 NET中,没有专门的对话框模版,可以把窗体的属性设置为”FixedDialog”来把窗口设置为对话框,窗体与对话框有相同之处,对话框就是特殊的窗体。 程序代码: #using #using #using UsingnamespaceSystem: : ComponentModel: UsingnamespaceSystem: : Windows: : Forms; UsingnamespaceSystem: : Drawing xmlversion="1.0"encoding="UTF-8"standalone="yes"? > - footnotesxmlns: ve="http: //schemas.openxmlformats.org/markup-compatibility/2006"xmlns: o="urn: schemas-microsoft-com: office: office"xmlns: r="http: //schemas.openxmlformats.org/officeDocument/2006/relationships"xmlns: v="urn: schemas-microsoft-com: vml"xmlns: wp="http: //schemas.openxmlformats.org/drawingml/2006/wordprocessingDrawing"xmlns: w10="urn: schemas-microsoft-com: office: word"xmlns: w="http: //schemas.openxmlformats.org/wordprocessingml/2006/main"xmlns: wne=" - footnotew: type="separator"w: id="-1"> - pw: rsidR="00F35DB2"w: rsidRDefault="00F35DB2"w: rsidP="0095340F"> - r> separator/> r> p> footnote> - footnotew: type="continuationSeparator"w: id="0"> - pw: rsidR="00F35DB2"w: rsidRDefault="00F35DB2" AcceptButton=ResultBtn; Application: : Run(newCalculatorDlg()); 五,向导 向导就是用户在操作中一步一步的选择,就像下载某个软件会有一步步的提示。 便于用户完成。 用户注册时,需要选择自己的基本信息,譬如喜欢那种球类,月工资多少,居住地等等。 这需要编程人员的对用户的了解程度而定。 我这里只做了一个简单的面向对象设计向导,比较粗糙。 主要是根据朱世华老师的上课教学还有孙鑫老师的C++视频学的的,当然结果是非常粗糙的。 程序代码: #include #include #include #include using namespace std; typedef struct tagEmpNode { string _ID; string _name; double _pay; tagEmpNode *_next; tagEmpNode(); tagEmpNode(const tagEmpNode& node); }EmpNode,*PEmpNode; typedef PEmpNode EmpList; class EmpSys { private: EmpList m_head,m_rear; unsigned int m_size; public: EmpSys(); EmpSys(const EmpSys& old); ~EmpSys(); boolReadData(istream& in); boolInsert(EmpNode& newNode); boolDelete(PEmpNode delNode); doubleFindByName(const string& name); doubleFindByID(const string& id); PEmpNodeGetByName(const string& name); PEmpNodeGetByID(const string& id); boolAccendingByPay(); newSys.PrintList(cout); system("pause"); break; case 4: newSys.DecendingByPay(); newSys.PrintList(cout); system("pause"); break; case 5: cout<<"请选择你的职业: "; cin>>name; cout<<"工程师: "< "< system("pause"); break; case 6: cout<<"请选择您的爱好: "; cin>>ID; cout<<"ID: "<<篮球<<"\t网球: "< system("pause"); break; case 7: cout<<"请选择您的薪金水平: "; cin>>name; pTemp=newSys.GetByName(name); cout<<"ID"< "< "< newSys.Delete(pTemp); system("pause"); break; case 8: break; case 0: working=false; default: system("pause"); } } return 0; } 这是选择薪金水平的向导。 这是选择注册用户的体育爱好的向导。 一共包括篮球,足球,网球,游泳四大类体育活动 这是用户选择职业的向导,只设置了工程师,老师,经理三个职业。 还有一个框是用来填工作地点的。 也比较粗糙 报告心得: 课程设计是培养学生综合运用所学知识,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对学生实际工作能力的具体训练和考察过程.随着科学技术发展的日新日异,面向对象设计技术显得更加重要,在生网络系统中中可以说得是无处不在。 因此作为二十一世纪的大学来说掌握面向对象设计是十分重要的。 回顾起此次面向对象设计,至今我仍感慨颇多,的确,在做鼠标绘图,菜单,对话框,属性页,向导,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。 通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。 在设计的过程中遇到问题,可以说得是困难重重,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,比如说C++技术比较薄弱。 通过这次课程设计之后,一定把以前所学过的知识重新温故。 这次课程设计终于顺利完成了,在设计中遇到了很多编程问题,最后在朱世华老师的辛勤指导下,终于游逆而解。 同时,在朱世华老师的身上我学得到很多实用的知识,在次我表示感谢! 同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 中南 大学 学院 大三 年级 面向 对象 报告