欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

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

    • 资源ID:60908849       资源大小:251.50KB        全文页数:14页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    C语言课程设计报告书 课程名称: C语言课程设计 课题名称: 简易计算器 班级: 学号: 姓名: 指导老师: 成绩: 2008年6月 欢迎 老 师指导一、 课程设计目的1 通过一个学期的学习,我认为要学好C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践才能增强和巩固我的知识。特别是作为本科生,更要注重实践这一环节,只有这样我们才能成为合格的计算机人材。通过这次课程设计,进一步巩固所学的语句,如语句嵌套等;加深对循环,分支等结构的运用;最后还可以熟悉四则运算三角函数等经典算法。2 通过此次课程设计扩展自己的知识面,课本上的东西是远远不够的,可以通过去图书馆查资料,上网找资料等手段学到一些新知识,比如画图函数,颜色填充函数等。3 通过课程设计,加深对结构化程序设计思想的理解,能进行一个系统功能需求分析,并设计合理的模块化结构。提高程序开发能力。二、设计内容我设计的是一款简易计算器,界面清楚,操作方便,它能实现以下功能:1以界面形式给出计算器功能2简单的四则混合运算(支持小括号、优先级)3弦、余弦函数计算4指数、对数的运算三、总体设计简单计算器由五大模块组成,模块设计如下:主 函 数 指 数 对 数 函 数三 角 函 数四则混合运算函数计 算 器 界 面 图1 模块调用图 1. 主函数 void main() 功能:调用各个主要模块,实现简单计算器的整体功能。2. 主界面函数void JieMian() 功能:使用有关图形函数模拟出可视化的计算器外观界面,并提供用户输入窗口。 3. 四则混合运算函数void SiZeHunHeYunSuan()功能:实现简单的加减乘除混合运算,并支持优先级和带括号的运算。4. 三角运算函数void SanJiaoYunSuan() 功能:实现基本的三角函数运算:sin(x)和cos(x)。 5. 指对数函数void ZhiDuiShuYunSuan() 功能:实现基本的指数和对数运算。四、详细设计(一)数据结构设计1用initgraph函数初始化图形界面,用outtextxy函数在图形模式下显示需输出内容,用setcolor和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 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(318,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 (symbol)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 sizeyunsuan () 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); 求cosx,实数型参数,返回实数型值。 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 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 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之间吗?接收参数,定义变量开始 图8 lnx函数流程图五、调试与测试遇到的问题:1.计算器的界面不会做,有时数字显示在边框外面。2.在四则混合运算中,运算符号的优先级比较难判断。3.编写ln函数遇到困难。4在做计算器界面的时候有些函数没有学过。采取的解决措施:1.去图书馆借相关图书,上网查资料,通过自己的阅读,研究,不断的尝试,运行,修改,最终做出了简单的界面,但仍存在很多不足的地方,只能模拟出大体的外观,没能模拟出计算器中的各个键。2.查在界面显示的函数原型,对比自己的程序,不断修改,对比,调试,检查,反思,最后发现是语句顺序错误,显示写在了判断的后面,修改成功。3.在编写ln函数的时候,遇到很大困难,最后通过查阅资料,向别人请教编写出了函数。界面截图及相关说明:(1)主界面: 等待输入表达式(2)四则混合运算截图: 以上是对四则混合运算1+4*5-2*(3+2)运算结果的界面截图。(3)三角函数截图: 以上是对Sin 30 运算结果的界面截图 (4)指数函数截图: 以上是对对数函数ln0.运算界面的截图。

    注意事项

    本文(C语言课程设计报告书简易计算器.doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开