(1)在《C++面向对象程序设计》第6章例6.3的基础上作以下修改,并作必要的讨论。
○1把构造函数修改为带参数的函数,在建立对象初始化。
○2先不将析构函数声明为virtual,在main函数中另设一个指向Circle类对象的指针变量,使它指向变量,使它指向grad1。
运行程序,分析结果。
○3不作第②点的修改而将析构函数声明为virtual,运行程序,分析结果。
(2)声明抽象基类Shape,由它派生出3个派生类:Circle(圆)、Rectangle(矩形)、Triangle(三角形),用一个函数printArea分别输出以上三者的面积,3个图形的数据在定义对象时个给定。
2025/9/18 3:22:33 60KB C++多态性
1
http://blog.csdn.net/xiaoxiao108/archive/2010/12/18/6084473.aspx记得在大学学java时,同学在下载了很多java的视频,看到里面有些是介绍简单游戏开发的,马士兵老师讲的,挺感兴趣的。
一起看了看视频写了写程序。
现在毕业了,因为工作中用的是C#,最近很想拿C#把以前写的坦克大战重写下,来熟悉熟悉C#的基本语法。
程序很简单,跟java代码相比没有多大改动开发环境vs2008实现方法如下1.在form中添加一个panel,在panel的Paint方法中得到Graphics对象2.通过Graphics对象再panel画出坦克,子弹等相关内容3.添加timer控件来控制panel的重画实现坦克,子弹的运动4.根据电脑按下的方向键,确定出坦克的方向,panel重画时根据坦克的方向修改坦克的X,Y轴坐标,来实现坦克的移动5.通过Rectangle的IntersectsWith函数来进行碰撞检测,实现子弹打击坦克具体实现代码1.在项目里面添加枚举类型//////表示方向的的枚举类型///publicenumDirection{L,U,D,R,STOP}2.添加子弹类的相关常量,属性//////子弹X轴的速度,单位PX///publicstaticintXSPEED=10;//////子弹Y轴的速度,单位PX///publicstaticintYSPEED=10;//////子弹的宽度///publicstaticintWIDTH=10;//////子弹的高度///publicstaticintHEIGHT=10;//////子弹的坐标///intx,y;//////子弹的方向///Directiondir;//////子弹的存活状态///privateboollive=true;//////TankClient窗体实例///privateTankClienttankClient;//////敌我双方的标记///privateboolgood;3.添加draw方法来画出子弹publicvoidDraw(Graphicsg){if(!live){tankClient.missiles.Remove(this);return;}//通过画椭圆函数在界面上显示子弹g.FillEllipse(Brushes.Black,x,y,Missile.WIDTH,Missile.HEIGHT);Move();}4.添加子弹打击坦克的方法publicboolHitTank(Tankt){//用IntersectsWith来检测两个矩形相碰撞if(GetRectangle().IntersectsWith((t.GetRectangle()))&&t.Live&&t
2025/8/19 18:41:23 73KB C# 坦克大战 双缓冲 碰撞检测
1
余烬保持按钮按住即可确认ember-cli的按钮,该按钮易于定制。
按住按钮一段指定的时间后,将执行给定的操作(例如,按住以删除)。
安装emberinstallember-hold-button用法开箱即用的按钮有几种。
rectangle,circle和border-circle。
###长方形{{#hold-buttontype="rectangle"action="delete"}}HoldtoDelete{{/hold-button}}圆圈{{hold-buttontype="circle"action="finished"}}边界圈{{hold-buttondelay=800type='border-circle'action='finished'}}
2025/1/29 3:35:39 136KB JavaScript
1
5.1定义一个Point类,有点坐标属性(x,y),由它派生出圆形类(Circle)和矩形类(Rectangle),基类中定义了求面积的纯虚函数。
在主函数定义派生类的对象,调用面积函数,观察运行结果。
5.2定义一个教师Teacher类,由教师类派生出讲师、副教授、教授类。
教师的工资分别由基本工资、课时费和津贴构成。
假设讲师、副教授、教授的基本工资分别为3000、4000、5000元,课时费分别为每课时100、120、150元,每月平均授课20课时,津贴分别为2000、2500、3000元,请定义虚函数来计算各类教师的每月工资。
在主函数通过基类指针或引用来验证虚函数的多态性。
5.3编写一个的简单的求给定数平方根的程序,设计一个异常类用异常处理机制来检测给定数为负数的情况。
在主函数中进行测试。
2024/9/4 5:41:13 310KB C++
1
3.几何图形(满分50分)版本1:满分10分设计抽象类GeometricObject及其子类Triangle和Circle。
GeometricObject类设计要求如下:■一个名为color的Color类型的私有数据域,表示对象的颜色■一个名为filled的Boolean类型的私有数据域,表示对象是否■一个名为dateCreated的Date类型的私有数据域,表示对象的■一个无参构造方法。
■一个能创建特定color和filled的有参构造方法。
■相关数据域的访问器和修改器。
■两个个名为draw和erase的抽象方法。
■一个名为getArea的抽象方法。
■一个名为getPerimeter的抽象方法。
■重写toString方法。
Triangle类设计要求如下:■三个名为side1、side2和side3的double类型的私有数据域表们的默认值是1.0。
要求三个数据域保留2位小数。
■一个无参的构造方法创建默认三角形。
■一个能创建带指定side1、side2和side3的有参构造方法。
■所有三个数据域的访问器和修改器方法。
■父类抽象方法的实现。
■重写toString方法。
Circle类设计要求如下:■一个名为radius的double类型的私有数据域,表示圆的半径,数据域保留2位小数。
■一个名为PI的静态常量,其值为3.14■一个无参的构造方法创建默认三角形。
■一个能创建带指定radius的有参构造方法。
■radius数据域的访问器和修改器方法。
■父类抽象方法的实现。
■重写toString方法。
测试类TestGeometricObject1设计要求如下:■一个能随机生成Circle类和Triangle类对象的静态方法GeometricObject[]RandomCreateGeometricObject()■以随机生成的数组为参数,输出数组中每个对象的基本信息、周长和面积。
■类中其它方法的测试版本2:满分20分将上面的抽象类GeometricObject改为接口,接口只保留其中四个抽象方法,声明类Circle、Triangle实现该接口,类的基本要求如上,同时为每个类增加一个将当前对象序列化到指定文件的方法writeToFile(Filef)。
测试类TestGeometricObject2设计要求如下:■一个能随机生成Circle类和Triangle类对象的静态方法,该方法将随机生成的象序列化到指定的文件GeometricObjects.dat中,序列化成功返回真,否则返回假。
BooleanRandomCreateGeometricObject()■将GeometricObjects.dat文件中对象全部读出,存储到GeometricObject对象数组中,然后以此数组为参数,输出数组中每个对象的基本信息、周长和面积。
■类中其它方法的测试。
新增一个类Rectangle,也实现接口GeometricObject,同时修改测试类TestGeometricObject2,体会开-闭原则。
版本3:满分20分在第2步的基础上设计实现一个具有GUI界面的几何图形绘制系统系统,要求实现根据选择的几何图形类型来绘制和删除相应的图形,其中相关参数应通过界面输入,并可计算图形的周长和面积。
2024/7/31 3:21:55 23KB 几何图形 jpanel 课程设计CQUT xhay
1
QML弹出窗口组件,灯箱效果、动画效果,可拖拽核心思路:一个mask层,一个最顶层,都用rectangle,禁止事件穿透,动画效果http://www.cnblogs.com/surfsky/p/3998391.html
2024/4/26 9:14:06 3KB QML 弹出窗口
1
c#图形书中最经典的一本书当中包括饼图,条形图,绘图板制作等第1章GDI+——下一代图形接口1.1理解GDI+1.2探索GDI+的功能1.3从GDI的角度学习GDI+1.4.NET中的GDI+名称空间和类总结第2章第一个GDI+应用程序2.1绘制表面2.2坐标系统2.3指南——第一个GDI+应用程序2.4一些基本的GDI+对象总结第3章Graphics类3.1Graphics类的属性3.2Graphics类的方法3.3GDI+Painter应用程序3.4绘制饼图总结第4章使用画笔和钢笔4.1理解和使用画笔4.2在GDI+中使用钢笔4.3使用钢笔进行变形4.4使用画笔进行变形4.5系统钢笔和系统画笔4.6一个真实世界的例子——在GDI+Painter应用程序中添加颜色、钢笔和画笔总结第5章颜色、字体和文本5.1访问Graphics对象5.2使用颜色5.3使用字体5.4使用文本和字符串5.5渲染文本的质量和性能5.6高级版式5.7一个简单的文本编辑器5.8文本变形总结第6章矩形和区域6.1Rectangle结构体6.2Region类6.3区域和剪辑6.4剪辑区域示例6.5区域、非矩形窗体和控件总结第7章图像处理7.1光栅图像和矢量图像7.2使用图像7.3操作图像7.4在GDI+中播放动画7.5使用位图7.6使用图标7.7扭曲图像7.8绘制透明的图形对象7.9查看多个图像7.10使用图片框查看图像7.11使用不同的大小保存图像总结第8章高级图像处理8.1渲染位图的一部分8.2使用图元文件8.3使用颜色对象应用颜色映射8.4图像属性和ImageAttributes类8.5编码器参数与图像格式总结第9章高级二维图形9.1线帽和线条样式9.2理解并使用图形路径9.3图形容器9.4读取图像的元数据9.5混合9.6Alpha混合9.7其他高级二维主题总结第10章变形10.1坐标系统10.2变形的类型10.3Matrix类与变形10.4Graphics类与变形10.5全局变形、局部变形和复合变形10.6图像变形10.7颜色变形和颜色矩阵10.8图像处理中的矩阵操作10.9文本变形10.10变形顺序的重要性总结第11章打印11.1简要地回顾使用MicrosoftWindows进行打印的历史11.2打印过程概述11.3第一个打印应用程序11.4打印机的设置11.5PrintDocument和Print事件11.6打印文本11.7打印图形11.8打印对话框11.9自定义页面设置11.10打印多个页面11.11页边打印——注意事项11.12进入细节——自定义控制和打印控制器总结第12章开发GDI+Web应用程序12.1创建第一个ASP.NETWeb应用程序12.2第一个图形Web应用程序12.3绘制简单的图形12.4在Web上绘制图像12.5绘制曲线图12.6绘制饼图总结第13章GDI+的最佳实践及性能技术13.1理解渲染过程13.2双缓存和无抖动绘图13.3理解SetStyle方法13.4绘图过程的质量与性能总结第14章GDI互操作性14.1在受控环境中使用GDI14.2在受控代码中使用GDI的注意事项总结第15章其他GDI+示例15.1设计交互式GUI应用程序15.2绘制具有形状的窗体和Windows控件15.3为绘制的图像添加版权信息15.4从流或数据库读取及写入图像15.5创建自绘制的列表控件总结附录A.NET中的异常处理
2023/12/15 5:35:43 9.31MB c# GDI+ 图形
1
本代码主要利用MATLAB工具实现MATLAB——使用rectangle命令创建二维矩形或椭圆区域,简单明了,易于理解
1
源代码:#include#include#include#include#definePI3.1415926/*定义常量*/#defineUP0x4800/*上移↑键:修改时间*/#defineDOWN0x5000/*下移↓键:修改时间*/#defineESC0x11b/*ESC键:退出系统*/#defineTAB0xf09/*TAB键:移动光标*//*函数声明*/intkeyhandle(int,int);/*键盘按键判断,并调用相关函数处理*/inttimeupchange(int);/*处理上移按键*/inttimedownchange(int);/*处理下移按键*/intdigithour(double);/*将double型的小时数转换成int型*/intdigitmin(double);/*将double型的分钟数转换成int型*/intdigitsec(double);/*将double型的秒钟数转换成int型*/voiddigitclock(int,int,int);/*在指定位置显示时钟或分钟或秒钟数*/voiddrawcursor(int);/*绘制一个光标*/voidclearcursor(int);/*消除前一个光标*/voidclockhandle();/*时钟处理*/doubleh,m,s;/*全局变量:小时,分,秒*/doublex,x1,x2,y,y1,y2;/*全局变量:坐标值*/structtimet[1];/*定义一个time结构类型的数组*/main(){intdriver,mode=0,i,j;driver=DETECT;/*自动检测显示设备*/initgraph(&driver,&mode,"");/*初始化图形系统*/setlinestyle(0,0,3);/*设置当前画线宽度和类型:设置三点宽实线*/setbkcolor(0);/*用调色板设置当前背景颜色*/setcolor(9);/*设置当前画线颜色*/line(82,430,558,430);line(70,62,70,418);line(82,50,558,50);line(570,62,570,418);line(70,62,570,62);line(76,56,297,56);line(340,56,564,56);/*画主体框架的边直线*//*arc(intx,inty,intstangle,intendangle,intradius)*/arc(82,62,90,180,12);arc(558,62,0,90,12);setlinestyle(0,0,3);arc(82,418,180,279,12);setlinestyle(0,0,3);arc(558,418,270,360,12);/*画主体框架的边角弧线*/setcolor(15);outtextxy(300,53,"CLOCK");/*显示标题*/setcolor(7);rectangle(342,72,560,360);/*画一个矩形,作为时钟的框架*/setwritemode(0);/*规定画线的方式。
mode=0,则表示画线时将所画位置的原来信息覆盖*/setcolor(15);outtextxy(433,75,"CLOCK");/*时钟的标题*/setcolor(7);line(392,310,510,310);line(392,330,510,330);arc(392,320,90,270,10);arc(510,320,270,90,10);/*绘制电子动画时钟下的数字时钟的边框架*//*绘制数字时钟的时分秒的分隔符*/setcolor(5);for(i=431;i<=470;i+=39)for(j=317;j<=324;j+=7){setlinestyle(0,0,3);circle(i,j,1);/*以(i,y)为圆心,1为半径画圆*/}setcolor(15);line(424,315,424,325);/*在运行电子时钟前先画一个光标*//*绘制表示小时的圆点*/for(i=0,m=0,h=0;i<=11;i++,h++){x=100*sin(
2023/8/25 8:11:27 142KB c语言实现电子时钟 课程设计
1
分页视图左右分页滑动列表组件示例PageView{id:pvwidth:300height:200Rectangle{width:pv.width;height:pv.height;color:'red'}Rectangle{width:pv.width;height:pv.height;color:'green'}Rectangle{width:pv.width;height:pv.height;color:'blue'}}Author:surfsky.cnblogs.com2014-12Lisence:MIT请保留此段声明
2023/5/15 20:04:48 23KB qml pageview 左右滑动 分页
1
共 16 条记录 首页 上一页 下一页 尾页
在日常工作中,钉钉打卡成了我生活中不可或缺的一部分。然而,有时候这个看似简单的任务却给我带来了不少烦恼。 每天早晚,我总是得牢记打开钉钉应用,点击"工作台",再找到"考勤打卡"进行签到。有时候因为工作忙碌,会忘记打卡,导致考勤异常,影响当月的工作评价。而且,由于我使用的是苹果手机,有时候系统更新后,钉钉的某些功能会出现异常,使得打卡变得更加麻烦。 另外,我的家人使用的是安卓手机,他们也经常抱怨钉钉打卡的繁琐。尤其是对于那些不太熟悉手机操作的长辈来说,每次打卡都是一次挑战。他们总是担心自己会操作失误,导致打卡失败。 为了解决这些烦恼,我开始思考是否可以通过编写一个全自动化脚本来实现钉钉打卡。经过一段时间的摸索和学习,我终于成功编写出了一个适用于苹果和安卓系统的钉钉打卡脚本。
2024-04-09 15:03 15KB 钉钉 钉钉打卡