- 1、本文档共5页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
0616150104 黄一 计算器
VC++课程设计报告
姓名:黄一 班级 学号:0616150104
任课教师:刘永 时间:2007-9 课程题目:计算器
本次课程设计由本人一人独立完成,下面是有关本程序的一些说明。
功能简介
实现计算器的功能。用户根据程序的提示,输入数字,选择要进行的计算,可以进行加、减、乘、除运算,简单的四则混合运算及其具有两个操作数的简单测试。
课程设计要求
(1)完善计算器程序,改为可对实数操作.
(2)完善程序.该为多个操作数基本四则运算,遇到0为止.
(3)增加函数.完成四则混合运算,注意算法要考虑运算符的优先级,对应增加主菜单选项.
(4)填加语句,使四则运算具有测试功能,即计算机能够自动出题,并要求用户计算,同时计算机判断用户的对与错并打分,要求十题为一单元,加减运算时最高为两位数运算,乘除为两位数乘一位数,除法是两位数或三位数除一位数,且要求没有余数.
程序设计思想
(1) 类的简化
原程序的类的定义十分罗嗦,本程序比较简单,可以用更简便的方法实现.将操作数改为类中的成员数据,可以直接用一个成员函数去实现一种运算方式.
(2) 操作数和运算符的输入问题
程序中涉及大量的操作数的输入,如果用cin流输入而不加以处理,一旦输入出错,比如输入字母,则程序会出现非法循环,不能正常运行.要避免这一情况必须对输入cin流进行处理,使之接收非法输入时,能够自动察觉并提示重新输入.同样,也可以在程序中对输入的运算符部分进行判断,当输入的是非法的运算符时给予提示并重新接受.
(3) 新增混合运算算法
即添加括号的混合运算。
(4) 测试程序的编写
测试程序是由计算机出10题,用户计算,每题10分,满分100。计算机判断对错并给出分数。计算机用随机熟发生器给出运算符和两个操作数,,除法要求没有余数,在产生随机数时先使两个随机数做乘法,然后将结果和一个随机数输出作为触发的两个操作数,这样就可以保证除法操作没有余数。
部分关键程序代码
(1)四则混合运算(即函数 void calcmixed ( ),void jiajian( ), void chengchu( ), void kuohao( ))
void oopcalc :: calcmixed()
{
pos=0;
cout请输入整数表达式endl;
cinexp;
ans=jiajian();
if(ans!=0)
coutansendl;
coutPress any key to continue\n ;
getch();
menu();
}
int oopcalc::jiajian()
{
int rtn=chengchu();
while(exp[pos]==+||exp[pos]==-)
{
int op=exp[pos++];
int opr2=chengchu();
if(op==+)
rtn+=opr2;
else
rtn-=opr2;
}
return rtn;
}
int oopcalc::chengchu()
{
int rtn=kuohao();
while(exp[pos]==*||exp[pos]==/)
{
int op=exp[pos++];
int opr2=kuohao();
if(op==*)
rtn*=opr2;
else
rtn/=opr2;
}
return rtn;
}
int oopcalc::kuohao()
{
int rtn;
if(exp[pos]==()
{
pos++;
rtn=jiajian();
pos++;
return rtn;
}
rtn=atoi(exp+pos);
while(isdigit(exp[pos]))
pos++;
return rtn;
}
(2)具有两个操作数的测试四则混合运算(即函数void calcceshi ( ))
void oopcalc :: calcceshi(){
cout简单四则运算的测试\n: ;
int i,a,b,c,e,g,h,m,sum=0 ;
for(i=0;i10;i++)
{
a=rand()%100 ; //应用的函数rand()产生所需的随机数
b=rand()%100 ;
文档评论(0)