V C++计算器课程设计报告1.作品名称:计算器2.本次课程设计的目的在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对语法及语义分析原理的理解,并实现对命令语句的灵活应用。
3.主要功能实现计算器的功能。
用户根据程序提示,输入数字或字符,选择要进行的运算,可以进行正弦、余弦、正切、开方、对数、加、减、乘、除、华氏温度与摄氏度之间的换算以及平方根的运算。
4.代码#include <process.h>#include<time.h>#define MAX 100#include <iostream.h>#include <conio.h>#include <stdlib.h>#include <math.h>double number1,number2,answer,number3,num[10000];int n,k=1;char input,val; class oopcalc {private:double x,y; double fartocel(double number1); double celtofar(double number1); double sqroot(double number1);void calcsqr();void calccos();void calctan();void calcsin();void calclog();public:double getX(){return x;}double getY(){return y;}double set(){x=number1;y=number2;}double calcadd(double number1,double number2);double calcsub(double number1,double number2);double calcdiv(double number1,double number2);double calcmult(double number1,double number2);void calcfartocel();void calcceltofar();void calcsroot();void exitprog();void menu();void caculate();void test();void badinput();};void oopcalc::calcsin(){cout<<"The Sin Function\n";cout<<"Enter a number:";cin>>number1;answer=sin(number1);cout<<"The sin of "<<number1<<" is "<<answer<<endl;cout<<"Press any key to continue\n";getch();menu();}void oopcalc::calccos(){cout<<"The Cos Function\n";cout<<"Enter a number:";cin>>number1;answer=cos(number1);cout<<"The cos of "<<number1<<" is "<<answer<<endl;cout<<"Press any key to continue\n";getch();menu();}void oopcalc::calctan(){cout<<"The Tan Function\n";cout<<"Enter a number:";cin>>number1;answer=tan(number1);cout<<"The tan of "<<number1<<" is "<<answer<<endl;cout<<"Press any key to continue\n";getch();menu();}void oopcalc::calcsqr(){cout<<"The sqr Function\n";cout<<"Enter a number:";cin>>number1;answer=(number1*number1);cout<<"The sqr of "<<number1<<" is "<<answer<<endl;cout<<"Press any key to continue\n";getch();menu();}void oopcalc::calclog(){cout<<"The Log Function\n";cout<<"Enter a number:";cin>>number1;if(number1<=0){cout<<"Bad input!\n";cout<<"Press any key to continue\n";getch();menu();}elseanswer=log(number1);cout<<"The log of "<<number1<<" is "<<answer<<endl;cout<<"Press any key to continue\n";getch();menu();}double oopcalc::calcadd(double number1,double number2){answer=number1+number2;return(answer);}double oopcalc::calcsub(double number1,double number2){answer = number1-number2;return(answer);}double oopcalc::calcdiv(double number1,double number2){if(number2==0){getch();menu();}elseanswer = number1/number2;return(answer);}double oopcalc::calcmult(double number1,double number2){answer = number1*number2;return(answer);}void oopcalc::calcfartocel(){cout << "The Farenheit to Celsius Function\n"; cout << "Enter a tempature in Farenheit: ";cin >> number1;answer =((number1 - 32) * 5) / 9;cout << "The tempature in Celsius is " << answer << endl;cout << "Press any key to continue\n";getch();menu();}void oopcalc::calcceltofar(){cout << "The Celsius to Farenheit Function\n"; cout << "Enter a tempature in Celsius: ";cin >> number1;answer =number1 * 9 / 5 + 32;cout << "The tempature in Farenheit is " << answer << endl;cout << "Press any key to continue\n";getch();menu();}void oopcalc::calcsroot(){cout << "The Square Root Function\n";cout << "First number: ";cin >> number1;if(number1<0){cout<<"your enter is incorrect,please enter a new number\n";getch();menu();}elseanswer = sqrt(number1);cout << "The square root of " << number1 << " is "<< answer << endl;cout << "Press any key to continue\n";getch();menu();}void oopcalc::exitprog(){exit(-1);}void oopcalc::menu(){oopcalc a;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();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();case '6': a.exitprog();break;default : a.badinput();}}void oopcalc::caculate(){oopcalc a;cout<<"The Multifunction(混合四则运算)\n";for(int n=1;;n++){cout<<"Number"<<n<<"(Enter 0 to end entering):";cin>>num[n]\if(num[n]==0){\c out<<"Press any key to continue\n";g etch();m enu();}switch(k){case 1:if(n==1){answer=num[1];break;}else {answer=a.calcadd(answer,num[n]);cout<<"The answer is "<<answer<<endl;break;}case 2:if(n==1){answer=num[1];break;}else {answer=a.calcsub(answer,num[n]);cout<<"The answer is "<<answer<<endl;break;}case 3:if(n==1){answer=num[1];break;}else {answer=a.calcmult(answer,num[n]);cout<<"The answer is "<<answer<<endl;break;} case 4:if(n==1){answer=num[1];break;}else {answer=a.calcdiv(answer,num[n]);cout<<"The answer is "<<answer<<endl;break;} }label1:cout<<"Please choose the function you want(+ 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<<"Bad input!\n";goto label1;}}}void oopcalc::test(){cout<<"The Test Function\n";int s;float p;s=rand()%4+1;srand ( time (NULL) );number1=rand()%MAX+1; n umber2=rand()%MAX+1;switch(s){case 1:cout<<number1<<'+'<<number2<<'=';answer=calcadd(number1,number2);b reak;case 2: c out<<number1<<'-'<<number2<<'=';answer=calcsub(number1,number2);b reak;case 3: c out<<number1<<'/'<<number2<<'=';a nswer=calcdiv(number1,number2);b reak;case 4: c out<<number1<<'*'<<number2<<'=';a nswer=calcmult(number1,number2);b reak;}cin>>p;if(answer==p){cout<<"Correct!You are very clever!\n";}else{cout<<"NO!The correct answer is "<<answer<<",You should have more practise.\n";} cout<<"Press any key to continue\n";cout<<flush;getch();menu();}void oopcalc::badinput(){cout << "BAD INPUT!\n";cout << "Press any key to continue\n";getch();menu();}void main(){oopcalc s;s.menu();}5.运行界面进行正弦运算进行混合运算求平方根运算,根据用户输入与系统提示,运行过程依次如下:进行华氏温度和摄氏度间的转化,运行如下:进行测试选择6键,回到菜单界面,运行如下:6.心得体会这次课程设计让我获益匪浅,我懂得了,做出一个优秀的程序,不是一蹴而就的事情,更不是马马虎虎随随便便就能成功的。