2022年2022年计算机程序设计课程设计报告 3.pdf
《2022年2022年计算机程序设计课程设计报告 3.pdf》由会员分享,可在线阅读,更多相关《2022年2022年计算机程序设计课程设计报告 3.pdf(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、计算机程序设计( c 语言)课程设计报告题目:学院:专业:班级:姓名:指导教师:答辩日期:名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 1 页,共 13 页 - - - - - - - - - 一、选题背景:问题提出: 在应用电脑的过程中,往往需要使用计算器,来执行简单的运算,但系统提供的计算功能过于烦琐,而且有些程序并不提供计算功能。为此 ,这里用 C语言编制了几个函数, 用于程序中时, 可达到计算的目的. 二、设计思路:简单的计算器是对实数进行简单的加,减,乘,除及简单的求幂运
2、算。本程序是通过简单的 C语言的运算函数来计算运行,来实现计算器的基本功能。在实现过程中,应用循环来判断运行相应的函数,即可达到简单的计算器的功能。三:设计分析:主要解决问题方法:通过计算器函数,窗口函数, 设计鼠标图形函数及按键函数来构成计算器的实体,需要解决的是定义计算器的外观,及鼠标的图形及其应用,尤其是鼠标置于顶端时,其下一步的循环返回另一个顶端。技术关键:计算器函数 computer()的边框,按键大小设计,及鼠标在同一行或列中的循环滚动,还有进行运算时,按键不同,进行响应的运算,窗口函数(mwindow() ), 设计鼠标函数(arrow() ) , 按键函数( specialke
3、y()) 。名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 13 页 - - - - - - - - - 四:程序流程图主函数计算器函数computer 按键函数specialkey() 窗口函数mwindow() 设计鼠标图形函数arrow 开始v=RIGHT x=x0+6*widtm=0; x=x+width+width/2 m+; x=x0+6*widtx=x0; v=LEFT m=4; x=x-width-width/2; m-; x=7*height y=y0
4、结束switch(act) 1 2 3 4 5 6 7 result=num1+num2 result=num1-num2 result=num1*num2 result=num1/num2 result=pow(num1,num2) result=fomd(num1,num2) setfillstyle(SOLID_FILL,color+3); bar(2*width+width/2,height/2,15*width/2,3*height/2); sprintf(temp, ” %f” ,result); break break break break break break out te
5、xtxy( 显示结果 ) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 13 页 - - - - - - - - - 二、#include /*DOS 接口函数 */ #include /*数学函数的定义*/ #include /*屏幕操作函数 */ #include /*I/O函数 */ #include /*库函数 */ #include /*变量长度参数表*/ #include /*图形函数 */ #include /*字符串函数 */ #include /*字符
6、操作函数 */ #define UP 0 x48 /*光标上移键 */ #define DOWN 0 x50 /*光标下移键 */ #define LEFT 0 x4b /*光标左移键 */ #define RIGHT 0 x4d /*光标右移键 */ #define ENTER 0 x0d /*回车键 */ void *rar; /*全局变量,保存光标图象*/ struct palettetype palette; /*使用调色板信息*/ int GraphDriver; /* 图形设备驱动 */ int GraphMode; /* 图形模式值 */ int ErrorCode; /* 错误
7、代码 */ int MaxColors; /* 可用颜色的最大数值*/ int MaxX, MaxY; /* 屏幕的最大分辨率*/ double AspectRatio; /* 屏幕的像素比 */ void drawboder(void); /*画边框函数 */ void initialize(void); /*初始化函数 */ void computer(void); /*计算器计算函数*/ void changetextstyle(int font, int direction, int charsize); /* 改变文本样式函数*/ void mwindow(char *header)
8、; /*窗口函数 */ int specialkey(void) ; /*获取特殊键函数*/ int arrow(); /*设置箭头光标函数*/ /* 主函数 */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 5 页,共 13 页 - - - - - - - - - main() initialize(); /* 设置系统进入图形模式*/ computer(); /*运行计算器 */ closegraph(); /*系统关闭图形模式返回文本模式*/ return(0); /*结束
9、程序 */ void initialize(void) /* 设置系统进入图形模式*/ int xasp, yasp; /* 用于读 x 和 y 方向纵横比 */ GraphDriver = DETECT; /* 自动检测显示器*/ initgraph( &GraphDriver, &GraphMode, ); /* 初始化图形系统*/ ErrorCode = graphresult(); /*读初始化结果 */ if( ErrorCode != grOk ) /*如果初始化时出现错误*/ printf(Graphics System Error: %sn); grapherrormsg( E
10、rrorCode ) ; /*显示错误代码*/ exit( 1 ); /*退出 */ getpalette( &palette ); /* 读面板信息 */ MaxColors = getmaxcolor() + 1; /* 读取颜色的最大值*/ MaxX = getmaxx(); /* 读屏幕尺寸 */ MaxY = getmaxy(); /* 读屏幕尺寸 */ getaspectratio( &xasp, &yasp ); /* 拷贝纵横比到变量中*/ AspectRatio = (double)xasp/(double)yasp;/* 计算纵横比值 */ /* 计算器函数 */ void
11、 computer(void) struct viewporttype vp; /*定义视口类型变量*/ int color, height, width; int x, y,x0,y0, i, j,v,m,n,act,flag=1; float num1=0,num2=0,result; /*操作数和计算结果变量*/ char cnum5,str220=,c,temp20=; char str1=1230.456+-789*/Qc=%; /* 定义字符串在按钮图形上显示的符号 */ mwindow( Calculator ); /* 显示主窗口 */ color = 7; /*设置灰颜色值*
12、/ getviewsettings( &vp ); /* 读取当前窗口的大小*/ width=(vp.right+1)/10; /* 设置按钮宽度 */ height=(vp.bottom-10)/10 ; /*设置按钮高度 */ x = width /2; /*设置 x 的坐标值 */ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 13 页 - - - - - - - - - y = height/2; /*设置 y 的坐标值 */ setfillstyle(SOLI
13、D_FILL, color+3); bar( x+width*2, y, x+7*width, y+height ); /*画一个二维矩形条显示运算数和结果*/ setcolor( color+3 ); /*设置淡绿颜色边框线*/ rectangle( x+width*2, y, x+7*width, y+height ); /*画一个矩形边框线*/ setcolor(RED); /*设置颜色为红色*/ outtextxy(x+3*width,y+height/2,0.); /*输出字符串 0.*/ x =2*width-width/2; /*设置 x 的坐标值 */ y =2*height+
14、height/2; /*设置 y 的坐标值 */ for( j=0 ; j4 ; +j ) /*画按钮 */ for( i=0 ; i=x0+6*width) /*如果右移,移到尾,则移动到最左边字符位置*/ x=x0; m=0; else x=x+width+width/2; /*否则,右移到下一个字符位置*/ m+; /*左移箭头时新位置计算*/ if(v=LEFT) if(x=x0) x=x0+6*width; /*如果移到头,再左移,则移动到最右边字符位置*/ m=4; else x=x-width-width/2; /*否则,左移到前一个字符位置*/ m-; /*左移箭头时新位置计算
15、*/ if(v=UP) if(y=7*height) y=y0; /*如果移到尾,再下移,则移动到最上边字符位置*/ n=0; else y=y+height+height/2; /*否则,移到下边一个字符位置*/ n+; /*在新的位置显示光标箭头*/ 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 13 页 - - - - - - - - - putimage(x,y,rar,XOR_PUT); c=str1n*5+m; /*将字符保存到变量c 中*/ if(isdi
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022年2022年计算机程序设计课程设计报告 2022 计算机 程序设计 课程设计 报告
限制150内