- 1、本文档共26页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
C语言课程设计报告-计算器
C语言课程设计报告
——计算器
题目:设计一个计算器的程序,功能上尽量模仿windows内的计算器
目 录
一、需求分析 1
二、设计思路 1
三、详细设计 2
1、主要函数 2
2、函数的主要调用关系图 3
四、调试分析及编程心得体会 3
五、用户手册 3
六、测试结果 3
七、源程序代码 4
1、 cal.c 主控文件 4
2、mouse.h 鼠标程序头文件 5
一、需求分析
演示程序中,对数据进行四则运算。
由于人们长期在window下工作,程序最好要键盘和鼠标都可以用。界面要适应人们的习惯。
程序执行的命令包括:
1)、乘法;2)、除法3)、加法4)、减法5)、自然对数 6)、结束。
4、测试数据:(以加法为例)
(1)、‘0’+‘0’应输出“0”。
(2)、‘80’-‘30’应输出“50。
(3)、’2’* ‘35’应输出“70,0000000000”.
(4)、’2’/ ‘1’应输出“2.00000000000”.
(5)’1’ ‘exp’;应输出“2.7182818285”。
二、设计思路
我们首先要考虑的是如何记录用户的输入信号,识别信号,按照信号的处理要求的不同进行不同的操作,因此我们可以考虑用两个字符串不停地来记录数据,但检测到用户按等号的时候,再转换成数字来处理,结合到鼠标的应用,从鼠标左键的输入信号和键盘有着同样的。再用显示界面函数来显示计算器的外观。
本程序包含两个模块:
主程序模块:
void main() //cal.c
{
各种宏定义;
欢迎界面;
图像的初始化;
do{
接受键盘和鼠标输入的命令;
处理命令;
}while(“命令”=“结束”)
}
鼠标调用的界面模块 //mouse.h
各模块之间的调用关系如下:
三、详细设计
1、主要函数
(1)、主控模块main.c
void initialmouse(void); /*初始化鼠标函数*/
double char_to_float(char *p); /*字符转换成浮点数*/
void welcome(); /*欢迎界面*/
(2)、鼠标头文件mouse.c
void mouse(); //接受鼠标的按键信息
int rmouse(void) //初始化鼠标图像图标,并且返回是否成功的信息
showmouse() //利用不断复制和粘贴图像的方法来动态显示鼠标光标
hidemouse() //关闭光标
getmousecoods() //得到鼠标当前的信息
void movemouse(int x,int y); //确定鼠标的位置
Area(int x0,int y0,int x1,int y1) //设置鼠标移动的位置范围
guangbiao(int x,int y) //画出光标
2、函数的主要调用关系图
四、调试分析及编程心得体会
1、刚开始的时候不习惯于结构话编程,没有严格按单元模块结构编写不善于构建子函数来简化和理清楚编程思路,可读性几乎为零!!
2、刚开始时在鼠标功能的区域选择的宏定义中花了较大功夫,程序容错性较差。
3、对处理字符串的复杂处理方法费时较多,并且表达的混乱。
4、由于初次进行系统的程序设计,层次结构划分不太合理,没有结构化编程的经验和体会,应在以后中加强实践,提高能力。
………………………………………………………………………………………………………………
五、用户手册
1、本程序的运行环境为DOS操作系统,执行文件为cal.exe。
2、进入演示程序后即先显示欢迎界面再进入图像模式的用户界面
(1) 1 exp
(2) 80-50
(3) 2/1 (4)7+8=
六、测试结果
七、源程序代码
/*******************************************************
1、main.c 主控文件
*******************************************************
#include stdio.h //头文件
#include stdlib.h
#include math.h
#include graphics.h
#include time.h
#include alloc.h
#include mouse.h /*鼠标函数调用模块*/
#include dos.h
int key,dian=0,x,y;
char ch=0;
char emp[80],sum[80],*e,*s;
double yuan=0.000000000000;
select()
{
您可能关注的文档
- '名人我想对你说'话题作文导写与示例.doc
- ----业务流程整理培训.ppt
- -JSS数字式时间继电器的设计.doc
- -LCD Dricer IC工作介紹_簡.ppt
- -水文地质与工程专业外文文献翻译-其他专业.doc
- -教育公共基础知识复习资料汇总.doc
- -金融学专业外文翻译----股票市场经济活动的行为方式-金融财政.doc
- ==>版<==数字化变电站中合并单元的工程应用.ppt
- A Contrastive Study of Valentine’s Day and the Double-Seventh Day.doc
- -第六章经济法主体的一般原理.ppt
- 2024年江西省高考政治试卷真题(含答案逐题解析).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)物理试卷(含答案详解).pdf
- 2025年四川省新高考八省适应性联考模拟演练(二)地理试卷(含答案详解).pdf
- 2024年内蒙通辽市中考化学试卷(含答案逐题解析).docx
- 2024年四川省攀枝花市中考化学试卷真题(含答案详解).docx
- (一模)长春市2025届高三质量监测(一)化学试卷(含答案).pdf
- 2024年安徽省高考政治试卷(含答案逐题解析).pdf
- (一模)长春市2025届高三质量监测(一)生物试卷(含答案).pdf
- 2024年湖南省高考政治试卷真题(含答案逐题解析).docx
- 2024年安徽省高考政治试卷(含答案逐题解析).docx
文档评论(0)