欢迎来到天天文库
浏览记录
ID:57636527
大小:4.17 MB
页数:31页
时间:2020-08-29
《C语言课程设计报告-计算器.doc》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、C语言课程设计报告——计算器一、需求分析1、演示程序中,对数据进行四则运算。2、由于人们长期在window下工作,程序最好要键盘和鼠标都可以用。界面要适应人们的习惯。3、程序执行的命令包括:1)、乘法;2)、除法3)、加法4)、减法5)、自然对数6)、结束。4、测试数据:(以加法为例)(1)、‘0’+‘0’应输出“0”。(2)、‘80’-‘30’应输出“50.00000000”。(3)、’2’*‘35’应输出“70,0000000000”.(4)、’2’/‘1’应输出“2.00000000000”.(5)’1’‘exp’;应输出“2.7182818
2、285”。二、设计思路我们首先要考虑的是如何记录用户的输入信号,识别信号,按照信号的处理要求的不同进行不同的操作,因此我们可以考虑用两个字符串不停地来记录数据,但检测到用户按等号的时候,再转换成数字来处理,结合到鼠标的应用,从鼠标左键的输入信号和键盘有着同样的。再用显示界面函数来显示计算器的外观。本程序包含两个模块:1)主程序模块:voidmain()//cal.c{各种宏定义;欢迎界面;图像的初始化;do{接受键盘和鼠标输入的命令;31处理命令;}while(“命令”=“结束”)}1)鼠标调用的界面模块//mouse.h各模块之间的调用关系如下:
3、输入命令的接受数据的表示计算器界面外形数据的处理主程序模块三、详细设计1、主要函数(1)、主控模块main.cvoidinitialmouse(void);/*初始化鼠标函数*/doublechar_to_float(char*p);/*字符转换成浮点数*/voidwelcome();/*欢迎界面*/(2)、鼠标头文件mouse.cvoidmouse();//接受鼠标的按键信息intrmouse(void)//初始化鼠标图像图标,并且返回是否成功的信息showmouse()//利用不断复制和粘贴图像的方法来动态显示鼠标光标hidemouse()//
4、关闭光标getmousecoods()//得到鼠标当前的信息voidmovemouse(intx,inty);//确定鼠标的位置Area(intx0,inty0,intx1,inty1)//设置鼠标移动的位置范围guangbiao(intx,inty)//画出光标312、函数的主要调用关系图mainwelcomeshowmouseinitialmousemouseguangbiaoinitialmouseChar_to_float四、调试分析及编程心得体会1、刚开始的时候不习惯于结构话编程,没有严格按单元模块结构编写不善于构建子函数来简化和理清楚编
5、程思路,可读性几乎为零!!2、刚开始时在鼠标功能的区域选择的宏定义中花了较大功夫,程序容错性较差。3、对处理字符串的复杂处理方法费时较多,并且表达的混乱。4、由于初次进行系统的程序设计,层次结构划分不太合理,没有结构化编程的经验和体会,应在以后中加强实践,提高能力。………………………………………………………………………………………………………………五、用户手册1、本程序的运行环境为DOS操作系统,执行文件为cal.exe。2、进入演示程序后即先显示欢迎界面再进入图像模式的用户界面31(1)1exp(2)80-50(3)2/1(4)7+8=31六、测
6、试结果31七、源程序代码/*******************************************************311、main.c主控文件*******************************************************#include//头文件#include#include#include#include"time.h"#include"alloc.h"#include"mouse.h"/*鼠标函数调用模块*/#i
7、nclude"dos.h"intkey,dian=0,x,y;charch='0';charemp[80],sum[80],*e,*s;doubleyuan=0.000000000000;select(){if(where_chu)key=47;elseif(where_cheng)key=42;elseif(where_jian)key=45;elseif(where_jia)key=43;elseif(where_num1)key=49;elseif(where_num2)key=50;elseif(where_num3)key=51;else
8、if(where_enter)key=ENTER;elseif(where_num4)key=52;elseif(wher
此文档下载收益归作者所有