第一篇:VFP程序設計教學反思
“VFP程序設計”教學案例與反思
開縣職業教育中心 向生
我長期從事計算機專業班的VFP教學,針對VFP課程的特點,在教法上,以?示例教學法?、?‘課機’結合式教學法?、?任務驅動教學法?為主開展教學,其教學效果明顯,但在?程序設計?這一章節的教學中,還是存在著兩大誤區:一是學生基礎較差,加之不愛動腦、動手,導致時間花得多,效果不理想;二是只重視程序設計的結果,忽視了其算法的多樣化,從而束縛了學生的思維創新。于是,解決突破這兩大誤區成了我的首要任務。通過向同事學習,查找相關資料,將多種教法結合起來,通過實踐,逐步形成了一種?精講多練、小組互動、分層實施、機試為主?教學模式,從而達到了預期的目的。
現以do while …… enddo循環控制命令的使用為例,將其教學片段簡介如下:
【案例】:
探索循環結構的程序設計方法:
1.示例:用投影儀展示求1+2+3+4+…+100程序清單,讓學生對照程序清單上機調試并思考。
附程序清單:clear sum=0 i=1 do while i<=100 sum=sum+i i=i+1 enddo ??1+2+3+…+100=?,sum 師:同學們,你們能找出程序清單中有哪些變量?并說明它的作用嗎? 學生思考,隨后指名回答。教師板書:sum i
sum的作用是用于存儲所求的和(中間結果及最終結果),i的作用是用來存儲循環的值(即加數),同時控制循環執行的次數。
師:程序中的變量名可用其它的字母代替嗎?你能找出在循環體(命令序列)中用于控制循環趨于結束的命令嗎?
學生回答,教師板書:i=i+1 師:好,請同學們獨立思考此程序的循環次數? 全班回答:100次。師:如何通過上機操作驗證其執行過程呢?(學生開展討論并上機操作驗證)生1:只須將輸出命令放到循環體中即可,即在?i=i+1?命令之后、?enddo?之前插入??sum,i?命令。(學生操作驗證)
生2:因為一屏顯示不下,我們看到的僅僅是最后的幾次執行過程,對于以前的執行過程還是看不到,可將該題分段實施,即先求1+2+3+…+20的和。
師:很好。(鼓掌、同學們再操作驗證)
2.任務:四人一個小組開始活動,討論以下任務的設計,并上機操作,教師參與到學生的活動中。任務一:求2+4+6+8+…+100的和 任務二:求1×2×3×4×5 不一會,各小組互動結束,請兩個組進行了回答如下:
小組甲:任務一與例題之間的區別是循環變量的初值為2,每循環一次循環變量增2即i=i+2。
小組乙:任務二在例題的基礎上將?sum=0?改為?sum=1?,循環變量的終值為5即條件改為i<=5,然后是循環體中的?sum=sum+i?改為?sum=sum*i?。
3.討論:同學們,在剛才所做的程序中,你能找出其規律嗎? 全班交流:
生1:循環變量從所賦的初值到終值按照一定的差進行變化,如求1+2+3+4+…時,其差為?1?進行的,求1+3+5+7+…時其差為?2?。
生2:(補充)循環變量在程序每執行一次時,就按照其連續相鄰的兩個值之間的差進行遞增變化。
生3:用來存儲結果的變量sum,也有一定的特點,如在求和時可以賦?0?,在求積時只能賦?1?。
……
師:你們說得很好,尤其是循環變量的特點,它是我們進行循環結構程序設計的關鍵,也是一個難點,其理解的程度直接影響到我們程序設計成敗。但注意的是有時也可能發生遞減變化喲。
4.拓展:做一做,求1+2+3+…+n;1×2×3×4×…×n;n從鍵盤輸入。做完后并思考:與上述程序設計題有何區別?有何意義
過了一會兒,大多數學生做完了,但還有部分學生沒有做完,就安排做完了的學生去指導未完成學生,幫助其操作,力爭所有的學生有所獲,有所得。
……
【反思】:
對VFP程序設計的教學,不再是重結果,輕過程,而是很好地駕馭教材內容,創造性地使用教材,巧妙組織、精心安排、靈活設計,給學生以耳目一新的感覺,教學效果非常明顯,主要體現了以下幾個方面:
1.程序設計關注的應該是程序設計的思維過程
本章節的教學,我跳出了認知技能的框框,不把程序設計的方法、操作技能的形成作為唯一的目標,而更關注學生的學習過程,讓學生在自身實踐探索的過程中實現發展性領域目標。如教學時圍繞do while命令的使用為重點展開探索,通過相應的活動與任務提供自主學習的機會,給學生充分思考的空間和時間,允許并鼓勵他們有不同思維方法,尊重他們的想法,哪怕是不合理的,甚至是錯誤的,讓他們在相互交流、碰撞、討論中,進一步明確程序設計的基本方法。通過互助探究后,他們在不同的層面上得到提高,并掌握了解決相應的實際問題的能力。在此基礎上,教師組織學生對知識進一步拓展:如求?1+2+3+…+n?,達到程序設計的基本要求,那就是通用性、實用性。這樣的教學,學生獲得的不僅僅是程序設計的基本方法,更重要的是分析、處理問題的思維創新能力。
2.提倡思維方式、程序算法的多樣化,促進學生個性發展。
思維方式、程序算法的多樣化,是指尊重學生的獨立思考,鼓勵學生探索不同的方法,而不是讓學生一定要去掌握多種操作方法。學生有著不同的專業基礎、知識背景和思考角度,他們的差異是客觀存在的,對同一個實際問題,由于學生的認知水平和認知風格的不同,常常會出現不同的設計方法,這正是學生具有不同個性的體現。通過分層實施,學生分別達到了應會、熟練等不同程度。在學生進行程序設計時,學生中出現了多種形式不同的程序清單。有的是變量的初值不同,有的是在循環體中命令的先后位臵略有變化,有的是把輸出放在了循環體之中等等。在學生獨立思考解決的基礎上,再讓學生發表自己的見解、觀點,傾聽同伴的解法,進行小組內交流、爭論,從而達成一種共識。教師鼓勵學生用已有的經驗大膽思維,鼓勵學生動手上機操作,尋求解決問題的有效途徑,營造寬松活躍的課堂氣氛。算法的多樣化使學生變得聰明自信,在主動探索與合作交流中得到收獲,并促進學生的個性發展。
3.營造民主的氛圍,激發學生的創新思維 在程序設計過程中,不同的方法對同一個人也許有快慢之說,而對不同的人卻不存在優劣之分。在整個探索的過程中,我只是通過投影展示了一個例題,然后組織學生不斷地發表自己的想法,通過引導,鼓勵他們敢于爭論,完成對知識的構建,同時也要注意呵護每一位學生的學習激情,激發其創造力。
學生爭論不休的時刻,也正是他們在積極地參與整個學習活動,這正是組織教學的精華所在,同時也挖掘了學生潛在的創造力,從而也帶動了全班學生的積極參與,在?do while命令?使用的探索過程中,如驗證體會循環的執行過程時,一學生提出只要驗證?1+2+3+…+20?的和,又如求"1×2×3×4×5"時,一學生說它的sum初值不能為?0?,只能為?1?時,全班學生都給了他熱烈的掌聲。我想他這種的見解總是在經過認真分析思考后得出來的。
4.教學方法多樣化,激發了學生學習的興趣
VFP課的教學具有很強的實踐操作性,教師在課堂中采取靈活多樣的方法,可充分調動學生學習的激情。?課機?結合式教學法,在課堂中教師通過大屏幕液晶投影儀或網絡教室講解知識,然后學生在下面操作學習,學生很容易跟著教師的步驟進行學習,掌握教師教給的內容,而且印象也較為深刻。如上述的示例部分。?任務驅動?教學法可合理組織學生自主學習,激發他們的興趣,讓他們盡快地活動起來,并通過自己的自學和同學的幫助來解決問題,在愉快的教學過程中掌握知識,如上述互動中的任務
一、任務二等。
5.實踐探索,進一步提高了學生的創造力
真理源于實踐,實踐出真知。在程序設計的教學中,通過邊講、邊練,先從理論上分析討論,找準理論依據,后通過上機操作驗證其正確性,最后再討論分析、交流程序設計的最佳方法,不僅訓練了學生的操作技能,同時也培養學生的創造能力。
總之在程序設計中,鼓勵積極思維、分層要求、反復操作驗證、達到程序算法多樣化是尊重學生的表現,體現了以學生為主體的教學原則,符合現代認知建構主義思想,是釋放學生自信心和創新思維、培養創造能力的有效途徑。
6.需進一步探索的問題
在程序設計教學時提倡?精講多練、小組互動、分層實施、機試為主?的教學模式,保障了學生在不同的層面得到發展,得到提高,同時也培養了學生的創新思維,體現理論與技能的雙豐收。但在對那些基礎較差、不愛動腦、動手的學生幫扶上,在分層互動、層次把握上,對教師的組織能力、對教材的分析駕馭能力提出了新的要求,要能真正把握住哪些是全班學生掌握的,哪些是部分(即提高)學生掌握的,達到所有的學生在各自的水平上能?吃飽?。這些問題還需要我們在下一階段的教學中進一步的探索。
第二篇:VFP程序設計課后反思(精選)
“VFP程序設計”課后反思
民勤職專
高海霞
我從事計算機專業班的VFP教學,針對VFP課程的特點,在教法上,以“案例教學法”、“課機結合式教學法”、“任務驅動教學法”為主開展教學,教學效果明顯,達到了預期的目的。現以do while …… enddo循環控制命令的使用為例,將其教學片段簡介如下:
【案例】: 探索循環結構的程序設計方法:
1.示例:用投影儀展示求1+2+3+4+…+100的程序,讓學生對照程序清單上機調試并思考問題。
2.任務:四人一個小組開始活動,討論以下任務的程序設計,并上機操作。
任務一:求2+4+6+8+…+100的和 任務二:求1×2×3×4×5
3.討論:同學們,在剛才所做的程序中,你能找出其規律嗎? 4.拓展:做一做,求1+2+3+…+n;1×2×3×4×…×n;n從鍵盤輸入。【反思】:
對VFP程序設計的教學,不再是重結果,輕過程,而是很好地駕馭教材內容,創造性地使用教材,巧妙組織、精心安排、靈活設計,給學生以耳目一新的感覺,教學效果非常明顯,主要體現了以下幾個方面:
1.程序設計關注的應該是程序設計的思維過程
本章節的教學,我不再把程序設計的方法、操作技能的形成作為唯一的目標,而更關注學生的學習過程,讓學生在自身實踐探索的過程中發現問題解決問題。如教學時圍繞do while命令的使用為重點展開探索,通過相應的活動與任務提供自主學習的機會,給學生充分思考的空間和時間,允許并鼓勵他們有不同思維方法,尊重他們的想法,讓他們在相互交流討論中,進一步明確程序設計的基本方法。通過互助探究后,他們在不同的層面上得到提高,并掌握了解決相應的實際問題的能力。在此基礎上,教師組織學生對知識進一步拓展:如求1+2+3+…+n,達到程序設計的基本要求,那就是通用性、實用性。這樣的教學,學生獲得的不僅僅是程序設計的基本方法,更重要的是分析、處理問題的思維創新能力。
2.提倡思維方式、程序算法的多樣化,促進學生個性發展。
學生有著不同的專業基礎、知識背景和思考角度,他們的差異是客觀存在的,對同一個實際問題,由于學生的認知水平和認知風格的不同,常常會出現不同的設計方法,這正是學生具有不同個性的體現。在學生進行程序設計時,學生中出現了多種形式不同的程序清單。有的是變量的初值不同,有的是在循環體中命令的先后位臵略有變化,有的是把輸出放在了循環體之中等等。在學生獨立思考解決的基礎上,再讓學生發表自己的見解、觀點,傾聽同伴的解法,進行小組內交流、爭論,從而達成一種共識。教師鼓勵學生用已有的經驗大膽思維,鼓勵學生動手上機操作,尋求解決問題的有效途徑,營造寬松活躍的課堂氣氛。算法的多樣化使學生變得聰明自信,在主動探索與合作交流中得到收獲,并促進學生的個性發展。
3.營造民主的氛圍,激發學生的創新思維
在程序設計過程中,我通過投影展示了一個例題,然后組織學生不斷地發表自己的想法,通過引導,鼓勵他們敢于爭論,完成對知識的構建,同時也要注意呵護每一位學生的學習激情,激發其創造力。學生爭論不休的時刻,也正是他們在積極地參與整個學習活動,這正是組織教學的精華所在,同時也挖掘了學生潛在的創造力,從而也帶動了全班學生的積極參與,在do while命令使用的探索過程中,如驗證體會循環的執行過程時,一學生提出只要驗證1+2+3+…+20的和,又如求1×2×3×4×5時,一學生說它的sum初值不能為0,只能為1時,全班學生都給了他熱烈的掌聲。我想他這種的見解總是在經過認真分析思考后得出來的。
4.教學方法多樣化,激發了生學習的興趣
VFP課的教學具有很強的實踐操作性,教師在課堂中采取靈活多樣的方法,可充分調動學生學習的激情。課機結合式教學法,在課堂中教師通過大屏幕投影儀或網絡教室講解知識,然后學生在下面操作學習,學生很容易跟著教師的步驟進行學習,掌握教師教給的內容,而且印象也較為深刻。任務驅動教學法可合理組織學生自主學習,激發他們的興趣,讓他們盡快地活動起來,并通過自己的自學和同學的幫助來解決問題,在愉快的教學過程中掌握知識,如上述互動中的任務
一、任務二等。
5.實踐探索,進一步提高了學生的創造力
真理源于實踐,實踐出真知。在程序設計的教學中,通過邊講、邊練,先從理論上分析討論,找準理論依據,后通過上機操作驗證其正確性,最后再討論分析、交流程序設計的最佳方法,不僅訓練了學生的操作技能,同時也培養學生的創造能力。總之在程序設計中,鼓勵積極思維、分層要求、反復操作驗證、達到程序算法多樣化是尊重學生的表現,體現了以學生為主體的教學原則,是釋放學生自信心和創新思維、培養創造能力的有效途徑。
6.需進一步探索的問題
在程序設計教學時提倡“精講多練、小組互動、分層實施、機試為主”的教學模式,保障了學生在不同的層面得到發展,得到提高,同時也培養了學生的創新思維,體現理論與技能的雙豐收。但在對那些基礎較差、不愛動腦、動手的學生幫扶上,在分層互動、層次把握上,對教師的組織能力、對教材的分析駕馭能力提出了新的要求,要能真正把握住哪些是全班學生掌握的,哪些是部分學生掌握的,達到所有的學生在各自的水平上能吃飽。這些問題還需要我們在下一階段的教學中進一步的探索。
第三篇:VFP程序設計總結
班級:電氣2013-1 學號:20***9
VFP程序設計
——課設總結
為期幾周的VFP數據庫設計的課設就快過去了,在這做課設的這段時間,可以說是有苦有甜,令人難忘。因此,有必要寫一篇總結,記錄一下自己做課設的歷程。
剛剛接到老師的課設要求的時候有點傻眼了,得優秀的要求是系統完善、寫一篇系統總結、回答老師對于代碼方面的提問。第一點似乎都還算能做到,但是對于我們這種連SQL語言的皮毛都沒學,對于數據庫的系統結構完全不了解的人,怎么能把三點要求都完成。
但是經過一段時間的摸索,我漸漸對vf的數據庫系統有了大體的了解知道了什么是項目,數據庫就是數據表的集合,搞清了基本表單的制作過程,知道如何用快速報表和報表向導做格式的報表,以及對報表的美化、求和、計算等處理,還有就是如何去制作菜單,以及用菜單調用各種數據文件,最后的主程序是直接復制老師的代碼,但是憑著一點點C++和C語言基礎,能夠看懂代碼的意思,這有助于我后期對整個系統進行查錯和修改。下面就講一下我對自己做的系統的總結。
1數據表(.dbf):數據表是整個系統的“原材料”,后期所有的制作處理,都是為了去處理和顯示這些數據,去用這些數據,當然也可以說數據表依靠后期的表單等等呈現給用戶。
2數據庫(.dbc):數據庫以我看來就是數據表的集合,可以將無聯系的自由表集合到一個容器里,使他們可以產生聯系。并且將這些表作為后面其他東西的數據環境。
3表單(.scx):表單就是最后呈現給用戶的人機交互界面,并且帶有一定的功能。表單的制作首先需要要給他設置數據環境,因為其上面的各種控件都是以數據環境里面的數據實現控件的意義。各種控件比如標簽就是用來顯示表單上需要顯示的一些文字提示,文本框就是用來顯示文本內容,組合框可以下拉顯示一連串的內容,表格控件可以顯示表格數據,可以用生成器做出自定義的表格,按鈕控件可以通過某個過程比如單擊執行用戶需要的事件代碼等等。最后表單生成以后,作為整個系統的優良的用戶與系統的交互平臺。
4菜單(.mnx):菜單就是整個系統調用文件的工具,通過點擊菜單,可以調用任意用戶想要調用的文件比如表單,數據表,程序等等。
5程序(.prg)程序就是一段代碼,生成文件以后可以由其他文件調用并執行,如主程序就是在系統運行時的入口,當然得先設置好主文件;quit程序可以實現系統的退出。
除了以上幾個以外,還有工具欄、自定義類等等在系統中都起著重要的作用,最后講一下設置背景音樂所用的方法,用set bell to的方式定位到文件,用?chr(7)就能對WAV格式的音樂進行播放。
致謝:
整個課設過程收獲很多,不僅僅是了解了利用Visual fox 制作系統的方法,而且還增進了同學們之間的友誼。在這里感謝同學們的互相學習以及交流分享,還有老師孜孜不倦的引導,總之,感謝老師,感謝同學,感謝大家!
XXX
第四篇:作業五:VFP高級程序設計
五、VFP高級程序設計(應用性實驗)
1、本次實驗的目的
Visual FoxPro不但提供了用于進行簡單程序開發的簡單語句,而且還提供了許多用于進行高級程序設計的語句(命令):如輸入/輸出格式設計語句、菜單設計語句、窗口設計語句等和面向對象的程序設計方法,為開發復雜的管理信息系統提供了強有力的支持。此次作業所要達到的主要目的就是想通過上機實驗讓同學們初步理解和掌握利用Visual FoxPro高級編程語句和面向對象的程序設計方法開發較復雜的管理信息系統的理論和方法。
2、實驗的總體要求
2·1 嚴格按照下面“作業內容和操作步驟”的步驟進行操作; 2·2 必須如數完成作業內容; 2·3 獨立完成作業;
2·4 上機后分組寫出上機報告;報告內容包括:①上機時間、②上機過程、③作業內容及其完成情況、④心得體會、⑤建議或要求等等。
3、作業內容和操作步驟
3·1 Visual Foxpro高級程序設計的方法和步驟(1)打開VFP(操作方法為:單擊“開始”、“程序”、“Microsoft Visual Foxpro6.0”或雙擊桌面快捷圖標,如果正常會出現如下窗口);
(2)打開命令文件編輯器(操作方法為:在VFP窗口的“命令窗口”輸入命令Modify Command和路徑(例:Modify Command E:gzglxtpzsr),如果正常會出現如下命令文件編輯窗口);
(3)輸入、編輯和修改程序(或者叫命令文件)源代碼(見下面3·2“本次實驗的主要內容”和3·3“本次實驗所要達到的要求”);
(4)存盤退出(操作方法:按Ctrl+w或單擊上編輯窗口的“關閉”按鈕然后按照提示操作);
(5)程序運行(操作方法:在VFP窗口的“命令窗口”輸入命令Do和路徑(例:Do E:gzglxtpzsr),如果正常就會運行你的程序實現你想實現的結果,如果不正常它會自動返回步驟(2)要求你修改程序);(6)如果上面你自己編寫的程序運行正常,便可得到下面的可以進行人機交互輸入記帳憑證的屏幕界面;
(7)所有工作完成后關閉窗口(操作方法為:單擊VFP窗口的“關閉”按鈕)。
3·2 本次實驗的主要內容(1)畫程序流程圖
已知煙臺某公司開發會計信息系統的可行性分析、要求分析和系統設計已經完成,現在正在準備編寫程序。假設分配你編寫“記帳憑證輸入程序”,請根據記帳憑證登記的業務特點和計算機數據輸入的特點畫出準備編寫的記帳憑證輸入程序的流程圖。(2)編寫程序
利用所學的Visual FoxPro相關命令(如分支語句、循環語句、輸入/輸出格式設計語句等等)編寫出滿足下面要求的程序。
3·3 本次實驗所要達到的要求
(1)要求該程序利用交互方式進行憑證輸入;
(2)要求該程序完成交互輸入的屏幕樣式如下圖;
(3)通過實驗深入了解管理信息系統與信息技術的關系;(4)通過實驗深入了解Visual FoxPro的輸入/輸出格式設計語句的書寫格式、功能、可選項及其應用。
4、注意事項
4·1上機前一定要認真閱讀上機指導書,深入理解作業的要求和內容; 4·2愛護計算機及所有實驗設備;
4·3遵守實驗室的一切規章制度,尤其是不能大聲說話和玩游戲。
5、參考文獻
5·1 黃梯云主編,《管理信息系統》,高等教育出版社,2002第 7次印刷; 5·2 呂建忠等,《Office97(中文版)入門與提高》,清華大學出版社,2000 5·3 錢曉平等,《計算機文化基礎》,高等教育出版社,1999; 5·4 李正凡等,《Visual FoxPro程序設計基礎教程》,中國水利水電出版社,2000; 5·5 合力工作室編著,《中文Visual FoxPro 6·0編程基礎》,清華大學出版社,2001; 5·6 周亦民等,《Visual FoxPro 6·0實用教程》,科學出版社,2000 5·7 其他同類參考書。附:程序原代碼 set talk off set bell on set intensity on clear clear all set color to gr+/gb* @ 10,10 say “ ” defi wind ck_1 from 1,26 to 11,106 defi wind ck_2 from 12,8 to 28,128 none acti wind ck_1 set color to b+/gr* @ 1,14 say “憑證登記系統使用說明” font “Arial”,22 style “b” @ 4,20say “歡迎您使用我公司開發的憑證輸入系統,本系統采用” @ 5,16 say “最先進的全屏幕編輯技術進行數據輸入。按光標鍵進行輸入” @ 6,16 say “位置選擇,按Del進行數據刪除,按Insert進行數據插入!” @ 7,22 say “現在進行憑證輸入?(Y/N):” get xz defa “ ” read if xz=“Y”.or.xz=“y” use d:cai_glxxxtvfpcxpzb acti wind ck_2 append Blank else deac wind ck_1 release windows set color to w+/w* clear clear all cancel endif do while.t.set color to n+/gr*,n+/g* @ 2,10 to 15,116 pen 3 color r @ 3,24 say “
記
帳
憑
證 ” font “Arial”,18 style “b” @ 5,14 say “ 附單 張 年 月 日 憑證號 ” font “Arial”,12 @ 6,14 say “┏━━━━━━━┳━━━━━━━┳━━━━━━━━┳━━┳━━━━━━┓” font “Arial”,12 @ 7,14 say “┃ 摘 要 ┃ 總 帳 科 目 ┃
明 細 科 目 ┃記向┃ 金 額 ┃” font “Arial”,12 @ 8,14 say “┣━━━━━━━╋━━━━━━━╋━━━━━━━━╋━━ ╋━━━━━━┫” font “Arial”,12 @ 9,14 say “┃
┃
┃
┃
┃
┃” font “Arial”,12 @ 10,14 say “┗━━━━━━━┻━━━━━━━┻━━━━━━━━┻━━┻━━━━━━┛” font “Arial”,12 @ 11,14 say “
主管:
審核: 制單: ” font “Arial”,12 year=“ ” store “ ” to m,d @ 5,25 get 附單 @ 5,42 get year @ 5,50 get m @ 5,55 get d @ 5,86 get 憑證號 @ 9,18 get 摘要 @ 9,40 get 總帳科目 @ 9,60 get 明細科目 @ 9,86 get 記向 @ 9,94 get 金額 @ 11,28 get 主管 @ 11,48 get 審核 @ 11,68 get 制單 read ymd=year+“.”+m+“.”+d replace 日期 with ymd @ 13,24 say “是否繼續登記?(READ if xz1<>”Y“.or.xz1<>”y“ exit else clear append Blank loop endif enddo close data deac wind ck_1,ck_2 release windows set color to w+/w* clear clear all return
Y/N):” get xz1 defa “ ” 4
第五篇:VFP程序設計報告 計算器分析
VFP程序設計報告
專業:外國語學院英語專業
姓名:段瑩婷 學號:9*** 題目:計算器 指導教師:薛春香
一、設計意圖
在決定設計計算器程序之前,我有嘗試過設計工資管理系統,結果發現工資管理系統比較繁瑣有沒什么用處,便改為設計程序較為簡單,且實用性強的計算器,除了可以完成VFP任務,在平時生活中也可以使用。
二、系統主要功能
該計算器是一款小型的用于簡單數學計算的程序,能完成基本算術運算并顯示其結果,使用計算器可進行加(+)、減(-)、乘(×)、除(/)、開方(sqrt)、百分數(%)、倒數(1/x)等簡單算術計算,但無法進行復雜的平方、求平均數等科學型的計算。
主要表單:歡迎界面(welcome.scx),計算器界面(calculator.scx)。
三、使用方法
1、鍵入數字時,按下相應的數字鍵,如果按錯可用(CE)鍵消去一次數值,再重新輸入正確的數字;
2、加(+)、減(-)、乘(×)、除(÷)鍵用于進行四則運算;
3、根號(sqrt)鍵是開二次方根; 4、1/x 鍵取倒數;
5、按下(+/-)鍵可改變數字的正負值;
6、按下等號(=)鍵顯示運算結果;
7、MS鍵存儲顯示的數據,MR鍵讀取已存儲的數據,MC鍵清除存儲數據,M+鍵將顯示結果與已存儲數據相加;
8、C(CLEAR)鍵表示清零,作用是將計算器恢復到開機狀態,而CE(CLEAR ERROR)鍵僅表示當前數字清除,作用是將當前輸入的數字清除回到0狀態。
四、設計過程
(一)、準備工作
將F盤中的所有文件清除,放入制作計算器所需的圖片。
Set default to F
&&將F盤設為默認目錄。
(二)、歡迎界面的設計
文件—新建—項目,新建名為jsq的項目,在項目管理器中新建一表單form1,將form1的Caption屬性設為“歡迎”,Picture屬性中插入背景圖片。在表單中繪制三個標簽(Label),將其Caption屬性分別設為“歡迎使用計算器”、“進入計算器”及“取消”,并修改相應屬性以使界面符合理想要求。
Label 2控件的Click事件代碼為: do form calculator thisform.release Label 3控件的Click事件代碼為: Thisform.release 最后成品界面如下所示:
將這個表單設為主文件。
(三)、計算器的設計
1、添加控件
在項目管理器中新建第二個表單form2,將其Caption屬性設為“計算器”。
首先為表單新建屬性,系統菜單欄中選“表單”——“新建屬性”——名稱:ls ——“添加”。再新建屬性mm。
添加27個命令按鈕,其命令按鈕的Caption屬性和Click事件代碼分別為:(1)[1] 按鈕
Command1.Caption=’1’
Command1.Click事件代碼為:thisform.text1.value=thisform.text1.value+'1'(2)[2] 按鈕——[9] 按鈕的設置同[1] 按鈕相似。(3)[0] 按鈕
Command10.Caption=’0’
Command10.Click事件代碼為:
thisform.text1.value=thisform.text1.value+'0' if alltrim(thisform.text1.value)='00' thisform.text1.value='0' endif(4)[+] 按鈕
Command11.Caption=’ +’
Command11.Click事件代碼為:thisform.ls=val(thisform.text1.value)
thisform.tag='1'
thisform.text1.value=''(5)[-] 按鈕
Command12.Caption=’ -’ Command12.Click事件代碼為:thisform.ls=val(thisform.text1.value)
thisform.tag='2'
thisform.text1.value=''
(6)[×] 按鈕
Command13.Caption=’ ×’
Command13.Click事件代碼為:thisform.ls=val(thisform.text1.value)
thisform.tag='3'
thisform.text1.value=''(7)[÷] 按鈕
Command14.Caption=’ ÷’
Command14.Click事件代碼為:thisform.ls=val(thisform.text1.value)
thisform.tag='4'
thisform.text1.value=''(8)[=] 按鈕
Command15.Caption=’ =’
Command15.Click事件代碼為:do case
case thisform.tag='1'
thisform.text1.value=alltrim(str(thisform.ls+val(thisform.text1.value),20,4))
case thisform.tag='2'
thisform.text1.value=alltrim(str(thisform.ls-val(thisform.text1.value),20,4))
case thisform.tag='3'
thisform.text1.value=alltrim(str(thisform.ls*val(thisform.text1.value),20,4))
case thisform.tag='4'
thisform.text1.value=alltrim(str(thisform.ls/val(thisform.text1.value),20,4))
endcase
(9)[MC] 按鈕
Command16.Caption=’MC ’
Command16.Click事件代碼為:thisform.mm=0
(10)[MR] 按鈕
Command17.Caption=’MR ’
Command17.Click事件代碼為:thisform.text1.value=alltrim(str(thisform.mm))
(11)[M+] 按鈕
Command18.Caption=’M+ ’
Command18.Click事件代碼為:
thisform.mm=thisform.mm+val(alltrim(thisform.text1.value))
(12)[MS] 按鈕
Command19.Caption=’MS ’
Command19.Click事件代碼為:thisform.mm=val(alltrim(thisform.text1.value))
(13)[+/-] 按鈕
Command20.Caption=’ +/- ’
Command20.Click事件代碼為:if substr(alltrim(thisform.text1.value),1,1)='-'
thisform.text1.value=substr(alltrim(thisform.text1.value),2)
else
thisform.text1.value='-'+alltrim(thisform.text1.value)
endif
(14)[·] 按鈕
Command21.Caption=’ · ’
Command21.Click事件代碼為:if at('.',thisform.text1.value)=0
thisform.text1.value=thisform.text1.value+'.' endif
(15)[退出] 按鈕
Command22.Caption=’ 退出 ’
Command22.Click事件代碼為:thisform.release
(16)[1/x] 按鈕
Command23.Caption=’ 1/x ’
Command23.Click事件代碼為:
thisform.text1.value=alltrim(str(1/val(thisform.text1.value),20,4))
(17)[sqrt] 按鈕
Command24.Caption=’ sqrt ’
Command24.Click事件代碼為:
thisform.text1.value=alltrim(str(sqrt(val(thisform.text1.value)),20,4))
(18)[退格] 按鈕
Command25.Caption=’ 退格’
Command25.Click事件代碼為:
thisform.text1.value=substr(alltrim(thisform.text1.value),1,len(alltrim(thisform.text1.value))-1)
(19)[CE] 按鈕
Command26.Caption=’CE’
Command26.Click事件代碼為:thisform.text1.value=''
(20)[C] 按鈕
Command27.Caption=’CE’
Command27.Click事件代碼為:thisform.text1.value=''
thisform.ls=0 thisform.tag=''
完成之后修改它們的FontBold、FontName、ForeColor屬性進行美化。
添加三個文本框,text1,text2,text3,Text3.ReadOnly=.T.text2.ReadOnly=.T.指定用戶不能編輯此控件。
完成之后的界面:
2、創建菜單
3、為“編輯”菜單創建子菜單
4、為“查看”菜單添加子菜單
最后生成菜單。
5、設置菜單屬性
設為頂層表單。
(四)、創建程序和配置文件
程序代碼為:
do form calculator.scx read events
配置文件代碼為: Screen=off
修改表單:
Form1.init=do calculator.mpr with this,.T.Form1.Destroy=thisform.release clear events
(五)、小結
剛開始得知要自己用VFP編寫程序的時候,我覺得這幾乎是不可能完成的任務,同時也很后悔自己上學期沒有認真聽講。在毫無想法地度過了幾天之后,我開始面對現實。最初的想法是編寫一個工資管理系統,表做得很順利,但之后做菜單時遇到了問題,絞盡腦汁無法解決后我便放棄了這個系統,轉而設計程序簡單卻很實用的計算器。剛開始跟著書本亦步亦趨,但是越做越發現書上的代碼好像有點問題,中間步驟也似乎不是很完整,我決定不按書上的套路來。在查閱了書本、瀏覽了幾個程序設計網站之后,我制作了一個和書上代碼不同的計算器程序,添加了一個菜單。計算器程序編寫完成之后,我感到自己的程序過于單薄,便又添加了一個歡迎界面。最后連編時又遇到了大問題,無論怎么連編,最后生成的程序都無法運行,為解決這個問題,我用別人的電腦試過,還重裝了VFP軟件,還瀏了許許多多網頁,最后很湊巧地成功了。在制作過程中,我對表單的背景、字體等的設置都是經過深思熟慮的,雖然這個程序很簡單,但畢竟是自己的勞動成果,我還是很滿意的。
VFP程序設計的過程,不僅是完成必須任務的過程,這個過程還讓我收獲了除了學術知識方面的其他果實。
第一,我體會到了自主學習的重要性。VFP程序設計,不是只有我覺得困難,大家都很苦惱,在這種時候能夠依靠的就只有自己,要學會自己搜取需要的資源。
第二,自主學習不代表各管各,只掃自家門前雪,不管他人瓦上霜。遇到實在無法解決的問題時,互幫互助是很重要的。自己不懂的,別人也許很擅長,幫他人解決問題時,自己也可能會學到新的技巧;
第三,耐性很重要。做完計算器程序之后其實我有點后悔,因為當我回過頭去看被我放棄的工資管理系統時,我發現之前弄不明白的問題在編寫計算器程序的過程中已經找到了答案,如果當初我能多查閱一些資料,也許就能成功完成工資管理系統了。但同時我又慶幸自己堅持做完了計算器。所以做任何事情,碰到任何困難,都不能立即判死刑,再多點耐心,再堅持一會兒,方能柳暗花明又一村;
第四,相信自己!我能編寫出一個程序這就是最好的例證!