计算器论文 邵阳学院13级物联网工程c语言课程设计 陈汝涛

上传人:luoxia****01802 文档编号:54306140 上传时间:2018-09-10 格式:DOC 页数:49 大小:618.35KB
返回 下载 相关 举报
计算器论文 邵阳学院13级物联网工程c语言课程设计 陈汝涛_第1页
第1页 / 共49页
计算器论文 邵阳学院13级物联网工程c语言课程设计 陈汝涛_第2页
第2页 / 共49页
计算器论文 邵阳学院13级物联网工程c语言课程设计 陈汝涛_第3页
第3页 / 共49页
计算器论文 邵阳学院13级物联网工程c语言课程设计 陈汝涛_第4页
第4页 / 共49页
计算器论文 邵阳学院13级物联网工程c语言课程设计 陈汝涛_第5页
第5页 / 共49页
点击查看更多>>
资源描述

《计算器论文 邵阳学院13级物联网工程c语言课程设计 陈汝涛》由会员分享,可在线阅读,更多相关《计算器论文 邵阳学院13级物联网工程c语言课程设计 陈汝涛(49页珍藏版)》请在金锄头文库上搜索。

1、 课程设计(论文)题 目 名 称 计算器 课 程 名 称 C 语言程序设计 学 生 姓 名 陈汝涛 学 号 1341306005 系 、专 业 信息工程系、物联网工程 指 导 教 师 黄磊 2014 年 5 月 8 日目 录1 前言12 需求分析12.1 课程设计目的12.3 设计环境12.4 开发语言13 分析和设计23.1 模块设计23.2 系统流程图53.3 主要模块的流程图64 具体代码实现75 课程设计总结395.1 程序运行结果395.2 课程设计体会47参考文献47致 谢4801 1 前言前言设计一个简单有趣的多功能计算器,具有可视化的简单图形样式,该计算器除了实现基本的加减乘除

2、四则混合运算之外,另新增三角函数、反三角函数、对数运算、幂运算、进制转换、阶乘运算、位运算等内容。该程序主要是依靠函数的定义与调用、while 循环、switch 语句实现循环计算的,另外使用 system()函数进行了清屏、延时、格式控制等。该程序最大特点在于有趣界面、自动选项、误输提示、功能完善等。2 2 需求分析需求分析2.12.1 课程设计目的课程设计目的学生在教师指导下运用所学课程的知识来研究、解决一些具有一定综合性问题的专业课题。通过课程设计(论文) ,将课本上的理论知识和实际有机结合起来,提高学生的分析解决实际问题的能力;加强学生适应实际,实践编程的能力;锻炼使用文献资料及进行科

3、学实验或技术设计的初步能力,为毕业设计(论文)打基础。2.22.2 课程设计任务课程设计任务设计具有图形样式的计算器,用鼠标按键方式实现数值运算。界面自行设计,要求显示计算器和实现加、减、乘、除等基本计算功能。1、 查阅相关文献资料;2、 按时完成系统的设计并且能够运行;3、 要求程序正确,功能可靠;操作简单,使用方便;4、 课程设计交流:认真写课程设计日志,每 2 天指导老师审查,通过邮件、电话或者面谈与导师沟通汇报情况;5、 按课程设计(论文)要求,写课程设计论文。2.32.3 设计环境设计环境(1)Windows 2000/2003/XP/7/Vista系统(2)Visual C+或TC

4、集成开发环境2.42.4 开发开发语言语言C语言13 3 分析和设计分析和设计首先定义好子函数,有三角函数、反三角函数、对数运算函数、幂运算函数、进制转换函数、阶乘运算函数、位运算函数、错误提示函数、进入界面函数、退出界面函数,子函数中使用 while 循环计算,使用 switch()语句以实现选择欲选功能,其中使用赋值和 getch()实现自动识别并进入相应功能界面,每循环一次就清屏一次。再编写 main()函数,主函数中使用 switch()调用子函数,getch()用来接收 switch()中的常量表达式,子函数中 while()循环中使用break 终止本次循环进入下一次循环,当不满足

5、循环条件时跳出循环并清屏一次,再返回主函数中的循环,当不满足主函数循环条件时跳出主函数中的循环。Sleep()延时函数使用在欲停留语句之后,且需添加 windows.h 头文件,getch()接收 switch()中的表达式,使用在 switch()之前,且需添加conio.h 头文件。每次进入子函数时对主函数进行清屏,退出子函数时亦对子函数进行清屏。3.13.1 模块设计模块设计子函数与主函数的大体结构如下:void A() int i,c;system(“title 计算器“);while(i)printf(“n“); printf(“请选择选项n“);c=getch();switch(c

6、)case 1:A();break;case 0:i=0;break;2计算使用的每个子函数中使用 system()函数命名程序名称、控制窗口大小、颜色和清除主函数界面:如system(“title 对数运算-计算器“);system(“mode con cols=50 lines=40“);system(“color a1“);system(“cls“);利用 while(i)循环计算,当欲返回时通过“case 0:i=0;break;”跳出循环,while(i)循环体中使用 switch(c)开关分支以控制选择,每个开关分支语句执行相应的计算语句,如case 1:printf(“请输入真数

7、 x:n“);scanf(“%lf“,printf(“ln x 的结果为:%lgn“,log(x);system(“pause“);system(“cls“);break;c=getch()作为 switch(c)的分支表达式,且“c=getch()”需放在switch(c)之前,这样即可通过输入自动识别开关分支,而无需输入选项之后需按“Enter” 。当所输入的选项不满足 switch(c)分支情况时,执行default :error();break;default 进行错误提示,并继续循环,循环结束后需需进行清除该函数界面并返回,进入主函数界面。主函数结构与子函数相似,在主函数的开头使用

8、begining();进入欢迎界面Sleep(3000);/延时 3 秒,末尾添加 end();/结束界面。定义函数 double readnum(),在四则混合运算中,将数字字符转化成浮点型实数进行计算。定义函数 double evalpost(),在四则混合运算中,计算后缀表达式的值。定义函数 int is_operation(),在四则混合运算中,判断字符是否为操作字符。3定义函数 int priority(),在四则混合运算中,判断字符的优先级。定义函数 void postfix(),在四则混合运算中,将中缀表达式转化成后缀表达式。定义函数 void zhuanhuan(),在四则混合

9、运算中,实现去括号的转化。定义函数 void A(),调用子函数,实现加减乘除混合运算。定义函数 void B(),利用系统自带的对数运算,定义成函数 B(),以实现对数的简单运算,其中参数需为实型。定义函数 void C(),定义幂函数,利用系统自带的幂运算实现简单而方便的幂运算,其中开平方函数需判断参数是否小于 0。定义函数 void D(),利用系统自带的三角函数运算定义三角函数 D(),参数需为实型,且 tan()的参数不能为直角(即 90 度的奇数倍) ,计算之前需将角度制转换成弧度制,才能进行系统的三角函数运算。定义函数 int conver(),在进制转换函数中,将字符型转化为整

10、型,进制转换函数。定义函数 void E(),利用系统的格式控制和相关函数定义进制转换函数,利用格式控制以自动转换,其中 itoa()把一个整数转换为字符串,sprintf()函数把格式化的字符串写入一个变量中。定义函数 void F(),通过 for 循环实现累加与累乘。定义函数 void G(),通过系统自带的按位与、按位或、按位异或、按为取反、按位左移与右移运算,实现简单的位运算,其中参与运算的参数需为 int 类型。定义函数 void H(),将系统自带的反三角函数定义成函数 H(),需注意参数的取值范围,arcsin x 中|x|=0return (x);/ 计算后缀表达式的值 /d

11、ouble evalpost(char f)double obst10;int top=0;int i=0;double x1,x2;while(fi!=)if(fi=0opsttop=ei;top+;13i+;while(top) fj+=opst-top;fj=0;/ 转化 /void zhuanhuan(char g,char e)int k,i,j=0;for(i=0;gi!=;i+)k=i+1;if(gi=(ej+=0;else ej+=gi;ej=;/定义四则混合运算函数void A()system(“title 四则混合运算-计算器“);/命名程序名称system(“mode c

12、on cols=50 lines=40“);/控制窗口大小system(“color B1“);/控制颜色int wei;char e100,f100,g100;int sign;int flag;14dosystem(“cls“);/清除主函数界面printf(“n“);printf(“n n“);printf(“ 使用步骤 n“);printf(“ 1.输入带符号的表达式; n“);printf(“ 2.输入=,如 2+3= ; n“);printf(“ 3.输入欲留小数的位数,; n“);printf(“ 4.选择是否继续! n“);printf(“ n“);printf(“ n“);p

13、rintf(“ 除数不能为 0 n“);printf(“ 输入欲计算的表达式: n“);printf(“ 如:1*2/(4-6)= n“);printf(“ 按 1 继续 n“);printf(“ 按 0 返回 n“);printf(“ n“);scanf(“%s“,g);zhuanhuan(g,e);/调用转化函数postfix(e,f);/调用“中缀表达式转化成后缀表达式“函数printf(“输出保留几位小数:n“);scanf(“%d“,/结果欲保留几位小数printf(“%.*lfn“,wei,evalpost(f);/调用“计算后缀表达式的值“函数 flag=3 ;printf(“继

14、续/返回? 1/0?“);sign=getch();/用 getch()接收开关分支(情况)15switch(sign)case 1:flag=1;break;case 0:flag=0;break;/终止循环,返回主函数default: printf(“输错了哦!请重新输入:n“);if(flag=0)break;while(flag=1);system(“cls“);/退出时,清除此函数界面/定义对数运算函数 B()void B()int i,c;system(“title 对数运算-计算器“);/命名程序名称system(“mode con cols=50 lines=40“); /控制窗口大小system(“color a1“);/控制颜色system(“

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 建材标准

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