logo资料库

c语言计算器(含代码).doc

第1页 / 共11页
第2页 / 共11页
第3页 / 共11页
第4页 / 共11页
第5页 / 共11页
第6页 / 共11页
第7页 / 共11页
第8页 / 共11页
资料共11页,剩余部分请下载后查看
1 问题要求及任务描述
1.1 题目要求
1.2 主要任务
2 解决问题的主要思路和方法
2.1 关键问题
在同时输入三角函数与数字是发现不兼容;判断运算式子是否含三角函数;
2.2 拟采用解决问题的方法
在查阅书籍后,才记得输入字符串遇到回车、空格、制表符是才结束。
2.3 主要算法和处理流程图
3 程序实现
3.1 程序实现时应考虑的问题
此程序较简单,在实现程序是主要防止用户的输入错误,以及程序本身的格式细节,子函数在传递过程中的问题。
3.2 主要源代码及说明
源代码(加注释)
(自己编写部分,合并的程序在最后,不过没打印出来,只能在word看)
4 测试
4.1 测试结果及分析
各种可能情况的详细运行结果
当输入错误字符时:
输入Y时:
输入N时:
程序的循环:
当在 continue 后任意输入字符时:
当在 输入三角函数表达式 不加空格、回车符或制表符时:
(此时按回车键程序没有响应)
当再次输入数据时:
5 小结
5.1本问题解决方法及程序实现小结
本程序主要运用了条件语句以及循环语句,这也是题目要求的。在实现程序时不断调试程序,对程序中存在的各种
5.2 尚未解决的问题及下一步工作思路
本程序的一大缺点就是不能一步就确定操作数与操作符,需要在程序一开始判断是否含三角函数;第二当输
打算好好利用寒假的时间提升自己的编程能力,使得自己能独立编出一个逻辑性强的程序。
6 参考文献
东莞理工学院课程设计 东 莞 理 工 学 院 课程设计 课程 题目 程序设计基础 计算器 院系名称 计算机学院 班 级 计算机科学与技术 学生姓名 组 员 指导教师 时 间 - 1 -
东莞理工学院课程设计 1 问题要求及任务描述 1.1 题目要求 完成一个简单的计算器,要求实现最基本的运算操作,当用户输入一个算 式后,计算器显示计算结果,同时屏幕项部显示:continue? 如果用户此时按 Y 键,则继续输入下一个算式,否则,程序终止。 实现要求: ⑴ 由主函数获取用户输入的算式并进行分解,确定操作数和操作符 ⑵ 完成基本运算(+-×÷%)函数 ⑶ 完成复杂运算(sin,cos,tag)函数 1.2 主要任务 本人主要负责由主函数获取用户输入的算式并进行分解,确定操作数和操作符; 以及整个程序的容错性和兼容性等问题。 2 解决问题的主要思路和方法 2.1 关键问题 在同时输入三角函数与数字是发现不兼容;判断运算式子是否含三角函数; 2.2 拟采用解决问题的方法 在查阅书籍后,才记得输入字符串遇到回车、空格、制表符是才结束。 2.3 主要算法和处理流程图 - 2 -
东莞理工学院课程设计 开始 输入 含三角函数 y/n? N Judge1=n? Y 输入表达式 提示“输入错误 请再次输入” N Judge1=y? Y 输出操作符与操作数 输入表达式 输出操作符与操作数 Y Continue? N 结束 3 程序实现 3.1 程序实现时应考虑的问题 - 3 -
东莞理工学院课程设计 此程序较简单,在实现程序是主要防止用户的输入错误,以及程序本身的 格式细节,子函数在传递过程中的问题。 3.2 主要源代码及说明 源代码(加注释) (自己编写部分,合并的程序在最后,不过没打印出来,只能在 word 看) #include #include /*这是一个用于简单计算的计算器*/ main() { char judge1,judge2; float data1,data2; char op; char t[3]; double w; int b; do { printf("该运算涉及三角函数吗(y/n)?:\n"); /*判断是否包含三角函 数 do { y/n*/ scanf(" %c",&judge1); if(judge1=='n'||judge1=='N') { printf("请输入计算表达式:\n"); scanf("%f %c %f",&data1,&op,&data2); printf("输入数是%f,%f\n 输入符是%c\n",data1,data2,op); /*确定操作数与操作符*/ } { else if(judge1=='y'||judge1=='Y') /*包含三角函数的部分*/ printf("请输入三角函数(后加空格或回车)和角度:"); scanf("%s%d",t,&b); printf("输入的三角函数是:%s\n",t); /*确定操作数与操作符*/ - 4 -
else { */ printf("输入错误,请再次输入\n"); } }while(judge1!='y'&&judge1!='Y'&&judge1!='n'&&judge1!='N'); /*判断是否输入错误*/ printf("continue(y/n)?\t"); /*判断用户是否想再次运算程序 东莞理工学院课程设计 printf("角度是:%d\n",b); } /*当错误时做出的提醒*/ scanf(" %c",&judge2); printf("\n"); printf("\n"); }while (judge2=='Y'||judge2=='y'); system("pause"); } 4 测试 4.1 测试结果及分析 各种可能情况的详细运行结果 当输入错误字符时: 输入 Y 时: - 5 -
东莞理工学院课程设计 输入 N 时: 程序的循环: 当在 continue 后任意输入字符时: - 6 -
东莞理工学院课程设计 当在 输入三角函数表达式 不加空格、回车符或制表符时: (此时按回车键程序没有响应) 当再次输入数据时: 5 小结 5.1 本问题解决方法及程序实现小结 本程序主要运用了条件语句以及循环语句,这也是题目要求的。在实现程 序时不断调试程序,对程序中存在的各种错误进行改正,同时对函数的各部功 能不足的地方进行改善。 5.2 尚未解决的问题及下一步工作思路 本程序的一大缺点就是不能一步就确定操作数与操作符,需要在程序一开始 - 7 -
东莞理工学院课程设计 判断是否含三角函数;第二当输入(continent?)输入错误时,程序不循环, 而是退出。 打算好好利用寒假的时间提升自己的编程能力,使得自己能独立编出一个逻辑 性强的程序。 例如:[1] 严蔚敏. 数据结构. 清华大学. 2004.11 6 参考文献 这是完整的整个程序 (合并的)不打印 #include #include #include #define i 1e-6 #define e 3.1415926 void xiaoquan(float data1,float data2,char op); void weijia(double d,char t[]); /*这是一个用于简单计算的计算器*/ main() { char judge1,judge2; float data1,data2; char op; char t[3]; double d,a,b,c; do { do { printf("该运算涉及三角函数吗(y/n)?:\n"); scanf(" %c",&judge1); if(judge1=='n'||judge1=='N') { printf("请输入计算表达式:\n"); - 8 - /*判断是否包含三角函数 y/n*/
分享到:
收藏