C语言课程设计报告书简易计算器

上传人:re****.1 文档编号:408827448 上传时间:2023-07-24 格式:DOC 页数:14 大小:251.50KB
返回 下载 相关 举报
C语言课程设计报告书简易计算器_第1页
第1页 / 共14页
C语言课程设计报告书简易计算器_第2页
第2页 / 共14页
C语言课程设计报告书简易计算器_第3页
第3页 / 共14页
C语言课程设计报告书简易计算器_第4页
第4页 / 共14页
C语言课程设计报告书简易计算器_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《C语言课程设计报告书简易计算器》由会员分享,可在线阅读,更多相关《C语言课程设计报告书简易计算器(14页珍藏版)》请在金锄头文库上搜索。

1、C语言课程设计报告书 课程名称: C语言课程设计 课题名称: 简易计算器 班级: 学号: 姓名: 指导老师: 成绩: 2008年6月 欢迎 老 师指导一、 课程设计目的1 通过一个学期的学习,我认为要学好C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固我的知识。特别是作为本科生,更要注重实践这一环节,只有这样我们才能成为合格的计算机人材。通过这次课程设计,进一步巩固所学的语句,如语句嵌套等;加深对循环,分支等结构的运用;最后还可以熟悉四则运算三角函数等经典算法。2 通过此次课程设计扩展自己的知识面,课本上的东西是远远不够的,可以通过去图书馆查资料,上网找资料等

2、手段学到一些新知识,比如画图函数,颜色填充函数等。3 通过课程设计,加深对结构化程序设计思想的理解,能进行一个系统功能需求分析,并设计合理的模块化结构。提高程序开发能力。二、设计内容我设计的是一款简易计算器,界面清楚,操作方便,它能实现以下功能:1以界面形式给出计算器功能2简单的四则混合运算(支持小括号、优先级)3弦、余弦函数计算4指数、对数的运算三、总体设计简单计算器由五大模块组成,模块设计如下:主 函 数 指 数 对 数 函 数三 角 函 数四则混合运算函数计 算 器 界 面 图1 模块调用图 1. 主函数 void main() 功能:调用各个主要模块,实现简单计算器的整体功能。2. 主

3、界面函数void JieMian() 功能:使用有关图形函数模拟出可视化的计算器外观界面,并提供用户输入窗口。 3. 四则混合运算函数void SiZeHunHeYunSuan()功能:实现简单的加减乘除混合运算,并支持优先级和带括号的运算。4. 三角运算函数void SanJiaoYunSuan() 功能:实现基本的三角函数运算:sin(x)和cos(x)。 5. 指对数函数void ZhiDuiShuYunSuan() 功能:实现基本的指数和对数运算。四、详细设计(一)数据结构设计1用initgraph函数初始化图形界面,用outtextxy函数在图形模式下显示需输出内容,用setcolo

4、r和setbkcolor函数设置边框颜色和填充颜色,用circle 和rectangle函数来画计算器界面的按键,用gotoxy将数字送入显示区。函数原型为:void far initgraph(int far *graphdriver, int far *graphmode, char far *pathtodriver)void far outtextxy(int x, int y, char far *textstring)void far setcolor ( int color)void far setbkcolor ( int color)void far circle (int

5、x, int y, int r)void far rectangle (int x, int y, int x, int y)void far gotoxy(int x, int y)具体形式:(按键以部分为例,其余相同) initgraph(&driver,&mode,c:tcbgi); setcolor(GREEN); setbkcolor(BLUE); rectangle(18,18,500,300); rectangle(30,25,488,65); circle(50,105,20); circle(50,175,20); circle(50,245,20);outtextxy(31

6、8,240,/); outtextxy(435,135,ln); outtextxy(365,135,log); gotoxy(5,3)2将表达式转换成波兰式void change(char *work),用两个指针分别指向操作数和运算符。从字符串中依次分离出操作数与运算符。当操作符串为空时,直接存入。当不为空时,与指针最后一个元素,比较优先级,若大于直接存入,否则弹出操作数最后两位进行运算。(二)模块接口设计:1.四则混合运算:void SiZeHunHeYunSuan()首先判断优先级,其过程为int compare(char symbol) int jud = 0;switch (sym

7、bol)case (: jud = 1: break; case *: case /: jud = symtops = /?-1:1; break;case ): jud=0; break; case +:case -:jud = (symtops != * & symtops != /)?1:-1;break;default:break;return jud;四则混合运算包括的子函数的函数原型:void sizeyunsuan(double num1, char symbol, double num2)把表达式转化成波兰式void change(char *work) Void sizeyu

8、nsuan () Change ()Compare () Sizeyunsuan() 图2 四则混合运算函数调用图2.三角运算:void SanJiaoYunSuan()包括的子函数的函数原型:1) double hudu(double x); 把接受到的实数转化为弧度返回。2) double to_double(char *p); 将字符串转化为实数。3) double read(); 将连续输入的字符整合成一个浮点数并在屏幕上逆向输出将其返回。 4) double sin(double x); 求sinx,实数型参数,返回实数型值。5) double cos(double x); 求cos

9、x,实数型参数,返回实数型值。 Double to_double(char *p) Read ()Cos(double x)Hudu(double x)Sin(double x) Void sanjiaoyunsuan() 图3 三角运算函数调用图4指对数运算:void ZhiDuiShuYunSuan()包括的子函数的函数原型:1) double read(); 将连续输入的字符整合成一个浮点数在屏幕上逆向输出将其返回。2) double exp(double x); 求e的x次方,返回双精度实数值。3) double lnx(double x); 求lnx的值,返回双精度实数值。 Void

10、 zhiduishuyunsuan() Double ln(double x) Double exp(double x) Read() 图4 指数对数运算函数调用图(三) 流程图:1 主函数流程图 Star End 调用指数对数函数调用三角函数调用四则混合运算函数NoYes 匹配表达式表达式是?接收按键 调用主界面函数 定义一个符号常量 图5 主函数调用图1 优先级:接收四则运算多项式的每相邻两个字符,并判断是否是操作符,如是操作符,与之前存入的操作符进行优先级比较。按顺序存入对应数组。Star 用symbol接收字符参数定义整型变量 int jud int tops int topnint

11、topn = -1;接受运算符判断运算符返回 选择符号“+“-”Jud=1Yes No 判断符号是“/”吗选择为“*/”时当选择“)“时,jud =1;当选择”(“时jud =0 图6 运算级优先级流程图No Yes 返回原函数进行xiang=sign*(fz/fm);sinx+=xiang;sign=sign*(-1);进行fz*=x*x;fm*=(t+1)*(t+2);t+=2;值大于1e-8吗?定义变量接收参数x,开始2 正弦函数 图7 正弦函数流程图3. ln函数:No 返回原函数Yes No Yes No Yes 判断值大于1e-6吗进行运算参数=1/参数判断值是否大于1e-6进行Y+=t; n+; s=-s;M*=(x-1); t=m*s/n;判断参数在0到1之间吗?接收参数,定义变量开始

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号