课程设计实践报告设计题目:简易计算器姓名:专业班级:学号:指导老师:上课地点:上课时间:目录设计要求:...................................................................................................1设计思想.....................................................................................................1程序代码.....................................................................................................1调试过程...................................................................................................10运行结果...................................................................................................11心得体会...................................................................................................161设计要求:用visualC++程序设计一个简易的计算器,具有多种功能。例如加减乘除、阶乘、温度转换等。设计思想为了方便起见,我主要是以类和对象来进行设计,将各个功能化成各个小类,然后综合的用main主函数来运行以保证程序的稳定可靠性程序代码#includeiostream#includecmath#includeiomanip#includestdlib.husingnamespacestd;classshow{public:voidshowtime(){cout*****************************欢迎使用**********************************endl;2cout1.加减乘除运算setw(30)2.复数乘法运算endl;cout3.素数判断setw(44)4.最小公倍数,最大公约数endl;cout5.一元二次方程求解setw(20)6.求阶乘endl;cout7.排列组合求解setw(26)8.温度转换endl;coutendl************版权所有*盗版不究**本代码最终解释权归fengkj所有************endl;}};classjiajian{inti;doublea,b,s;public:voidprint(){cout1.加法运算\t2.减法运算\t3.乘法运算\t4.除法运算endl;cout请输入代号:endl;here:cini;cout请输入两个数a,bendl;3couta=;cina;coutb=;cinb;switch(i){case1:s=a+b;couta'+'b=s;break;case2:s=a-b;couta'-'b=s;break;case3:s;s=a*b;couta'*'b=s;break;case4:if(b==0)cout数据错误!;else{s=a/b;couta'/'b=s;}break;default:cout代号数据错误,请重输;gotohere;}}};classfushu{floata,b,c,d,j,k;public:voidgetin(){4cout请输入两个复数:endl;coutx=_+_i;cinab;couty=_+_i;cincd;}voidmulti(){j=a*c-b*d;k=b*c+a*d;}voidprint(){if(k0)coutx+y=j'+'k'i'endl;elseif(k0)coutx+y=j'-'-k'i'endl;elsecoutx+y=jendl;}};classsushu{public:longt;voidget(){cout请输入一个待验证的数x:;cint;}intprime(longx){longi;for(i=2;ix/2;i++)if(x%i==0)return2;return3;}5voidprint(){longx;x=t;if(prime(x)==2)coutt不是素数;elsecoutt是素数;}};classgongbeishu{longx,y,max,min;public:voidget(){cout请输入两个正整数x,y:endl;coutx=;cinx;couty=;ciny;}voidjisuan(){longm,n,r,t;m=x;n=y;t=m*n;if(mn){r=m;m=m;n=r;}while((r=m%n)!=0){m=n;n=r;}max=n;min=t/n;6}voidprint(){coutx和y的最大公约数是:max','最小公倍数是:minendl;}};classqiujie{floata,b,c,x1,x2,t,s;public:voidget(){cout请输入方程的系数a,b,c:endl;couta=;cina;coutb=;cinb;cout常数c=;cinc;}voidjisuan(){floati;i=b*b-4*a*c;t=0;s=0;if(i=0){x1=(-b+sqrt(i))/(2*a);x2=(-b-sqrt(i))/(2*a);}else{x1=-b/(2*a);x2=-b/(2*a);s=sqrt(-i)/(2*a);t=-sqrt(-i)/(2*a);}}voidprint(){cout方程的解为:endl;coutx1=x1'+'t'i'\tx2=x2'+'s'i';}};7classjiecheng{intn,s;public:voidget(){cout请输入待阶乘的数:n=;cinn;}voidjisuan(){inti;s=1;for(i=1;in;i++)s*=i;}voidprint(){cout阶乘结果为:n!=s;}};classpailie{intn,r;public:voidget(){ak:cout请输入排列组合数:C(n,r)、P(n,r):endl;coutn=;cinn;coutr=;cinr;8if(nr){cout数据错误,请重新输入!;gotoak;}}intjiecheng(intx){inti,s=1;for(i=1;i=x;i++)s*=i;returns;}voidprint(){cout排列数P=jiecheng(n)/jiecheng(n-r)','组合数C=jiecheng(n)/(jiecheng(r)*jiecheng(n-r));}};classwendu{inti;floatn,s;public:voidget(){cout请选择温度转换方向:0.摄氏转华氏1.华氏转摄氏:;cini;cout请输入温度:;cinn;}voidzhuanhuan(){s=0;if(!i)s=32+n*1.8;elses=(n-32)/1.8;}voidprint(){if(!i)cout摄氏温度为:n'C','华氏温度为:s'F;elsecout华氏温度为:n'F','摄氏温9度为:s'C;}};voidmain(){inti,pp=1,ss=1;while(pp){system(cls);showv;v.showtime();qq:cout请输入您要进行运算的编码:;cini;switch(i){case1:g1:jiajianaa;aa.print();cout重新计算请按1,否则请按0;cinss;if(ss)gotog1;elsebreak;case2:g2:fushubb;bb.getin();bb.multi();bb.print();cout重新计算请按1,否则请按0;cinss;if(ss)gotog2;elsebreak;case3:g3:sushucc;cc.get();cc.print();cout重新计算请按1,否则请按0;cinss;if(ss)gotog3;elsebreak;case4:g4:gongbeishudd;dd.get();dd.jisuan();dd.print();cout重新计算请按1,否则请按0;cinss;if(ss)gotog4;elsebreak;case5:g5:qiujieee;ee.get();ee.jisuan();ee.print();cout重新计算请按1,否则请按0;cinss;if(ss)gotog5;elsebreak;10case6:g6:jiechengff;ff.get();ff.jisuan();ff.print();cout重新计算请按1,否则请按0;cinss;if(ss)gotog6;elsebreak;case7:g7:pailiegg;gg.get();gg.print();cout重新计算请按1,否则请按0;cinss;if(ss)gotog7;elsebreak;case8:g8:wenduhh;hh.get();hh.zhuanhuan();hh.print();cout重新计算请按1,否则请按0;cinss;if(ss)gotog8;elsebreak;default:cout数据错误!请输入1~8之间的一个整数;gotoqq;}cout返回主菜单请按1,退出程序请按0;cinpp;}}调试过程由于学的知识不是很多,也不是很熟练,在最开始的时候老是范一些小错误,而且很多语法错误,比如忘了写分号啊,把分号写成逗号啦。而且忘了写全{}就会出现很多个错误,在一个庞大的程序里面找这些错误再一一改正,很可能还是不能运行,但是多加一个}就很可能全部错误都搞定!调试的时候很多地方都是牵一发而动全身,特别是修改的时候,修改一个变量就得把其他部分的都改11掉,不然就会一直出现错误。还经常忘了定义变量就用,不过看英文提示面前能看懂,也能找到相应的错误。在把语法小错误解决之后就剩下运行了,但是运行的情况不容乐观,很多地方呢不是我想要的结果。例如在加减乘除那里,由于当时变量粗心的定义为long,得出的数总是为整数,后来改正为float后问题就解决了,还有就是开始界面里的序列号对不齐,后来尝试着用setw()来解决,尝试多次后得以解决。在老师的建议之下通过包含stdlib.h头文件和调用system(cls)函数成功的做到进行一次计算之后清理屏幕的效果。运行结果通过输入编码来选择计算类型。例如输入1.12方法同上继续进行输入代码的操作。13重新计算输入1,否则输入0.这里我输入0然后。14输入1回到主菜单,并清理屏幕。其他函数基本同上,在演示一个,例如4.最小公倍数最大公约数。1516心得