工学VC++计算器课程设计报告.docx

上传人:b****5 文档编号:15169530 上传时间:2023-07-02 格式:DOCX 页数:20 大小:228.75KB
下载 相关 举报
工学VC++计算器课程设计报告.docx_第1页
第1页 / 共20页
工学VC++计算器课程设计报告.docx_第2页
第2页 / 共20页
工学VC++计算器课程设计报告.docx_第3页
第3页 / 共20页
工学VC++计算器课程设计报告.docx_第4页
第4页 / 共20页
工学VC++计算器课程设计报告.docx_第5页
第5页 / 共20页
工学VC++计算器课程设计报告.docx_第6页
第6页 / 共20页
工学VC++计算器课程设计报告.docx_第7页
第7页 / 共20页
工学VC++计算器课程设计报告.docx_第8页
第8页 / 共20页
工学VC++计算器课程设计报告.docx_第9页
第9页 / 共20页
工学VC++计算器课程设计报告.docx_第10页
第10页 / 共20页
工学VC++计算器课程设计报告.docx_第11页
第11页 / 共20页
工学VC++计算器课程设计报告.docx_第12页
第12页 / 共20页
工学VC++计算器课程设计报告.docx_第13页
第13页 / 共20页
工学VC++计算器课程设计报告.docx_第14页
第14页 / 共20页
工学VC++计算器课程设计报告.docx_第15页
第15页 / 共20页
工学VC++计算器课程设计报告.docx_第16页
第16页 / 共20页
工学VC++计算器课程设计报告.docx_第17页
第17页 / 共20页
工学VC++计算器课程设计报告.docx_第18页
第18页 / 共20页
工学VC++计算器课程设计报告.docx_第19页
第19页 / 共20页
工学VC++计算器课程设计报告.docx_第20页
第20页 / 共20页
亲,该文档总共20页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

工学VC++计算器课程设计报告.docx

《工学VC++计算器课程设计报告.docx》由会员分享,可在线阅读,更多相关《工学VC++计算器课程设计报告.docx(20页珍藏版)》请在冰点文库上搜索。

工学VC++计算器课程设计报告.docx

工学VC++计算器课程设计报告

VC++计算器课程设计报告

 

一、作品名称:

计算器

二、本次课程设计的目的

在程序设计中,通过设计、编制、调试一个模拟计算器的程序,加深对语法及语义分析原理的理解,并实现对命令语句的灵活应用。

三、主要功能

实现计算器的功能。

用户根据程序提示,输入数字或字符,选择要进行的运算,可以进行正弦、余弦、正切、开方、对数、加、减、乘、除、华氏温度与摄氏度之间的换算以及平方根的运算。

四、具体内容释解

1.初始运行界面如下:

2.进行正弦运算

3.进行混合运算

4.求平方根运算,根据用户输入与系统提示,运行过程依次如下:

5.进行华氏温度和摄氏度间的转化,运行如下:

6.进行测试

7.选择6键,回到菜单界面,运行如下:

五、备注:

1.#include为编译预处理命令,其作用是将源程序文件中的预处理命令进行处理,生成一个中间文件,编译系统再对此文件进行编译并生成目标代码,最后生成的代码中并不包含预处理命令。

2.#defineMAX100为宏定义,以后程序中再出现100,都用MAX代替。

3.exit()为库函数,其功能是终止程序运行,将流程控制返回给操作系统。

exit(表达式)通常把表达式的值作为终止程序的原因。

用0表示正常退出,其他整数值作为异常处理。

使用它时,要包含头文件stdlib.h。

4.voidtest();测试函数。

测试程序是由计算机出题、用户运算,计算机判断对错并给出分数,计算机用随机数发生器给出两个操作数。

六、附录(源程序)

计算器(calculator)--源代码及关键源代码注解如下:

#include

#include//用以产生随机数

#defineMAX100//宏定义

#include

#include

#include

#include

doublenumber1,number2,answer,number3,num[10000];//定义全局变量

intn,k=1;

charinput,val;//定义输入的运算符号

classoopcalc{

private:

doublex,y;//私有变量X和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");//执行系统命令:

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){//遇到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;//在1~100之间随机给出数字

number2=rand()%MAX+1;

switch(s)

{

case1:

cout<

answer=calcadd(number1,number2);

break;

case2:

cout<

answer=calcsub(number1,number2);

break;

case3:

cout<

相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2