精华内容
下载资源
问答
  • 本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计语言(C)》课程后进行的一次全面的综合练习。本课程设计的目的和任务: 1. 巩固和加深学生对C语言课程的基本知识的理解和掌握 2. ...
  • c语言课程设计 计算器 简单的c语言设计的小程序
  • 课程设计名称: C 语言课程设计课程设计题目: 简单计算器程序目录第1章 需求分析 0设计要求 0任务 0第2章 总体设计 1TOC \o "1-5" \h \z \o "Current Document" 设计简介及设计方案论述 1...\o "Current Document" ...

    课程设计名称: C 语言课程设计课程设计题目: 简单计算器程序

    目录

    第1章 需求分析 0

    设计要求 0

    任务 0

    第2章 总体设计 1

    TOC \o "1-5" \h \z \o "Current Document" 设计简介及设计方案论述 1...

    \o "Current Document" 功能模块层次图 1...

    第3章 详细设计 2

    \o "Current Document" 由(后缀)逆波兰表达式计算中缀表达式原理 4..

    算法描述 5

    第4章 调试分析 7

    \o "Current Document" 程序设计中所遇到的错误及犯错的原因 7..

    \o "Current Document" 错误的解决方法 7...

    第5章 用户手册 8

    总 结 1..1..

    参考文献 1..2..

    附 录(程序清单) 1..2.

    将算术表达式转化为逆波兰表达式计算逆波兰表达式的值

    将算术表达式转化为逆波兰表达式计算逆波兰表达式的值

    第 1 章 需求分析

    设计要求

    ( 1)用 C 语言数据结构实现程序设计;

    (2)利用结构体、栈、进行相关信息处理;

    (2)系统的各个功能模块要求用函数的形式实现; (4)界面简单,可操作性高。

    任务

    (1)定义一个结构体类型数组,输入 0~9 及 +、--、* 等符号的信息,将其 信息存储起来;

    ( 2)输入简单的加减乘除算术计算式, 并在屏幕上显示逆波兰(后缀式) 表 达式和计算结果;

    (3)编写代码;

    ( 4)程序分析与调试。

    说明:

    本课程设计将实现一个简单计算器。在功能上尽量模仿 windows 的 计算器。系统界面不做牵制要求。该程序能实现标准型中 +、-、* 、/、(、)、.、的 混 合运算表达式(一般意义上的中缀表达式) ,将其转换成逆序波兰表达式(后 缀表达式) 并计算输出结果。在进行运算后可以选择继续运算或者结束当前运算。 即时准确地获得 需要的计算的结果,充分降低了数字计算的难度和节约了时间, 对人们的生活有一定的帮助。

    第2章总体设计

    设计简介及设计方案论述

    逆波兰表达式又叫做后缀表达式。在通常的表达式中,二元运算符总是置于 与之相 关的两个运算对象之间,所以,这种表示法也称为中缀表达式。波兰逻辑 学家 于1929年提出了另一种表示表达式的方法。按此方法,每一运算符都置 于其运算对象之后,故称为后缀表达式。

    后缀表达式的优点是显而易见的,编译器在处理时候按照从左至右的顺序读 取逆波 兰表达式,遇到运算对象直接压入堆栈,遇到运算符就从堆栈提取后进的 两个对象进行计算,这个过程正好符合了计算机计算的原理。后缀表达式比前缀 表达式更加易于转换,并且它的最左面一定为数字,这一点在实 际编程的时候就 会体会到它的好处了。 逆波兰表达式有一个更大的优点, 就是拆括号,根据运算 符的级别将中缀表达式转 换成逆波兰表达式后,运算顺序就已经替代了运算符的 级别,这样也避免了括号提高运 算级别的特殊处理。

    功能模块层次图

    第 3 章 详细设计

    栈的定义与使用

    首先定义两个栈,一个字符型,一个双精度型,程序代码如下

    Struct

    {

    char data[MaxSize];

    {

    *p=++j;

    while(x[j]>='0'&&x[j]<='9')

    {

    j++;

    } for(i=*p;i

    { n=n+pow,i-*p+1)*(x[i]-'0'); }

    }

    *p=j;

    if(sign=='-')

    return(-n); return(n);

    }

    功能模块流程图(以下有简易图与详细图)

    开始

    输入表达式

    逐个字符扫描直至

    ‘=,或 ‘ \0'

    逐个扫描字符直

    至遇到‘ \0'

    运算符

    4

    4)重复上述步骤直到遇到中缀表达式的结束符标记“=”,弹出栈中的所有

    由(后缀)逆波兰表达式计算中缀表达式原理

    计算机处理(后缀)逆波兰表达式求值问题是比较方便的,即将遇到的操作 数暂存于一个操作 数栈中,凡是遇到操作数,便从栈中 pop出两个操作数,并 将结果存于操作数栈中,直 到对(后缀)逆波兰表达式中最后一个操作数处理完, 最后压入栈中的数就是后最表达式的计算结 果。中缀表达式转换为等价的(后缀) 逆波兰表达式,中缀表达式不方便与计算机处理,通常要讲中缀表达式转换为一 个与之等价的(后缀)逆波兰 表达式。等价是指两个表达式的计算顺序和计算结 果完全相同。中缀表达式:(5*2+1)=的等价(后缀)逆波兰表达式是:5 2 * 1 + /= 仔细观察这两个等价的表达式可知,操作数的出现次序是相同的,但运算符的出 现 次序是不同的。在(后缀)逆波兰表达式中,运算符的出现次序是实际进行操 作的次序;在中追表 达式中,由于受到操作符的优先级

    展开全文
  • 随机产生10道四则运算题,判断正误,每题10分,并统计得分和正确率。 代码如下: #include <stdio.h> #include<stdlib.h> #include<time.h> int main() ...srand((unsigned)time(NULL)...

    随机产生10道四则运算题,判断正误,每题10分,并统计得分和正确率。
    代码如下:

    #include <stdio.h>
    #include<stdlib.h>
    #include<time.h>
       int main()
    {   
          int i=1,s;
          int sum=0,f;//f的值决定运算符//
          float e=0;
          srand((unsigned)time(NULL));
          for(;i<=10;i++)
          {
          int a=rand()%10+1;//取随机数//
          int b=rand()%10+1;
          f=rand()%4+1;//取随机运算符//
          if(f==1)//f=1为加法//
          {
             printf("%d+%d=?",a,b);
             scanf("%d",&s);
             if(s==a+b)
             {
             printf("Right\n");
             sum+=sum;
             e++;
             }
             else
             printf("Wrong!\n");
          }
          else if(f==2)//f=2为减法//
          {
             printf("%d-%d=?",a,b);
             scanf("%d",&s);
             if(s==a-b)
             {
             printf("Right\n");
             sum+=sum;
             e++;
             }
             else
             printf("Wrong!\n");
          }
          else if(f==3)//f=3为乘法//
          {
             printf("%d*%d=?",a,b);
             scanf("%d",&s);
             if(s==a*b)
             {
             printf("Right\n");
             sum+=sum;
             e++;
             }
             else
             printf("Wrong!\n");
          }
           else if(f==4)//f=4为除法//
          {
             while(a%b!=0)
             b--;
             printf("%d/%d=?",a,b);
             scanf("%d",&s);
             if(s==a/b)
             {
             printf("Right\n");
             sum+=sum;
             e++;
             }
             else
             printf("Wrong!\n");
             }
          }
          printf("正确率=%f %%",e*10);    
          return 0;
    }
    
    展开全文
  • C 语言程序设计 程序设计基础(C)课程设计报告 简易计算器设计 学生姓名 学号 班级 指导老师 日期 309 工作室设计 1 C 语言程序设计 目录 一设计目标2 二总体设计3 三详细设计5 四调试与测试10 五分析及结论 11 六...
  • 程序设计基础(C)课程设计汇报 简易计算器设计 学 生 姓 名 学 号 班 级 指 导 老 师 日 期 309工作室设计 目 录 TOC \o "1-3" \h \z \u 31961 一设计目标 2 27431 二总体设计 3 8058 三具体设计 5 21240 四调试和...
  • 加法:输入一个数,按“+”,输入被加数,按“=”,输出结果。  减法:输入一个数,按“—”,输入被减数,按“=”,输出结果。  乘法:输入一个数,按“*”,输入另外个数,按“=”,输出结果...Q键:退出计算器界面
  • 攀枝花学院 学生课程设计论文 题 目 简易计算器 学生姓名 葛肪瑜 学 号 201010801018 所在院 (系) 计算机学院 专 业 计算机科学与技术 班 级 10 计本 1班 指 导 教 师 陈三清 职称 讲师 2011 年 6 月 25 日 攀枝花...
  • C 语言程序设计 程序设计基础(C)课程设计报告 简易计算器设计 学生姓名 学号 班级 指导老师 日期 309 工作室设计 1 C 语言程序设计 目录 一设计目标2 二总体设计3 三详细设计5 四调试与测试10 五分析及结论 11 六...
  • 攀枝花学院 学生课程设计论文 简易计算器 目题 葛肪瑜 201010801018 号学生姓名学 ...目录 攀枝花学院本科学生课程设计任务书 目题 计算器设计 1课程设计的目的 本课程设计的目的和任务1巩固和加深学生对C语言课程
  • 程序设计基础 (C) 课程设计报告 简易计算器设计 学 生 姓 名 学 号 班 级 指 导 老 师 日 期 309 工作室设计 C 语言程序设计 目 录 一设计目标 2 二总体设计 3 三详细设计 5 四调试与测试 9 五分析及结论 10 六参考...
  • C语言设计计算器程序源代码,有需要的来下载吧~
  • C语言程序设计 课程设计论文 题目 计算器 院系 专业班级 学 号 学生姓名 指导教师 教师职称 助 教 起止时间2009.12.14至2009.12.26 课程设计报告任务及评语 院系 教研室 学 号 学生姓名 专业班级 程序设计报告题目 ...
  • c语言之 简易计算器

    2018-06-05 22:38:39
    学习时候的小代码 比较有利于初学者的练手,基于 c语言程序设计
  • 程序设计基础 (C)课程设计报告 简易计算器设计 学 生 姓 名 学 号 班 级 指 导 老 师 日 期 309 工作室设计 C 语言程序设计 目 录 一设计目标 .2 二总体设计 .3 三详细设计 .5 四调试与测试 .9 五分析及结论 .10 六...
  • 精品文档 可编辑版 攀枝花学院 学生课程设计论文 题 目 简易计算器 学生姓名 葛肪瑜 学 号 201010801018 所在院(系) 计算机学院 业 计算机科学与技术 班 级 10 计本1班 指 导 教 师 陈三清 职称 讲师 2011 年 6 月 ...
  • 编写程序的目的就是使程序有他应用的地方,编写一个简单的计算器来实现我们计算的目的。  利用swich case 语句和循环结构来实现简单程序的编写。利用选择语句来进行输入的选择,然后利用所输入的数字的不同进行...

          编写程序的目的就是使程序有他应用的地方,编写一个简单的计算器来实现我们计算的目的。    

          利用swich  case 语句和循环结构来实现简单程序的编写。利用选择语句来进行输入的选择,然后利用所输入的数字的不同进行不同类型的运算,然后当需要退出时,则通过break语句跳出循环,实现一个程序的全部运行。

           在这个计算器中,主要部分是构建分支语句的函数,使每一个运算都可以得到执行,所以在main函数外部要进行调用函数的定义,来处理不同的运算。

    #include<stdio.h>
    void Add(int b, int  i)
    {
    	int m = 0;
    	m = b + i;
    	printf("%d\n", m);
    	system("pause");
    	return;
    }
    void Sub(int b, int  i)
    {
    	int m = 0;
    	m = b - i;
    	printf("%d\n", m);
    	system("pause");
    	return;
    }
    void Mul(int b, int  i)
    {
    	int m = 0;
    	m = b*i;
    	printf("%d\n", m);
    	system("pause");
    	return;
    }
    void Div(int b, int  i)
    {
    	int m = 0;
    	m = b / i;
    	printf("%d\n", m);
    	system("pause");
    	return;
    }
    int main()
    {
    	int a = 0;
    	int n1 = 0;
    	int n2 = 0;
    	while (1)
    	{
    		printf("*******************************\n");
    		printf("****  1.加法      2.减法   ****\n");
    		printf("****  3.乘法      4.除法   ****\n");
    		printf("****  5.退出               ****\n");
    		printf("*******************************\n");
    		printf("请输入要进行的操作:>");
    		scanf_s("%d", &a);
    		while ((a>5) || (a<1))
    		{
    			printf("输入有误,请重新输入\n");
    			printf("请输入要进行的操作:>");
    			scanf_s("%d", &a);
    		}
    		if (a != 5)
    		{
    			printf("请输入要进行运算的两个数\n");
    			scanf_s("%d%d", &n1, &n2);
    			switch (a)
    			{
    			case(1) :
    				Add(n1, n2);
    				break;
    			case(2) :
    				Sub(n1, n2);
    				break;
    			case(3) :
    				Mul(n1, n2);
    				break;
    			case(4) :
    				Div(n1, n2);
    				break;
    			}
    		}
    		else
    		{
    			printf("退出成功");
    			break;
    		}
    	}
    	return 0;
    }

     

    展开全文
  • C语言编写的计算器

    2009-07-21 23:38:00
    C语言编写的计算器 可以进行高浮点数计算, 带有界面,windows程序设计
  • C语言简单程序设计计算器的设计

    千次阅读 2016-08-15 09:40:19
    C语言简单程序设计计算器的设计,加减乘除的计算实现,并且除数不能为零,可以循环使用
    #include<stdio.h>
    void main(void){
    //简易计算机的设计
    int calcuteType=1;
    float operationA=0;
    float operationB=0;
    int isContinue=1;


    while(isContinue){

    printf("请选择你要进行的运算类型:1加法,2减法,3乘法,4除法\n");
    scanf("%d",&calcuteType);
    printf("请输入第一个运算数字:\t");
    scanf("%f",&operationA);
    printf("请输入第二个运算数字:\t");
    scanf("%f",&operationB);


    if(calcuteType==1){
    printf("%f + %f = %f\n",operationA,operationB,operationA+operationB);
    }else if(calcuteType==2){
    printf("%f - %f = %f\n",operationA,operationB,operationA-operationB);
    }else if(calcuteType==3){
    printf("%f * %f = %f\n",operationA,operationB,operationA*operationB);
    }else if(calcuteType==4){
    while(operationB==0){
    printf("除数不能为零!请重新输入第二个数:");
    scanf("%f",&operationB);
    }
    printf("%f / %f = %f\n",operationA,operationB,operationA/operationB);
    }else{
    printf("现在只负责编写加减乘除的算法!");
    }


    printf("\n\n");
    printf("你是否还要继续进行运算:是:1    否:0 \n");
    scanf("%d",&isContinue);


    if(isContinue==0){
    isContinue=0;
    }

    }
    printf("欢迎使用本计算机!");
    }
    展开全文
  • 找零计算器 #include <stdio.h> int main() { int price = 0;//初始化 //读入金额票面 printf("请输入金额(元)"); scanf("d%",&price); int change = 100 - price; printf("找您%d元\n",...
  • C语言多功能计算器

    千次阅读 2020-02-26 15:13:04
    最近经过一段时间的C语言学习,我使用C语言制作了一个多功能计算器,想要给大家分享一下。 计算器设计流程 1 . 实现基本的加减乘除运算。 2 . 能够实现开方,立方,平方等复杂运算。 3 . 整体的界面展示,显示更加...
  • 文章目录20201022-成信大-C语言程序设计-20201学期《C语言程序设计B》C-trainingExercises08P114P755对选择题的解析14172023242528关于switch中的default讨论 20201022-成信大-C语言程序设计-20201学期《C语言程序...
  • C语言程序设计》实践参考——定期存款利息计算器C语言程序设计》实践参考——定期存款利息计算器返回:贺老师课程教学链接项目要求【项目:定期存款利息计算器】输入存款金额并选择存款种类,计算出利息(不...
  • 程序实现了 加减乘除 四则运算。。。。。。。。喜欢的下载喔
  • 一个小型的计算器,不仅能输入数值表达式而且能输入变量表达式。
  • c语言课程设计之基于mfc的支持多进制下的逆波兰式计算器,可实现加减乘除,括号运算,小数运算等 所使用的开发环境: ·Virtual Studio 2017 ·Windows 10 专业版 ·基于MFC的单文本应用程序
  • 程序可以直接输入数学表达式,不需要任何转换,就可以直接输出数学四则运算的结果。并且操作简单、界面清晰、灵活、实用、方便等要求出发,它所能完成的主要计算功能有以下几个方面:加法,减法,乘法,除法,求幂,...
  • calc.h #define NUMBER '0' void push(double); double pop(void);...高度进getop函数确实运行到return NUMBER那一行了....这一行永远是1. 想重新学一下C/C++,敲一些简单地书上的程序。求帮忙看一下

空空如也

空空如也

1 2 3 4 5 ... 16
收藏数 307
精华内容 122
关键字:

c语言程序设计计算器

c语言 订阅