版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、 綜合實驗報告( 2008- 2009年度第1學期)實驗名稱: C語言課程設(shè)計 題 目: 一個簡單計算器 院 系:計算機科學與技術(shù)系 班 級: 計算0802班 組長學號: 組長姓名: 成員學號: 成員姓名: 指導教師: 鄭玲 設(shè)計周數(shù): 2 周 成 績: 日期:2009年1月 日5 / 6文檔可自由編輯打印題目名稱:一個簡單計算器小組組長姓名 (學號): 組員姓名(學號):組員姓名(學號):一、課程設(shè)計目的:1進一步掌握和利用C語言進行行程設(shè)計的能力;2進一步理解和運用結(jié)構(gòu)化程序設(shè)計的思想和方法;3初步掌握開發(fā)一個小型實用系統(tǒng)的基本方法;4學會調(diào)試一個較長程序的基本方法;5學會利用流程圖表示算
2、法;6掌握書寫程序設(shè)計開發(fā)文檔的能力(書寫課程設(shè)計報告)。二、題目描述計算器是日常生活中的一種常用計算工具,能夠進行加、減、乘、除四則運算,高級的計算器還具有函數(shù)計算及統(tǒng)計功能等。三、功能分析簡單計算器能做加(+)、減(-)、乘(*)、除(/),四則運算和求百分運算(%);通過鼠標輸入一個數(shù),單擊S按鈕還可計算該數(shù)的平方根。簡單計算器具有以下主要功能:1加減乘除四則運算例如,先后單擊“1”、“+”、“2”、“=”按鈕,應(yīng)能進行1+2=3的計算。并且支持表達式的優(yōu)先級計算處理。2求平方根運算 先后單擊“9”、“S”按鈕,應(yīng)得到9的平方根是3并顯示在輸出顯示框中。本計算器還可計算1+sqrt(9)
3、的值,并得到正確的結(jié)果是4。簡單計算器不支持鍵盤操作,只有一個求數(shù)的平方根的函數(shù)計算功能,沒有提供類似Windows計算器的菜單功能。 四、系統(tǒng)設(shè)計1程序總體結(jié)構(gòu)簡單計算器的處理過程是:首先進行圖形和鼠標初始化,接著顯示簡單計算器外觀,并接受用戶的鼠標控制使用。如果單擊了鼠標右鍵,則程序關(guān)閉圖形方式并結(jié)束運行。其主流程如圖2所示。圖2簡單計算器的流程圖2界面設(shè)計簡單計算器的界面如圖3所示,具體設(shè)計如下:(1)計算器背景采用淺藍色,然后用灰色作底色和紅色作前景色。(2)第1行是數(shù)據(jù)輸入和結(jié)果輸出的信息顯示框,使用bar函數(shù),用黃色填充。(3)信息顯示框下面是4排按鈕,每排5個,同樣使用bar函數(shù)
4、。按鈕被設(shè)計成有按下和彈起兩種狀態(tài),初始是彈起狀態(tài)。(4)在每個按鈕框上輸出相應(yīng)的數(shù)字或符號作為按鈕的標簽。(5)最后在簡單計算器下方輸出使用說明和設(shè)計單位信息。圖3簡單計算期的外觀3重要數(shù)據(jù)的數(shù)據(jù)結(jié)構(gòu)設(shè)計簡單計算器沒有用到復雜的數(shù)據(jù)結(jié)構(gòu),計算時定義了兩個double變量u、v和一個字符數(shù)組s及幾個標志變量。開始使用時u和v變量分別存儲第1次和第2次輸入的數(shù)據(jù),計算結(jié)果始終保存在u中。繼續(xù)運算時,輸入的數(shù)據(jù)存于v,并與u中的數(shù)據(jù)運算后結(jié)果保存于u中。在簡單計算器進行加減乘除運算的函數(shù)compute()中,定義以下主要標志變量:(1)sign:表示“+”、“”、“*”、“等運算符的整數(shù)變量。值為
5、0表示當前未單擊過運算符。(2)flag:輸人數(shù)據(jù)時是否單擊了小數(shù)點。單擊了小數(shù)點,flag為1,否則為0。4函數(shù)清單簡單計算器程序采用了結(jié)構(gòu)化程序設(shè)計的思想,由1個h文件和4個c文件組成,并構(gòu)造了TC工程文件來管理和生成簡單計算器應(yīng)用。每個源文件包含多個函數(shù)的設(shè)計,這些函數(shù)的功能設(shè)計及處理描述見表1。文件名函數(shù)原型函數(shù)功能處理描述mouseCvoid initmouse()鼠標初始化調(diào)用0x33中斷的0號功能。寄存器ax返回值不是-1,表明鼠標初始化失敗。Void get_mouse_position(int *x,int *y)獲取鼠標位置坐標調(diào)用0x33中斷的3號功能。鼠標位置存于寄存器
6、cx和dx中,然后存于x、y指針變量指向的單元返回調(diào)用函數(shù)。int le()判斷鼠標左鍵是否單擊調(diào)用0x33中斷的3號功能。鼠標狀態(tài)存于寄存器bx,其第0位是1表明左鍵被按下。int rightpress()判斷鼠標右鍵是否單擊調(diào)用0x33中斷的3號功能。鼠標狀態(tài)存于寄存器bx,其第1位是1表明右鍵被按下。pictureCvoid picture()繪制計算器界面使用圖形函數(shù)繪制計算器外框。調(diào)用公用函數(shù)bottonup()繪制彈起效果的按鈕。調(diào)用系統(tǒng)outtextxy()輸出按鈕標簽。調(diào)用系統(tǒng)outtextxy()輸出使用說明等信息注:函數(shù)開始繪制鼠標圖標并保存在全局變量imagep中,在co
7、mpute()函數(shù)(見computec文件)中涉及顯示、移動鼠標等操作。utilCvoid GraphInit()圖形初始化調(diào)用系統(tǒng)函數(shù)initgraph()進行初始化。失敗則程序結(jié)束運行。void bottondown(int x,int y)畫按下效果的按鈕框調(diào)用畫線及顏色設(shè)置函數(shù)繪制按下效果的按鈕框。(x,y)表示按鈕框的左上角坐標void bottonup(int x,int y)畫彈起效果的按鈕框 調(diào)用畫線及顏色設(shè)置函數(shù)繪制彈起效果的按鈕框 (x,y)表示按鈕框的左上角坐標。void show(int x,int y)單擊按鈕的效果顯示顯示按下的按鈕。延時。顯示彈起的按鈕注:模擬按鈕
8、被單擊。char getnumber(int x,int y)獲取單擊按鈕圖標每個按鈕的位置是確定的(即矩形框的左上角坐標和大小已知)。根據(jù)單擊按鈕時鼠標的(x,y)可確定單擊了哪個按鈕,函數(shù)返回按鈕的標簽例:左上角坐標為(150,105)和右下角為(200,135)的矩形框表示計算器上數(shù)字“7”按鈕。五、源程序整個計算器應(yīng)用程序由6個源文件組成,分別是compute.prj、compute.h、mouse.c、picture.c、util.c和compute.c。1compute.prj文件簡單計算器程序的TC工程文件,內(nèi)容如下: mouse.C (compute.h) picture.C
9、(compute.h) util.c (compute.h) compute.c (compute.h)2computeh文件由簡單計算器程序設(shè)計中所涉及的系統(tǒng)頭文件、宏定義、外部全局變量申明和函數(shù)原型說明等組成,使構(gòu)成簡單計算器的各個C源程序文件只需引用該頭文件即可。 #include<stdio.h> *系統(tǒng)提供的頭文件* #include<math.h> #include<graphics.h> #include<conio.h> #include<stdlib.h> #include<dos.h>源程序見附錄一。六、測試1界面及按鈕單擊測試檢查界面布局是否合理、正確,單擊按鈕是否有按下再彈起效果,單擊按鈕的輸入是否正確。2簡單計算器的功能測試(1)加、減、乘、除四則運算的測試。(2)優(yōu)先級處理的測試先后單擊“1”、“+”、“2”、“*”、“4”、“=”按鈕,輸出結(jié)果是9,即支持四則運算的優(yōu)先級處理。(3)求平方根運算的測試a)計算sqrt(9)先單擊“9”、再單擊“S”按鈕,看結(jié)果是否正確。b)計算1十sqrt(9)檢查是否能正確1+sqrt(9)。通過以上測試可以基本確定計算器程序是否實現(xiàn)了預(yù)定的功能。3正負(+-)運算處理的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年-江蘇省安全員A證考試題庫
- 2025年四川省建筑安全員《B證》考試題庫及答案
- 機械設(shè)計教學課件-樣章
- 《眼保健操》課件
- 《急診影像病例》課件
- 湯姆索亞歷險記教學課件
- 【課件】體育產(chǎn)業(yè)發(fā)展的概述與日照市體育產(chǎn)業(yè)發(fā)展的現(xiàn)狀及建議
- 《IPTV播控平臺綜述》課件
- 單位人力資源管理制度佳作合集十篇
- 單位人力資源管理制度合并合集十篇
- 地震應(yīng)急演練實施方案村委會(2篇)
- HG/T 6312-2024 化工園區(qū)競爭力評價導則(正式版)
- 2024時事政治試題庫學生專用
- 三級合伙人制度
- 2024年湖北省黃石市黃石港區(qū)政府雇員招聘37人公開引進高層次人才和急需緊缺人才筆試參考題庫(共500題)答案詳解版
- 礦業(yè)施工組織設(shè)計方案
- 椎體感染的護理查房
- 產(chǎn)后飲食的健康宣教-課件
- 兒科案例完整-川崎病課件
- RFJ 006-2021 RFP型人防過濾吸收器制造與驗收規(guī)范(暫行)
- 電子行業(yè)認證行業(yè)深度研究報告
評論
0/150
提交評論