搜档网
当前位置:搜档网 › 计算器C语言程序

计算器C语言程序

计算器C语言程序
计算器C语言程序

数码管显示计算器C语言程序如下:

#include

#include

#define uchar unsigned char

#define uint unsigned int

uchar i,j,temp,num;

uchar a0,a1,a2,a3,a4,a5,b0,b1,b2,b3,b4,b5;

uchar flag,flaga,flagb,fuhao;

long a,b,c,flagz;

void init()

{

a0=0xc0;b0=0xc0;

a1=a2=a3=a4=a5=b1=b2=b3=b4=b5=0xff;

flag=0,flaga=0,flagb=0;flagz=0;

a=0,b=0,c=0;

}

void qn()

{

b0=b1=b2=b3=b4=b5=0xff;

}

uchar code table1[]={

0xf8,0x80,0x90,0,

0x99,0x92,0x82,0,

0xf9,0xa4,0xb0,0,

0,0xc0,0,0};

uchar code table2[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90}; uint code table[]={

7,8,9,0,

4,5,6,0,

1,2,3,0,

0,0,0,0

};

void delay(uint xms)

{

uint i,j;

for(i=xms;i>0;i--)

for(j=110;j>0;j--);

}

void display()

{ if(a5!=table2[0])

{P2=0x00;

P0=a5;

P2=0X01;

delay(1);

}

if(a5!=table2[0]||a4!=table2[0])

{P2=0x00;

P0=a4;

P2=0X02;

delay(1);

}

if(a5!=table2[0]||a4!=table2[0]||a3!=table2[0])

{P2=0x00;

P0=a3;

P2=0X04;

delay(1);

}

if(a5!=table2[0]||a4!=table2[0]||a3!=table2[0]||a2!=table2[0])

{P2=0x00;

P0=a2;

P2=0X08;

delay(1);

}

if(a5!=table2[0]||a4!=table2[0]||a3!=table2[0]||a2!=table2[0]||a1!=table2[0]) {P2=0x00;

P0=a1;

P2=0X10;

delay(1);

}

P2=0x00;

P0=a0;

P2=0X20;

delay(1);

}

void azy()

{ a5=a4;

a4=a3;

a3=a2;

a2=a1;

a1=a0;

}

void bzy()

{ b5=b4;

b4=b3;

b3=b2;

b2=b1;

b1=b0;

}

void fuzhi()

{ a5=b5;

a4=b4;

a3=b3;

a2=b2;

a1=b1;

a0=b0;

}

void qh()

{

a0=table2[c%10];

a1=table2[(c/10)%10];

a2=table2[(c/100)%10];

a3=table2[(c/1000)%10];

a4=table2[(c/1000)%10];

a5=table2[(c/10000)%10];

}

void panduan()

{

if(flag==0)

{

if(flaga==1)

{ if(a5==0xff)

{a=a*10+table[num];

azy();

a0=table1[num];

display();

}

}

else

{

a=table[num];

a0=table1[num];

display();

flaga=1;

}

}

else

{

if(flagb==1)

{ if(b5==0xff)

{b=b*10+table[num];

bzy();

b0=table1[num];

fuzhi();

display();

}

}

else

{

b=table[num];

b0=table1[num];

fuzhi();

display();

flagb=1;

}

}

}

void ag_eq()//再次按下等于时

{

if(flagz==1)

{

a=c;

}

}

void jieguo()

{ if(c<=1000000)

{qh();

display();qn();ag_eq();

}

else

{a5=0x86;a0=a1=a2=a3=a4=0xff;display();} }

void keyscan()

{

P3=0xfe;

if(P3!=0xfe)

{

delay(10);

if(P3!=0xfe)

{

temp=P3&0xf0;

switch(temp)

{

case 0xe0:num=0;break;

case 0xd0:num=1;break;

case 0xb0:num=2;break;

case 0x70:num=3;break;

}

while(P3!=0xfe);

if(num==0||num==1||num==2)

{

panduan();

}

else

{

flag=1;

fuhao=4,b=0;

}

}

}

P3=0xfd;

if(P3!=0xfd)

{

delay(10);

if(P3!=0xfd)

{

temp=P3&0xf0;

switch(temp)

{

case 0xe0:num=4;break;

case 0xd0:num=5;break;

case 0xb0:num=6;break;

case 0x70:num=7;break;

}

while(P3!=0xfd);

if(num==4||num==5||num==6)

{

panduan();

}

else

{

flag=1;

fuhao=3,b=0;

}

}

}

P3=0xfb;

if(P3!=0xfb)

{

delay(10);

if(P3!=0xfb)

{

temp=P3&0xf0;

switch(temp)

{

case 0xe0:num=8;break;

case 0xd0:num=9;break;

case 0xb0:num=10;break;

case 0x70:num=11;break;

}

while(P3!=0xfb);

if(num==8||num==9||num==10)

{

panduan();

}

else

{

flag=1;

fuhao=2,b=0;

}

}

}

P3=0xf7;

if(P3!=0xf7)

{

delay(10);

if(P3!=0xf7)

{

temp=P3&0xf0;

switch(temp)

{

case 0xe0:num=12;break;

case 0xd0:num=13;break;

case 0xb0:num=14;break;

case 0x70:num=15;break;

}

while(P3!=0xf7);

switch(num)

{

case 12:;break;

case 13:

if(flag==0)

{

if(flaga==1)

{

a=a*10+table[num];

azy();

a0=table1[num];

display();

}

else

{ if(a==0)

{display();}

else

{a0=table1[num];

a=a*10+table[num];

display();

flaga=1;

}

}

}

else

{

if(flagb==1)

{

b=b*10+table[num];

bzy();

b0=table1[num];

fuzhi();

display();

}

else

{ if(b==0)

{display();}

else

{b0=table1[num];

b=a*10+table[num];

fuzhi();

display();

flagb=1;

}

}

}

display(); break;

case 14:flagz=1;

if(fuhao==1)

{

c=a+b;jieguo();

/*qh();

display();

qn();ag_eq();*/

}

else if(fuhao==2)

{

if(a-b>=0)

{ c=a-b;

qh();

display();ag_eq();

}

else

{ c=b-a;

qh();

display();

}

qn();ag_eq();

}

else if(fuhao==3)

{

c=a*b;

qh();

display();qn();ag_eq();

}

else if(fuhao==4)

{

c=a/b;

qh();

display();qn();ag_eq();

}

break;

case 15:{ flag=1;fuhao=1;display(),b=0;};break;

}

}

}

}

void main()

{

init();

while(1)

{

display();

keyscan();

}

}

仿真图:

仿真所选原件。

计算机编程语言

计算机编程语言 最常见的两种可能 世嘉主机游戏:快打(Virtua Fighter),也叫VR战士; 计算机编程语言:数据库软件Visual Foxpro; 也可能是法国著名服装公司:VF Corporation(威富公司),旗下由著名户外运动品牌-The North Face和牛仔品牌-Lee。 其中一个vf是推出的数据库软件visual foxpro的简称,又叫VFP。是数据库管理系统,集成编程语言,是开发小型数据库的前端工具。Visual FoxPro中的Visual的意思是“可视化”,该技术使得在Windows环境下设计的应用程序达到即看即得的效果。Visual FoxPro面向对象的开发环境使得无论是组织信息、运行、查询、创建集成的关系型数据库系统,还是编写数据库管理应用程序,都变得十分轻松。 作为市场上最灵活和功能最强大的数据库管理系统,Visual FoxPro拥有悠久而辉煌的发展历史。它初创时是Fox Software公司的FoxBASE产品,“Fox”(这是国际编程界对它的称呼)一种可靠、便捷和高效的程序员用的数据库产品而名闻遐迩。世界上没有一种产品像Visual FoxPro 那样运行,它是独一无二的! 许多人在享受了Visual FoxPro的服务后却说不清它是什么。就让我们沿着它的发展轨迹了解了解它吧!这会使您能对它有更深刻的认识。 FoxPro隶属于一种名为Xbase的DBMS类别。Xbase这个术语很常见,他表示诸如FoxPro、dBASEIII PLUS、dBASEIV、FoxBASE+以及ARAGO的语言。Xbase最初起源于一个大型机使用的DBMS,这个DBMS叫做JPLDIS(喷射推动实验室数据库管理和信息检索系统)。这个DBMS 是由美国人Jeb Long在1972年开发成功的。到目前为止全世界的开发者和程序员已经编写了几千万行的Xbase代码。 追溯到80年代末,FoxBASE是dBase的克隆系统。只要是dBASEIII能做的工作,FoxBASE就能做得更好更快。FoxBASE虽然拥有某些全新的特征,但它并没有真正重大的技术突破,只是为了运行得更快更好,而更重要的是它与dBASEIII兼容。 FoxPro 1.0首先背离了与兼容的原则。它开始在图形用户界面的设计和软件开发方法中采用一些新的思路,从而使它领先于当时年前景已不妙的dBASEIV。 从2.0开始,FoxPro才真正形成了它自己的特色。当FoxPro 2.0推出时,它包含了若干项关键技术,给PC数据库开发市场带来了革命性的变化。这些技术是: 加入了Rushmore技术,它能从事许多难以想象的复杂工作。突然之间,带有以百万计数的记录的表格在PC数据库系统中不仅成为可能,而且可以非常容易地加以实现,无需转用其他比较昂贵的技术;Rushmore最重要的优点在于它是完全自动化的,不用用户花费精力和时间。因为有了Rushmore技术,再加上Fox天生的快速,即使在今天Visual FoxPro仍然是最快的桌面数据库引擎。 SQL语句是FoxPro 2.0推出的另一项具有革命性意义的关键技术。Fox的开发人员首次用单一语句取代了整个程序过程,并且这种支持是内含于Fox数据引擎之中的。SQL语言曾经并且现在仍然是强大的数据语言。 FoxPro 2.0还推出了某种所见即所得的开发报表和屏幕的工具。 FoxPro 2.0确实具备了我们今天的Visual FoxPro拥有的一些出色的功能。GUI设计服务、SQL和极快的数据访问,是它明显的特征。 FoxPro 2.5有for DOS、for Windows版,不过那个Windows版只是具有看上去像“Windows”的DOS应用程序的外观。特别是那个DOS下的版本绝对是经典之作,观察身边是不是还有很多这样的系统在运行着?当时有人这样评价:这个软件已经无法再快了,除非

模拟简单计算器实训

苏州市职业大学 课程设计说明书 名称___模拟简单计算器_______________ 2011 年12月26 日至2011年12月31 日共1 周 院系__ 计算机工程系 班级10嵌入式 姓名 系主任____李金祥 教研室主任刘文芝 指导教师徐丽华、刘文芝

目录 一.课程设计的目的与要求 (2) 1.课程设计的目的 (2) 2.课程设计的要求 (2) 二.题目说明 (2) 2.1开发背景 (3) 2.2 开发工具介绍 (4) 2.3 小组成员分工 (4) 三.硬件方案 (5) 3.1硬件设计 (5) 3.2电路原理图 (7) 四.软件设计 (8) 4.1 模块划分 (8) 4.2 模块结构图 (9) 4.3 液晶显示模块 (9) 4. 4 定时器模块 (6) 五.运行结果分析与系统改进 (10) 六.遇到的问题和解决方法 (11) 七.课程设计总结 (11) 八.参考文献 (11)

一.课程设计的目的与要求 1.课程设计的目的 《单片机原理与应用》是一门专业技术基础课,是一门实践性很强的课,单片机课程设计要求将所学的理论知识通过实践加强理解和认识,提高学生们对单片机的认识,同时提高同学们的设计能力和实践动手能力。 同时《单片机原理与应用》也是一门应用性很强的专业课,其理论与实践技能是从事嵌入式专业技术工作的人员所不可少的。本次课程设计选择AW60实验板进行模拟应用设计与开发,要求学生掌握使用 C 语言进行单片机程序设计和调试的方法,提高综合运用所学的理论知识独立分析和解决问题的能力。同时也为了提高学生的学习能力,锻炼同学之间的合作能力。 2.课程设计的要求 在本课程设计过程中要求学生:重视课程设计环节,用严谨、科学和踏实的工作态度对待课程设计的每一项任务;按照课程设计的题目要求,独立地完成各项任务,不允许相互抄袭;按时到机房上机,并接受教师的检查。 认真编写课程设计报告。 课程设计可以由2~4名同学合作完成一个课题。全体成员应共同完成选题,确定设计思想,进行功能模块划分,然后由组长为各成员分配任务。 整个设计期间,组长负责协调工作。各小组成员明确自己的任务后,应独立完成设计、编码和调试。 课题设计完成后,小组成员要理解同组其他成员设计的源程序,熟练操作本组设计,各自完成课程设计说明书。 1、对系统进行功能需求分析; 2、设计合理的模块结构和系统框架; 3、编程简练,程序功能齐全,能正确运行; 4、说明书、流程图要清楚; 5、课题完成后必须按要求提交课程设计报告;

C语言简易计算器的实现

目录 一.课程设计目的 (1) 二.设计环境 (1) 三.设计内容 (1) 四.设计说明 (2) 五.设计程序流程图 (2) 六.调试 (4) (1)错误原因分析一 (4) (2)语法错误 (5) (3)逻辑错误 (5) 七. 调试结果图 (6) 八. 结论与心得体会 (7) 九.附录 (8) 具体代码实现 (8) 十.参考文献 (18)

一.课程设计目的 1.通过一个学期的学习,我认为要学号C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践来巩固我 们的知识,特别是学计算机专业的,我们更应该注重这一环节, 只有这样我们才能成为一个合格的计算机人才。通过这一个课程 设计,进一步来巩固所学的语句,如:循环,和分支结构的运用。还要熟悉四则运算和函数的算法。 2.通过这次课程设计扩展自己的知识面,课本上的东西是远 远不够的,可以通过上网或去图书馆查资料等方式得到一些新的 知识, 3.通过课程设计,加深对课程化设计思想的理解,能进行一 个系统功能分析,并设计一个合理的模块化结构,提高程序开发 能力。 二.设计环境 1.硬件:一台完整的电脑,包括键盘、鼠标,最小硬盘空间1GHz 2.软件:安装有Microsoft visual c++6.0 三.设计内容 以简易计算器为例,通过对简单应用软件计算器的设计,编制、调试,实现

简单的加,减,乘,除等运算,以学习应用MFC库类编写对话框的原理,加深对C++类的学习及应用。 (1)定义一个结构体类型数组,输入0~9及+、--、*等符号的信息,将其信息存入文件中; (2)输入简单的加减乘除算术计算式,并在屏幕上显示计算结果; (3)画出部分模块的流程图; (4)编写代码; (5)程序分析与调试。 四.设计说明 1)包含的功能有:加、减、乘、除运算,开方、平方等功能。 (2)计算器上数字0—9为一个控件数组,加、减、乘、除为一个控件数组,其余为单一的控件。 (3)输入的原始数据、运算中间数据和结果都显示在窗口顶部的同一个标签中。 (4)计算功能基本上是用系统内部函数。 (5)程序可以能自动判断输入数据的正确性,保证不出现多于一个小数点、以0开头等不正常现象。 (6)“CE”按钮可以清除所有已输入的数据从头计算 五.设计程序流程图

程序和程序设计语言(教学设计)

第3节程序和程序设计语言 一、教学目标 知识目标:1、掌握计算机程序的概念 2、掌握计算机程序的概念、计算机语言分类及其特征。 技能目标:通过阅读程序,学生主动探寻算法与程序的关系 情感态度与价值观:编程语言没有好坏之分,应选择适合自己的语言深入学习 二、教学重点和难点 重点:1、计算机语言的概念。 2、高级语言的特征 难点:程序的编译与解释 三、教学过程 以九歌机器人七秒成诗引入新课 (一)程序和程序设计 计算机能做很多的事情,包括各种控制活动,它们都是在程序的控制和指挥下进行的,可以这么说:离开了程序,计算机什么也干不了。 1、程序及其特征 (1)程序(Program):是一组操作的指令或语句的序列,是计算机执行算法的操作步骤。 (2)程序的特征: ●解决问题的每一个算法步骤对应着程序中的一个或多个语句实现一个或多个操作, 每一个操作都有执行对象。 ●在程序中被施行操作的对象称为数据。 ●除了有特殊的程序转向控制语句外,程序都是从第一条语句开始顺序执行。 2、程序的基本结构 (1)顺序结构 (2)选择结构 (3)循环结构 3、程序设计:从分析问题、建立模型、设计算法、编写修改程序,一直到程序正确运行的整个过程。

(二)程序设计语言 程序设计语言:是指人们编制程序所使用的计算机语言。 程序设计语言的分类: 机器语言 汇编语言 高级语言 1、机器语言 机器语言(machine language):把直接用二进制代码表示的计算机指令系统称为机器语言。 机器语言特点: ①用机器语言编写的程序可以被计算机直接执行,速度快,占用内存少。 ②编写程序相当繁琐。 ③程序不具有通用性。 2、汇编语言 汇编语言(assembly language):用符号和数字来代替二进制代码的计算机语言称为汇编语言。 汇编语言特点: ①不能被计算机直接执行。 ②编写程序比机器语言方便得多。 ③程序不具有通用性。 3、高级语言 高级语言(high-level language):由一系列按一定语法规则的语句组成(与计算机内部结构无关、通用、用其编写的程序需要“翻译”后才可执行)。 高级语言特点: ①不能被计算机直接执行。 ②易读、易改,编写程序方便。 ③程序通用性好。 补充:Basic语言的发展历程 BASIC(Beginner’s All-purpose Symbolic Instruction Code的缩写,即初学者通用符号指令代码)语言简单易学,适合初学者。

计算机程序设计语言的发展历程

1.概论自从世界上第一台电子计算机ENIAC于1946年问世以来,伴随着计算机硬件的不断更新换代,计算机程序设计语吉也有了很大的发展.至今已有四代语言问世。 在过去的几十年间,大量的程序设计语言被发明、被取代、被修改或组合在一起。 尽管人们多次试图创造一种通用的程序设计语言,却没有一次尝试是成功的。 程序设计语言正在与现代科技日益飞跃,人类的智慧在日益彰显。 1.机器语言电子计算机所使用的是由“0”和“1”组成的二进制数,二进制是计算机的语言的基础。 计算机发明之初,人们只能降贵纡尊,用计算机的语言去命令计算机干这干那,一句话,就是写出一串串由“0”和“1”组成的指令序列交由计算机执行,这种语言,就是机器语言。 使用机器语言是十分痛苦的,特别是在程序有错需要修改时,更是如此。 而且,由于每台计算机的指令系统往往各不相同,所以,在一台计算机上执行的程序,要想在另一台计算机上执行,必须另编程序,造成了重复工作。 但由于使用的是针对特定型号计算机的语言,故而运算效率是所有语言中最高的。 机器语言,是第一代计算机语言。 2.汇编语言为了减轻使用机器语言编程的痛苦,人们进行了一种有益的改进: 用一些简洁的英文字母、符号串来替代一个特定的指令的二进制串,比如,用“ADD”代表加法,“MOV”代表数据传递等等,这样一来,人们很容易读懂并理解程序在干什么,纠错及维护都变得方便了,这种程序设计语言就称为汇编语言,即第二代计算机语言。

然而计算机是不认识这些符号的,这就需要一个专门的程序,专门负责将这些符号翻译成二进制数的机器语言,这种翻译程序被称为汇编程序。 汇编语言同样十分依赖于机器硬件,移植性不好,但效率仍十分高,针对计算机特定硬件而编制的汇编语言程序,能准确发挥计算机硬件的功能和特长,程序精炼而质量高,所以至今仍是一种常用而强有力的软件开发工具。 3.高级语言从最初与计算机交流的痛苦经历中,人们意识到,应该设计一种这样的语言,这种语言接近于数学语言或人的自然语言,同时又不依赖于计算机硬件,编出的程序能在所有机器上通用。 第一个高级程厅设计语著诞生严50年代。 当时的计算机非常昂贵,而月功量非常之少,如问有效地使用计算机足一个相当重要的问题。 另一方面,计算机的执行效率也是人们追求的r1你。 为了有效地使用汁算机.人们设计出了高级语言,用以满足用户的需求。 用商级语言编写的程序需要经过翻译,计算机才能执行。 虽然,程序翻译占去了一些计算机时间,在一定程度上影响了计算机的使用效率。 坦是实践证明。 高级语言是有效地使用汁算机与计算机执行效率之间的一个很好的折中手段。 经过努力,1954年,第一个完全脱离机器硬件的高级语言—FORTRAN问世了,40多年来,共有几百种高级语言出现,有重要意义的有几十种,影响较大、使用较普遍的有FORTRAN、ALGOL、COBOL、BASI C、LISP、SNOBOL、PL/ 1、Pascal、

java编写的简单的计算器程序

j a v a编写的简单的计 算器程序 -CAL-FENGHAI-(2020YEAR-YICAI)_JINGBIAN

计算器 项目内容:编写一个Applet,模仿windows附件所带计算器的功能,可以帮助用户完成计算功能,具体如下图所示。 项目要求:使用图形的方式借助窗口、菜单、按钮等标准界面元素和鼠标操作,来帮助用户方便地向计算机系统发出命令,启动操作,并将系统运行的结果同样以图形的方式显示给用户,这样更加直观和生动; 1.Applet容器中组件的添加与设置,包括面板以及菜单的使用; 2.容器中组件的布局管理; 3.Java核心包中数组、数学计算类的使用; 4.异常的处理; 5.事件处理模型中的三类对象的使用: 1.Event-事件,用户对界面操作在java语言上的描述,以类的形式出现,例如键盘操作对应的事件类是KeyEvent。 2.Event Source-事件源,事件发生的场所,通常就是各个组件,例如按钮Button。 3.Event handler-事件处理者,接收事件对象并对其进行处理的对象。 6.程序中事件处理的流程:

1.计算流程的细化

参考代码: import .*; import .*; import .*; import import import public class Calculator implements ActionListener { #############"); dd(panel); panel1 = new JPanel(); panel2 = new JPanel(); (new BorderLayout()); 键入计算的第一个数字。\n"); ("2. 单击“+”执行加、“-”执行减、“*”执行乘或“/”执行除。\n"); ("3. 键入计算的下一个数字。\n"); ("4. 输入所有剩余的运算符和数字。\n"); ("5. 单击“=”。\n"); aboutCal = new JMenuItem(" 关于计算器(A)"); (this);

计算机程序设计语言发展史和对程序设计语言未来的看法

计算机程序设计语言发展史和对程序设计语言未来的看法信息科学与工程通信一班比拉力江·买买提20104055049 【摘要】 本文以自然辩证的观点探讨了计算机语言的发展历程,运用自然辩证法的基本理论、基本方法,系统分析了计算机语言的发展历史、现状和未来。并对其的发展趋势和未来模式做了探索性研究和预测,同时以哲学的观点阐述其发展的因果关系,揭示其事物发展的共性问题;最后文章介绍了在计算机语言发展历程中做出杰出贡献的科学家,以其在计算机事业中的突出表现来折射出人类智慧的伟大,以其不平凡的一生来激励和指导我们在计算机语言的发展中向着正确的方向前进。 【关键字】 自然辩证法计算机语言计算机技术编程语言因特网面向对象 一、引言 一九九三年美国的克林顿政府提出了“信息高速公路”计划,从而在这十多年间在全球范围内引发了一场信息风暴,信息技术几乎触及了现代生活的方方面面,毫不夸张的说没有了信息技术,现代文明的生活将无从谈起;作为信息技术中最重要的部分,计算机技术无疑是其发展的核心问题,而我们知道计算机只是一台机器,它只能按照计算机语言编好的程序执行,那么正确认识计算机语言的过去和未来,就是关系到计算机发展的重中之重;以自然辩证法的观点认识和分析计算机语言的发展历程,将有助于更加全面地推动计算机技术的发展,有助于更加准确地掌握计算机语言发展趋势。 二、科学认识大门的钥匙--当代自然辩证法 自然辩证法,是马克思主义对于自然界和科学技术发展的一般规律以及人类认识自然改造自然的一般方法的科学,是辩证唯物主义的自然观、科学技术观、科学技术方法论。它主要研究自然界发展的总规律,人与自然相互作用的规律,科学技术发展的一般规律,科学技术研究的方法。 马克思、恩格斯全面地、系统地概括了他们所处时代的科学技术成功,批判吸取了前人的合理成分,系统地论述了辩证唯物主义自然观、自然科学发展过程及其规律性,以及科学认识方法的辩证法,以恩格斯的光辉著作《自然辩证法》为标志,创立了自然辩证法继续发展的广阔道路。

简单计算器程序设计

简单计算器程序设计 2010-01-20 16:44 1、编写一个程序实现十进制加减乘除运算 2、在命令提示后输入算式,运算符号不超过四个 3、回车后进行计算并以十进制显示结果 ;能做带括号的运算,输入错误能报警 data segment msg1 db 'Please Input an Expression:',0AH,0DH,'$' msg2 db 'the result is:$' db '(' num db 200 dup (0) temp1 db 200 dup(0),13 temp dw 0 data ends stack segment db 200 dup (?) stack ends code segment assume cs:code,ds:data,ss:stack start: mov ax,data mov ds,ax lea dx,msg1 mov ah,9 int 21h call input again2: lea si,num again1: inc si cmp byte ptr[si],13 je outt cmp byte ptr[si],')' jne again1 call chasc1 call count push ax jmp again2 outt:pop bx mov ah,2

mov dl,10 int 21h mov dl,13 int 21h lea dx,msg2 mov ah,9 int 21h call chaou mov ah,8 int 21h mov ah,4ch int 21h ;************************************** input proc ;输入子程序能纠错 push ax push bx push cx push dx push si push di xor si,si xor bh,bh mov bl,0ffh xor cx,cx top: mov ah,8 int 21h cmp al,8 jne next1 cmp si,0 jne ne1 mov bl,0ffh jmp next6 ne1: mov ah,2 mov dl,8 int 21h mov dl,0 int 21h mov dl,8 int 21h dec si

c语言计算器源代码

c语言计算器源代码 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

#i n c l u d e<> #include<> #include<> #definemaxsize100 typedefdoubledatatype1; typedefchardatatype2; typedefstructstack1 { datatype1data1[maxsize]; inttop1; /*栈顶元素*/ }seqstack1,*pseqstack1;/*顺序栈*/ typedefstructstack2 { datatype2data2[maxsize]; inttop2; /*栈顶元素*/ }seqstack2,*pseqstack2;/*顺序栈*/ /*栈的初始化*/ pseqstack1init_seqstack1(void) { pseqstack1S; S=(pseqstack1)malloc(sizeof(pseqstack1)); if(S) S->top1=-1; returnS; } pseqstack2init_seqstack2(void) { pseqstack2S; S=(pseqstack2)malloc(sizeof(pseqstack2)); if(S) S->top2=-1; returnS; } /*判断栈空*/ intempty_seqstack1(pseqstack1S)

if(S->top1==-1) return1; else return0; } intempty_seqstack2(pseqstack2S) { if(S->top2==-1) return1; else return0; } /*X入栈*/ intpush_seqstack1(pseqstack1S,datatype1X) { if(S->top1==maxsize-1) { printf("栈满,无法入栈!\n"); return0; } else { S->top1++; S->data1[S->top1]=X; return1; } } intpush_seqstack2(pseqstack2S,datatype2X) { if(S->top2==maxsize-1) { printf("栈满,无法入栈!\n"); return0; } else { S->top2++; S->data2[S->top2]=X; return1; }

计算机语言程序设计考试试题

计算机语言程序设计考试试题 1 / 5 计算机语言程序设计试题 一、填空题(每空2分,共30分) 1.结构化程序设计的三种基本结构是:【1】 、【2】 和【3】 。 2.在C 语言中(以16位PC 机为例),一个float 型数据在内存中所占的字节数为【4】 。 3.若有定义int a=2;在Turbo C 中有printf (“%d ,%d ”,a ,2&&++a );则输出为【5】 。 4.表达式x=23>16&&12+1的值为【6】 。 5.执行语句printf ("%d",strupr ("Windows ");后,输出结果为【7】 。 6.有int a=12,n=5,表达式a%=(n%=2)运算后a 的值为【8】 。 7.在C 语言中,二维数组元素在内存中的存放顺序为【9】 。 8.使用局部和全局变量时,全局变量和局部变量【10】 同名;形参和局部变量【11】 同名。 9.字符数组的输入输出有两种方法:逐个字符输入输出,用格式符【12】 ;将整个字符串 一次输入或输出,格式符【13】 。 10.语句段char s[20]=”ABCD ”,*sp=s; sp++;puts(strcat(sp+1,”MA ”));的输出结果是【14】 。 15】 值。 二、单项选择题(每小题2分,共30分) 1.C 程序的基本单位是( ) A .语句 B .字符 C .程序行 D .函数 2.TURBO C 中float 类型变量所占字节数是( ) A .8 B .4 C .2 D .2

3.以下符号中能用作用户标识符的是() A.if B.3com C._3com D.break 4.C语言中运算对象必须是整型的运算符是() A.%= B./ C.= D.* 5.执行循环语句:for(x=0,y=0;y!=200&&x<4;x++)y+=100;其循环体共执行()次。 A.2 B.3 C.4 D.5 6.与(!a==1)等价的表达式是()。 A.(a>0)B.(!a)C.(a!=0)D.(a<0) 7.如有函数int max(float x){x++;return x;},则该函数返回值的类型为()。 A.float类型B.void类型C.int类型D.无法确定 8.能正确表示代数式ln(x+y)的C语言表达式是()。 A.log10(x+y) B.lg10(x+y) C.lg(x+y) D.log(x+y) 9.执行下面的程序段后,num的值为()。 int *p,num; num=10; p=# num=*p+20; A.30 B.20 C.10 D.40 10.若有定义:int x,*pp;则正确的赋值表达式是()。 A.pp=&x B.pp=x C.*pp=&p D.*pp=*x 11.若有定义int x=1,y=1,z=1,c;执行语句c= --x&&++y&&z++;后x、y、z的值分别是()A.0、2、2 B.0、1、1 C.0、1、2 D.0、2、1 12.字符串”\abcd\13\\”的长度是()。 A.7 B.6 C.11 D.10 13.下面程序main( ){int c1=2,c2=0; while(c1) {printf(”%d%d”,c1--,c2);}}运行的结果是()。 A.输出2 0 B.无输出内容C.陷入死循环D.输出1 0 14.下面程序运行的结果是()。 #include #define HELLO ”lin” void main( ){printf(“HELLO”);printf(HELLO);} A.HELLOHELLO B.HELLO C.HELLOlin D.linHELLO 15.下面程序的输出结果是()。

简单计算器可视化程序编程

简单计算器

一、基本功能描述二进制、八进制、十进制及十六进制数的加、减、乘、除、乘方、取模等简单计算 科学计算函数,包括(反)正弦、(反)余弦、(反)正切、(反)余切、开方、指数等函数运行 以角度、弧度两种方式实现上述部分函数 具备历史计算的记忆功能 对不正确的表达式能指出其错误原因 二、流程图

图1 输入数据子函数流程图 图2 三、 设计步骤 打开Microsoft Visual C++ ,在文件中点击新建,在弹出框内选择MFC AppWizard[exe]工程,输入工程名Calculter 及其所在位置,点击确定,如图3所示。 N 输入数据子函数

图3 新建MFC AppWizard[exe]工程 将弹出MFC AppWizard-step 1对话框,选择基本对话框,点击完成,如图4所示。 图4 基本对话框 这样,MFC AppWizard就建立了一个基于对话窗口的程序框架,如图5所示。 图5 新建的对话框 四、界面设计 1、创建控件 在图5所示的Resoure View选项卡中打开Dialog资源组,双击IDD_CALCULATOR_DIALOG,在右边的窗口中显示出待编辑的对话框。开始摆放控件,包括编辑框和按钮的创建。按钮的创建以“1”为例进行介绍,其他按钮的创建可参照此进行操作。 1)在图5中Controls的“编辑框”按钮上单击鼠标左键,在对话框编辑窗口上合适的位置按下鼠标左键并拖动鼠标画出一个大小合适的编辑框。在编辑框上单击鼠标右键,在弹出的快捷莱单中选择属性选项,此时弹出Edit属性对话框,如图6所示,在该对话框中输入ID属性。 图6 Edit属性对话框 2)在图3中Controls的“Button”按钮上单击鼠标左键,在对话框上的合适的位置上按下鼠标左键并拖动鼠标画出一个大小合适的下压式按钮。在按钮上单击鼠标右键,在弹出的快捷菜单中选择

C语言课程设计计算器图形界面

C语言课程设计计算器图形界面

扬州大学 C语言课程设计报告 题目一个简易计算器的设计与实现 班级 学号 姓名 指导教师 成绩 老师评语: 扬州大学信息工程学院 年 6 月 25 目录

一、程序设计目的: (1) 二、程序设计内容: (1) 三、课程设计所补充的内容:补充的函数或算法…………3,4 四、系统总体设计 (4) 五、系统详细设计………………………………………5,6,7,8 六、运行结果………………………………………………8,9,10 七、系统调试…………………………………………8,9,10,11 八、课程设计体会总结………………………………8,9,10,11 1 课程设计目的 (1).课程设计是一项综合性实践环节,是对平时实验的一个补充,课程设计内容包括课程的主要理论知识,但由于C语言对初学者较难掌握,因而对一个完整的C语言程序不适合平时实验。

经过课程设计能够达到综合设计C语言程序的目的。 (2)经过本课程设计,能够培养独立思考,综合运用所学有关相应知识的能力,能更好地使用C语言的知识,更好地了解C语言的好处和其可用性!掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级程序设计能力。为后续各门计算机课程的学习和毕业设计打下坚实基础! (3)经过本程序训练程序设计的基本技能,掌握字符串的表示方法和字符串函数的功能、自学掌握四则运算的算法及WIN-TC的图形操作的基本知识、键盘上特殊键的获取及图形方式下光标的显示。 2 课程设计内容 目的:本课程的课程设计要求学生模拟实现一个简单计算器,要求(1)能够实现四则运算,并能支持优先级运算。(2)三角与反三角运算:如sinx,cosx等。(3)指数对数运算:如log (x),lnx,e的x次方等。(4)其它运算:如X!,x的累加等。(4)不允许调用库函数,使用自行开发的程序实现常见函数运算。(5)进一步考虑计算器外观设计,用可视化界面给出计算器外观、功能按键及输入界面。 使用说明:执行加法运算,'—'表示执行减法运算,表示执行乘法运算,'/'表示除法运算.‘Q’表示退出计算器‘C’表示清零,’=’表示得出结果'^'表示执行x的y次方,'e'表示执行e的x次方操

计算机编程语言如何分类

计算机有哪些编程语言_计算机编程语言如何分类 计算机编程语言分类 第一代机器语言 机器语言是由二进制0、1代码指令构成,不同的CPU具有不同 的指令系统。机器语言程序难编写、难修改、难维护,需要用户直 接对存储空间进行分配,编程效率极低。这种语言已经被渐渐淘汰了。 第二代汇编语言 汇编语言指令是机器指令的符号化,与机器指令存在着直接的对应关系,所以汇编语言同样存在着难学难用、容易出错、维护困难 等缺点。但是汇编语言也有自己的优点:可直接访问系统接口,汇 编程序翻译成的机器语言程序的效率高。从软件工程角度来看,只 有在高级语言不能满足设计要求,或不具备支持某种特定功能的技 术性能(如特殊的输入输出)时,汇编语言才被使用。 第三代高级语言 高级语言是面向用户的、基本上独立于计算机种类和结构的语言。其最大的优点是:形式上接近于算术语言和自然语言,概念上接近 于人们通常使用的概念。高级语言的一个命令可以代替几条、几十 条甚至几百条汇编语言的指令。因此,高级语言易学易用,通用性强,应用广泛。 第四代非过程化语言 4GL是非过程化语言,编码时只需说明“做什么”,不需描述算 法细节。 数据库查询和应用程序生成器是4GL的两个典型应用。用户可以用数据库查询语言(SQL)对数据库中的信息进行复杂的操作。用户只 需将要查找的内容在什么地方、据什么根条件进行查找等信息告诉

SQL,SQL将自动完成查找过程。应用程序生成器则是根据用户的需 求“自动生成”满足需求的高级语言程序。真正的第四代程序设计 语言应该说还没有出现。所谓的第四代语言大多是指基于某种语言 环境上具有4GL特征的软件工具产品,SystemZ、如PowerBuilder、FOCUS等。第四代程序设计语言是面向应用,为最终用户设计的一 类程序设计语言。它具有缩短应用开发过程、降低维护代价、最大 限度地减少调试过程中出现的问题以及对用户友好等优点。 程序设计语言分类 一、从应用角度分类 从应用角度来看,高级语言可以分为基础语言、结构化语言和专用语言。 (1)基础语言 基础语言也称通用语言。它历史悠久,流传很广,有大量的已开发的软件库,拥有众多的用户,为人们所熟悉和接受。属于这类语 言的有FORTRAN、COBOL、BASIC、ALGOL等。FORTRAN语言是目前国 际上广为流行、也是使用得最早的一种高级语言,从20世纪90年 代起,在工程与科学计算中一直占有重要地位,备受科技人员的欢迎。BASIC语言是在20世纪60年代初为适应分时系统而研制的一 种交互式语言,可用于一般的数值计算与事务处理。BASIC语言结 构简单,易学易用,并且具有交互能力,成为许多初学者学习程序 设计的入门语言。 (2)结构化语言 20世纪70年代以来,结构化程序设计和软件工程的思想日益为 人们所接受和欣赏。在它们的影响下,先后出现了一些很有影响的 结构化语言,这些结构化语言直接支持结构化的控制结构,具有很 强的过程结构和数据结构能力。PASCAL、C、Ada语言就是它们的突 出代表。 PASCAL语言是第一个系统地体现结构化程序设计概念的现代高 级语言,软件开发的最初目标是把它作为结构化程序设计的教学工

程序和程序设计语言(教学设计)

第 3 节程序和程序设计语言 、教学目标 知识目标:1、掌握计算机程序的概念 2、掌握计算机程序的概念、计算机语言分类及其特征。 技能目标:通过阅读程序,学生主动探寻算法与程序的关系 情感态度与价值观:编程语言没有好坏之分,应选择适合自己的语言深入学习 二、教学重点和难点 重点:1、计算机语言的概念。 2、高级语言的特征 难点:程序的编译与解释 三、教学过程 以九歌机器人七秒成诗引入新课 一)程序和程序设计 计算机能做很多的事情,包括各种控制活动,它们都是在程序的控制和指挥下进行的,可以这么说:离开了程序,计算机什么也干不了。 1、程序及其特征 (1)程序(Program):是一组操作的指令或语句的序列,是计算机执行算法的操作步骤。 2)程序的特征: 解决问题的每一个算法步骤对应着程序中的一个或多个语句实现一个或多个操作,每一个操作都有执行 对象。 在程序中被施行操作的对象称为数据。 除了有特殊的程序转向控制语句外,程序都是从第一条语句开始顺序执行。 2、程序的基本结构 1)顺序结构2)选择结构3)循环结构 3、程序设计:从分析问题、建立模型、设计算法、编写修改程序,一直到程序正确运行的整个过程。 (二)程序设计语言 程序设计语言:是指人们编制程序所使用的计算机语言。 程序设计语言的分类: 机器语言汇编语言高级语言

1、机器语言 机器语言(machine Ianguage):把直接用二进制代码表示的计算机指令系统称为机器 语言。 机器语言特点: ①用机器语言编写的程序可以被计算机直接执行,速度快,占用内存少。 ②编写程序相当繁琐。 ③程序不具有通用性。 2、汇编语言 汇编语言(assembly Ianguage):用符号和数字来代替二进制代码的计算机语言称为汇 编语言。 汇编语言特点: ①不能被计算机直接执行。 ②编写程序比机器语言方便得多。 ③程序不具有通用性。 3、高级语言 高级语言(high-level Ianguage ):由一系列按一定语法规则的语句组成(与计算机内部结构无关、通用、用其编写的程序需要“翻译”后才可执行) 咼级语言特点: ①不能被计算机直接执行。 ②易读、易改,编写程序方便。 ③程序通用性好。 补充:Basic语言的发展历程 BASIC ( Beginner' s All-purpose Symbolic Instruction Code 的缩写,即初学者通用符号指令代码)语言简单易学,适合初学者。

简单的计算器模拟程序的设计和实现

简单的计算器模拟程序的设计和实现1.问题描述 对任意给定的正确四则运算表达式,程序计算其结果值并输出。程序无需查错功能,假定所输入的都是正确的四则运算表达式,并且表达式中运算分量均为无正负号整数,运算符为 +、-、*、/,表达式以字符 "=" 结束。程序应有操作提示、输入和输出,界面追求友好,最好是菜单式的界面。 2.设计说明 2.1简要的分析 根据要求,要先输入包含有+,-,*,/的运算符的表达式,然后经过计算得到正确的答案。从键盘中输入的是ASCII码,因此要将其转换为十进制的数据然后才能进行计算。如果输入混合表达式,要将中缀式先变化成后缀式,然后再进行计算。 2.2概要分析 2.2.1 定义的数据段 用于定义一些中间变量,并将显示在试验界面上,以及提示信息。data segment stri db 50 dup(0) exp db 30 dup(0) track db 30 dup(0) instr db 100 dup(0) msg0 db 'please input your formular:',0dh,0ah,'$' msg1 db 0dh,0ah,'wrong input','$' msg2 db 0dh,0ah,') and ( does not match','$' msg3 db 0dh,0ah,'div zero error','$' msg4 db 0dh,0ah,'sorry,minus data appears','$' msg5 db 0dh,0ah,'any key to continue,esc to exit','$' data ends

速算,简易计算器c语言代码,可实现加减乘除

#include"stdio.h" #include"math.h" #include"stdlib.h" struct optrstyle { int top; char stack[20]; } struct opndstyle { int top; int stack[20]; } void main() { char ch; while(1) { printf("-----------------------------------------\n"); printf("|-----------欢迎来到速算24--------------|\n"); printf("|----------是否开始游戏?????------------|\n"); printf("|--------- 开始游戏请按'Y'-------------|\n"); printf("|--------- 退出游戏请按其他键-------------|\n"); printf("-----------------------------------------\n"); scanf("%c",&ch); if(ch=='Y' or ch=='y') { } else break; } } int EvaluateExpression() { // 算术表达式求值的算符优先算法。设OPTR 和OPND 分别为运算符栈和运算数栈,OP 为运算符集合。 InitStack(OPTR); Push(OPTR,'#'); InitStack(OPND); c = getchar(); while(c!='#' || GetTop(OPTR)!='#') { if(!In(c,OP))

计算机基础与程序设计考试复习资料

填空题 1、在微机中通常说是的cpu是指运算器和控制器。 2、C程序的运算符中赋值运算符的优先级仅高于逗号运算符。 3、在C语言中如果对函数f的类型未加显说明,则函数f的隐含类型是int型。 4、在对文件进行操作的过程中,若要求文件的位置回到文件的开头,应当调用的函数是rewind( )。 5、CPU、主存储器、和外部设备组成计算机的硬件系统。 6、存储器是计算机能够实现“存储程序”功能的硬件基础。 7、使用strcpy函数应包括的头文件是string.h。 8、定义文件指针fp的定义语句为FILE*fp。 9、硬件系统和软件系统组成一个完整的计算机系统。 10、C程序中,函数体放在一对{}中。 11、在C语言中,输入操作是由库函数printf( )完成的,输入操作是由库函数scanf()完成的。 12、在函数外部定义的变量统称为全局变量,它们的作用域从定义之处开始,直到源文件或程序结束。 13、C语言中的文件,按存取方式可以分为顺序存取文件和随机存取文件。 14、在一个C源程序中,注释部分两侧的分界符分别为/*和*/。 15、在C语言中,如果实参是简单的数据类型,则函数形参和实参之间的数据传递,只能由实参传给形参。 16、一个C源程序中至少应包括一个名为main( )的主函数。 17、当函数类型和return语句中的表达式的类型不一致时,则应以函数类型为准。 18、C语言规定一维数组名代表一维数组的起始地址。 19、结构体是用户自己定义的一个集合体,它由多个成员组成,成员的数据类型允许不同。 20、C语言中的文件,按数据的组织形式可以分为文本文件和二进制文件。 21、在系统总线上通常传输的三种信号是地址信号、数据信号、控制信号。 22、一个函数由函数说明和函数体两部分组成。 23、C语言中,函数在调用之前必须先定义。 24、指针数组的全部数组元素必须是指向相同数据类型的指针。 25、C语言规定,结构体变量的地址在数值上等于第一个成员的地址。 26、判断文件是否结束使用的函数是feof( )。 27、DOS的启动方法可分为冷启动和热启动。 28、C语言语句的结束标志是;。 29、C语言程序执行,在main( )函数中开始,在main( )函数中结束。 30、在C语言中,为赋值的auto变量的值是随机性。 32、指向数据类型相同的变量的指针px和py,若px=py,则说明px和py指向同一个变量。 33、文件是DOS管理的基本对象。 34、C语言中实型变量分为两种类型float和double。 35、在C语言中,为赋值的数值型static变量的值是0. 36、如果函数间传递的是地址值,函数的形参必须是指针变量。 37、从文件中一次读出一个字符的函数是fgetc( )。 38、按照与CPU的关系,存储器被分为内部存储器和外部存储器。

相关主题