課程設(shè)計(jì)—簡(jiǎn)單計(jì)算器_第1頁(yè)
課程設(shè)計(jì)—簡(jiǎn)單計(jì)算器_第2頁(yè)
課程設(shè)計(jì)—簡(jiǎn)單計(jì)算器_第3頁(yè)
課程設(shè)計(jì)—簡(jiǎn)單計(jì)算器_第4頁(yè)
課程設(shè)計(jì)—簡(jiǎn)單計(jì)算器_第5頁(yè)
已閱讀5頁(yè),還剩16頁(yè)未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、目錄目錄簡(jiǎn)單計(jì)算器設(shè)計(jì)簡(jiǎn)單計(jì)算器設(shè)計(jì).1一、系統(tǒng)開(kāi)發(fā)的背景一、系統(tǒng)開(kāi)發(fā)的背景.1二、系統(tǒng)分析與設(shè)計(jì)二、系統(tǒng)分析與設(shè)計(jì).1(一)(一)系統(tǒng)功能要求系統(tǒng)功能要求.1(二)(二)系統(tǒng)模塊結(jié)構(gòu)設(shè)計(jì)系統(tǒng)模塊結(jié)構(gòu)設(shè)計(jì).1三、三、系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn).4(一)菜單選項(xiàng):(一)菜單選項(xiàng):voidvoid menumenu1 1()() ; .5(二)標(biāo)準(zhǔn)型:(二)標(biāo)準(zhǔn)型:menumenu4 4()() 、addadd()() 、subsub()() 、propro()() 、divdiv()() ;.5(三)科學(xué)型:(三)科學(xué)型:menumenu2 2()() 、addadd1 1()() 、su

2、bsub1 1()() 、propro1 1()() 、divdiv1 1()() 、funfun()() ; .8四、系統(tǒng)測(cè)試四、系統(tǒng)測(cè)試.11(一)(一)測(cè)試測(cè)試menumenu4 4()() 、addadd()() 、subsub()() 、propro()() 、divdiv()函數(shù)()函數(shù).11(二)(二)測(cè)試測(cè)試funfun()() 、addadd1 1()() 、subsub1 1()() 、propro1 1()() 、divdiv1 1()函數(shù)()函數(shù).12五、總結(jié)五、總結(jié).13六、附件(代碼、部分圖表)六、附件(代碼、部分圖表).13(一)程序代碼(一)程序代碼.13(二)

3、部分圖表(二)部分圖表.2011簡(jiǎn)單計(jì)算器設(shè)計(jì)簡(jiǎn)單計(jì)算器設(shè)計(jì)一、一、系統(tǒng)開(kāi)發(fā)的系統(tǒng)開(kāi)發(fā)的背景背景當(dāng)今社會(huì)是信息社會(huì),科技經(jīng)濟(jì)高速發(fā)展的社會(huì)!為了更方便人們的工作生活和加速人們處理信息的速度,計(jì)算器應(yīng)運(yùn)而生。由于它體積小巧,攜帶方便,價(jià)格便宜,構(gòu)造簡(jiǎn)單等諸多的優(yōu)點(diǎn)成為人們生活中的必備品! 隨著科技的發(fā)展計(jì)算器的種類(lèi)變得更多,功能變得更強(qiáng)大,體積變得更小!電腦的出現(xiàn)改變?nèi)藗兊纳盍?xí)慣,很多事情都可以電腦來(lái)完成!電腦的更大一個(gè)優(yōu)點(diǎn)就是可以通過(guò)軟件的應(yīng)用無(wú)限的延伸電腦功能的外延!因此我們將用我們學(xué)習(xí)的 c 語(yǔ)言編寫(xiě)一個(gè)簡(jiǎn)易的計(jì)算器程序!實(shí)現(xiàn)簡(jiǎn)單的初步的計(jì)算功能! 二、系統(tǒng)分析與設(shè)計(jì)二、系統(tǒng)分析與設(shè)計(jì)(

4、一)(一) 系統(tǒng)功能要求系統(tǒng)功能要求可以實(shí)現(xiàn)兩個(gè)數(shù)加、減、乘、除的基本運(yùn)算同時(shí)也可以實(shí)現(xiàn)多個(gè)數(shù)的加、減、乘、除的混合運(yùn)算以及實(shí)現(xiàn)了一些基本的進(jìn)制之間的互相轉(zhuǎn)換。1 1、進(jìn)制轉(zhuǎn)換(包括二進(jìn)制、十進(jìn)制、十六進(jìn)制)進(jìn)制轉(zhuǎn)換(包括二進(jìn)制、十進(jìn)制、十六進(jìn)制) ;2 2、混合運(yùn)算可以實(shí)現(xiàn)用上一次的計(jì)算結(jié)果接著用進(jìn)行下一步運(yùn)算;、混合運(yùn)算可以實(shí)現(xiàn)用上一次的計(jì)算結(jié)果接著用進(jìn)行下一步運(yùn)算;3 3、兩個(gè)數(shù)之間的基本運(yùn)算只能計(jì)算兩個(gè)數(shù);、兩個(gè)數(shù)之間的基本運(yùn)算只能計(jì)算兩個(gè)數(shù);(二)(二) 系統(tǒng)模塊結(jié)構(gòu)設(shè)計(jì)系統(tǒng)模塊結(jié)構(gòu)設(shè)計(jì)通過(guò)對(duì)系統(tǒng)功能的分析,簡(jiǎn)單計(jì)算器功能如圖 1 所示。2圖 1 簡(jiǎn)單計(jì)算器系統(tǒng)功能圖通過(guò)上圖的功能分

5、析,把整個(gè)系統(tǒng)劃分為標(biāo)準(zhǔn)型、科學(xué)型 2 大模塊,標(biāo)準(zhǔn)型之中只有一個(gè)算數(shù)運(yùn)算模塊,科學(xué)型之中包括算數(shù)運(yùn)算和進(jìn)制轉(zhuǎn)換 2 個(gè)模塊:1.標(biāo)準(zhǔn)型,該模塊主要實(shí)現(xiàn):兩個(gè)數(shù)加、減、乘、除的基本運(yùn)算,借助函數(shù)add () 、sub() 、pro() 、div()來(lái)實(shí)現(xiàn);2.科學(xué)型,該模塊主要實(shí)現(xiàn):多個(gè)數(shù)的加、減、乘、除的混合運(yùn)算以及實(shí)現(xiàn)了一些基本的進(jìn)制之間的互相轉(zhuǎn)換,算術(shù)運(yùn)算借助函數(shù) add1 ()、sub1()、pro1() 、div1()來(lái)實(shí)現(xiàn);進(jìn)制轉(zhuǎn)換借助函數(shù) fun()來(lái)實(shí)現(xiàn)。三、三、 系統(tǒng)的設(shè)計(jì)系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)與實(shí)現(xiàn)簡(jiǎn)單計(jì)算機(jī)系統(tǒng)簡(jiǎn)單計(jì)算機(jī)系統(tǒng)標(biāo)準(zhǔn)型標(biāo)準(zhǔn)型科學(xué)型科學(xué)型算算術(shù)術(shù)運(yùn)運(yùn)算算進(jìn)進(jìn)制制轉(zhuǎn)轉(zhuǎn)換

6、換算算術(shù)術(shù)運(yùn)運(yùn)算算3(一)菜單選項(xiàng):(一)菜單選項(xiàng):voidvoid menu1menu1()() ;分析:首先輸出表頭,然后依次輸出供用戶(hù)選擇的菜單。流程圖如圖 2 所示。圖 2:void meun1()流程圖該模塊的具體代碼如下所示。void menu1() printf( |=|n); printf( | 1.標(biāo)準(zhǔn)型; 5.科學(xué)型; |n); printf( |=|nn);(二)標(biāo)準(zhǔn)型:(二)標(biāo)準(zhǔn)型:menu4menu4()() 、addadd()() 、subsub()() 、propro()() 、divdiv()() ;分析:1.首先用 menu4()輸出供用戶(hù)選擇的加、減、乘、除

7、四個(gè)菜單。流程圖如圖 3 所示。 圖 3:menu4()流程圖該模塊的具體代碼如下所示。void menu4() printf( |=|n); printf( | 1.加法; 2.減法; 3.乘法; 4.除法 |n); printf( |=|nn);2.之后用 add() 、sub() 、pro() 、div()四個(gè)函數(shù)進(jìn)行運(yùn)算;流標(biāo)準(zhǔn)型標(biāo)準(zhǔn)型1、加法、加法2、減法、減法3、乘法、乘法簡(jiǎn)單計(jì)算器簡(jiǎn)單計(jì)算器1、標(biāo)準(zhǔn)型、標(biāo)準(zhǔn)型2、科學(xué)型、科學(xué)型4、除法、除法4程圖如圖 4 所示。 圖 4:add()流程圖3.sub() 、pro() 、div()三個(gè)函數(shù)的流程圖與 add()函數(shù)相同,只需將圖四中

8、的處理框的表達(dá)式做相應(yīng)的改動(dòng)。該模塊的具體代碼如下所示。int add()int add(int x,int y); int a,b,c; printf(請(qǐng)輸入所要計(jì)算的數(shù)); scanf(%d,%d,&a,&b); c=add(a,b); printf(計(jì)算結(jié)果是:%dn,c); return 0; int add(int x,int y)開(kāi)始開(kāi)始輸入兩數(shù) a,bc=a+b輸出輸出 c 值值結(jié)束結(jié)束5int z;z=x+y;return (z);float sub() float sub(float x,float y); float a,b,c; printf(請(qǐng)輸入所要計(jì)算的數(shù)); sc

9、anf(%f,%f,&a,&b); c=sub(a,b); printf(計(jì)算結(jié)果是:%fn,c); return 0; float sub(float x,float y)float z;z=x-y;return (z); float pro() float pro(float x,float y); float a,b,c; printf(請(qǐng)輸入所要計(jì)算的數(shù)); scanf(%f,%f,&a,&b); c=pro(a,b); printf(計(jì)算結(jié)果是:%fn,c); return 0; float pro(float x,float y)float z;z=x*y;return (z);f

10、loat div() float div(float x,float y); float a,b,c; printf(請(qǐng)輸入所要計(jì)算的數(shù)); scanf(%f,%f,&a,&b);6 c=div(a,b); printf(計(jì)算結(jié)果是:%fn,c); return 0; float div(float x,float y)float z;z=x/y;return (z);(三)科學(xué)型:(三)科學(xué)型:menu2menu2()() 、add1add1()() 、sub1sub1()() 、pro1pro1()() 、div1div1()() 、funfun()() ;分析:1.首先用 menu2()

11、輸出供用戶(hù)選擇的算術(shù)運(yùn)算、與進(jìn)制轉(zhuǎn)換兩個(gè)菜單。流程圖如圖 5 所示。圖 5:menu2()流程圖該模塊的具體代碼如下所示。void menu2() printf( |=|n); printf( | 1.算術(shù)運(yùn)算; 2.進(jìn)制轉(zhuǎn)換; |n); printf( |=|nn);科學(xué)型科學(xué)型1.算數(shù)運(yùn)算算數(shù)運(yùn)算2進(jìn)制轉(zhuǎn)進(jìn)制轉(zhuǎn)換換72.之后用 add1() 、sub1() 、pro1() 、div1()四個(gè)函數(shù)進(jìn)行運(yùn)算;流程圖如圖 6 所示。圖 6:add1()流程圖sub1() 、pro1() 、div1()三個(gè)函數(shù)的流程圖與 add()函數(shù)相同。該模塊的具體代碼如下所示。void add1(doubl

12、e x,double y)double n,z;char t,c;開(kāi)始輸入數(shù)據(jù)輸出結(jié)果結(jié)束c=getchar(+)c=getchar(-)c=getchar(*)c=getchar(/)z=x+yz=x-yz=x*yz=x/ybreakbreakbreakbreak輸入 0yyyynnnnbreak8z=x+y;printf(=%lf,z);c=getchar();scanf(%c,&t);if(t!=0)scanf(%lf,&n);switch(t)case +:add1(z,n);break; case -:sub1(z,n);break;case *:pro1(z,n);break; c

13、ase /:div1(z,n);break; case 0:return;break; / 返回一般計(jì)算void sub1(double x,double y)double n,z;char t,c;z=x-y;printf(=%lf,z);c=getchar();scanf(%c,&t);if(t!=0)scanf(%lf,&n);switch(t)case +:add1(z,n);break;case -:sub1(z,n);break;case *:pro1(z,n);break;case /:div1(z,n);break;case 0:return;break; void pro1(

14、double x,double y)double n,z;char t,c;z=x*y;printf(=%lf,z);c=getchar();scanf(%c,&t);9if(t!=0)scanf(%lf,&n);switch(t)case +:add1(z,n);break;case -:sub1(z,n);break;case *:pro1(z,n);break; case /:div1(z,n);break;case 0:return;break;void div1(double x,double y)double n,z;char t,c;z=x/y;printf(=%lf,z);c=

15、getchar();scanf(%c,&t);if(t!=0)scanf(%lf,&n);switch(t)case +:add1(z,n);break;case -:sub1(z,n);break;case *:pro1(z,n);break; case /:div1(z,n);break;case 0:return;break;四、系統(tǒng)測(cè)試四、系統(tǒng)測(cè)試(一)(一) 測(cè)試測(cè)試 menu4menu4()() 、addadd()() 、subsub()() 、propro()() 、divdiv()函數(shù)()函數(shù)10圖 7 menu4() 、add() 、sub() 、pro() 、div()函數(shù)

16、(二)(二) 測(cè)試測(cè)試 funfun()() 、add1add1()() 、sub1sub1()() 、pro1pro1()() 、div1div1()函()函數(shù)數(shù) 圖 8 add1() 、sub1() 、pro1() 、div1()函數(shù)11圖 9 fun()函數(shù)五、總結(jié)五、總結(jié) 系統(tǒng)完成了兩數(shù)之間的加、減、乘、除最基本運(yùn)算和多個(gè)數(shù)的加、減、乘、除的混合運(yùn)算以及實(shí)現(xiàn)了一些基本的進(jìn)制之間的互相轉(zhuǎn)換的功能。系統(tǒng)雖然完成了簡(jiǎn)單的運(yùn)算達(dá)到了基本的目的但是系統(tǒng)還存在著許多不足之處,系統(tǒng)完成的運(yùn)算項(xiàng)目太少,只能完成加、減、乘、除四個(gè)運(yùn)算項(xiàng)目的運(yùn)算,不能滿足實(shí)際生活中的需要,以及在進(jìn)制轉(zhuǎn)換方面互相轉(zhuǎn)換的進(jìn)制

17、類(lèi)型比較少。同時(shí)系統(tǒng)在設(shè)計(jì)中主次沒(méi)能很好地把握,使系統(tǒng)顯得比較生硬。這些方面在以后的學(xué)習(xí)中我們都要加強(qiáng)了解。通過(guò)這次課程設(shè)計(jì)發(fā)現(xiàn)了要想做好一個(gè)是比較難的,僅僅有一些基本的從課堂上學(xué)到 c 語(yǔ)言基礎(chǔ)是不夠的還需要我們查閱更多的資料。這次課程設(shè)12計(jì)不僅讓我找到了自己在程序設(shè)計(jì)方面存在的問(wèn)題與不足,同時(shí)還讓我對(duì)c 語(yǔ)言的認(rèn)識(shí)程度上升到了另一個(gè)高度,理解更加深刻了,為以后的學(xué)習(xí)找到了方向。同時(shí)此次課程設(shè)計(jì)我熟悉并掌握了模塊化程序設(shè)計(jì)方法,理解和運(yùn)用結(jié)構(gòu)化程序設(shè)計(jì)的思路和方法。六、附件六、附件(一)程序代碼(一)程序代碼#include#includevoid add1(double x,double

18、 y);void sub1(double x,double y);void pro1(double x,double y);void div1(double x,double y);void menu1() printf( |=|n); printf( | 1.標(biāo)準(zhǔn)型; 5.科學(xué)型; |n); printf( |=|nn);void menu2() printf( |=|n); printf( | 1.算術(shù)運(yùn)算; 2.進(jìn)制轉(zhuǎn)換; |n); printf( |=|nn);void menu3() printf( |=|n); printf( | 算術(shù)運(yùn)算 |n); printf( |=|nn);

19、void menu4()13 printf( |=|n); printf( | 1.加法; 2.減法; 3.乘法; 4.除法 |n); printf( |=|nn);void add1(double x,double y)double n,z;char t,c;z=x+y;printf(=%lf,z);c=getchar();scanf(%c,&t);if(t!=0)scanf(%lf,&n);switch(t)case +:add1(z,n);break; case -:sub1(z,n);break;case *:pro1(z,n);break; case /:div1(z,n);brea

20、k; case 0:return;break; / 返回一般計(jì)算void sub1(double x,double y)double n,z;char t,c;z=x-y;printf(=%lf,z);c=getchar();scanf(%c,&t);if(t!=0)scanf(%lf,&n);switch(t)case +:add1(z,n);break;case -:sub1(z,n);break;case *:pro1(z,n);break;case /:div1(z,n);break;case 0:return;break; 14void pro1(double x,double y)

21、double n,z;char t,c;z=x*y;printf(=%lf,z);c=getchar();scanf(%c,&t);if(t!=0)scanf(%lf,&n);switch(t)case +:add1(z,n);break;case -:sub1(z,n);break;case *:pro1(z,n);break; case /:div1(z,n);break;case 0:return;break;void div1(double x,double y)double n,z;char t,c;z=x/y;printf(=%lf,z);c=getchar();scanf(%c,

22、&t);if(t!=0)scanf(%lf,&n);switch(t)case +:add1(z,n);break;case -:sub1(z,n);break;case *:pro1(z,n);break; case /:div1(z,n);break;case 0:return;break;int add()15int add(int x,int y); int a,b,c; printf(請(qǐng)輸入所要計(jì)算的數(shù)); scanf(%d,%d,&a,&b); c=add(a,b); printf(計(jì)算結(jié)果是:%dn,c); return 0; int add(int x,int y)int z;

23、z=x+y;return (z);float sub() float sub(float x,float y); float a,b,c; printf(請(qǐng)輸入所要計(jì)算的數(shù)); scanf(%f,%f,&a,&b); c=sub(a,b); printf(計(jì)算結(jié)果是:%fn,c); return 0; float sub(float x,float y)float z;z=x-y;return (z); float pro() float pro(float x,float y); float a,b,c; printf(請(qǐng)輸入所要計(jì)算的數(shù)); scanf(%f,%f,&a,&b); c=pr

24、o(a,b); printf(計(jì)算結(jié)果是:%fn,c); return 0; float pro(float x,float y)16float z;z=x*y;return (z);float div() float div(float x,float y); float a,b,c; printf(請(qǐng)輸入所要計(jì)算的數(shù)); scanf(%f,%f,&a,&b); c=div(a,b); printf(計(jì)算結(jié)果是:%fn,c); return 0; float div(float x,float y)float z;z=x/y;return (z);void fun2()/進(jìn)制轉(zhuǎn)換 int c

25、hoice,value,i,j=0,k,t; char s50; int a4; printf( *n); printf( 1.十進(jìn)制轉(zhuǎn)換成二進(jìn)制; 2.十進(jìn)制轉(zhuǎn)換成十六進(jìn)制;n); printf( 3.二進(jìn)制轉(zhuǎn)換成十進(jìn)制; 4.二進(jìn)制轉(zhuǎn)換成十六進(jìn)制;n); printf( 5.十六進(jìn)制轉(zhuǎn)換成二進(jìn)制; 6.十六進(jìn)制轉(zhuǎn)換成十進(jìn)制;n); printf( *n); printf(請(qǐng)選擇:); scanf(%d,&choice); switch(choice) case 1:printf(請(qǐng)輸入十進(jìn)制數(shù)值:);scanf(%d,&value); while(value=2) if(value%2!=

26、0) sj+=1; else sj+=0; value=value/2; if(value=1)17 sj=1; printf(結(jié)果為:); for(i=j;i=0;i-) printf(%c,si); break; case 2:printf(請(qǐng)輸入十進(jìn)制數(shù)值:);scanf(%d,&value); printf(結(jié)果為:%x,value);break; case 3:printf(請(qǐng)輸入二進(jìn)制數(shù):);scanf(%s,s); for(i=0;si!=0;i+); i-;value=0; for(j=0;j0;k-) t*=2; value+=t; printf(結(jié)果為:%dn,value);break; case 4:printf(請(qǐng)輸入二進(jìn)制數(shù):);scanf(%s,s); for(i=0;si!=0;i+); i-;value=0; for(j=0;j0;k-) t*=2; value+=t; printf(結(jié)果為:%xn,value);break; case 5:printf(請(qǐng)輸入十六進(jìn)制數(shù)值:);

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論