一.实训要求:
1、 进一步掌握和利用C语言进行程设计的能力。
2、 进一步理解和运用结构化程设计的思想和方法。
3、 初步掌握开发一个小型实用系统的基本方法。
4、 学会调试一个较长程序的基本方法。
5、 学会利用流程图或N-S图表示算法。
6、 掌握书写程设计开发文档的能力(书写实习报告)。
二.实训要求:
计算器。
编写一个计算器程序,实现加、减、乘、除、求平方根(正数)、倒数等功能。
①要求根据用户从键盘输入的表达式:
操作数1 运算符op 操作数2
计算表达式的值,指定的算术运算符为加(+)、减(-)、乘(*)、除(/)等。
②要求程序能进行浮点数的算术运算。
③如果要求输入的算术表达式中的操作数和运算符之间可以加入任意多个空白符,那么程序如何修改?
④程序要求可以连续做多次算术运算,每次运算结束后,程序都给出提示:
Do you want to continue(Y/N or y/n)?
用户输入Y或y时,程序继续进行其他算术运算;否则程序退出运行状态。
三.序编写:
#include <math.h>
#include<stdio.h>
void main()
{float a,b,c;
char op,d;
do{
printf("input a b or a?(kai 'a' de ping fang gen):\n");
scanf("%f%f",&a,&b);
printf("sign:\n");
fflush(stdin);/*ru guo bu jia zhe ge,hui ba \n fu gei op.xun huan ken din bu zhi xing le. */
op=getch();
switch(op)
{case '+':c=a+b;printf("a+b=%f\n",c);break;
case '-':c=a-b;printf("a-b=%f\n",c);break;
case '*':c=a*b;printf("a*b=%f\n",c);break;
case '/':c=a/b;printf("a/b=%f\n",c);break;
case '?':c=sqrt(a);printf("sqrt(a)=%f\n",c);break;
default:printf("error\n");break;}
printf("Do you want to continue(Y/N or y/n):");
fflush(stdin);/*he shang mian de dao li yi yang.*/
scanf("%c",&d);}
while(d=='Y'|| d=='y');
}
四.程序流程图:
请老师帮忙写一份心得 我在此感激不尽
通过这次实训,我掌握了C语言的基本运算,包括两个数的加、减、乘、除、幂和方根等运算,
加深了计算器计算原理的认识。