C语言之计算器软件设计

时间:2019-05-14 05:37:51下载本文作者:会员上传
简介:写写帮文库小编为你整理了多篇相关的《C语言之计算器软件设计》,但愿对你工作学习有帮助,当然你在写写帮文库还可以找到更多《C语言之计算器软件设计》。

第一篇:C语言之计算器软件设计

题目计算器软件设计

一、设计要求

用C语言设计出模拟计算器软件,实现计算器的功能。

二、设计内容

1.基本要求:

(1)图形显示方式,在DOS环境下画出计算器的图形,能够用鼠标实现操作,能够进行简单的数学计算。

2.提高要求:

(1)能够实现键盘和鼠标两种输入方式。

(2)能够保存计算结果。

(3)能够处理括号等运算符。

(4)学生可自动增加新功能模块(视情况可另外加分)。

3.设计报告:

1)写出主要设计思路,图形方式和文本方式的工作原理;

2)画出程序流程图;

3)调试出现的问题及解决方法;

4)提交程序清单。

三、编程重点、难点提示

1.DOS环境下的图形初始化。

2.DOS环境下鼠标的使用方法。1.MOUSE.COM文件; 2.鼠标初始化;

击。

联系方式:谭顺华

电话:6088222,***(V网:61025)

QQ:182986843.数字的显示方法。3.鼠标事件的获取,包括鼠标的位置(X,Y),左键或右件,单击或双

第二篇:c语言简单计算器

C语言小程序之简单计算器实现简单四则运算

/*

时间:2013年7月7日

功能:实现简单计算器四则运算功能 */

# include

//# include

int main(void)

{

float a,b,result;

char sym;

int i;

A: scanf(“%f%c%f”, &a, &sym, &b);//输入算式

switch(sym)//判断符号并运算

{

case '+' : result = a + b;break;

case '-' : result = a-b;break;

case '*' : result = a * b;break;

case '/' : result = a / b;break;

default : printf(“输入有误!”);break;}

printf(“%f%c%f=%fn”, a, sym, b, result);goto A;//循环继续

return 0;

}

/*

运行结果:

*/

第三篇:软件设计辞职报告

软件程序员是一个工作压力非常大的职业,下面就是小编为您收集整理的软件设计辞职报告的相关文章,希望可以帮到您,如果你觉得不错的话可以分享给更多小伙伴哦!

软件设计辞职报告一

尊敬的领导:

您好!

在经过我长时间的考虑之后,结合我自身的实际情况,我不得不作出辞职申请,因为很多的实际情况,我已经无法继续在公司中工作下去,这些是我不愿意看到的,也是领导不愿意看到的。可是现实就是这样,谁也无法左右,我感到十分的无奈,我会牢记我在今公司中工作的过去的。

入职以后先后在宽带无线接入和gbss维护开发部门工作,xx年年2月正式转正。转正成绩为c。以后的工作中表现正常,两次季度考核都获得c。由于个人的从业经历和专业的问题,对无线产品没有知识积累,但是在工作中我努力学习,积极请教,能够完成公司交给我的任务。

在职期间两个部门的主管对我的生活和工作都非常的关心,经常进行思想交流和技术点拨,使我受益很大,感谢领导们的关心。辞职主要原因是我自身的问题,无法适应目前的工作压力,精神上和身体上已经不勘重负。另一个原因是在华为入职以来一直找不到自己的位置,无法给自己定位。海外的生活使我感觉自己的性格特点和思维方式无法适应华为海外团队的文化。

出于保护自己的目的,特向您提出辞职申请。希望早日回到国内,完成离职手续,有时间调整自己的身体状态和精神状态。我想我会在调养好自己的身体之后,继续不断的努力工作下去的。可是现在的情况是我已经无法继续高质量完成公司的工作了,我只好选择离开,我在今后的工作中一定会更好的工作下去的。前提是我一定要养好自己的身体,我坚信自己能够走好!

请对我个人给予充分的谅解,并批准我的辞职申请,谢谢。

软件设计辞职报告二

尊敬的××领导:

当我在凌晨三点读到这段话时,心里面感慨万千,久不能眠。于是我打开Notebook,给您写了这封辞呈。

去年底开始,去与留这二字,在我心里一直反复。直到我想到了这句话“当您在很难作出选择的时候,您必须尊重发自你内心的声音”。当初进入公司时您对我的满怀期许。而我自持在外企呆过,做事条理清晰,对自已充满信心,看不到自已的短处。想起这些至今令我汗颜。

记得当时我在工作上遇到困难与挫折,我与我夫人商量准备离开公司时。我夫人一句意味深长的话让我留了下来。她说:“您先呆着看看,有的时候坏事它也末必是坏事”。我现在得感激她,因为现在看来,她的话是对的。是她的这句话,使我在工作之余每天都在反省自已的不足之处,并想办法加以弥补。我终于明白了一个道理,一个人在反省中不断完善和超越自我是多么的重要。

IT是一个技术性很强的行业,个人曾经历过一个又一个开发工具从受到大家的追捧到被冷落。最后我发现,我应抓住其中的一些基础的,和永恒的不变因素,即便人人都有权力去选择他感兴趣的部分。因此我努力的找到了自已的兴趣与擅长。并不断努力的学习。

在这三年的工作时间里曾经有过的激情,迷惘,彷徨,和温暖,感悟,奋进。父亲交给我的坚毅,诚实的心态使我在这些过程中坚难的走了过来,并在工作中,生活中不断的修正自已,努力的提高自已的认识。我也并因此而重拾生活的信心。

回首过去,当我想到要有足够的胸怀来接受你不能改变的事情,要有足够的勇气来改变你能改变的事情,要有足够的智慧来区分二者的不同.时,我恍然大悟,原来是因为自已的胸怀不够.人生无法重来,但是可以随时重新来,我有选择的权力.....曾记起研究开发部的朝气,热情。技术工程部的和谐,沉稳,责任。这些都给我留下难以磨灭的印象,它已深深的印在我的脑海里,也必将让我时常想起一起共事过的各位同仁。

最后我发自内心地——

感谢和一起工作过的同仁,我曾经和他们度过了一段非常快乐的,令我难忘的时光。

感谢您这几年来对我的厚爱,对我自身存在缺点的包容,以及对我在工作中所犯错误的指正。您那颗正直的心,满怀激情的人生态度、宽广的胸怀、机敏的处事方式、必将令我受用终身。

也正因此,我祝愿您,您也必将用您的智慧引领公司走向一个更加高远的,全新的末来。

×× 敬上

第四篇:c语言简单的计算器源代码

1.简单的计算器 #include

void main()

{

float calculator(float a,float b,char c);float a,b,d;char c;

printf(“请输入加数和运算符号n”);scanf(“%f,%f,%c”,&a,&b,&c);d=calculator(a,b,c);

printf(“%f”,d);

}

float calculator(float a,float b,char c){

float d;

switch(c)

{

case '+':d=a+b;return(d);break;case '-':d=a-b;return(d);break;case '*':d=a*b;return(d);break;case '/':d=a/b;return(d);break;default:printf(“errorn”);

}

}

第五篇:3D游戏软件设计

注:“★考核知识点”后面的标注内容在PPT中均有对应章节,因PPT序号混乱,不在考核知识点后一一罗列,请在PPT中查找。

一、客观部分:(单项选择、多项选择、不定项选择、判断)

(一)、选择部分

(1)OPenGL常用的库里面,属于核心库的是()

A GL B GLU C GLAUX DGLUT ★考核知识点: OpenGL概述

(2)OPenGL渲染流水中,对光栅化描述正确的是()

A 把顶点变换成图元

B 把几何数据和像素数据转换为片断的过程。它将几何数据转换成片元,片元和要显示的像素一一对应

C OpenGL应用程序可以在几何物体上应用纹理图像,使它们看上去更为逼真D主要的内容就是裁剪,它的任务是消除位于半空间之外的那部分几何图元。在某些情况下,还要进行透视除法,用以得到归一化的设备坐标

★考核知识点: OpenGL概述

(3)下面对于OpenGL特点描述正确的有()

A标准支持灵活,可以用软件例程实现也可以使用软硬件组合使用 B具有灵活的伸缩性

C提供了一套良好的功能扩充机制,并且各个版本向后兼容 D跨平台,在科研和教学上是主流

★考核知识点: OpenGL概述

(4)1992年7月,SGI公司发布了OpenGL的1.0版本,随后又与微软公司共同开发了NT版本的OpenGL,从而使一些原来必须在高档图形工作站上运行的大型3D图形处理软件也可以在微机上运用()

★考核知识点: OpenGL概述

(5)OpenGL(开放性图形库Open Graphics Library):是图形硬件的一种软件接口()

★考核知识点: OpenGL概述

(6)()是用于定义构成物体的三角形单元列表的坐标系。

A 观察坐标系B世界坐标系C本地坐标系D转换坐标系

★考核知识点: 状态管理和绘制几何物体

(7)glBegin()函数的意义是()A标志着程序的执行的开始 B标志着一个顶点数据列表的开始 C标志着OpenGL的绘制操作的开始 D标志着当前函数的开始

★考核知识点: 状态管理和绘制几何物体

(8)在win32程序中,主函数是从哪里进入执行的()

A GLMain B WinMain C Begin Dmain ★考核知识点: 状态管理和绘制几何物体

(9)OpenGL中在颜色索引模式下使用的用于选择单值索引的函数是()。A glIndex BglClampColor C glClear D glColor3f ★考核知识点: 颜色渲染和纹理贴图(10)下列哪个颜色不属于三原色()A红 B蓝 C绿D白

★考核知识点: 颜色渲染和纹理贴图

(11)OpenGL的光照模型根据材料反射的红、绿和蓝光的比例来模拟它的颜色。当一个纯红的球体,如果给球体仅仅投上绿色的光线,那么看起来球的颜色会是黑色()

★考核知识点: 颜色渲染和纹理贴图

A(0,0,0)B(255,0,255)C(255,255,255)D(1,1,1)(12)用函数glColor3i()函数设置的黑色的颜色值为()

★考核知识点: 颜色渲染和纹理贴图

(13)OpenGL中光照模型,被物体表面均匀的反射。即使光是被均匀的反射回去的,它直射的物体表面比从某个角度照射过来时要亮()

A环境光B散射光C镜面光D发射光

★考核知识点:环境光、散射光、镜面光、发射光

(14)OpenGL中如何判断一个点接收了光源的多少光线()

A通过距离光源的距离进行计算 B通过法线相对光源的方向进行计算 C通过物体的颜色值进行计算

D通过物体和光源的颜色值的综合考虑进行计算

★考核知识点:光照

(15)OpenGL提供了最大数目为N的单场景内光照光源模型,N为()

A 1 B 8 C 16

D不限制,只要为2的幂就可以了

★考核知识点:光照

(16)OpenGL光照模型中,有一种会将光源强烈的反射到了另外一个特定的方向。高亮 A镜面光B聚光灯光C环境光D发射光 度的光柱往往能在被照射的物体上产生称之为亮斑的亮点()

★考核知识点:光照

(17)OpenGL光照模型中,表面的发射颜色可以增加物体的强度,但是他们不受任何★考核知识点:光照 光源的影响,在整个场景中,并没有作为一种额外的光照()(18)设置光源位置时,当我们的光源坐标位置(x,y,z,w)中的w为0时代表我们的光为平行光源()

★考核知识点:光照

(19)OpenGL一个场景中至多可以在包含16个光源()

★考核知识点:光照

(20)用函数glColor3i()函数设置的黑色的颜色值为()

★考核知识点:绘制像素、位图字体和图像

(21)像素数据从可以开始从缓冲区读取到内存然后把像素数据从内存写入到帧缓冲最后在帧缓冲内部复制像素数据()

★考核知识点:绘制像素、位图字体和图像

(22)以下哪个函数可以设置当前的光栅位置()

A glTranslatef()B glRasterPos()C glRotatef()D glDrawPos()★考核知识点:绘制像素、位图字体和图像

(23)在绘制几何图形之时,我们可以使用glColor*()函数去设置当前颜色或者当前颜色索引()

★考核知识点:绘制像素、位图字体和图像

(24)在设置了光栅位置之后,我们可以使用glBitmap函数来绘制数据()

★考核知识点:绘制像素、位图字体和图像

(25)void glRasterPos2*(type x,type y);用于设置位图的绘制位置。()

★考核知识点:绘制像素、位图字体和图像

(26)glCopyPixels的像素路径包括()

A像素传输操作B基于片断的操作C在帧缓冲区暂存D光栅化操作

★考核知识点:绘制像素、位图字体和图像

(27)当我们的源和目标的alpha值都为0.35时,当使用函数glBlendFunc(GL_SRC_ALPHA,GL_ONE_MINUS_SRC_ALPHA)进行像素混合,得出的结果描述正确的是?()

A源和目标混合效果相同 B混合色更接近源 C混合色更接近目标 D无法判断

★考核知识点:混合抗锯齿雾多边形偏移

(28)启动混合后,如果绿色物体和一个红色物体用glBlendFunc(GL_ONE,GL_ONE)方式混合后,结果的混合部分的颜色为(D)A红色B绿色C白色D黄色

★考核知识点:混合抗锯齿雾多边形偏移

(29)图形学中称由于采样频率不足而造成的失真为走样,反走样通过多重采样改善图形锯齿效果()

★考核知识点:混合抗锯齿雾多边形偏移

(30)如果不进行混和操作,每个新的片元都被OpenGL当成是不透明的,覆盖掉帧缓存已存在的颜色值。()

★考核知识点:混合抗锯齿雾多边形偏移

(31)颜色定义中RGBA的A是alpha值,alpha值的作用是将已处理过的片元颜色值与存储在帧缓存中的像素颜色结合起来()

★考核知识点:混合抗锯齿雾多边形偏移

(32)当前属于颜色索引模式时,我们可以进行的操作有()。

A实现颜色混和操作B实现透明效果C实现颜色叠加D实现颜色渐变效果

★考核知识点:混合抗锯齿雾多边形偏移

(33)void glBlendFunc(Glenumafactor,Glenumbfactor)

其中参数afactor和参数bfactor分别用于指定源和目标的混合因子()

★考核知识点:混合抗锯齿雾多边形偏移

(34)颜色混合方程中,GL_FUNC_ADD实现的功能是()

A CsS+CdD B CsS-CcD C min(CsS,CdD)D max(CsS,CdD)★考核知识点:混合抗锯齿雾多边形偏移

(35)开启颜色混合的函数方式为()

A GL_BLEND B GL_BLENDING C GL_RENDER D GL_ENABLEBLEND ★考核知识点:混合抗锯齿雾多边形偏移

(36)一个矢量加上一个矢量结果为()

A一个矢量 B一个标量

C如果为零则不是矢量,其它情况下皆为矢量 D以上说法都不对

★考核知识点:图形变换的数学基础

(37)两个矢量之间的点乘结果为()

A一个矢量 B一个标量

C如果为零则不是矢量,其它情况下皆为矢量 D以上说法都不对

★考核知识点:图形变换的数学基础

(38)glLoadIdentity()函数对于4×4矩阵操作结果为()

A [0,0,0,0;0,0,0,0;0,0,0,0;0,0,0,0] B1,1,1,1;1,1,1,1;1,1,1,1;1,1,1,1] C[1,0,0,1;0,1,0,1;0,0,1,1;0,0,0,1] D[1,0,0,0;0,1,0,0;0,0,1,0;0,0,0,1] ★考核知识点:图形变换的数学基础

(39)我们在使用定义视口函数 glViewport 中,第三个参数有什么作用()

A描述视口的距离屏幕最左位置 B描述视口的距离屏幕最上位置 C描述视口的高度 D描述视口的宽度

★考核知识点:图形变换的数学基础

(40)通过矩阵[sx,0;0,sy]对二维的不经过原点的图元进行缩放变换,有可能得到的结果为()

A图元相对原点的位置变化了 B图元自身尺寸变化了

C图元可以只发生旋转,相对原点位置没有移动 D图元自身发生了旋转

★考核知识点:图形变换的数学基础

(41)从物体坐标到屏幕坐标的显示流程中我们必须要经过的经典的变换流水包()

A世界坐标系内地变换 B对窗口的裁剪操作 C窗口到视口的变换 D对模型进行坐标进行变换

★考核知识点:OpenGL的视图变换

(42)函数void gluPerspective(Param1,Param2,Param3,Param4)中,标示近裁剪面的是哪个参数()

A Param1 BParam2 C Param3 D Param4 ★考核知识点:OpenGL的视图变换

(43)哪些变换分别用于设定物体在世界坐标系中的位置、方向以及模型大小。()

A平移变换B旋转变换C缩放变换D投影变换

★考核知识点:OpenGL的视图变换

(44)()变换后的的几何体位于观察坐标系中。

A局部变换B取景变换C世界变换D空间变换 ★考核知识点:OpenGL的视图变换

(45)投影变换包括哪几种投影方式。()

A平面投影B透视投影C正射投影D缩放投影

★考核知识点:OpenGL的视图变换

(46)下对函数gluLookAt(0,0,0, 0,0,-3,1,0,0)描述正确的是

A观察点在原点(AD)B正方向为z轴负方向 C观察方向指向z轴正方向 D正方向为x轴正方向

★考核知识点:OpenGL的视图变换

(47)glRotatef(fRot,1,1,0)描述先按照X轴旋转fRot,接着绕Y轴旋转fRot()

★考核知识点:OpenGL的视图变换

(48)在OpenGL中如果要实现运动模糊效果,需要借助以下哪个缓冲区()

A深度缓冲区B帧缓冲区C模版缓冲区D积累缓冲区

★考核知识点:帧缓冲区

(49)当前程序的状态处于常规的绘图模式,那么接下来使用下列哪些函数可以退出当前绘图模式()

A glRender(GL_FEEDBACK);B glRender(GL_SELECT);C glEnd();D glBegin(GL_TRIANGLES)★考核知识点:帧缓冲区

(50)雾化效果在颜色索引模式下是不可用的()

★考核知识点:帧缓冲区

(51)如果我们需要使用OpenGL进行3维点选操作,那么可以通过函数glRenderMode()指定()进入选择模式

A GL_FEEDBACK BGL_SELECT C GL_PEEK D GL_MODEVIEW ★考核知识点:帧缓冲区

(52)OpenGL中如果锁住了深度缓冲区,那么所有的物体的深度就无法测试了,物体只是根据绘制的先后相互覆盖了()

★考核知识点:帧缓冲区

(53)绘制球体,我们使用函数:

void gluSphere(GLUquadricObj *obj,Gldoubleradius,Glintslices,Glint stacks);()

下面,我们对参数描述正确的选项有()A slice代表的就是经线的数目 B stacks参数代表的就是纬线的数目 C slice参数代表的就是纬线的数目 D stacks代表的就是经线的数目

★考核知识点:分割化和二次方程表面

(54)OpenGL中我们需要完成对NURBS对象的销毁,调用的函数是gluDeleteNurbsRenderer()

★考核知识点:分割化和二次方程表面

(55)常见的纹理寻址模式有()A重叠纹理寻址模式B镜像纹理寻址模式 C钳位纹理寻址模式D边界颜色纹理寻址模式

★考核知识点:分割化和二次方程表面

(56)gluQuadricDrawStyle 函数选择用于绘制几何形状的图元类型。系统默认的类型是使用三角条状图元来填充所要绘制的几何形状,填充模式默认为 A GLU_LINE B GL_FILL C GLU_SILHOUETTE D GLU_POINT ★考核知识点:分割化和二次方程表面

(57)绘制球体,我们使用函数:

void gluSphere(GLUquadricObj *obj,Gldoubleradius,Glintslices,Glint stacks);下面,我们对参数描述正确的选项有()

A slice代表的就是经线的数目 B stacks参数代表的就是纬线的数目 C slice参数代表的就是纬线的数目 D stacks代表的就是经线的数目

★考核知识点:求值器和NURBS(58)我们的B样条曲线(三次)和与贝塞尔曲线很相似,不同之处是此曲线会分解成很多的小段。每个给定段的形状都仅受到最近4个控制点的影响()

★考核知识点:求值器和NURBS(59)我们的B样条曲线(三次)和与贝塞尔曲线很相似,不同之处是此曲线会分解成很多的小段。每个给定段的形状都仅受到最近4个控制点的影响()

★考核知识点:求值器和NURBS(60)()是Direct3D用来存储绘制到屏幕上的每个像素点深度信息的一块内存缓冲区

A 广度缓存 B 深度缓存 C 深度测试 D 广度测试

★考核知识点:求值器和NURBS(61)OpenGL中我们需要完成对NURBS对象的销毁,调用的函数是gluDeleteNurbsRenderer()

★考核知识点:求值器和NURBS(62)纹理阶段混合状态用于指定当前纹理颜色值和Alpha值的混合方法()

★考核知识点:求值器和NURBS(63)通常情况下,深度缓存用于判断三维空间中物体的遮挡情况()

★考核知识点:求值器和NURBS(64)设置深度缓存是指设置深度测试成功时对深度缓存如何操作()

★考核知识点:求值器和NURBS(65)图形学中称由于采样频率不足而造成的失真为走样,反走样通过多重采样改善图形锯齿效果()

★考核知识点:求值器和NURBS(66)渲染后物体模型通常是由三角形图元组成的,我们称它为一个Mesh结构()

★考核知识点:求值器和NURBS(67)若要从缓存中只读不写数据,就不需要锁定缓存,用完后解锁()(68)如果我们需要使用OpenGL进行3维点选操作,那么可以通过函数glRenderMode()指定GL_SELECT,进入选择模式()

(69)在执行用于操纵名字堆栈的函数或调用glRenderMode()函数之后,如果出现了一次点击,OpenGL就会在选择数组中写入一个点击记录,所以,如果共享相同的名称对象,不会产生多条点击记录。()(70)在点击发生时,名字堆栈的内容从()的元素开始。A最顶部B上一个操作的位置C最底部D任意

(71)如果我们需要使用OpenGL进行3维点选操作,那么可以通过函数glRenderMode()指定GL_SELECT,进入选择模式()

(72)进行点选操作后,假设当前的选择缓冲区为pSelectBuff,那么其中的pSelectBuff[0]的值得含义是()

A自上一个点击记录之后,与视景体相交的图元的所有顶点的最小窗口坐标的z值 B自上一个点击记录之后,与视景体相交的图元的所有顶点的最大窗口坐标的z值 C点击发生时名字堆栈的内容 D名字堆栈中压入的名字数

(73)OpenGL中如果锁住了深度缓冲区,那么所有的物体的深度就无法测试了,物体只是根据绘制的先后相互覆盖了()

★考核知识点:选择和反馈

(74)名字堆栈形成了返回选择信息的基础,如果此时我们需要使用某个名称来替换名字堆栈顶部的元素,可以使用函数为()

A void glInitNames(void);B void glPushName(GLuint name);C void glPopName(void);D void glLoadName(Gluint name);★考核知识点:选择和反馈

(75)选择返回功能函数:

void glSelectBuffer(Glsizeisize,Gluint *buffer)对函数描述正确的是()A buffer参数指向的数组用于存放选择数据

B buffer参数指向的数组仅仅用于存放选择的物体ID C size表示这个数组可以存储单个数据的大小 D size表示这个数组可以存储的最大值

★考核知识点:选择和反馈

(76)用glSelectBuffer()函数指定用于返回点击记录的数组()

★考核知识点:选择和反馈

(77)使用函数 void gluPickMatrix(Gldoublex,Gldoubley,Gldoublewidth,Gldoubleheight,Glint viewport[4]);选择的挑选区域的中心是()A 世界坐标B窗口坐标C物体坐标D可以任意指定

★考核知识点:选择和反馈

(78)由于粒子之间的碰撞计算量很大并且对于大多数模拟来说没有必要,所以我们很少使用粒子之间的碰撞。()

★考核知识点:粒子系统

(79)粒子(Particle)是一种微小的物体,在数学上通常用点来表示其模型,所以显示和表示粒子时,我们通常使用点结构来描述。()

★考核知识点:粒子系统

(80)以下可以通过常见的粒子系统实现的是()A雪花B下雨C喷泉喷水D金属车漆效果

★考核知识点:粒子系统

(81)如果有两束光进入人眼,他们的成分为(R1,G1,B1)和(R2,G2,B2)那么叠加在一起的时候,如果蓝色分量超出1了,那么最后的叠加结果为()

A(R1, R2,1)B(R1+R2, R1+R2,1-R1-R2)C(R1+R2, R1+R2,1)D(R1, R2, 1-R1-R2)★考核知识点:混合效果

(82)Alpha分量主要是用来指定像素的混合计算比例的()

★考核知识点:混合效果

(83)D3DCOLORVALUE结构体中包含r、g、b和a4个分量,表示物体表面对各种反射光的各种成分的反射比率。r=0.0 g=b=a=1.0;r=g=0.0。此时红光和蓝光照射过来,只有蓝光被反射,即材质看上去为蓝色()

★考核知识点:混合效果

(84)OpenGL的光照模型根据材料反射的红、绿和蓝光的比例来模拟它的颜色。当一个纯红的球体,如果给球体仅仅投上绿色的光线,那么看起来球的颜色会是()A红色B绿色C白色D黑色

★考核知识点:混合效果

(85)平面着色模式,所有像素的Alpha值都大于等于该多边形的第一个顶点的Alpha值()

★考核知识点:混合效果

(86)像素的Alpha值就是用来做纹理Alpha混合时进行加权计算的的权值()

★考核知识点:混合效果

(87)Alpha测试并不把当前像素的颜色与颜色缓冲中像素的颜色混合,像素要么完全不透明,要么完全透明()

★考核知识点:混合效果

(88)OpenGL中指定源混和因子和目标混和因子的函数:

void glBlendFunc(Glenumafactor,Glenumbfactor)描述正确的是()A其中参数afactor和参数用于指定源混合因子 B其中参数bfactor用于指定目标的混合因子 C其中参数afactor用于指定目标的混合因子 D其中参数bfactorb用于指定源的混合因子

★考核知识点:混合效果

(89)常见的纹理寻址模式有()

A重叠纹理寻址模式B镜像纹理寻址模式C钳位纹理寻址模式D边界颜色纹理寻址模式

★考核知识点:纹理的高级技巧

(90)通过矩阵[sx,0;0,sy]对二维的不经过原点的图元进行缩放变换,有可能得到的结果为 A图元相对原点的位置变化了()B图元自身尺寸变化了

C图元可以只发生旋转,相对原点位置没有移动 D图元自身发生了旋转

★考核知识点:纹理的高级技巧

(91)创建一个矩形图元255*255,它的大小恰好与纹理图中纹理的大小一样,要映射整个图元面积,分配给图元纹理坐标为().A(0.0,0.0)(1.0,0.0)(1.0,1.0)(0.0,1.0)B(0.0,0.0)(255.0,0.0)(255.0,255.0)(0.0,255.0)C(0.0,0.0)(0.0,1.0)(1.0,0.0)(1.0,1.0)D(0.0,0.0)(0.0,255.0)(255.0,0.0)(255.0,255.0)★考核知识点:纹理的高级技巧

(92)三维纹理图像可以看成是由一层一层的二维子图像矩阵构成的,在内存中,这些矩形按顺序排列在一起。()

★考核知识点:纹理的高级技巧(93)对函数void glTexImage3D(Glenum target, Glint level,GlintinternalFormat ,Glsizeiwidth,Glsizeiheight,Glsizeidepth,Glintborder,Glenumformat,Glenum type, constGlvoid * texels);参数描述正确的是()A level是纹理目标在内存中的优先级 Blevel是mipmap细节层的序号 C level描述了纹理的强度程度 D描述了纹理的有效值取值范围

★考核知识点:纹理的高级技巧

(94)glCopyPixels()函数,但是并不把像素读到缓冲区,而是放在纹理内存中()

★考核知识点:纹理的高级技巧

(95)对OpenGL实现的Mipmap描述正确的是()

A它必须根据被贴图的物体的大小手动的确定应该使用哪个纹理 B它会根据被贴图的物体的大小自动确定应该使用哪个纹理 C Mipmap不需要一些额外的计算

D Mipmap并不需要额外的一些纹理存储区域

★考核知识点:纹理的高级技巧

(96)glPixelStore*()函数可以用于设置像素存储模式,使用诸如*ROW_LENGTH、*ALIGNMENT、*SKIP_PIXELS和*SKIP_ROWS这样的参数。这个函数用于控制对一个完整的像素或纹理单元矩形的一个子矩形的引用()

★考核知识点:纹理的高级技巧

(97)一个带有纹理图像的物体迅速的远离观察点而去时,纹理图像必须随必须被投影的图像一起缩小。为了避免闪烁抖动等人工痕迹,可以指定一系列预先过滤的分辨率递减的纹理图像称为()

A Vertex Shader B mipmap C HLSL D Cg ★考核知识点:纹理的高级技巧

(98)void glTexParameteri 第三个参数类型为GL_CLAMP描述正确的是

A将大于1.0的数值设置为1.0,将超出[0.0,1.0]范围的数值截取到[0.0,1.0]范围内 B这样会导致纹理边缘的重复 C将小于0.0的数值设置为0.0 D图象在物体表面上不断重复,但是每次重复的时候对图象进行镜像或者反转(99)纹理坐标比一定非要在RGBA模式下才可以能使用()

★考核知识点:纹理的高级技巧

(100)void glTexParameteri 第三个参数类型为GL_REPEAT描述正确的是A A图象在表面上重复出现

B自动将超出[0.0,1.0]范围的数值截取到[0.0,1.0]范围内

C图象在物体表面上不断重复,但是每次重复的时候对图象进行镜像或者反转 D这样的模式在纹理边缘处比较连贯

★考核知识点:纹理的高级技巧

(101)对函数glTexParameteri边界截取类型描述正确的是()

A GL_CLAMP_TO_EDGE B CLAMP_TO_BORDER_ARB C GL_REPEAT D GL_CLAMP ★考核知识点:纹理的高级技巧

二、主观部分:(程序设计,简答题)

1关于现实字体的一段程序如下,运行截图如下,现有若干空缺,请完成填空。

我们完成创建字体的功能函数CreateFont()如下:

HFONT hFont;HFONT hOldFont;iBase=glGenLists(256);hFont=CreateFont(-24, 0, 0, 0,//高度 //宽度 //旋转角度 //定位角 //字宽设置 FW_BOLD, FALSE, FALSE, FALSE, ANSI_CHARSET, OUT_TT_PRECIS,CLIP_DEFAULT_PRECIS, ANTIALIASED_QUALITY, FF_DONTCARE|DEFAULT_PITCH, “Courier New”);

//使用字体名称为Courier New //保存之前的字体

hOldFont=(HFONT)SelectObject(hdc,hFont);//从系统下载的字体文件中生成这些位图

wglUseFontOutlines(hdc,32,96,iBase,0.0,0.2f,WGL_FONT_POLYGONS,gmf);//还原设备句柄为hdc,还原原来的字体类型 SelectObject(hdc,hOldFont);//释放资源

DeleteObject(hFont);2.关于二次曲面的一段程序如下,运行截图如下,现有若干空缺,请完成填空。

我们生成二次曲面的功能函数如下: //二次曲面的生成状态 GLUquadric *Quadric;//创建一个二次方程对象,指定这个二次方程对象的属性 Quadric = gluNewQuadric();//自动为二次表面生成纹理坐标 gluQuadricTexture(Quadric,GL_TRUE);//显示灯的列表 iLamp = glGenLists(1);glNewList(iLamp,GL_COMPILE);//激活纹理0地板的纹理

glBindTexture(GL_TEXTURE_2D,texture[2]);//绑定纹理

glBindTexture(GL_TEXTURE_2D,texture[2]);

2.如下一段程序,运行完成加载纹理的功能,现在有若干空缺,请根据上下文完成填写。

程序截图1 LoadTexture(){);

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MIN_FILTER,GL_LINEAR_MIPMAP_LINEAR

glPixelStorei(GL_UNPACK_ALIGNMENT,4);//绑定纹理

glBindTexture(GL_TEXTURE_2D,m_nBodyTex);

glTexParameteri(GL_TEXTURE_2D,GL_TEXTURE_MAG_FILTER,GL_LINEAR);//BMP文件的handle HBITMAP hBMP;//存储BMP的数据结构 BITMAP BMP;byte Texture[1]={IDB_MISSILE};//产生三个纹理

glGenTextures(1,&m_nBodyTex);hBMP=(HBITMAP)LoadImage(GetModuleHandle(NULL),MAKEINTRESOURCE(Texture[0]),IMAGE_BITMAP,0, 0, LR_CREATEDIBSECTION);

if(hBMP){ GetObject(hBMP,sizeof(BMP),&BMP);

//构建二维Mipmap gluBuild2DMipmaps(GL_TEXTURE_2D,3,BMP.bmWidth,BMP.bmHeight,GL_BGR_EXT, GL_UNSIGNED_BYTE, BMP.bmBits);//删除位图资源

}

3.如下一段程序,运行完成物体颜色和材质属性相关功能,现在有若干空缺,请根据上下文完成填写。DeleteObject(hBMP);

}//if

程序截图1 在进行光照和材质相关的计算时,需要先进行必要设置操作,我们需要进行如下操作:

{ glClearColor(1.0,1.0,1.0,1.0);voidInitScene()

//设置明暗处理模型 glShadeModel(GL_SMOOTH);//glShadeModel(GL_FLAT);//开启深度测试

glEnable(GL_DEPTH_TEST);glDepthFunc(GL_LEQUAL);glClearColor(0.0f,0.0f,0.0f,0.0f);glClearDepth(1.0f);//使光源生效

glEnable(GL_LIGHTING);//设置环境光

GLfloatambientLignt[]={0.8,0.7,0.9,1.0};glLightModelfv(GL_LIGHT_MODEL_AMBIENT,ambientLignt);//设置材料属性,自身的反光属性 GLfloatShininess[]={80.0};//镜面强度,白色

GLfloatSpecular[]={1.0,1.0,1.0,1.0};//设置材质颜色属性

GLfloatMatColor[]={0.9,0.9,0.9,1.0};//光源位置

GLfloatPostion[]={1.0,1.0,1.0,0};//具体设置GL_FRONT_AND_BACK

//GL_FLAT

glMaterialfv(GL_FRONT,GL_SPECULAR,Specular);glMaterialfv(GL_FRONT,GL_SHININESS,Shininess);//设置光照模型

glLightfv(GL_LIGHT0,GL_POSITION,Postion);//给光源设置位置*/ glLightfv(GL_LIGHT0,GL_SPECULAR,MatColor);//给镜面光设置颜色 glLightfv(GL_LIGHT0,GL_DIFFUSE,MatColor);//设置漫反射颜色 //开启光照特征 glEnable(GL_LIGHT0);

}//endfnc 4.如下一段程序,运行完成雾化功能,现在有若干空缺,请根据上下文完成填写。

程序截图1 { //Get FPS void DrawScene()if(GetTickCount()-g_dwLastFPS >= 1000)

glClear(GL_COLOR_BUFFER_BIT);glLoadIdentity();//设置位图

glPixelTransferf(GL_RED_SCALE, 1.0);{

g_dwLastFPS = GetTickCount();

char szTitle[256]={0};

sprintf(szTitle, “ Current %d FPS”, g_nFrames);SetWindowText(hwnd, szTitle);g_nFrames = 0;

}//if g_nFrames++;*/ glPixelTransferf(GL_GREEN_SCALE, 0.0);glPixelTransferf(GL_BLUE_SCALE, 0.0);glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);glEnable(GL_BLEND);glFlush();}//endfnc //初始化操作

五、简答题(共15 分)

关于构建一个立体曲面的程序有如下截图,程序有部分功能空缺,请完成

//渲染场景 void DrawScene(){ //调用显示列表进行渲染

glCallList(drawlist);if(showCPoints){

//禁止纹理

glDisable(GL_TEXTURE_2D);

glColor3f(1.0f,0.0f,0.0f);

for(i=0;i<4;i++){

//绘制控制点

glBegin(GL_LINE_STRIP);for(j=0;j<4;j++){ glVertex3d(pCtrData[i][j].x, pCtrData[i][j].y, pCtrData[i][j].z);

}//for glEnd();}//for for(i=0;i<4;i++){

glBegin(GL_LINE_STRIP);for(j=0;j<4;j++)//绘制点

glVertex3d(pCtrData[j][i].x, pCtrData[j][i].y,pCtrData[j][i].z);glEnd();}//for glColor3f(1.0f,1.0f,1.0f);//启用纹理

glEnable(GL_TEXTURE_2D);

}//if glFlush();

}//endfnc

2.关于现实Bezier曲线的一段程序如下,运行截图如下,关于功能现有部分空缺,请完成。

intInitScene(){

glShadeModel(GL_SMOOTH);

glClearColor(1.0f, 1.0f, 1.0f, 0.5f);//设置清空颜色为白色 glClearDepth(1.0f);

//初始化深度缓存最大为 1.0f //开启深度测试 glEnable(GL_DEPTH_TEST);glDepthFunc(GL_LEQUAL);glHint(GL_PERSPECTIVE_CORRECTION_HINT, GL_NICEST);//开启求值器

glEnable(GL_MAP1_VERTEX_3);//设置控制点的类型,起始位置从0-100,控制点数目为4,跨度为3 //点的存储数组为B_Points[4][3]

} glMap1f(GL_MAP1_VERTEX_3,0.0f, 100.0f, 3,//起始 //终止范围

//点数目 iNumPoint,&B_Points[0][0]);//均匀分布网格,有100个单位,从u1到u2 glMapGrid1d(100,0.0,100);return TRUE;

boolDrawScene(){

glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);glLoadIdentity();glTranslatef(0,0,-20.0f);inti;//设置点的尺寸大小为 10 glPointSize(10);//设置控制点为红色 glColor3f(1.0,0.0,0.0);glBegin(GL_POINTS);

for(i=0;i

{ glVertex2fv(B_Points[i]);}//for glEnd();return true;

}//DrawScene 3.关于实现光照效果对比的程序。左图为加光照,右边为未加光照。部分功能空缺,请完成

void DrawScene(){ GLfloat spotPostion[]={0.0,0.0,1.0,1.0};

//清空缓冲区

glClear(GL_COLOR_BUFFER_BIT |GL_DEPTH_BUFFER_BIT);glLoadIdentity();

glPushMatrix();glColor3f(1.0,0.0,0.0);glRotatef(fRot, 1.0f, 0.0f, 0.0f);//使用灯光

glLightfv(GL_LIGHT2,GL_POSITION,spotPostion);glLightfv(GL_LIGHT2,GL_SPOT_DIRECTION,spotDir);glTranslatef(spotPostion[0],spotPostion[1],spotPostion[2]);glutSolidCone(0.05f,3.0f,15,15);glPopMatrix();glTranslatef(0,0,-6.0);//glRotatef(fRot,1,0,0);//绕y轴旋转60° glRotatef(60,0,1,0);//属性堆栈压栈

// glPushAttrib(GL_LIGHTING_BIT);// glDisable(GL_LIGHTING);

glColor3f(1.0f,1.0f,1.0f);glBegin(GL_TRIANGLES);//计算法线一

calNormal(vTrangle1,vector);glNormal3fv(vector);

glVertex3fv(vTrangle1[0]);glVertex3fv(vTrangle1[1]);glVertex3fv(vTrangle1[2]);glFlush();}//endfnc

下载C语言之计算器软件设计word格式文档
下载C语言之计算器软件设计.doc
将本文档下载到自己电脑,方便修改和收藏,请勿使用迅雷等下载。
点此处下载文档

文档为doc格式


声明:本文内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:645879355@qq.com 进行举报,并提供相关证据,工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。

相关范文推荐

    通信软件设计教学大纲

    通信软件设计 (专业限选课) Design of Communication Software 【课程编号】XZ26199 【学分数】3 【学时数】60 = 38(理论)+ 6(研究)+ 16(实验) 【适用专业】网络通信工程 一、教学......

    3D游戏软件设计

    《3D游戏软件设计》 一、单选题(共 20 道试题,共 40 分。) 1. 现有三组逆时针环绕的轮廓线,依次包含。现在,如果把区域的环绕属性设置为奇数类型,那么最终绘制出的区域描述正确的......

    软件设计大赛策划书

    西安财经学院信息学院 软件设计大赛策划书信息学院团工委2012年10月9日 信息学院软件设计大赛策划书主办方:西安财经学院校团委 承办方:信息学院团工委 信息学院科技联盟 一、......

    软件设计大赛策划

    信息工程学院科技创新与创业协会 “大学生软件设计大赛”主题活动策划书一、 活动背景正确引导我校学子积极参加科技竞技活动,不断培养创新精神和团队意识,切实增强理论联系实......

    软件设计大赛策划书

    软件设计大赛策划书 软件设计大赛策划书1 活动目的:为营造我校浓厚的学生科研学术氛围,增强大学生创新意识,传播计算机文化,并为广东省软件设计大赛选拔作品,我校拟于XX年3月21日......

    通信软件设计心得体会

    通信软件设计课程总结关于这门课程,有很多话想说,对崔老师说的话、对队友们说的话、对自己说的话。这门课程应该算是我上大学以来最享受的一门课程,它不仅仅让我学到了知识、学......

    软件设计报告[合集]

    软件设计报告 姓名: 方轶琦学号:10005808 2013年6月18日~2013年6月28日 目 录 第一章 软件设计介绍 ......................................................... 1 第三章 软......

    设计一个简单计算器的C语言课程设计报告

    东华理工大学 C语言课程设计报告 题目:设计一个简单计算器 姓名:地瓜叶 学号:????? 指导老师:吴志强老师 东华理工大学 目 录 1.设计目的 2.内容3.总体设计(有流程图) 4.源程序编写......