计算是汉语词语。有“核算数目,根据已 知量算出未知量;运算”和“考虑;谋虑”两种含义, 以下是为大家整理的关于年龄计算器6篇 , 供大家参考选择。
年龄计算器6篇
年龄计算器篇1
延迟退休方案计算器 退休年龄计算方法最新延迟退休年龄计算器入口,2016退休年龄计算方法 人社部部长尹蔚民在介绍“十二五”以来就业和社会保障工作成就时,再度提到了延迟退休改革方案,并表示我国将以小步慢走的方式,推行渐进式延迟退休改革政策。 2018延迟退休年龄怎么计算公式 2017年推出延迟退休方案,推出方案五年后实施渐进式延迟退休政策。 也就是2022年开始,女性每年延长四个月,每三年延长一年,男性每年延长二个月,每六年延长一年,至2052年止男性退休年龄65岁,女性60岁。 新规定退休年龄的计算方法 新规定后的退休年龄为:男:到2025年全部达到65岁退休,1955年及之前出生的退休年龄为60岁,1960年及之后出生的退休年龄为65岁,1955至1960年之间出生的退休年龄为出生年份减去1895。女(干部):到2035年全部达到65岁退休,1960年及之前出生的退休年龄为55岁,1970年及之后出生的退休年龄为65岁,1960至1970年之间出生的退休年龄为出生年份减去1905。女(工人):到2045年全部达到65岁退休,1965年及之前出生的退休年龄为50岁,1980年及之后出生的退休年龄为65岁,1965至1980年之间出生的退休年龄为出生年份减去1915。 最新退休年龄计算器 目前法定退休年龄: (一)男年满六十周岁,女年满五十周岁,女干部年满五十五周岁,并且连续工龄满十年的; (二)男年满五十五周岁、女年满四十五周岁,连续工龄满十年的,从事井下、高空、高温、特别繁重体力劳动或其他有害身体健康的工作; (三)男年满五十周岁,女年满四十五周岁,连续工龄满十年,由医院证明,并经劳动鉴定委员会确认,完全丧失劳动能力的应当准予退休。 对于延迟退休提出的方案是: 第一,从2015年开始,1965年出生的女性职工和居民应当推迟1年领取养老金,1966年出生的推迟2年,以此类推,到2030年实现女性65岁领取养老金。 第二,从2020年开始,1960年出生的男性职工和居民推迟6个月领取养老金,以此类推,到2030年实现男性职工和居民65岁领取养老金。
文章来源网络整理,请自行参考使用
年龄计算器篇2
“身体素质年龄计算器”能测量健康水平
作者:鲁湾
来源:《科学养生》2014年第04期
据媒体报道,挪威科技大学运动医学研究中心的科学家发明了“身体素质年龄计算器”,能正确地测量一个人的健康水平。
“身体素质年龄”不同于实际年龄,它能反映出一个人的身体状态。假如你的实际年龄为30岁,但身体所遭受的各种磨损会让你显得更老。研究人员对近5000名年龄在20岁~90岁之间的挪威人的生理数据进行运算后发现,用这种方法预测身体素质年龄的准确度相当高。
在研究中,科学家发现,运动时的最大携氧量是衡量一个人身体素质年龄的重要指标。但单一测量身体最大携氧量比较困难,科学家于是将它分解为5大基本指标来简化衡量。这5项分别为:静息心率、腰围、性别、最大运动水平与强度、年龄。参与者只需要输入这5个数据,计算器就能快速得出一个人的最大携氧量、同一年龄组的平均数和调查总体样本的平均数以及自己的身体素质年龄。
研究人员认为,身体素质年龄与实际年龄不同,它是可逆的。如果一个中年人开始进行更多的锻炼,缩减了腰围,其预期寿命有望得到相当大的延长。
发表在美国《体育运动医学与科学》期刊上的这项研究成果还认为,身体素质年龄是预测一个人当前和未来健康状况的最佳单一指标,身体素质年龄这一概念应得到推广。
解读/鲁湾
关于“年龄”的计算方法很多,我们常用的是一种历法年龄,也称时序年龄,即出生后按日历计算的年龄。每个人户籍上记载的就是这个年龄,这是一个不变的恒数,每个人都是过一年长一岁。还有一种是根据正常人体生理学上和解剖学上发育状态所推算出来的年龄。由于每个人组织结构和生理功能的实际衰老程度不同,所以,它和历法年龄不同步,比如一个人户籍上的历法年龄是60岁,但由于注意养生,他的生理年龄可能只有50岁。而如果不注意养生,他的生理年龄就可能已经70岁了。
年龄计算器篇3
有关计算器的使用
(2007-11-15 14:44:06)
转载▼
一、基本概念
电子计算器在英文叫Electronic Calculator,是由单片大规模集成电路等元件构成的现代计算工具,具有体积小、操作简便、运算功能多、速度快、精确度高、用途广等优点。常用于个人对医学数据的统计处理及分析。计算器与英文的Computer也即计算机有所不同。后者通过程序控制,可以更高或惊人的运算速度处理极为大量及复杂的科研数据资料。一般所称的科学计算器即Scientific Calculator是指计算器采用了指数记数法,可在显示屏上显示出9.9999999×1099至1.0000000-99的任何数值。
二、分类及特性
1. 分类
①一般型 具有四则混合运算,存贮运算,常数运算以及百分比,开平方,倒数等运算功能。
②函数型 除具有一般功能外,还有三角函数、对数、阶乘、坐标变换、指数、统计运算、相关与回归分析等功能,应用最为广泛。
③程序型 通过编制简单程序进行代数及函数方程进行代数及函数方程等系统性运算。
④多功能型 除具有运算功能外,还有电子日历、电子闹钟、定时报警等特殊功能。
⑤专用型 可以根据某特殊需要来完成特定功能。如财会、银行专用计算器、单位换算计算器、算术测验器或算术练习器等。
我们常用的几类有TOSHIBA SLC – 8310 型,SHARP EL – 506P型,均为函数型科学计算器,具有统计运算及阶乘运算功能。CASIO fx – 180P、fx – 3600P、fx – 3800P及fx – 4000P系列是可编程序函数型科学计算器,除具有统计运算外,尚有相关与回归分析,积分计算及可编程序运算功能。
2. 特性
①液晶显示8~10位数。
②自动电源保护系统 最后一次使用后停止操作约6~8分钟即自动关闭电源。
③保留记忆功能 电源关闭后,记忆的数据不消失,仍在存贮器中。
④进行最常用的各种运算 四则混合运算,函数运算,统计运算等。
三、使用注意事项
1. 工作环境:一般为0~40℃。应避免置于高温、严寒、灰尘、潮湿及磁场附近。
2. 避免剧烈震动,碰撞,挤压,冲击等不良刺激。
3. 操作时,先将计算器平置于桌面或非弹性物体上,用手指轻轻或适度按压各键。
4. 切勿使用任何有机溶剂类如酒精、苯类、汽油、煤油等擦拭计算器。
5. 切勿随意打开计算器后盖。
6. 切勿夹入书本、笔记本以及放入衣服口袋中携带及存放。
四、常用键符及其功能简介
计算器牌号、型号较多,许多常用键的符号相同,功能相同或相近,运算规则相同或不同。有些键符号不同,功能却相同或相近。有些功能因不常使用,其使用规则可查阅有关说明书或参考书。应特别强调第二功能键或称为反功能键(符号为2ndF,F或INV)的使用,该键必须与其它功能键紧密配合才能发挥其作用,且第二功能键的颜色或符号颜色常与其它键的第二功能的符号颜色相一致。
表1—1 计算器常用键符及其功能
表1-4 十进制与其它各进制转换操作
線性回歸 ( Linear Regression ) 是一種分析數據方法,目的是透過分析兩個變數 x 及 y 的數據去看看它們是否有線性關係 ( Linear Relationship ),亦即是說 x 和 y 之間的關係是否可以以 y = A + Bx 表示,其中 A 和 B 是常數 ( Constant )。要計算 A 和 B 的數值,計算機會使用最少平方法 ( Method of Least Squares ),同時亦會透過計算一個稱為 Correlation Coefficient 的數值去判定 x 和 y 是否有線性關係。要進行線性回歸計算,請先按 MODE 2 將計算機轉入 LR 模式。
由於每個變數數據需要各自輸入,所以要使用 xD,yD ( 按 ( 鍵 ) 及 DATA 命令。輸入方法請看以下例子:利用直線回歸分析下列數據以決定 x 及 y 是否有線性關係 ( 以 y = A + Bx 表示 ):
並求 (a) 當 x = 15 時 y 的值 (b) 當 y = 6 時 x 的值輸入 12 xD,yD 8.85 DATA 14 xD,yD 8.31 DATA 16 xD,yD 7.67 DATA 18 xD,yD 7.01 DATA20 xD,yD 6.39 DATA 22 xD,yD 5.68 DATA( 基本上輸入方式是按入 數據 x xD,yD 數據 y DATA。) 然後再按SHIFT 1 顯示 17 ( x 的算術平均數 Arithmetic Mean of x )SHIFT 2 顯示 3.416 ( x 的標準差 Standard Deviation of x )SHIFT 3 顯示 3.742 ( x 的樣本標準差 Sample Standard Deviation of x )SHIFT 4 顯示 7.318 ( y 的算術平均數 Arithmetic Mean of y )SHIFT 5 顯示 1.087 ( y 的標準差 Standard Deviation of y )SHIFT 6 顯示 1.191 ( y 的樣本標準差 Sample Standard Deviation of y )Kout 1 顯示 1804 ( x 的數據平方總和 Sum of Squares of x )Kout 2 顯示 102 ( x 的數據總和 Sum of x )Kout 3 顯示 6 ( 數據的數量 Total Frequency )Kout 4 顯示 328.442 ( y 的數據平方總和 Sum of Squares of y )Kout 5 顯示 43.91 ( y 的數據總和 Sum of y )Kout 6 顯示 724.2 ( xy 的數據總和 Sum of xy )SHIFT 7 顯示 12.727 ( A 的數值,回歸線 Regression Line 的 y 軸截距 y-intercept )SHIFT 8 顯示 –0.318 ( B 的數值,回歸線 Regression Line 的斜率 slope )SHIFT 9 顯示 –0.99936 ( Correlation Coefficient 的數值,如果這個數接近 1 或 –1,則表示可相信 x 及 y 有線性關係 )15 ) 顯示 7.955 ( x = 15 時 y 的數值 )6 SHIFT ) 顯示 21.144 ( y = 6 時 x 的數值 )( 上面的 ) 及 SHIFT ) 按鍵是分別用於估計當已知 x ( 或 y ) 的數值時,y ( 或 x ) 的近似值。)完成統計計算後,請按 MODE . 將計算機轉回 RUN 模式。
年龄计算器篇4
QT 课程 程序设计
题目:科学计算器
姓 名:杨 平
学 号:201005070116
学 院:信息技术与科学
专 业:软件工程
2012年12月10日
1.
功能需求分析
1.1 功能划分
● 本次我们设计的计算器在功能上大致与Windows系统自带的计算器程序相似,但在某些细节处加入了我们设计同学的独特创新和技巧,具体体现见详细设计部分。对于我们所设计的科学计算器,其功能大致可以如下划分:
① 算术型计算器功能——可以进行加(+)、减(-)、乘(*)、除(/)、开方(sqrt)、百分数(%)等简单算术计算。
② 科学型计算器功能——可以进行乘方、开方、指数、对数、三角函数、等方面的运算。
③ 一元运算和多元运算——可以进行表达式和简单运算,且切换较为快捷。
1.2 功能描述
● 对于算术型计算器的功能大家已经非常熟悉,就不再赘述。这里只对科学型计算器功能中的特殊符号、必要函数及技巧创新功能部分作简单描述。
① 特殊符号和函数
Pi —— π 。即 3.1415926…
Ln ——自然对数,ln(x)是以e为底的x的对数
Log ——以10为底的对数,10是可以省略的
S in ——正弦函数
Arcsin ——反正弦函数
Cos ——余弦函数
Tan ——正切函数
n! ——阶乘
Mod ——取模运算
Clear ——清空
等等这些符号有利于我们计算,方便快捷的得出结果。
②使用数据记录:
我们都知道,现在市面上一般的计算器虽然在计算上能满足用户的需求,但对于一些重要的数据和运算过程、记录,就无法实现重要过程和数据的记录,所以这项功能的添加让我们的计算器更加科学化,人性化,用户不必要再担心运算的出错和检查的麻烦。这也是我们所设计的计算器相比于其他计算器的重要优点之一。
2.详细设计
2.1 普通计算功能
(1)界面设计
界面设计我们是使用Qt creator进行设计的,首先创建一QMainWindow(parent).ui,这个界面为QWidget。然后在左侧的Widget Box找相应的控件添加到QMainWindow(parent)里。首先提出一个lineEdit控件作为算式显示窗口和结果显示窗口,在提取出30个QpushButton为0到9按键和加减乘除按键、括号按键、开根号按键、小数点按键、%按键、取模按键、阶乘按键、取倒按键、等于按键、历史按键、标准/科学模式切换按键。然后再把各个pushButton名字改成相应的符号,并且改对应pushbutton的属性,保存后取Qt creator编译QMainWindow(parent).ui,运行程序就可以显示相应界面。
具体界面设计效果如下:
且各组件的属性设置如下:
(2)程序具体实现
现在.h文件中对各个按键在私有槽中进行声明,例如:
public slots:
void clickbtn1();
就对1键(槽函数)进行声明,然后就可以在.cpp进行编写程序。声明first,second两个整形表示第一个输入和第二个输入,然后用Qt(Qstring)封装好的append()函数进行添加,当然,这里牵涉到本程序对Btn按键的函数声明,并且使用setText函数,使其按键符号点击后可以在lineEdit上显示,在这里用的是信号和槽的机制,具体的信号于槽的链接在后面会详细说明。
2.2 科学计算器功能
本界面的主要功能是在普通计算器的基础上,添加了一些科学计算的功能,具体实现的操作功能包括三角函数运算()、反三角函数运算()、双曲三角函数运算()、对数运算()、
弧度运算、角度运算、梯度运算。
(1)界面设计
为了隐藏的需要,我们采用Group Box的组件,然后设置“”按键,通过点击“”按键可将窗口由标准型切换为科学型(此时“”按键变为“”按键,再点击一次即可变回标准型),切换为科学型窗口后,在普通窗口的基础上添加一些QPushButton按钮,修改其属性,使其变成相应的功能键,再从左边把QComboBox拖到科学计算窗口中,并修改其属性,用户可以在下拉框中,选择自己想要实现的运算类型(如:弧度、梯度;不同对数运算),然后用对上述按键在窗口中进行合理布局,最后用QtCreator对所设计的界面进行编译形成ui文件,点击运行即可查看所设计界面。 具体界面设计效果如下:
下拉框中显示的设计如下:
各组件的属性设置如下:
(2)程序具体实现
这里仍使用信函和槽连接机制,我们没有使用信号和槽编辑器,而是直接在.cpp文件中添编写其代码来实现,首先在.h文件中对各个按键进行声明,如:void clicksin();就是对sin按键进行声明,再到.cpp文件中编写相应的代码实现其功能,当Jing_zhan_unary变量为ture时,执行clickTrigJIng_zhan_TS(“sin”),或当Jing_zhan_Expression变量为ture时,执行sinBian_lian=true;clickJing_zhan_Pro("sin","]",mu_qianSin);实现sin的运算功能。
2.3 计算历史显示功能
本模块包括本系统的删除、保存功能。
(1)界面介绍
这里我要用两个QpushButton控件和一个LineEdit控件,两个QpushButton控件分别表示删除算式、算式另存为,在修改其属性,再拖拽一个LineEdit控件,它用来显示计算机执行的历史事件,而且还可以在其上点击选择算式。
具体界面设计效果如下:
各组件的属性设置如下:
(2)程序具体实现
另存为算式:首先声明一个另存为的函数void calculate::clickHistorySaveas(),添加一个QFileDialog控件作为另存为显示窗口,再把QFileDialog名字改成相应的另存为,并且改对应QFileDialog的属性,然后查询算式表(message),查找最后一个id的值,然后id加一,再把次id和窗口提取的算式存入数据库算式表(message)中,然后通过槽函数ui->statusBar->showMessage(Version+" : "+tr("已保存"),10000);查询整个message表把表中的内容显示出来。
删除算式:先用currentIndex().row()把鼠标点中的行选中。提出行数,声明model,再用model中封装好的函数删除这一行,在加上警告函数,判断是否删除,就可以了。
2.4 删除功能
此功能为删除窗口中的最后一个字符,具体编写过程为:提取窗口中的内容,并把窗口中的内容存放到一个QString型变量中,然后用Qt现有的已经封装好的函数,把这个变量从左边开始将其最后一个字符去掉,使其长度减少一,将改变后的字符串在存放到这个变量中,再把这个变量重新返回到窗口中,这样就达到删除的功能了。
2.5 清空功能
此功能为清空显示窗口,这里用Qt封装好的函数clear(),直接把窗口给清空,这样就达到效果。
2.6 操作类型切换功能
在菜单栏里添加操作类型选择按键,在操作类型按键下有一元顺序运算和表达式运算两个子选项,当选择一元顺序运算时,将“(”按键和“)”按键设置为不可点击即,而当选择表达式运算时,将“1/x”按键和“±”按键设置为不可点击。由于在不同的操作类型下,有些运算符不适用,故将其设置为不可点击,
这样可以防止用户进行违规操作。
具体界面设计效果如下:
3.系统的实现:
计算分简单计算和科学计算两种功能,又由于要实现表达式的功能,故应该将其分开实现,所以,我们在程序中设置了两逻辑变量进行区分,如下所示。
bool Jing_zhan_unary=false; //一元操作
bool Jing_zhan_Expression=true; //表达式操作
当然,对于下面具体步骤中出现的函数,我们有必要在此说明,这其中也包括整个程序的核心算法。
考虑到程序中出现了众多信号与槽的链接,故采用手工链接的方式进行。
首先在calculate.h中声明如下槽函数:
public slots:
void clickSifirla();
void clickbtn(QString);
void clickbtn1();
void clickbtn2();
void clickbtn3();
void clickbtn4();
void clickbtn5();
void clickbtn6();
void clickbtn7();
void clickbtn8();
void clickbtn9();
void clickbtn0();
void clickPoint();
void clickPointControl();
void clickClear();
void clickPlus();
void clickDecrease();
void clickMultiply();
void clickEliminate();
void clickEql();
void clickJing_zhan_();
void clickJing_zhan_2(QStringList &diziPro,QString isaret);
void clickBackspace();
void clickChangesign();
void clickSqrt();
void click_G();
void clickCi();
void click_1_x();
void clickJie_cheng();
void clickSwitch();
void clickSimple();
void clickSin();
void clickCos();
void clickTan();
void clickCot();
void clickPi();
void clickE();
void clickArcsin();
void clickArccos();
void clickArctan();
void clickArccot();
void clickSinh();
void clickCosh();
void clickTanh();
void clickCoth();
void clickLog();
void clickHistory();
void clickHistoryDelete();
void clickHistorySaveas();
void clickExpression();
void clickunary();
void clickReplaceTur(QLabel*,QLabel*,bool);
void clickJing_zhan_caozuoleixing();
void clickJing_zhan_Pro(QString,QString,bool);
void clickTrigJing_zhan_IO(QStringList &diziPro,bool &trigVar,QString,QString);
void clickTrigJing_zhan_IS(QString);
void clickYerReplace(QStringList &diziPro,int,double);
void clickMod();
void clickZkuohao();
void clickYkuohao();
double clickDonusum(int,double);
void clickQ_zhishu();
在calculate.cpp中calculate::calculate(QWidget *parent) : QMainWindow(parent),ui(new Ui::calculate)构造函数中进行信号于槽的链接,也就是各按键及工具条等组件的动作响应关系(函数)如下:
connect(ui->btnSwitch,SIGNAL(clicked()),this,SLOT(clickSwitch())); //科学 和 简单 快速切换键
connect(ui->btnHistory,SIGNAL(clicked()),this,SLOT(clickHistory())); // 历史键
connect(ui->btn1,SIGNAL(clicked()),this,SLOT(clickbtn1())); // 1
connect(ui->btn2,SIGNAL(clicked()),this,SLOT(clickbtn2())); // 2
connect(ui->btn3,SIGNAL(clicked()),this,SLOT(clickbtn3())); // 3
connect(ui->btn4,SIGNAL(clicked()),this,SLOT(clickbtn4())); // 4
connect(ui->btn5,SIGNAL(clicked()),this,SLOT(clickbtn5())); // 5
connect(ui->btn6,SIGNAL(clicked()),this,SLOT(clickbtn6())); // 6
connect(ui->btn7,SIGNAL(clicked()),this,SLOT(clickbtn7())); // 7
connect(ui->btn8,SIGNAL(clicked()),this,SLOT(clickbtn8())); // 8
connect(ui->btn9,SIGNAL(clicked()),this,SLOT(clickbtn9())); // 9
connect(ui->btn0,SIGNAL(clicked()),this,SLOT(clickbtn0())); // 0
connect(ui->btnPoint,SIGNAL(clicked()),this,SLOT(clickPoint())); //小数点的实现
connect(ui->btnClear,SIGNAL(clicked()),this,SLOT(clickClear())); // Clear按键的实现
connect(ui->btnPlus,SIGNAL(clicked()),this,SLOT(clickPlus())); // 加法
connect(ui->btnDecrease,SIGNAL(clicked()),this,SLOT(clickDecrease())); //减号
connect(ui->btnMultiply,SIGNAL(clicked()),this,SLOT(clickMultiply())); //乘号
connect(ui->btnEliminate,SIGNAL(clicked()),this,SLOT(clickEliminate())); //除号
connect(ui->btnEql,SIGNAL(clicked()),this,SLOT(clickEql())); //等号
connect(ui->btnBackspace,SIGNAL(clicked()),this,SLOT(clickBackspace())); //退格
connect(ui->btnChangesign,SIGNAL(clicked()),this,SLOT(clickChangesign())); //改变符号
connect(ui->btnSqrt,SIGNAL(clicked()),this,SLOT(clickSqrt())); // 开根号
connect(ui->btn_G,SIGNAL(clicked()),this,SLOT(click_G())); //按百分比的形式显示乘积结果
connect(ui->btnCi,SIGNAL(clicked()),this,SLOT(clickCi())); // ^ 实现
connect(ui->btn_1_x,SIGNAL(clicked()),this,SLOT(click_1_x())); // 1/x 功能键实现
connect(ui->btnJie_cheng,SIGNAL(clicked()),this,SLOT(clickJie_cheng())); // 阶乘
connect(ui->btnSin,SIGNAL(clicked()),this,SLOT(clickSin())); // Sin
connect(ui->btnCos,SIGNAL(clicked()),this,SLOT(clickCos())); // Cos
connect(ui->btnTan,SIGNAL(clicked()),this,SLOT(clickTan())); // Tan
connect(ui->btnCot,SIGNAL(clicked()),this,SLOT(clickCot())); // Cot
connect(ui->btnPi,SIGNAL(clicked()),this,SLOT(clickPi())); // Pi
connect(ui->btnE,SIGNAL(clicked()),this,SLOT(clickE())); // exp
connect(ui->btnArcsin,SIGNAL(clicked()),this,SLOT(clickArcsin())); // Asin
connect(ui->btnArccos,SIGNAL(clicked()),this,SLOT(clickArccos())); // Acos
connect(ui->btnArctan,SIGNAL(clicked()),this,SLOT(clickArctan())); // Atan
connect(ui->btnArccot,SIGNAL(clicked()),this,SLOT(clickArccot())); // Acot
connect(ui->btnLog,SIGNAL(clicked()),this,SLOT(clickLog())); // Log
connect(ui->btnMod,SIGNAL(clicked()),this,SLOT(clickMod())); // Mod
connect(ui->btnDelete,SIGNAL(clicked()),this,SLOT(clickHistoryDelete())); // 历史框中 删除键
connect(ui->btnSaveas,SIGNAL(clicked()),this,SLOT(clickHistorySaveas())); // 历史框中 另存为键
connect(ui->btnZkuohao,SIGNAL(clicked()),this,SLOT(clickZkuohao())); // (
connect(ui->btnYkuohao,SIGNAL(clicked()),this,SLOT(clickYkuohao())); // )
connect(ui->action_Ke_xue,SIGNAL(triggered()),this,SLOT(clickSwitch())); //动作 科学型
connect(ui->action_History,SIGNAL(triggered()),this,SLOT(clickHistory())); //动作 历史
connect(ui->action_Simple,SIGNAL(triggered()),this,SLOT(clickSimple())); //动作 简单
connect(ui->action_Expression,SIGNAL(triggered()),this,SLOT(clickExpression())); //多元表达式
connect(ui->action_unary,SIGNAL(triggered()),this,SLOT(clickunary())); //一元顺序运算
connect(ui->btnSinh,SIGNAL(clicked()),this,SLOT(clickSinh())); // Sinh
connect(ui->btnCosh,SIGNAL(clicked()),this,SLOT(clickCosh())); // Cosh
connect(ui->btnTanh,SIGNAL(clicked()),this,SLOT(clickTanh())); // Tanh
connect(ui->btnCoth,SIGNAL(clicked()),this,SLOT(clickCoth())); // Coth
connect(ui->btnQ_zhishu,SIGNAL(clicked()),this,SLOT(clickQ_zhishu())); // a*b 功能键的实现
接下来,对部分重要的槽函数进行说明。首先,由于本课题的方向行,所以,在实现科学型计算器前,我们必须弄得一般计算器Btn键的工作原理,而这部分,在Qt事例中用详细的说明,这里我们就不必指出。考虑到表达式和简单的区别,我们分两种情况进行编写。当然,在后续的函数中,这种分别讨论的情况是经常出现的,这也从侧面说明了bool Jing_zhan_unary,Jing_zhan_Expression的重要性。具体代码如下:
void calculate::clickbtn(QString btn)
{
if(Jing_zhan_unary==true)
{
clickSifirla();
if(Jing_zhan_Bian_lian==true)
{
ui->LineEdit1->setText("");
Jing_zhan_Bian_lian=false;
}
if(zeroBian_lian==true)
{
ui->LineEdit1->setText(btn);
}
else
{
qian_= ui->LineEdit1->text();
qian_.append(btn);
ui->LineEdit1->setText(qian_);
}
zeroBian_lian=false;
safetyJing_zhan_=false;
}
else if(Jing_zhan_Expression==true)
{
if(mu_qianEql==true)
{
ui->LineEdit1->setText("");
clickSifirla();
}
qian_= ui->LineEdit1->text();
qian_.append(btn);
ui->LineEdit1->setText(qian_);
}
}
而一般的数字键,只需调用此槽函数即可,如下所示:
void calculate::clickbtn1()
{
clickbtn("1");
}
当然,由于0变量的特殊性,所以,需要对其添加额外的约束才能实现,代码如下:
void calculate::clickbtn0()
{
clickSifirla();
if(Jing_zhan_unary==true)
{
if(Jing_zhan_Bian_lian==true)
{
ui->LineEdit1->setText("");
Jing_zhan_Bian_lian=false;
}
if(ui->LineEdit1->text()=="")
{
ui->LineEdit1->setText("0");
zeroBian_lian=true;
}
else if(zeroBian_lian==false)
{
qian_=ui->LineEdit1->text();
qian_.append("0");
ui->LineEdit1->setText(qian_);
}
safetyJing_zhan_=false;
}
else if(Jing_zhan_Expression==true)
{
clickbtn("0");
}
}
说完计算器Btn键的功能实现,接下来,对于任何计算器,其“≒”键无意是对计算器功能的实现的直接展示。对于一般的简单计算器,由于有Math.h的支持,实现起来较为容易,但是,对于表达式计算器,这就是对我们整个程序逻辑关系的真确与否的直接表现,可想其重要性。
具体代码如下:
void calculate::clickEql()
{
if(Jing_zhan_unary==true)
{
if(mu_qianEql==false)
{
clickJing_zhan_();
safetyJing_zhan_=false;
Jing_zhan_Bian_lian=true;
pointBian_lian=false;
first_shu=true;
Jing_zhan_="";
}
}
else if(Jing_zhan_Expression==true)
{
mu_qianEql=true;
qian_= ui->LineEdit1->text();
qian_.append("=");
ui->LineEdit1->setText(qian_);
clickJing_zhan_();
}
}
可能大家看到这里会觉得这不算什么,其实不然,因为大多数程序都被封装在void clickJing_zhan_()函数中。接下来,我们将进入本程序的核心代码中,由于代码过长,考虑到简单计算器运算实现的简单性,我们只列举出如下关于表达式部分的代码(void clickJing_zhan_()中)。
else if(Jing_zhan_Expression==true)
{
if(ZkuohaoCounter!=YkuohaoCounter)
{
qDebug("错误");
}
else
{
backuptext=ui->LineEdit1->text();
ui->texthistory->insertPlainText(QString::number(history_Counter)+" -> "+backuptext);
for(int triCounter=0;triCountercbTri->currentText()=="弧度"){}
else if(ui->cbTri->currentText()=="梯度")
{
trig_shu=(trig_shu*pi)/200;
}
}
else if(tur==2)
{
if(ui->cbTri->currentText()=="度")
{
trig_shu=(trig_shu/pi)*180;
}
else if(ui->cbTri->currentText()=="弧度"){}
else if(ui->cbTri->currentText()=="梯度")
{
trig_shu=(trig_shu/pi)*200;
}
}
return trig_shu;
}
通过以上说明,我想大家不难发现,本课题的核心最要是在于实现表达式和基于其的按键功能特点开发上面。
最后,基于以上说明,我们便可以进行如下的详细设计过程。
3.1 简单计算功能:
普通计算功能主要是实现一般的数字运算,并将计算的结果显示出来。主要代码如下:进入主界面是默认的普通运算界面,其代码如下:
ui->setupUi(this);
clickSimple(); //简单模式
clickJing_zhan_caozuoleixing(); //表达式
layout()->setSizeConstraint(QLayout::SetFixedSize);
// 加大输出字号 ----手工方式 也可以从Qt设计师中修改 Font属性
QFont font = ui->LineEdit1->font();
font.setPointSize(font.pointSize() + 8);
ui->LineEdit1->setFont(font);
// Qt设计师的方法如下
// 在其属性框中选中font
// 按个人需要设置属性
// 注:其他部分的设计就如这种方法
以上程序写在如下的构造函数中:
calculate::calculate(QWidget *parent) : QMainWindow(parent),ui(new Ui::calculate);
简单计算界面如下:
图1 简单计算界面
3.2其中各功能键的具体实现:
void calculate::clickPlus()
{//加法运算
clickJing_zhan_Pro("Plus","+",mu_qianPlus);
pointBian_lian=false;
}
void calculate::clickDecrease()
{//减法运算
clickJing_zhan_Pro("Decrease","-",mu_qianDecrease);
pointBian_lian=false;
}
void calculate::clickMultiply()
{//乘法运算
clickJing_zhan_Pro("Multiply","x",mu_qianMultiply);
pointBian_lian=false;
}
void calculate::clickEliminate()
{//除法运算
clickJing_zhan_Pro("Eliminate","/",mu_qianEliminate);
pointBian_lian=false;
}
void calculate::clickCi()
{// ^ 幂的运算
clickJing_zhan_Pro("Ci","^",mu_qianCi);
}
void calculate::clickJie_cheng()
{// n! 阶乘的实现
if(Jing_zhan_unary==true)
{
if(safetyJing_zhan_==true)
{
qDebug("错误");
}
else
{
int Jie_cheng=1;
clickEql();
qian_Double=ui->LineEdit1->text().toDouble();
double Jie_chengCounter=qian_Double;
while(Jie_chengCounter>0)
{
Jie_cheng=Jie_cheng*Jie_chengCounter;
Jie_chengCounter=Jie_chengCounter-1;
}
ui->LineEdit1->setText(QString::number(Jie_cheng));
ui->texthistory->insertPlainText(QString::number(history_Counter)+" -> "+QString::number(qian_Double)+" ! ="+QString::number(Jie_cheng)+"\n");
history_Counter=history_Counter+1;
}
}
else if(Jing_zhan_Expression==true)
{
clickJing_zhan_Pro("Jie_cheng","!",mu_qianJie_cheng);
Jie_chengBian_lian=true;
}
}
3.3操作类型的切换
// 操作类型键的 切换
void calculate::clickReplaceTur(QLabel *labelcaozuoleixing,QLabel *label2caozuoleixing,bool Jing_zhan_caozuoleixing)
{
labelcaozuoleixing->show();
label2caozuoleixing->hide();
ui->LineEdit1->setText("");
clickSifirla();
Jing_zhan_="";
ui->statusBar->addWidget(labelcaozuoleixing);
if(Jing_zhan_caozuoleixing==Jing_zhan_unary)
{//一元类型
Jing_zhan_unary=true;
Jing_zhan_Expression=false;
ui->btnChangesign->setEnabled(true);
ui->btn_1_x->setEnabled(true);
ui->btnZkuohao->setEnabled(false);
ui->btnYkuohao->setEnabled(false);
ui->action_unary->setChecked(true);
ui->action_Expression->setChecked(false);
}
else if(Jing_zhan_caozuoleixing==Jing_zhan_Expression)
{
//多元类型(表达式)
Jing_zhan_unary=false;
Jing_zhan_Expression=true;
ui->btnChangesign->setEnabled(false);
ui->btn_1_x->setEnabled(false);
ui->btnZkuohao->setEnabled(true);
ui->btnYkuohao->setEnabled(true);
ui->action_unary->setChecked(false);
ui->action_Expression->setChecked(true);
}
}
图2 操作类型切换
3.4 通过如此设置后可以有带表达式的运算或者不带。带表达式的如下图:
图3 带表达式的界面
3.5简单计算和科学计算的切换:
为适应不同的计算需求,设置了科学计算和简单计算,其主要程序及代码如下所示:
void calculate::clickSwitch()
{// 科学 与 简单 类型的切换
if(ui->gbMat->isHidden()==true)
{
ui->gbMat->show();
ui->btnSwitch->setText(QChar(0x2191)); //上下符号
ui->action_Ke_xue->setChecked(true); //科学
}
else
{
ui->gbMat->hide();
ui->btnSwitch->setText(QChar(0x2193));
ui->action_Ke_xue->setChecked(false); //科学
}
运行后界面如下图:
图4 科学计算界面
3.6历史记录
3.6.1历史删除功能
//历史Goup -----历史.删除
void calculate::clickHistoryDelete()
{
ui->texthistory->clear();
history_Counter=1;
ui->statusBar->showMessage(Version+" : "+tr("已删除"),10000);
}
3.6.2 历史另存为功能
void calculate::clickHistorySaveas()
{
QString a = QFileDialog::getSaveFileName(this,tr("Saveas"),"/home/untitled.txt",tr("记录式文件"));
QFile f(a);
if(f.open(QIODevice::WriteOnly))
{
QTextStream out(&f);
outtoPlainText();
out.flush();
}
ui->statusBar->showMessage(Version+" : "+tr("已保存"),10000);
}
3.6.3历史功能界面如下:
图5 历史功能
单击另存为键可以可以将历史记录保存为 记事本文件格式(.txt)
3.7清空功能:
清空功能的具体实现代码如下:
// Clear 具体功能实现 -----初始化
void calculate::clickClear()
{
ui->LineEdit1->setText("");
ui->texthistory->insertPlainText("\n");
history_Counter=history_Counter-1;
clickSifirla();
satirIlk_shu=true;
zeroBian_lian=false;
pointBian_lian=false;
Jing_zhan_Bian_lian=false;
first_shu=true;
temp_shu1="0";
temp_shu2="0";
tempResults=0;
jiao_Bian_lian=false;
EqlBian_lian=false;
errorBian_lian=false;
safetyJing_zhan_=false;
_shu2=0;
_shu1=0;
Results=0;
ResultsK=0;
ResultsKS="0";
qian_Double=0;
tri=0;
tempResults=0;
}
4.运行和测试
运行过程效果如下所示:
标准型显示界面
科学型显示界面
4.1个别按键功能及使用方法介绍:
(1):退格键,可以删除窗口中从左边起最后一个字符。
运行测试:在窗口中输入:
使用一次退格键以后显示结果:
(2):开方,如需要对常数x进行开方,则可在窗口中先点击开方键,再输入x。
运行测试:对9进行开方运算,在窗口中输入
点击等于号之后窗口中所显示结果之后窗口中所显示结果:
(3):百分号,如在窗口中输入x%,则运算后显示的为将x除以100后的结果。
运行测试:在窗口中输入
点击等于号之后窗口中所显示结果之后窗口中所显示结果
(4):幂运算,如在窗口中输入x^y,则是求x的y次幂。
运行测试:在窗口中输入
点击等于号之后窗口中所显示结果
(5):质数运算,即对所输入数字x进行因式分解,将其分解为若干个质数的和。使用方法为先输入需分解的数x,在点击质数运算按键即可。
运行测试:在窗口中输入
点击质数运算按键后所显示运行结果
(6):阶乘,此运算符只能对正整数进行运算,当输入正整数x时,系统所执行的算法为:。
运行测试:在窗口中输入
点击等于号之后窗口中所显示结果
(7):模运算,即所得结果为,x除以y后所得余数的值。
运行测试:在窗口中输入
点击等于号之后窗口中所显示结果
(8):圆周率。
(9):自然对数。
(10):此按键可将计算器在标准型和科学型之间进行切换,从标准型切换为科学型后,按键图标变为,再点击一次即可切换回标准模式并且图标变为最初的摸样。
(11):点击此按键课可显示计算器之前执行过的运算。如在标准型下点击此按键,标准型显示界面变为如下:
如在科学型下点击此按键,将多出如下界面:
科学型显示界面变为如下:
(12):点击此按键可将历史窗口中的运算历史记录删除。
(13):可将运算历史记录另存为文本文档型式。
(14):可选择弧度、读、梯度三种表示方式。
(15)、、、:三角函数运算。由于以上四个运算的槽函数实现机制一样,所以在这里只对其中一个进行测试。
的测试
在窗口中输入
点击等于号之后窗口中所显示结果
(16):可选择以10为底的对数,以2为底的对数和自然对数三种对数运算,此按键下方的按键为上述对数选择按键的实现,即确定了需要进行的对数运算后,可通过在窗口中输入对数运算符。现对进行测试。
先将按键选择为,然后在窗口中输入
点击等于号之后窗口中所显示结果
年龄计算器篇5
新狗狗年龄计算器
作者:;
作者机构:;
来源:宠物世界:狗迷
ISSN:无
年:2015
卷:000
期:004
页码:P.18-18
页数:1
中图分类:S829.2
正文语种:CHI
关键词:计算器;年龄;狗;推算方法;科学家
摘要:狗狗的1岁等于人类的7岁,这是一直以来较为权威的狗狗年龄推算方法,但今天科学家们重新定义了狗狗的年龄该如何计算。
年龄计算器篇6
年龄计算器如何算出20年后的你?
流言
【期刊名称】《电脑爱好者》
【年(卷),期】2010(000)014
【摘要】近来,有一个名为年龄计算器的网站在网友中流传,它能预测一个人20年后的相貌。打开>