VC++计算器课程设计报告.docx
《VC++计算器课程设计报告.docx》由会员分享,可在线阅读,更多相关《VC++计算器课程设计报告.docx(18页珍藏版)》请在冰点文库上搜索。
VC++计算器课程设计报告
VC++计算器课程设计报告
1.作品名称:
计算器
2.本次课程设计的目的
在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对语法及语义分析原理的理解,并实现对命令语句的灵活应用。
3.主要功能
实现计算器的功能。
用户根据程序提示,输入数字或字符,选择要进行的运算,可以进行正弦、余弦、正切、开方、对数、加、减、乘、除、华氏温度与摄氏度之间的换算以及平方根的运算。
4.代码
#include
#include
#defineMAX100
#include
#include
#include
#include
doublenumber1,number2,answer,number3,num[10000];intn,k=1;
charinput,val;classoopcalc{
private:
doublex,y;doublefartocel(doublenumber1);doubleceltofar(doublenumber1);doublesqroot(doublenumber1);
voidcalcsqr();
voidcalccos();
voidcalctan();
voidcalcsin();
voidcalclog();
public:
doublegetX(){returnx;}
doublegetY(){returny;}
doubleset(){x=number1;y=number2;}
doublecalcadd(doublenumber1,doublenumber2);doublecalcsub(doublenumber1,doublenumber2);doublecalcdiv(doublenumber1,doublenumber2);doublecalcmult(doublenumber1,doublenumber2);voidcalcfartocel();
voidcalcceltofar();
voidcalcsroot();
voidexitprog();
voidmenu();
voidcaculate();
voidtest();
voidbadinput();
};
voidoopcalc:
:
calcsin()
{
cout<<"TheSinFunction\n";
cout<<"Enteranumber:
";
cin>>number1;
answer=sin(number1);
cout<<"Thesinof"<cout<<"Pressanykeytocontinue\n";
getch();
menu();
}
voidoopcalc:
:
calccos(){
cout<<"TheCosFunction\n";
cout<<"Enteranumber:
";
cin>>number1;
answer=cos(number1);
cout<<"Thecosof"<cout<<"Pressanykeytocontinue\n";
getch();
menu();
}
voidoopcalc:
:
calctan()
{
cout<<"TheTanFunction\n";
cout<<"Enteranumber:
";
cin>>number1;
answer=tan(number1);
cout<<"Thetanof"<cout<<"Pressanykeytocontinue\n";
getch();
menu();
}
voidoopcalc:
:
calcsqr()
{
cout<<"ThesqrFunction\n";
cout<<"Enteranumber:
";
cin>>number1;
answer=(number1*number1);
cout<<"Thesqrof"<cout<<"Pressanykeytocontinue\n";
getch();
menu();
}
voidoopcalc:
:
calclog(){
cout<<"TheLogFunction\n";
cout<<"Enteranumber:
";
cin>>number1;
if(number1<=0)
{
cout<<"Badinput!
\n";
cout<<"Pressanykeytocontinue\n";
getch();
menu();
}
else
answer=log(number1);
cout<<"Thelogof"<cout<<"Pressanykeytocontinue\n";
getch();
menu();
}
doubleoopcalc:
:
calcadd(doublenumber1,doublenumber2)
{
answer=number1+number2;
return(answer);
}
doubleoopcalc:
:
calcsub(doublenumber1,doublenumber2)
{
answer=number1-number2;
return(answer);
}
doubleoopcalc:
:
calcdiv(doublenumber1,doublenumber2)
{
if(number2==0){getch();
menu();}
else
answer=number1/number2;
return(answer);
}
doubleoopcalc:
:
calcmult(doublenumber1,doublenumber2)
{
answer=number1*number2;
return(answer);
}
voidoopcalc:
:
calcfartocel()
{
cout<<"TheFarenheittoCelsiusFunction\n";
cout<<"EnteratempatureinFarenheit:
";
cin>>number1;
answer=((number1-32)*5)/9;
cout<<"ThetempatureinCelsiusis"<cout<<"Pressanykeytocontinue\n";
getch();
menu();
}
voidoopcalc:
:
calcceltofar()
{
cout<<"TheCelsiustoFarenheitFunction\n";
cout<<"EnteratempatureinCelsius:
";
cin>>number1;
answer=number1*9/5+32;
cout<<"ThetempatureinFarenheitis"<cout<<"Pressanykeytocontinue\n";
getch();
menu();
}
voidoopcalc:
:
calcsroot()
{
cout<<"TheSquareRootFunction\n";
cout<<"Firstnumber:
";
cin>>number1;
if(number1<0)
{
cout<<"yourenterisincorrect,pleaseenteranewnumber\n";
getch();
menu();
}
else
answer=sqrt(number1);
cout<<"Thesquarerootof"<cout<<"Pressanykeytocontinue\n";
getch();
menu();
}
voidoopcalc:
:
exitprog()
{
exit(-1);
}
voidoopcalc:
:
menu()
{
oopcalca;
system("cls");\
cout<<"==================MENU===============\n";
cout<<"s:
选择s进行正弦运算\n";
cout<<"c:
选择c进行余弦运算\n";
cout<<"t:
选择t进行正切运算\n";
cout<<"g:
选择g进行对数运算\n";
cout<<"n:
选择n进行求平方运算\n";
cout<<"1:
选择1进行混合运算\n";
cout<<"2:
选择2进行华氏温度转化为摄氏温度的运算\n";
cout<<"3:
选择3进行摄氏温度转化为华氏温度的运算\n";
cout<<"4:
选择4进行求平方根运算\n";
cout<<"5:
选择5进行测试\n";
cout<<"6:
选择6退出运算\n";
cout<<"请选择:
";
cin>>input;
cout<<"=====================================\n";
switch(input)
{
case's':
case'S':
a.calcsin();
break;
case'c':
case'C':
a.calccos();
break;
case't':
case'T':
a.calctan();
break;
case'g':
case'G':
a.calclog();
break;
case'n':
case'N':
a.calcsqr();
break;
case'1':
a.caculate();
break;
case'2':
a.calcfartocel();
break;
case'3':
a.calcceltofar();
break;
case'4':
a.calcsroot();
break;
case'5':
a.test();
break;
case'6':
a.exitprog();
break;
default:
a.badinput();
}
}
voidoopcalc:
:
caculate()
{
oopcalca;
cout<<"TheMultifunction(混合四则运算)\n";
for(intn=1;;n++){
cout<<"Number"<";
cin>>num[n]\
if(num[n]==0){\
cout<<"Pressanykeytocontinue\n";
getch();
menu();}
switch(k)
{
case1:
if(n==1){answer=num[1];break;
}
else{answer=a.calcadd(answer,num[n]);
cout<<"Theansweris"<break;}
case2:
if(n==1){answer=num[1];break;}
else{answer=a.calcsub(answer,num[n]);
cout<<"Theansweris"<}
case3:
if(n==1){answer=num[1];break;}
else{answer=a.calcmult(answer,num[n]);
cout<<"Theansweris"<case4:
if(n==1){answer=num[1];break;}
else{answer=a.calcdiv(answer,num[n]);
cout<<"Theansweris"<}
label1:
cout<<"Pleasechoosethefunctionyouwant(+or-or*or/):
\n";
cin>>val;
switch(val)
{
case'+':
k=1;break;
case'-':
k=2;break;
case'*':
k=3;break;
case'/':
k=4;break;
default:
cout<<"Badinput!
\n";gotolabel1;
}
}
}
voidoopcalc:
:
test()
{
cout<<"TheTestFunction\n";
ints;
floatp;
s=rand()%4+1;
srand(time(NULL));
number1=rand()%MAX+1;number2=rand()%MAX+1;
switch(s)
{
case1:
cout<answer=calcadd(number1,number2);
break;
case2:
cout<answer=calcsub(number1,number2);
break;
case3:
cout<answer=calcdiv(number1,number2);
break;
case4:
cout<answer=calcmult(number1,number2);
break;
}
cin>>p;
if(answer==p){cout<<"Correct!
Youareveryclever!
\n";}
else{cout<<"NO!
Thecorrectansweris"<cout<<"Pressanykeytocontinue\n";
cout<getch();
menu();
}
voidoopcalc:
:
badinput()
{
cout<<"BADINPUT!
\n";
cout<<"Pressanykeytocontinue\n";
getch();
menu();
}
voidmain()
{
oopcalcs;
s.menu();
}
5.运行界面
进行正弦运算
进行混合运算
求平方根运算,根据用户输入与系统提示,运行过程依次如下:
进行华氏温度和摄氏度间的转化,运行如下:
进行测试
选择6键,回到菜单界面,运行如下:
6.心得体会
这次课程设计让我获益匪浅,我懂得了,做出一个优秀的程序,不是一蹴而就的事情,更不是马马虎虎随随便便就能成功的。
它需要绝对严谨的学习作风和一丝不够的认真态度。
所以非常感谢老师及学校给我们提供这样的学习环境和机会,让我们能更进一步的把书本上的知识和实践行动结合在一起,从而更好的掌握这一课程。