工学VC++计算器课程设计报告_第1页
工学VC++计算器课程设计报告_第2页
工学VC++计算器课程设计报告_第3页
工学VC++计算器课程设计报告_第4页
工学VC++计算器课程设计报告_第5页
已阅读5页,还剩20页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、vc+计算器课程设计报告一、 作品名称:计算器二、本次课程设计的目的 在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对语法及语义分析原理的理解,并 实现对命令语句的灵活应用。三、 主要功能实现计算器的功能。用户根据程序提示,输入数字或字符,选择要进行的运算,可以进行正弦、余弦、正切、开方、对数、加、减、乘、除、华氏温度与摄氏度之间的换算以及平方根的运算。四、 具体内容释解1.初始运行界面如下: 2.进行正弦运算3.进行混合运算4.求平方根运算,根据用户输入与系统提示,运行过程依次如下:5.进行华氏温度和摄氏度间的转化,运行如下:6.进行测试7.选择6键,回到菜单界面,运行如下:五

2、、 备注:1. #include为编译预处理命令,其作用是将源程序文件中的预处理命令进行处理,生成一个中间文件,编译系统再对此文件进行编译并生成目标代码,最后生成的代码中并不包含预处理命令。2.#define max 100 为宏定义,以后程序中再出现100,都用max代替。3. exit()为库函数,其功能是终止程序运行,将流程控制返回给操作系统。exit(表达式)通常把表达式的值作为终止程序的原因。用0表示正常退出,其他整数值作为异常处理。使用它时,要包含头文件stdlib.h。4. void test();测试函数。测试程序是由计算机出题、用户运算,计算机判断对错并给出分数,计算机用随机

3、数发生器给出两个操作数。六、附录(源程序)计算器(calculator)-源代码及关键源代码注解如下:#include #include/用以产生随机数#define max 100/宏定义#include #include #include #include double number1,number2,answer,number3,num10000;/定义全局变量int n,k=1;char input,val;/定义输入的运算符号class oopcalc private:double x,y;/私有变量x和y double fartocel(double number1);/华氏温度转

4、化为摄氏温度的函数声明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);/加法运算

5、的函数声明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 t

6、est();/测试函数的函数声明void badinput(); ;void oopcalc:calcsin()/类体外函数,定义正弦函数coutthe sin functionn;coutnumber1;answer=sin(number1);coutthe sin of number1 is answerendl;coutpress any key to continuen;getch();menu();void oopcalc:calccos()/类体外函数,定义余弦函数coutthe cos functionn;coutnumber1;answer=cos(number1);coutt

7、he cos of number1 is answerendl;coutpress any key to continuen;getch();menu();void oopcalc:calctan()/类体外函数,定义正切函数coutthe tan functionn;coutnumber1;answer=tan(number1);coutthe tan of number1 is answerendl;coutpress any key to continuen;getch();menu();void oopcalc:calcsqr()/求平方的函数coutthe sqr functionn

8、;coutnumber1;answer=(number1*number1);coutthe sqr of number1 is answerendl;coutpress any key to continuen;getch();menu();void oopcalc:calclog()/对数函数coutthe log functionn;coutnumber1;if(number1=0) coutbad input!n;coutpress any key to continuen;getch();menu();elseanswer=log(number1);coutthe log of num

9、ber1 is answerendl;coutpress any key to continuen;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,dou

10、ble 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 functionn;cout number1;answer =(n

11、umber1 - 32) * 5) / 9;cout the tempature in celsius is answer endl;cout press any key to continuen;getch();menu();void oopcalc:calcceltofar()/摄氏温度转化为华氏温度cout the celsius to farenheit functionn;cout number1;answer =number1 * 9 / 5 + 32;cout the tempature in farenheit is answer endl;cout press any key

12、 to continuen;getch();menu();void oopcalc:calcsroot()/求平方根的函数cout the square root functionn;cout number1;if(number10)/排除负数开平方根coutyour enter is incorrect,please enter a new numbern;getch();menu();elseanswer = sqrt(number1);cout the square root of number1 is answer endl;cout press any key to continue

13、n;getch();menu();void oopcalc:exitprog()exit(-1);void oopcalc:menu()oopcalc a;system(cls); /执行系统命令: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进行求

14、平方根运算n;cout 5: 选择5进行测试n;cout 6:选择6退出运算n; cout 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:

15、a.calcceltofar();break;case 4:a.calcsroot();break;case 5: a.test();break;case 6:a.exitprog();break;default :a.badinput();void oopcalc:caculate() oopcalc a;coutthe multifunction(混合四则运算)n;for(int n=1;n+)coutnumbernnumn;/输入要运算的数if(numn=0)/遇到0为止coutpress any key to continuen;getch();menu();switch(k)case

16、 1:if(n=1)answer=num1;break;/如果第一个数则不进行运算else answer=a.calcadd(answer,numn);/如果不是第一个数进行运算 coutthe answer is answerendl;break;case 2:if(n=1)answer=num1;break;/如果第一个数则不进行运算else answer=a.calcsub(answer,numn);/如果不是第一个数进行运算coutthe answer is answerendl;break;case 3:if(n=1)answer=num1;break;/如果第一个数则不进行运算el

17、se answer=a.calcmult(answer,numn);/如果不是第一个数进行运算coutthe answer is answerendl;break;case 4:if(n=1)answer=num1;break;/如果第一个数则不进行运算else answer=a.calcdiv(answer,numn);/如果不是第一个数进行运算coutthe answer is answerendl;break;label1:coutval;switch(val)case+:k=1;break;case-:k=2;break;case*:k=3;break;case/:k=4;break;

18、default:coutbad input!n;goto label1;void oopcalc:test()/测试函数coutthe test functionn;int s;float p;s=rand()%4+1;/随机给出题目的+或-或*或/srand ( time (null) );number1=rand()%max+1;/在1100之间随机给出数字number2=rand()%max+1;switch(s)case 1:coutnumber1+number2=;answer=calcadd(number1,number2);break;case 2:coutnumber1-num

19、ber2=;answer=calcsub(number1,number2);break;case 3:coutnumber1/number2=;answer=calcdiv(number1,number2);break;case 4:coutnumber1*number2p;if(answer=p)coutcorrect!you are very clever!n;elsecoutno!the correct answer is answer,you should have more practise.n;coutpress any key to continuen;coutflush;getch();menu();void oopcalc:badinput()cout bad input!n;cout press any key to continuen;getch();menu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论