C语言课程设计报告模板.docxVIP

  • 0
  • 0
  • 约3.37千字
  • 约 8页
  • 2021-04-18 发布于天津
  • 举报
精品文档 精品文档 PAGE PAGE #欢迎。下载 精品文档 精品文档 2 2欢迎下载 C语言课程设计报告 班级: 16 物联网 、题目说明 1)读取输入信息,能正确进行数字运算 (2)拥有记忆功能,可查询最近几次计算结果并继续进行 数字运算。 、基本功能实现 (1)能实现两个数之间的加减,乘,除,乘方,开方等运算。(2)实现记忆功能,可保留近十位结果,可用 #键查看。(3)*键作为清0键,清除当前屏幕上的值为 0表示重新开三、设计流程(可以画流程图,可以直接写说明)开始1.输入值判断如果输入的是字符如果输入的是数字输入索要执行的操作符和操 (1) 能实现两个数之间的加减,乘,除,乘方,开方等运 算。 (2) 实现记忆功能,可保留近十位结果,可用 #键查看。 (3) *键作为清0键,清除当前屏幕上的值为 0表示重新开 三、设计流程(可以画流程图,可以直接写说明) 开始 1. 输入值 判断 如果输入的是字符 如果输入的是数字 输入索要执行的操作符和操 作数2 判断 如果为# 如果为q 调用putres()将结果保存 查看历一 史结果 结束 调用yunsuan()计算并输出结 四、代码 #include stdio.h #include stdlib.h #include string.h #include math.h double yunsuan(double a, char operate, double b); // 处理数值之间的 运算 void PutRes(double array[], double res, int *i); // 保存该次运算结 果 int main() { char str[40]; double a = 0; double b = 0; double res = 0; double history[10] = {0,0,0}; char opt; int i = 0; printf( 欢迎进入计算功能( eg: 1 \n+ 1 ; # :查询历史结果 ; q: 退 出程序)?…\n); while(1){ fgets(str,40,stdin); // 将从键盘的一整行标准输入保存在 字符串 str 中 if(sscanf(str,%lf, a) == 1){ // 将 str 以长浮点型的格式放入 a 中,如果返回值为 1,说明输入的是数值, 精品文档 精品文档 PAGE PAGE #欢迎。下载 精品文档 精品文档 PAGE PAGE #欢迎。下载 scanf(%c %lf, opt, b); // 获取操作符的值和另外一个操 作数的值 res = yunsuan(a,opt,b); // 调用 yunsuan () 函数计算, 并将结果给 res printf(%lf %c %lf = %lf\n\n,a, opt, b, res); PutRes(history, res, i); // 调用函数 PutRes() 将本次结果 保存到数组 history 中( i 用引用传递) // printf(%d\n, i); }else if(sscanf(str,%c,opt) == 1){ // 将 str 以字符型的格式放 入 opt 中,如果返回值为 1,说明输入的是字符 if(opt == #){ // 如果 opt 为‘ #,则显示 history 中的数值 int j = 0; for(j = 0; j i; ++j){ //i 为 history 中存放的数值 个数 printf( %lf , history[j]); } printf(\n); }else if(opt == + || opt == - || opt == * || opt == / || opt ==){ // 如果为操作符,则为连续运算,则下面秩序获得 b的值, a 的值则为上次运算结果 scanf(%lf, b); opt = str[0]; // 因为 str 是字符串,而 opt 是字符,所以不能直接赋值, 上句判断出 str 是字符, 所以是只有一个字符的字 符串,故可以这样赋值 a = res; res = yunsuan(a,opt,b); printf(%lf %c %lf = %lf\n\n,a, opt, b, res); PutRes(history, res, i); q退出程序}else if(opt == q退出程序 printf(Bye Bye ); return 0; } } } return 0; } /* 功能:处理数值之间的运算 参数 1:操作数 1 参数 2:操作方式 参数 3:操作数 2 返回值:两数值的运算结果。 */ dou

文档评论(0)

1亿VIP精品文档

相关文档