帮忙c 写一个计算器器,

编写一个计算器程序_中华文本库
编写一个袖珍计算器程序 - 副本_计算机软件及应用_IT/计算机_专业资料 暂无评价|0人阅读|0次下载|举报文档 编写一个袖珍计算器程序 - 副本_计算机软件及应用_IT...
编译原理实现一个简单的计算器程序_计算机软件及应用_IT/计算机_专业资料。单词的构词规则有明确的定义; 编写的分析程序能够正确识别源程序中的语法符号; 计算器源...
实验四:通过栈设计一个计算器程序学 院专业班级学号姓名 实验时间: 一、 实验目的: 1.熟悉栈的表示和实现方法,基于相应的表示实现; 2.基于栈的各种操作,做一...
用Java编写一个简单的计算器_理学_高等教育_教育专区。import java.awt.*; import...用Java编写的计算器(特点... 2页 1下载券 用JAVA编写计算器程序(模... ...
程序设计题一: 程序设计题一:编程实现计算器功能一、课题内容和要求通过此课题,练习顺序结构、选择结构、循环结构的程序的编制,特别是“菜单”的设计,掌 握一些...
因此,程序在框架结构上还可进行改进,加入一个信道类,来实现各类间 的消息传递。加多其他功能类,更完善计算器的功能选取择。 另外,由于水平所限,进行运算操作过程...
C#编写简易计算器(附源代码)超详细_IT/计算机_专业资料。C#编写简易计算器(附源代码)超详细温柔一刀dgj编写 百度ID:温柔一刀 dgj 超详细一、 因为计算器设计的...
《计算器程序设计》 第2页共 38 页 用 C++编写计算器程序 搞 要 本课程设计是在基于对话框的应用程序中模拟一个计算器,本计算器可以进行 十进制下的四则运算...
实验四 Qt 编写简单的计算器一、 【实验目的】 1) 熟悉 QtCreator 的简单操作。 2) 了解 Qt 程序编写框架。 3) 了解信号和槽机制,熟练掌握信号与槽在应用...
实验名称 实验目的及要求实验环境实验内容算法描述及实验步骤 C++面向对象程序设计 班级 学号 实验日期 实验成绩 实验五 简单 MFC 程序设计(编写一个小型计算器) 1...JavaScript实现一个简易的计算器实例代码
转载 &发布时间:日 11:25:23 & 作者:萤火虫塔莉
这篇文章主要介绍了JavaScript实现一个简易的计算器实例代码,具有很好的参考价值,希望对大家有所帮助,一起跟随小编过来看看吧
自己期末复习的时候就一直想要写一个计算器,闲暇的时候也在想具体怎么实现,觉得应该不难,但就是想写。昨天终于可以开始动工,刚开始还以为实现出来需要一个周左右至少两天的时间,想着实现完我就可以先回家两天了。但没想到整个实现过程算比较顺利吧,昨天用了大概六个小时完成了从设计到具体实现。
有大概一个月没怎么写代码了,整个大脑都不适应,反应也慢,一些基本的东西都有点模糊不清了。可能是原来就没有太理解,再加上没有其余练习,导致效率有些低。
&div class="errorHint" id="errorHint"&&img src="https://github.com/crystalYY/calculator/blob/master/img/error.png?raw=true"&&/div&
&table cellpadding="0"&
&th colspan="5"&计算器&/th&
&td colspan="5"&
&input type="text" value="0" name="showResult"&
&td&&button&7&/button&&/td&
&td&&button&8&/button&&/td&
&td&&button&9&/button&&/td&
&td&&button class="setChange" id="backSpace"&退格&/button&&/td&
&td&&button class="setChange" id="clearNum"&C&/button&&/td&
&td&&button&4&/button&&/td&
&td&&button&5&/button&&/td&
&td&&button&6&/button&&/td&
&td&&button&+&/button&&/td&
&td&&button&-&/button&&/td&
&td&&button&1&/button&&/td&
&td&&button&2&/button&&/td&
&td&&button&3&/button&&/td&
&td&&button&*&/button&&/td&
&td&&button&/&/button&&/td&
&td&&button&0&/button&&/td&
&td&&button&.&/button&&/td&
&td&&button&%&/button&&/td&
&td colspan="2"&&button class="setChange" id="gainResult"&Enter&/button&&/td&
&script type="text/javascript" src='index.js'&
*{margin: 0 padding: 0}
.errorHint{position: left: 130 top:-282}
.showError{border:1}
table{ border: 2px solid #996c33; width: 550 padding: 10 margin: 150 background:url(https://github.com/crystalYY/calculator/blob/master/img/bg2.jpg?raw=trueg) left center no- border-radius: 10}
text-align:
width: 100
height: 40
padding-left: 2
padding-bottom: 2
font-size: 18
font-family:'楷体';
table td button{
width: 98%;
height: 98%;
font-size: 16
font-family: 'Microsoft yahei';
background:
border:1px solid #000;
border-radius: 5
table td input{
width: 100%;
margin: 10px 0;
padding: 5
border:1px solid #996c33;
box-sizing: border-
text-align:
font-size: 16
font-family: 'Microsoft yahei';
var oinput=document.getElementsByTagName('input')[0];
//获取外部样式
function getStyle(obj, name)
if(obj.currentStyle)
return obj.currentStyle[name];
return getComputedStyle(obj, false)[name];
//渐变动画
function move(obj,attr,tar){
clearInterval(obj.timer);
obj.timer=setInterval(function(){
var cur=parseInt(getStyle(obj,attr));
var itarget=parseInt(tar);
var speed=(itarget-cur)/6;
speed=speed&0?Math.ceil(speed):Math.floor(speed);
obj.style[attr]=parseInt(getStyle(obj,attr))+speed+'px';
if(speed==0){
clearInterval(obj.timer);
//事件绑定函数
function addEvent(obj,ev,fun){
if(obj.attachEvent){
obj.attachEvent('on'+ev,fun);
obj.addEventListener(ev,fun,false);
//阻止默认行为
function stopEvent(ev){
var e=ev||window.
if(e.preventDefault){
e.preventDefault();
e.returnValue=//ie
//计算最终结果
function getResult(){
function evalResult(){
var result=eval(oinput.value);
//捕获异常
var x=evalResult();
catch (e){
oinput.className='showError';
var errorHint=document.getElementById('errorHint');
move(errorHint,'top',0);
setTimeout(function(){
oinput.className='';
move(errorHint,'top',-282);
return oinput.
//文本框获取焦点,错误提示消失
//按下回车得到结果
function enterResult(ev){
var e=ev||window.
if(e.keyCode==13){
stopEvent(ev);//阻止enter键的默认行为
var result=getResult();
oinput.value=
//绑定点击事件
function init(){
var otable=document.getElementsByTagName('table')[0];
addEvent(otable,'keydown',function(ev){
enterResult(ev);
addEvent(otable,'click',function(ev){
stopEvent(ev);
var e=ev||window.
var itat=e.target||e.srcE
var obtns=document.getElementsByTagName('button');
if(itat.nodeName.toLowerCase()=='button'){
for(var i=0;i&obtns.i++){
obtns[i].style.borderColor='#000';
itat.style.borderColor='white';
if(itat.className!='setChange'){
if(oinput.value=='0'){
oinput.value='';
oinput.value+=itat.innerHTML;
oinput.value+=itat.innerHTML;
if(itat.id=='backSpace'){
oinput.value=oinput.value.toString().slice(0,-1);
else if(itat.id=='clearNum'){
oinput.value='0';
var result=getResult();
oinput.value=
正常显示界面
错误提示界面
效果实现:
<span style="color: #.使用table画出整个界面。
借鉴了其他人已经实现了的结构,发现他们有一些人没有直接在td里写1,2,3或者退格什么的,而是又嵌套了一个button,我其实到现在也没有太理解为什么要这样,只是在排版的时候感觉到有些作用:因为margin对td 不起作用,只能设置padding。
<span style="color: #.使用eval函数计算最终结果,并捕获异常
function getResult(){
function evalResult(){
var result=eval(oinput.value);
//捕获异常
var x=evalResult();
catch (e){
oinput.className='showError';
var errorHint=document.getElementById('errorHint');
move(errorHint,'top',0);
setTimeout(function(){
oinput.className='';
move(errorHint,'top',-282);
return oinput.
eval函数第一次使用,w3c上对它的定义如下
eval() 函数可计算某个字符串,并执行其中的的 JavaScript 代码。
有了这个函数得到最终结果就很容易了。我的思路是在用户输入要计算的式子时不加干预,最终的计算从input输入框中获取value值,然后把这个value值作为参数传递给eval,并使用try catch(exception)来捕获并处理异常。
<span style="color: #.通过事件代理绑定事件
因为每个button都需要有一个点击事件,如果一个一个去绑定,会导致代码十分的不简洁,而且效率也非常低。这时就可以考虑使用事件代理,由于事件冒泡的原理,我们可以把点击事件绑定在table上,然后通过判断事件发生的具体对象来做出不同的反应,调用不同的函数。
<span style="color: #.其他效果
可以根据自己的设计思路,添加其他的效果。我主要是添加了一个错误提示的动画:如果eval函数抛出异常,则从上面缓慢滑下一个图片,并且通过setTimeout来设置了停留的时间。
<span style="color: #.注意细节
在设置enter键按下获得结果的时候,keydown事件对象应该为整个table,并且应该阻止enter键的默认行为
获取元素样式时需要写一个兼容函数,因为obj.style.attr只能获取行间样式,要像获取外部样式需要用getComputedStyle(obj,false)[attr]或兼容IE的obj.currentStyle[attr]。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。
您可能感兴趣的文章:
大家感兴趣的内容
12345678910
最近更新的内容
常用在线小工具新手自学编写的一个简单计算器分享给大家 - 『精品软件区』
- 吾爱破解 - LCG - LSG |安卓破解|病毒分析|破解软件|www.52pojie.cn
后使用快捷导航没有帐号?
只需一步,快速开始
请完成以下验证码
请完成以下验证码
查看: 3140|回复: 23
新手自学编写的一个简单计算器分享给大家
阅读权限10
自从来到吾爱论坛一直怀着膜拜的心情和小眼神看各位发出各种工具,最近经过自己的学习终于做出来自己的第一个小程序,分享一下内心的满足感和成就感,以后会继续努力和大家一起进步。哈哈小小计算器送上~~~~第一次发帖求鼓励~~~http://pan.baidu.com/s/1pKuj32z
加油 觅风的教程不错
什么工具写的。
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限20
自己学了2个月c写了个黑窗口计算器,我这个可以直接计算,比如我要算加法一个减法和乘法的运算。1+2-3*2只需输入然后再按=
号就会输出了,不知您这个可否如此?
#include&&&stdio.h&
//前置声明
float&&addition(float);
float&&subtraction(float);
float&&multipliction(float);
float&&division(float);
int&&main(void)
& &float&&i;
& &char&&q;
& &printf(&\t& && &欢迎使用!\t\n&);
& &scanf(&%f&,&&&i);
& && &scanf(& %c&,&&&q);
& && &if&&('+'&&==&&q)
& && &i&&=&&addition(i);
& && &else&&if&&('-'&&==&&q)
& && &i&&=&&subtraction(i);
& && &else&&if&&('*'&&==&&q)
& && &i&&=&&multipliction(i);
& && &else&&if&&('/'&&==&&q)
& && &i&&=&&division(i);
& &}while&&('='&&!=&&q);
& &printf(&计算结果为:%f\n&,&&i);
& &return&&0;
float&&addition(float&&x)
& &float&&m&&=&&0;
& &scanf(&%f&,&&&m);
& &x&&=&&x+m;
& &return&&x;
float&&subtraction(float&&x)
& &float&&m;
& &scanf(&%f&,&&&m);
& &x&&=&&x-m;
& &return&&x;
float&&multipliction(float&&x)
& &float&&m;
& &scanf(&%f&,&&&m);
& &x&&=&&x*m;
& &return&&x;
float&&division(float&&x)
& &float&&m;
& &scanf(&%f&,&&&m);
& &x&&=&&x&&/&&m;
& &return&&x;
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限20
E语言写的啊,支持下楼主。记得上图啊,帮你截了。确实很简单的计算器。
呵呵,果然很简单
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
用易语言写的
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限30
应该加张图
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限20
最好有截图!
向你表示祝贺!
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
呵呵。加油吧
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限35
E语言写的啊,支持下楼主。记得上图啊,帮你截了。确实很简单的计算器。
_103918.png (9.82 KB, 下载次数: 0)
10:39 上传
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限25
无图啊楼主
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
感谢分享~~~
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限10
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
阅读权限100
没图?上图把
发帖求助前要善用【】功能,那里可能会有你要找的答案;如果你在论坛求助问题,并且已经从坛友或者管理的回复中解决了问题,请把帖子分类或者标题加上【已解决】;如何回报帮助你解决问题的坛友,一个好办法就是给对方加【热心】,加分不会扣除自己的积分,做一个热心并受欢迎的人!
免责声明:吾爱破解所发布的一切破解补丁、注册机和注册信息及软件的解密分析文章仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。如果您喜欢该程序,请支持正版软件,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。
( 京ICP备号 | 京公网安备 87号 )
Powered by Discuz!
Comsenz Inc.https://kuaibao.qq.com/s/J4YD00?refer=cp_1026前面几天大勇给小伙伴们分享了一些html、css和js的知识。今天就带小伙伴们,用前面的知识实现一个简单的计算器。工程结构图:首先画出界面:calc.htmlcalc.html&content-type&content=&text/ charset=UTF-8&&&stylesheet&type=&text/css&href=&../css/calc.css&&&text/javascript&src=&../js/jquery-1.8.3.js&&&text/javascript&&$(function() {//给按钮绑定点击事件$(&.btn&).click(function() {// 1.获取文本框中已经存在的数据varoldStr = $(&#txtcalc&).val();// 2.获取点击按钮上的数字或符号varnum = $(this).text();// 3.文本框中将来要显示的数据varnewStr = oldStr +// 4.把将来要显示的数据赋值给文本框$(&#txtcalc&).val(newStr);});//给等于号绑定点击事件$(&#btnGetRes&).click(function() {//获取文本框中的值varstr = $(&#txtcalc&).val();//对文本框内的结果进行计算varres = eval(str);//把计算的结果赋值给文本框本身$(&#txtcalc&).val(res);});});&calc&&&calcTitle&&计算器&txtcalc&type=&text&/&&btnContainer&&&btn&&7&btn&&8&btn&&9&btn&&/&btn&&4&btn&&5&btn&&6&btn&&*&btn&&1&btn&&2&btn&&3&btn&&-&btn&&&btnGetRes&&=&btn&&.&btn&&+添加外部样式:calc.css@CHARSET&UTF-8&;#calc{border:1pxsolid#ff94b9;width:300margin:}#calcTitle{padding:13px20font-size:20font-weight:300;color:#ff2222;}#txtcalc{outline:width:247margin-left:20height:35font-size:25padding-left:10border:1pxsolid#ff94b9;color:#ff2222;}#btnContainer{margin:17px20px17}#btnContainer&table&tbody&tr&td&div{border:1pxsolid#ff94b9;padding:13px22margin:7px7background-color:#fdeff3;color:#E91E63;cursor:}#btnContainer&table&tbody&tr&td&div:hover{border:1pxsolid#fd75a4;background-color:#ffdee7;}最终界面效果:一起动手试试吧,过程中有问题可以给我留言哦~本文作者 | 大勇特别敬告 | 未经允许,请勿转载,版权所有,违者必究热门文章发表于发表于发表于发表于发表于发表于

我要回帖

更多关于 用php写一个计算器 的文章

 

随机推荐