計算是漢語詞語。有“核算數(shù)目,根據(jù)已 知量算出未知量;運算”和“考慮;謀慮”兩種含義, 以下是為大家整理的關(guān)于年齡計算器6篇 , 供大家參考選擇。
年齡計算器6篇
年齡計算器篇1
延遲退休方案計算器 退休年齡計算方法最新延遲退休年齡計算器入口,2016退休年齡計算方法 人社部部長尹蔚民在介紹“十二五”以來就業(yè)和社會保障工作成就時,再度提到了延遲退休改革方案,并表示我國將以小步慢走的方式,推行漸進式延遲退休改革政策。 2018延遲退休年齡怎么計算公式 2017年推出延遲退休方案,推出方案五年后實施漸進式延遲退休政策。 也就是2022年開始,女性每年延長四個月,每三年延長一年,男性每年延長二個月,每六年延長一年,至2052年止男性退休年齡65歲,女性60歲。 新規(guī)定退休年齡的計算方法 新規(guī)定后的退休年齡為:男:到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。 最新退休年齡計算器 目前法定退休年齡: (一)男年滿六十周歲,女年滿五十周歲,女干部年滿五十五周歲,并且連續(xù)工齡滿十年的; (二)男年滿五十五周歲、女年滿四十五周歲,連續(xù)工齡滿十年的,從事井下、高空、高溫、特別繁重體力勞動或其他有害身體健康的工作; (三)男年滿五十周歲,女年滿四十五周歲,連續(xù)工齡滿十年,由醫(yī)院證明,并經(jīng)勞動鑒定委員會確認,完全喪失勞動能力的應(yīng)當準予退休。 對于延遲退休提出的方案是: 第一,從2015年開始,1965年出生的女性職工和居民應(yīng)當推遲1年領(lǐng)取養(yǎng)老金,1966年出生的推遲2年,以此類推,到2030年實現(xiàn)女性65歲領(lǐng)取養(yǎng)老金。 第二,從2020年開始,1960年出生的男性職工和居民推遲6個月領(lǐng)取養(yǎng)老金,以此類推,到2030年實現(xiàn)男性職工和居民65歲領(lǐng)取養(yǎng)老金。
文章來源網(wǎng)絡(luò)整理,請自行參考使用
年齡計算器篇2
“身體素質(zhì)年齡計算器”能測量健康水平
作者:魯灣
來源:《科學養(yǎng)生》2014年第04期
????????據(jù)媒體報道,挪威科技大學運動醫(yī)學研究中心的科學家發(fā)明了“身體素質(zhì)年齡計算器”,能正確地測量一個人的健康水平。
????????“身體素質(zhì)年齡”不同于實際年齡,它能反映出一個人的身體狀態(tài)。假如你的實際年齡為30歲,但身體所遭受的各種磨損會讓你顯得更老。研究人員對近5000名年齡在20歲~90歲之間的挪威人的生理數(shù)據(jù)進行運算后發(fā)現(xiàn),用這種方法預測身體素質(zhì)年齡的準確度相當高。
????????在研究中,科學家發(fā)現(xiàn),運動時的最大攜氧量是衡量一個人身體素質(zhì)年齡的重要指標。但單一測量身體最大攜氧量比較困難,科學家于是將它分解為5大基本指標來簡化衡量。這5項分別為:靜息心率、腰圍、性別、最大運動水平與強度、年齡。參與者只需要輸入這5個數(shù)據(jù),計算器就能快速得出一個人的最大攜氧量、同一年齡組的平均數(shù)和調(diào)查總體樣本的平均數(shù)以及自己的身體素質(zhì)年齡。
????????研究人員認為,身體素質(zhì)年齡與實際年齡不同,它是可逆的。如果一個中年人開始進行更多的鍛煉,縮減了腰圍,其預期壽命有望得到相當大的延長。
????????發(fā)表在美國《體育運動醫(yī)學與科學》期刊上的這項研究成果還認為,身體素質(zhì)年齡是預測一個人當前和未來健康狀況的最佳單一指標,身體素質(zhì)年齡這一概念應(yīng)得到推廣。
????????解讀/魯灣
????????關(guān)于“年齡”的計算方法很多,我們常用的是一種歷法年齡,也稱時序年齡,即出生后按日歷計算的年齡。每個人戶籍上記載的就是這個年齡,這是一個不變的恒數(shù),每個人都是過一年長一歲。還有一種是根據(jù)正常人體生理學上和解剖學上發(fā)育狀態(tài)所推算出來的年齡。由于每個人組織結(jié)構(gòu)和生理功能的實際衰老程度不同,所以,它和歷法年齡不同步,比如一個人戶籍上的歷法年齡是60歲,但由于注意養(yǎng)生,他的生理年齡可能只有50歲。而如果不注意養(yǎng)生,他的生理年齡就可能已經(jīng)70歲了。
年齡計算器篇3
有關(guān)計算器的使用
(2007-11-15 14:44:06)
轉(zhuǎn)載▼
一、基本概念
電子計算器在英文叫Electronic Calculator,是由單片大規(guī)模集成電路等元件構(gòu)成的現(xiàn)代計算工具,具有體積小、操作簡便、運算功能多、速度快、精確度高、用途廣等優(yōu)點。常用于個人對醫(yī)學數(shù)據(jù)的統(tǒng)計處理及分析。計算器與英文的Computer也即計算機有所不同。后者通過程序控制,可以更高或驚人的運算速度處理極為大量及復雜的科研數(shù)據(jù)資料。一般所稱的科學計算器即Scientific Calculator是指計算器采用了指數(shù)記數(shù)法,可在顯示屏上顯示出9.9999999×1099至1.0000000-99的任何數(shù)值。
二、分類及特性
1. 分類
①一般型 具有四則混合運算,存貯運算,常數(shù)運算以及百分比,開平方,倒數(shù)等運算功能。
②函數(shù)型 除具有一般功能外,還有三角函數(shù)、對數(shù)、階乘、坐標變換、指數(shù)、統(tǒng)計運算、相關(guān)與回歸分析等功能,應(yīng)用最為廣泛。
③程序型 通過編制簡單程序進行代數(shù)及函數(shù)方程進行代數(shù)及函數(shù)方程等系統(tǒng)性運算。
④多功能型 除具有運算功能外,還有電子日歷、電子鬧鐘、定時報警等特殊功能。
⑤專用型 可以根據(jù)某特殊需要來完成特定功能。如財會、銀行專用計算器、單位換算計算器、算術(shù)測驗器或算術(shù)練習器等。
我們常用的幾類有TOSHIBA SLC – 8310 型,SHARP EL – 506P型,均為函數(shù)型科學計算器,具有統(tǒng)計運算及階乘運算功能。CASIO fx – 180P、fx – 3600P、fx – 3800P及fx – 4000P系列是可編程序函數(shù)型科學計算器,除具有統(tǒng)計運算外,尚有相關(guān)與回歸分析,積分計算及可編程序運算功能。
2. 特性
①液晶顯示8~10位數(shù)。
②自動電源保護系統(tǒng) 最后一次使用后停止操作約6~8分鐘即自動關(guān)閉電源。
③保留記憶功能 電源關(guān)閉后,記憶的數(shù)據(jù)不消失,仍在存貯器中。
④進行最常用的各種運算 四則混合運算,函數(shù)運算,統(tǒng)計運算等。
三、使用注意事項
1. 工作環(huán)境:一般為0~40℃。應(yīng)避免置于高溫、嚴寒、灰塵、潮濕及磁場附近。
2. 避免劇烈震動,碰撞,擠壓,沖擊等不良刺激。
3. 操作時,先將計算器平置于桌面或非彈性物體上,用手指輕輕或適度按壓各鍵。
4. 切勿使用任何有機溶劑類如酒精、苯類、汽油、煤油等擦拭計算器。
5. 切勿隨意打開計算器后蓋。
6. 切勿夾入書本、筆記本以及放入衣服口袋中攜帶及存放。
四、常用鍵符及其功能簡介
計算器牌號、型號較多,許多常用鍵的符號相同,功能相同或相近,運算規(guī)則相同或不同。有些鍵符號不同,功能卻相同或相近。有些功能因不常使用,其使用規(guī)則可查閱有關(guān)說明書或參考書。應(yīng)特別強調(diào)第二功能鍵或稱為反功能鍵(符號為2ndF,F(xiàn)或INV)的使用,該鍵必須與其它功能鍵緊密配合才能發(fā)揮其作用,且第二功能鍵的顏色或符號顏色常與其它鍵的第二功能的符號顏色相一致。
表1—1 計算器常用鍵符及其功能
表1-4 十進制與其它各進制轉(zhuǎn)換操作
線性回歸 ( Linear Regression ) 是一種分析數(shù)據(jù)方法,目的是透過分析兩個變數(shù) x 及 y 的數(shù)據(jù)去看看它們是否有線性關(guān)係 ( Linear Relationship ),亦即是說 x 和 y 之間的關(guān)係是否可以以 y = A + Bx 表示,其中 A 和 B 是常數(shù) ( Constant )。要計算 A 和 B 的數(shù)值,計算機會使用最少平方法 ( Method of Least Squares ),同時亦會透過計算一個稱為 Correlation Coefficient 的數(shù)值去判定 x 和 y 是否有線性關(guān)係。要進行線性回歸計算,請先按 MODE 2 將計算機轉(zhuǎn)入 LR 模式。
由於每個變數(shù)數(shù)據(jù)需要各自輸入,所以要使用 xD,yD ( 按 ( 鍵 ) 及 DATA 命令。輸入方法請看以下例子:利用直線回歸分析下列數(shù)據(jù)以決定 x 及 y 是否有線性關(guān)係 ( 以 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( 基本上輸入方式是按入 數(shù)據(jù) x xD,yD 數(shù)據(jù) y DATA。) 然後再按SHIFT 1 顯示 17 ( x 的算術(shù)平均數(shù) 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 的算術(shù)平均數(shù) 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 的數(shù)據(jù)平方總和 Sum of Squares of x )Kout 2 顯示 102 ( x 的數(shù)據(jù)總和 Sum of x )Kout 3 顯示 6 ( 數(shù)據(jù)的數(shù)量 Total Frequency )Kout 4 顯示 328.442 ( y 的數(shù)據(jù)平方總和 Sum of Squares of y )Kout 5 顯示 43.91 ( y 的數(shù)據(jù)總和 Sum of y )Kout 6 顯示 724.2 ( xy 的數(shù)據(jù)總和 Sum of xy )SHIFT 7 顯示 12.727 ( A 的數(shù)值,回歸線 Regression Line 的 y 軸截距 y-intercept )SHIFT 8 顯示 –0.318 ( B 的數(shù)值,回歸線 Regression Line 的斜率 slope )SHIFT 9 顯示 –0.99936 ( Correlation Coefficient 的數(shù)值,如果這個數(shù)接近 1 或 –1,則表示可相信 x 及 y 有線性關(guān)係 )15 ) 顯示 7.955 ( x = 15 時 y 的數(shù)值 )6 SHIFT ) 顯示 21.144 ( y = 6 時 x 的數(shù)值 )( 上面的 ) 及 SHIFT ) 按鍵是分別用於估計當已知 x ( 或 y ) 的數(shù)值時,y ( 或 x ) 的近似值。)完成統(tǒng)計計算後,請按 MODE . 將計算機轉(zhuǎn)回 RUN 模式。
年齡計算器篇4
QT 課程 程序設(shè)計
題目:科學計算器
姓 名:楊 平
學 號:201005070116
學 院:信息技術(shù)與科學
專 業(yè):軟件工程
2012年12月10日
1.
功能需求分析
1.1 功能劃分
● 本次我們設(shè)計的計算器在功能上大致與Windows系統(tǒng)自帶的計算器程序相似,但在某些細節(jié)處加入了我們設(shè)計同學的獨特創(chuàng)新和技巧,具體體現(xiàn)見詳細設(shè)計部分。對于我們所設(shè)計的科學計算器,其功能大致可以如下劃分:
① 算術(shù)型計算器功能——可以進行加(+)、減(-)、乘(*)、除(/)、開方(sqrt)、百分數(shù)(%)等簡單算術(shù)計算。
② 科學型計算器功能——可以進行乘方、開方、指數(shù)、對數(shù)、三角函數(shù)、等方面的運算。
③ 一元運算和多元運算——可以進行表達式和簡單運算,且切換較為快捷。
1.2 功能描述
● 對于算術(shù)型計算器的功能大家已經(jīng)非常熟悉,就不再贅述。這里只對科學型計算器功能中的特殊符號、必要函數(shù)及技巧創(chuàng)新功能部分作簡單描述。
① 特殊符號和函數(shù)
Pi —— π 。即 3.1415926…
Ln ——自然對數(shù),ln(x)是以e為底的x的對數(shù)
Log ——以10為底的對數(shù),10是可以省略的
S in ——正弦函數(shù)
Arcsin ——反正弦函數(shù)
Cos ——余弦函數(shù)
Tan ——正切函數(shù)
n! ——階乘
Mod ——取模運算
Clear ——清空
等等這些符號有利于我們計算,方便快捷的得出結(jié)果。
②使用數(shù)據(jù)記錄:
我們都知道,現(xiàn)在市面上一般的計算器雖然在計算上能滿足用戶的需求,但對于一些重要的數(shù)據(jù)和運算過程、記錄,就無法實現(xiàn)重要過程和數(shù)據(jù)的記錄,所以這項功能的添加讓我們的計算器更加科學化,人性化,用戶不必要再擔心運算的出錯和檢查的麻煩。這也是我們所設(shè)計的計算器相比于其他計算器的重要優(yōu)點之一。
2.詳細設(shè)計
2.1 普通計算功能
(1)界面設(shè)計
界面設(shè)計我們是使用Qt creator進行設(shè)計的,首先創(chuàng)建一QMainWindow(parent).ui,這個界面為QWidget。然后在左側(cè)的Widget Box找相應(yīng)的控件添加到QMainWindow(parent)里。首先提出一個lineEdit控件作為算式顯示窗口和結(jié)果顯示窗口,在提取出30個QpushButton為0到9按鍵和加減乘除按鍵、括號按鍵、開根號按鍵、小數(shù)點按鍵、%按鍵、取模按鍵、階乘按鍵、取倒按鍵、等于按鍵、歷史按鍵、標準/科學模式切換按鍵。然后再把各個pushButton名字改成相應(yīng)的符號,并且改對應(yīng)pushbutton的屬性,保存后取Qt creator編譯QMainWindow(parent).ui,運行程序就可以顯示相應(yīng)界面。
具體界面設(shè)計效果如下:
且各組件的屬性設(shè)置如下:
(2)程序具體實現(xiàn)
現(xiàn)在.h文件中對各個按鍵在私有槽中進行聲明,例如:
public slots:
void clickbtn1();
就對1鍵(槽函數(shù))進行聲明,然后就可以在.cpp進行編寫程序。聲明first,second兩個整形表示第一個輸入和第二個輸入,然后用Qt(Qstring)封裝好的append()函數(shù)進行添加,當然,這里牽涉到本程序?qū)tn按鍵的函數(shù)聲明,并且使用setText函數(shù),使其按鍵符號點擊后可以在lineEdit上顯示,在這里用的是信號和槽的機制,具體的信號于槽的鏈接在后面會詳細說明。
2.2 科學計算器功能
本界面的主要功能是在普通計算器的基礎(chǔ)上,添加了一些科學計算的功能,具體實現(xiàn)的操作功能包括三角函數(shù)運算()、反三角函數(shù)運算()、雙曲三角函數(shù)運算()、對數(shù)運算()、
弧度運算、角度運算、梯度運算。
(1)界面設(shè)計
為了隱藏的需要,我們采用Group Box的組件,然后設(shè)置“”按鍵,通過點擊“”按鍵可將窗口由標準型切換為科學型(此時“”按鍵變?yōu)椤啊卑存I,再點擊一次即可變回標準型),切換為科學型窗口后,在普通窗口的基礎(chǔ)上添加一些QPushButton按鈕,修改其屬性,使其變成相應(yīng)的功能鍵,再從左邊把QComboBox拖到科學計算窗口中,并修改其屬性,用戶可以在下拉框中,選擇自己想要實現(xiàn)的運算類型(如:弧度、梯度;不同對數(shù)運算),然后用對上述按鍵在窗口中進行合理布局,最后用QtCreator對所設(shè)計的界面進行編譯形成ui文件,點擊運行即可查看所設(shè)計界面。 具體界面設(shè)計效果如下:
下拉框中顯示的設(shè)計如下:
各組件的屬性設(shè)置如下:
(2)程序具體實現(xiàn)
這里仍使用信函和槽連接機制,我們沒有使用信號和槽編輯器,而是直接在.cpp文件中添編寫其代碼來實現(xiàn),首先在.h文件中對各個按鍵進行聲明,如:void clicksin();就是對sin按鍵進行聲明,再到.cpp文件中編寫相應(yīng)的代碼實現(xiàn)其功能,當Jing_zhan_unary變量為ture時,執(zhí)行clickTrigJIng_zhan_TS(“sin”),或當Jing_zhan_Expression變量為ture時,執(zhí)行sinBian_lian=true;clickJing_zhan_Pro("sin","]",mu_qianSin);實現(xiàn)sin的運算功能。
2.3 計算歷史顯示功能
本模塊包括本系統(tǒng)的刪除、保存功能。
(1)界面介紹
這里我要用兩個QpushButton控件和一個LineEdit控件,兩個QpushButton控件分別表示刪除算式、算式另存為,在修改其屬性,再拖拽一個LineEdit控件,它用來顯示計算機執(zhí)行的歷史事件,而且還可以在其上點擊選擇算式。
具體界面設(shè)計效果如下:
各組件的屬性設(shè)置如下:
(2)程序具體實現(xiàn)
另存為算式:首先聲明一個另存為的函數(shù)void calculate::clickHistorySaveas(),添加一個QFileDialog控件作為另存為顯示窗口,再把QFileDialog名字改成相應(yīng)的另存為,并且改對應(yīng)QFileDialog的屬性,然后查詢算式表(message),查找最后一個id的值,然后id加一,再把次id和窗口提取的算式存入數(shù)據(jù)庫算式表(message)中,然后通過槽函數(shù)ui->statusBar->showMessage(Version+" : "+tr("已保存"),10000);查詢整個message表把表中的內(nèi)容顯示出來。
刪除算式:先用currentIndex().row()把鼠標點中的行選中。提出行數(shù),聲明model,再用model中封裝好的函數(shù)刪除這一行,在加上警告函數(shù),判斷是否刪除,就可以了。
2.4 刪除功能
此功能為刪除窗口中的最后一個字符,具體編寫過程為:提取窗口中的內(nèi)容,并把窗口中的內(nèi)容存放到一個QString型變量中,然后用Qt現(xiàn)有的已經(jīng)封裝好的函數(shù),把這個變量從左邊開始將其最后一個字符去掉,使其長度減少一,將改變后的字符串在存放到這個變量中,再把這個變量重新返回到窗口中,這樣就達到刪除的功能了。
2.5 清空功能
此功能為清空顯示窗口,這里用Qt封裝好的函數(shù)clear(),直接把窗口給清空,這樣就達到效果。
2.6 操作類型切換功能
在菜單欄里添加操作類型選擇按鍵,在操作類型按鍵下有一元順序運算和表達式運算兩個子選項,當選擇一元順序運算時,將“(”按鍵和“)”按鍵設(shè)置為不可點擊即,而當選擇表達式運算時,將“1/x”按鍵和“±”按鍵設(shè)置為不可點擊。由于在不同的操作類型下,有些運算符不適用,故將其設(shè)置為不可點擊,
這樣可以防止用戶進行違規(guī)操作。
具體界面設(shè)計效果如下:
3.系統(tǒng)的實現(xiàn):
計算分簡單計算和科學計算兩種功能,又由于要實現(xiàn)表達式的功能,故應(yīng)該將其分開實現(xiàn),所以,我們在程序中設(shè)置了兩邏輯變量進行區(qū)分,如下所示。
bool Jing_zhan_unary=false; //一元操作
bool Jing_zhan_Expression=true; //表達式操作
當然,對于下面具體步驟中出現(xiàn)的函數(shù),我們有必要在此說明,這其中也包括整個程序的核心算法。
考慮到程序中出現(xiàn)了眾多信號與槽的鏈接,故采用手工鏈接的方式進行。
首先在calculate.h中聲明如下槽函數(shù):
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)構(gòu)造函數(shù)中進行信號于槽的鏈接,也就是各按鍵及工具條等組件的動作響應(yīng)關(guān)系(函數(shù))如下:
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())); //小數(shù)點的實現(xiàn)
connect(ui->btnClear,SIGNAL(clicked()),this,SLOT(clickClear())); // Clear按鍵的實現(xiàn)
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())); //按百分比的形式顯示乘積結(jié)果
connect(ui->btnCi,SIGNAL(clicked()),this,SLOT(clickCi())); // ^ 實現(xiàn)
connect(ui->btn_1_x,SIGNAL(clicked()),this,SLOT(click_1_x())); // 1/x 功能鍵實現(xiàn)
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 功能鍵的實現(xiàn)
接下來,對部分重要的槽函數(shù)進行說明。首先,由于本課題的方向行,所以,在實現(xiàn)科學型計算器前,我們必須弄得一般計算器Btn鍵的工作原理,而這部分,在Qt事例中用詳細的說明,這里我們就不必指出。考慮到表達式和簡單的區(qū)別,我們分兩種情況進行編寫。當然,在后續(xù)的函數(shù)中,這種分別討論的情況是經(jīng)常出現(xiàn)的,這也從側(cè)面說明了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_);
}
}
而一般的數(shù)字鍵,只需調(diào)用此槽函數(shù)即可,如下所示:
void calculate::clickbtn1()
{
clickbtn("1");
}
當然,由于0變量的特殊性,所以,需要對其添加額外的約束才能實現(xiàn),代碼如下:
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鍵的功能實現(xiàn),接下來,對于任何計算器,其“≒”鍵無意是對計算器功能的實現(xiàn)的直接展示。對于一般的簡單計算器,由于有Math.h的支持,實現(xiàn)起來較為容易,但是,對于表達式計算器,這就是對我們整個程序邏輯關(guān)系的真確與否的直接表現(xiàn),可想其重要性。
具體代碼如下:
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_();
}
}
可能大家看到這里會覺得這不算什么,其實不然,因為大多數(shù)程序都被封裝在void clickJing_zhan_()函數(shù)中。接下來,我們將進入本程序的核心代碼中,由于代碼過長,考慮到簡單計算器運算實現(xiàn)的簡單性,我們只列舉出如下關(guān)于表達式部分的代碼(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;
}
通過以上說明,我想大家不難發(fā)現(xiàn),本課題的核心最要是在于實現(xiàn)表達式和基于其的按鍵功能特點開發(fā)上面。
最后,基于以上說明,我們便可以進行如下的詳細設(shè)計過程。
3.1 簡單計算功能:
普通計算功能主要是實現(xiàn)一般的數(shù)字運算,并將計算的結(jié)果顯示出來。主要代碼如下:進入主界面是默認的普通運算界面,其代碼如下:
ui->setupUi(this);
clickSimple(); //簡單模式
clickJing_zhan_caozuoleixing(); //表達式
layout()->setSizeConstraint(QLayout::SetFixedSize);
// 加大輸出字號 ----手工方式 也可以從Qt設(shè)計師中修改 Font屬性
QFont font = ui->LineEdit1->font();
font.setPointSize(font.pointSize() + 8);
ui->LineEdit1->setFont(font);
// Qt設(shè)計師的方法如下
// 在其屬性框中選中font
// 按個人需要設(shè)置屬性
// 注:其他部分的設(shè)計就如這種方法
以上程序?qū)懺谌缦碌臉?gòu)造函數(shù)中:
calculate::calculate(QWidget *parent) : QMainWindow(parent),ui(new Ui::calculate);
簡單計算界面如下:
圖1 簡單計算界面
3.2其中各功能鍵的具體實現(xiàn):
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! 階乘的實現(xià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 通過如此設(shè)置后可以有帶表達式的運算或者不帶。帶表達式的如下圖:
圖3 帶表達式的界面
3.5簡單計算和科學計算的切換:
為適應(yīng)不同的計算需求,設(shè)置了科學計算和簡單計算,其主要程序及代碼如下所示:
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清空功能:
清空功能的具體實現(xiàn)代碼如下:
// Clear 具體功能實現(xiàn) -----初始化
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):退格鍵,可以刪除窗口中從左邊起最后一個字符。
運行測試:在窗口中輸入:
使用一次退格鍵以后顯示結(jié)果:
(2):開方,如需要對常數(shù)x進行開方,則可在窗口中先點擊開方鍵,再輸入x。
運行測試:對9進行開方運算,在窗口中輸入
點擊等于號之后窗口中所顯示結(jié)果之后窗口中所顯示結(jié)果:
(3):百分號,如在窗口中輸入x%,則運算后顯示的為將x除以100后的結(jié)果。
運行測試:在窗口中輸入
點擊等于號之后窗口中所顯示結(jié)果之后窗口中所顯示結(jié)果
(4):冪運算,如在窗口中輸入x^y,則是求x的y次冪。
運行測試:在窗口中輸入
點擊等于號之后窗口中所顯示結(jié)果
(5):質(zhì)數(shù)運算,即對所輸入數(shù)字x進行因式分解,將其分解為若干個質(zhì)數(shù)的和。使用方法為先輸入需分解的數(shù)x,在點擊質(zhì)數(shù)運算按鍵即可。
運行測試:在窗口中輸入
點擊質(zhì)數(shù)運算按鍵后所顯示運行結(jié)果
(6):階乘,此運算符只能對正整數(shù)進行運算,當輸入正整數(shù)x時,系統(tǒng)所執(zhí)行的算法為:。
運行測試:在窗口中輸入
點擊等于號之后窗口中所顯示結(jié)果
(7):模運算,即所得結(jié)果為,x除以y后所得余數(shù)的值。
運行測試:在窗口中輸入
點擊等于號之后窗口中所顯示結(jié)果
(8):圓周率。
(9):自然對數(shù)。
(10):此按鍵可將計算器在標準型和科學型之間進行切換,從標準型切換為科學型后,按鍵圖標變?yōu)椋冱c擊一次即可切換回標準模式并且圖標變?yōu)樽畛醯拿印?/p>
(11):點擊此按鍵課可顯示計算器之前執(zhí)行過的運算。如在標準型下點擊此按鍵,標準型顯示界面變?yōu)槿缦拢?/p>
如在科學型下點擊此按鍵,將多出如下界面:
科學型顯示界面變?yōu)槿缦拢?/p>
(12):點擊此按鍵可將歷史窗口中的運算歷史記錄刪除。
(13):可將運算歷史記錄另存為文本文檔型式。
(14):可選擇弧度、讀、梯度三種表示方式。
(15)、、、:三角函數(shù)運算。由于以上四個運算的槽函數(shù)實現(xiàn)機制一樣,所以在這里只對其中一個進行測試。
的測試
在窗口中輸入
點擊等于號之后窗口中所顯示結(jié)果
(16):可選擇以10為底的對數(shù),以2為底的對數(shù)和自然對數(shù)三種對數(shù)運算,此按鍵下方的按鍵為上述對數(shù)選擇按鍵的實現(xiàn),即確定了需要進行的對數(shù)運算后,可通過在窗口中輸入對數(shù)運算符。現(xiàn)對進行測試。
先將按鍵選擇為,然后在窗口中輸入
點擊等于號之后窗口中所顯示結(jié)果
年齡計算器篇5
新狗狗年齡計算器
作者:;
作者機構(gòu):;
來源:寵物世界:狗迷
ISSN:無
年:2015
卷:000
期:004
頁碼:P.18-18
頁數(shù):1
中圖分類:S829.2
正文語種:CHI
關(guān)鍵詞:計算器;年齡;狗;推算方法;科學家
摘要:狗狗的1歲等于人類的7歲,這是一直以來較為權(quán)威的狗狗年齡推算方法,但今天科學家們重新定義了狗狗的年齡該如何計算。
年齡計算器篇6
年齡計算器如何算出20年后的你?
流言
【期刊名稱】《電腦愛好者》
【年(卷),期】2010(000)014
【摘要】近來,有一個名為年齡計算器的網(wǎng)站在網(wǎng)友中流傳,它能預測一個人20年后的相貌。打開>