《多功能學習計算器文檔.docx》由會員分享,可在線閱讀,更多相關《多功能學習計算器文檔.docx(21頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、基于C的 多功能學習計算器(大一組)設計者:軟件1304:趙海豐 13301112指導教師:馬迪芳目 錄1. 需求分析31.1需求分析31.2 軟件特色41.3 技術難點42. 整體架構42.1系統(tǒng)架構42.1.1三層結構簡介42.1.2 本系統(tǒng)的三層結構42.2 功能描述52.2.1基礎表達式的計算52.2.2解方程52.2.3拓展功能52.3 界面設計62.3.1多功能學習計算器菜單界面62.3.2表達式計算界面72.3.3 解方程功能選擇界面82.3.4 拓展功能菜單界面92.3.5 規(guī)則查看界面102.4 技術要求112.4.1開發(fā)環(huán)境112.4.2相關技術112.4.3運行環(huán)境113
2、. 詳細設計123.1 main.c fundmantal_service.c設計123.1.1 head.h123.1.2 main.c143.1.3 fundmantal_service.c143.2calculator_sevice.c expend_funciton.c sovle_equation.c143.2.1 calculator_sevice.c143.2.2 expend_funciton.c153.2.3 sovle_equation.c1533special_calculate.c special_value.c15triangle_calculator.c153.3.
3、1special_calculate.c153.3.2 special_value.c163.3.3 triangle_calculator.c164. 核心展示174.1表達式計算演示174.2解方程計算演示184.3拓展功能演示194.4使用說明展示205. 心得體會216. 程序源代碼211. 需求分析1.1需求分析高斯曾說:“數(shù)學是科學之王?!比魏慰茖W研究的進行都不離開數(shù)學的邏輯和運算。而現(xiàn)在的許多計算器使用很不方便,需要按指令輸入數(shù)據(jù)計算,而輸入的格式往往與書寫習慣不符。所以在此基礎上,一款功能強大,操作簡便的計算器成為大眾的需要。多功能學習計算器就是這樣的一種計算器,它功能強大,操
4、作簡便,符合書寫習慣,同時又附加多種功能,適用范圍廣泛,使工作生活變得簡單快捷。1.2 軟件特色該項目用C語言開發(fā)一款功能強大,操作簡便的計算器,它的輸入方式與手寫方程相符。該項目在計算表達式基礎上,加入了解各類方程的功能,使他的應用范圍更廣。除計算外,該項目加入了計算匯率,查看時間,莫爾斯密碼,凱撒密碼,密碼保險箱等實用功能,給用戶帶來更多的服務,帶來更高的提升。1.3 技術難點1) 字符串基礎處理,界面美化的實現(xiàn)。2) 表達式計算時,堆棧算法的實現(xiàn)。3) 解方程功能中,遞歸算法的實現(xiàn)及優(yōu)化,二分法的應用。4) 拓展功能實現(xiàn)過程中對知識儲備的考驗。5) 程序的bug及debug,深入了解用戶
5、感受,優(yōu)化程序構架,滿足各年齡段,各行各業(yè)用戶的需要。2. 整體架構2.1系統(tǒng)架構2.1.1三層結構簡介三層體系結構,是在客戶端與數(shù)據(jù)庫之間加入了一個中間層,也叫組件層,三層體系的應用程序?qū)I(yè)務規(guī)則、數(shù)據(jù)訪問、合法性校驗等工作放到了中 間層進行處理。通常情況下,客戶端不直接與數(shù)據(jù)庫進行交互。三層結構的優(yōu)點:1)開發(fā)人員可以只關注整個結構中的其中某一層; 2)可以很容易的用新的實現(xiàn)來替換原有層次的實現(xiàn); 3)可以降低層與層之間的依賴; 4)有利于標準化; 5)利于各層邏輯的復用。2.1.2 本系統(tǒng)的三層結構界面表示層: main.c fundmantal_service.c數(shù)據(jù)傳輸層: calc
6、ulator_sevice.c expend_funciton.c sovle_equation.c業(yè)務邏輯層: special_calculate.c special_value.c triangle_calculator.c 2.2 功能描述2.2.1基礎表達式的計算基礎運算符:+ - * / ( ) !函數(shù)運算符:sin cos tan cot sec csc ln log2.2.2解方程解一元二次方程:根據(jù)a,b,c求解一元二次方程解多元方程:通過消元法遞歸求解方程解高次方程:二分法求解方程,精確到給定精度行列式計算:計算簡單行列式矩陣的運算:矩陣的加法,矩陣的乘法,矩陣的轉(zhuǎn)置,矩陣的
7、逆求解回歸方程:通過給定數(shù)據(jù)模擬出回歸方程2.2.3拓展功能查看時間:查看當前時間最大公因數(shù):求解兩個數(shù)的最大公因數(shù)最小公倍數(shù):求解兩個數(shù)的最小公倍數(shù)求質(zhì)數(shù):顯示給定n以內(nèi)的所有質(zhì)數(shù)匯率計算:多國貨幣匯率計算密碼求解:解密凱撒密碼及莫爾斯密碼密碼保險箱:將生活中密碼集中管理保密2.3 界面設計2.3.1多功能學習計算器菜單界面圖 0-1 多功能學習計算器菜單界面該界面是多功能計算器的菜單界面,在這里用戶可以選擇功能:表達式計算,解方程,其他功能,訪問規(guī)則,退出。該項目主要應用對象是需要計算器的用戶,故界面簡單樸素大方,無須過多裝飾,節(jié)省空間,提高計算效率,提高實用性。用戶在對產(chǎn)品使用有疑問時可
8、以訪問規(guī)則,查詢?nèi)绾问褂茫L問規(guī)則內(nèi)附有聯(lián)系方式,方便程序時時更新。2.3.2表達式計算界面圖 0-2 表達式計算界面該界面是此計算器的主要功能界面,由于其方便的書寫性,省去過多的提示和美化,允許用戶輸入長表達式而不會有任何違和感。2.3.3 解方程功能選擇界面圖 0-3解方程功能選擇界面該菜單提供給用戶六種方程計算的選項,用戶可以根據(jù)需要選擇其中一種解方程,六種解方程選項可以勝任生活、科研中大部分問題的求解,節(jié)省用戶時間。2.3.4 拓展功能菜單界面圖 0-4 拓展功能菜單界面該菜單提供給用戶七中功能選擇,用戶可根據(jù)需要選擇使用,該功能為拓展功能,也是該軟件需要時時更新的功能,在該項目構架后
9、,后續(xù)將會進行不斷更新。2.3.5 規(guī)則查看界面圖 0-5 規(guī)則查看界面該界面展示軟件使用方法,給用戶以使用指南,避免運算錯誤,并且提供聯(lián)系方式,對于用戶的需求及時更新,為用戶提供新體驗。圖 0-6 規(guī)則細節(jié)提示界面2.4 技術要求2.4.1開發(fā)環(huán)境Microsoft Visual Studio 20102.4.2相關技術該項目主要技術是運用各類高級算法,包括堆棧運算,字符串處理,數(shù)論知識,二分法,遞歸搜索求解,明文密文加密。在應用層,應用Windows控制臺,使產(chǎn)品適用于各版本電腦。2.4.3運行環(huán)境硬件平臺:CPU: P4 1.6GHz內(nèi)存: 128MB以上硬盤空間:10MB以上操作系統(tǒng):
10、 Windows 2000/XP/Vista/7 DOS系統(tǒng)3. 詳細設計3.1 main.c fundmantal_service.c設計3.1.1 head.h圖表 3-1 頭文件頭文件主要作用是接入外部依賴項,建立函數(shù)接入口,創(chuàng)建函數(shù)原型,保證整個項目可以順利運行。聲明宏和全局變量,方便各函數(shù)統(tǒng)一調(diào)用。3.1.2 main.c圖表 3-2 Windows控制臺調(diào)整用戶界面項目主程序,程序接入端口,負責運行整個程序,調(diào)整用戶界面,保證用戶在使用軟件的便捷性、美觀性。3.1.3 fundmantal_service.c圖表 3-3 基礎功能設計實現(xiàn)軟件基本功能,包括菜單列表,建立基本接入點,
11、從菜單列表進入數(shù)據(jù)處理層,展示規(guī)則。3.2calculator_sevice.c expend_funciton.c sovle_equation.c3.2.1 calculator_sevice.c圖表 3-4 計算服務數(shù)據(jù)傳輸此包下封裝的四個類中:計算服務數(shù)據(jù)傳輸層,主要是將讀入進來的字符串進行處理,通過比較,檢查,插入,堆棧操作實現(xiàn)對字符串表達式的計算,返回一個double類型的值,該計算服務運用局部變量,棧內(nèi)存,可以遞歸的調(diào)用自身,遞歸的解決系列問題。3.2.2 expend_funciton.c圖表 3-5 拓展功能設計拓展功能設計主要是進行拓展功能基本展示,并且將用戶選擇的操作和輸
12、入的數(shù)據(jù)接入業(yè)務邏輯層進行處理。3.2.3 sovle_equation.c圖表 3-6 方程解決功能設計方程解決功能設計主要是進行方程解決功能基本展示,將用戶選擇的操作和輸入的數(shù)據(jù)接入業(yè)務邏輯層進行處理。33special_calculate.cspecial_value.ctriangle_calculator.c3.3.1special_calculate.c圖表 3-7 特殊函數(shù)計算對ln,log函數(shù)進行特殊處理。3.3.2 special_value.c圖表 3-8 特殊符號處理對圓周率和自然對數(shù)進行識別處理,壓入堆棧。3.3.3 triangle_calculator.c圖表 3-
13、9三角函數(shù)處理對三角函數(shù)進行識別計算和處理。4. 核心展示4.1表達式計算演示圖 4-1 +-*/()運算演示圖 4-2 三角函數(shù)運算演示圖 4-3 特殊函數(shù)運算演示、特殊符號識別表達式計算完美融合各種計算符號,將字符串處理后輸出一個double類型數(shù),保留6位小數(shù),足夠生活以及非特殊需要科研使用。4.2解方程計算演示圖 4-4 解方程計算解六類方程,具體可參考軟件。4.3拓展功能演示圖 4-5 拓展功能演示七類拓展功能,具體可參考軟件。4.4使用說明展示圖 4-2 使用說明展示使用說明主要是為了展示使用方式,并且對容易出現(xiàn)的問題提前聲明,避免錯誤的輸入導致用戶效率降低,降低對軟件的好感度。5
14、. 心得體會軟件是需要思想作為靈魂的,而算法就是一種思想的表達,你有怎樣的思想,就可以寫出怎樣的算法,在實現(xiàn)算法的過程中我學會了用計算機的語言嚴謹?shù)谋磉_自己。C語言是面向過程的語言,在界面化制作上需要很大的功夫,但如果我們摒棄華麗的界面,找尋軟件的本質(zhì),將軟件真正做到能服務于用戶。在編寫軟件的過程中,我發(fā)現(xiàn),軟件的設計涉及各個方面的知識,真正有一種書到用時方恨少的感覺。在未來行進的路上,不要把眼界僅放在眼前,而是多涉獵各類知識,知識沒有界線,不分專業(yè)。在軟件編寫的過程中,每個程序員都知道debug要比寫代碼花費的時間長很多,推而廣之,無論我們以后做什么都應該在一開始就要有明確的思路和一個大致安排,避免在實踐的過程中問題變得越來越棘手;與此同時,也不能在一開始就想的很全面就望而卻步,畏葸不前,錯誤和問題是無法完全避免的,但是必須把錯誤控制在可控的范圍內(nèi),在有了一個明確的思路之后就應該大膽的實踐,想法要想清楚,在確定自己的思路沒錯之后,就不能輕易改變,堅持到底,不要懷疑自己。我覺得,編程帶給我的不僅是知識上的長進,更是思想上的磨練。6. 程序源代碼詳細源代碼,請參見工程文件Calculator ,詳見附件。