资源描述:
《0616150104 黄一 计算器》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、VC++课程设计报告姓名:黄一班级:06161501学号:0616150104任课教师:刘永时间:2007-9课程题目:计算器本次课程设计由本人一人独立完成,下面是有关本程序的一些说明。一、功能简介实现计算器的功能。用户根据程序的提示,输入数字,选择要进行的计算,可以进行加、减、乘、除运算,简单的四则混合运算及其具有两个操作数的简单测试。二、课程设计要求(1)完善计算器程序,改为可对实数操作.(2)完善程序.该为多个操作数基本四则运算,遇到0为止.(3)增加函数.完成四则混合运算,注意算法要考虑运算符的优先级,对应增加主菜单选项.(4)填加语句
2、,使四则运算具有测试功能,即计算机能够自动出题,并要求用户计算,同时计算机判断用户的对与错并打分,要求十题为一单元,加减运算时最高为两位数运算,乘除为两位数乘一位数,除法是两位数或三位数除一位数,且要求没有余数.三、程序设计思想(1)类的简化原程序的类的定义十分罗嗦,本程序比较简单,可以用更简便的方法实现.将操作数改为类中的成员数据,可以直接用一个成员函数去实现一种运算方式.(2)操作数和运算符的输入问题程序中涉及大量的操作数的输入,如果用cin流输入而不加以处理,一旦输入出错,比如输入字母,则程序会出现非法循环,不能正常运行.要避免这一情况必
3、须对输入cin流进行处理,使之接收非法输入时,能够自动察觉并提示重新输入.同样,也可以在程序中对输入的运算符部分进行判断,当输入的是非法的运算符时给予提示并重新接受.(3)新增混合运算算法即添加括号的混合运算。(4)测试程序的编写测试程序是由计算机出10题,用户计算,每题10分,满分100。计算机判断对错并给出分数。计算机用随机熟发生器给出运算符和两个操作数,,除法要求没有余数,在产生随机数时先使两个随机数做乘法,然后将结果和一个随机数输出作为触发的两个操作数,这样就可以保证除法操作没有余数。一、部分关键程序代码(1)四则混合运算(即函数voi
4、dcalcmixed(),voidjiajian(),voidchengchu(),voidkuohao())voidoopcalc::calcmixed(){pos=0;cout<<"请输入整数表达式"<>exp;ans=jiajian();if(ans!=0)cout<5、
6、exp[pos]
7、=='-'){intop=exp[pos++];intopr2=chengchu();if(op=='+')rtn+=opr2;elsertn-=opr2;}returnrtn;}intoopcalc::chengchu(){intrtn=kuohao();while(exp[pos]=='*'
8、
9、exp[pos]=='/'){intop=exp[pos++];intopr2=kuohao();if(op=='*')rtn*=opr2;elsertn/=opr2;}returnrtn;}intoopcalc::kuohao(){intrtn;i
10、f(exp[pos]=='('){pos++;rtn=jiajian();pos++;returnrtn;}rtn=atoi(exp+pos);while(isdigit(exp[pos]))pos++;returnrtn;}(2)具有两个操作数的测试四则混合运算(即函数voidcalcceshi())voidoopcalc::calcceshi(){cout<<"简单四则运算的测试:";inti,a,b,c,e,g,h,m,sum=0;for(i=0;i<10;i++){a=rand()%100;//应用的函数rand()产生所需的随机数
11、b=rand()%100;c=rand()%10;g=a*c;//先使g=a*c,然后在case'3'中g/c以获得没有余数的除法m=rand()%4;switch((int)m){case0:cout<>h;if(h==e){cout<<"正确,得
12、十分!";sum+=10;}elsecout<<"不正确,不得分!";}cout<<"十题中,答对:"<