您好,欢迎来到步遥情感网。
搜索
您的当前位置:首页计算器

计算器

来源:步遥情感网
南京理工大学

VC++课程设计实验报告

姓名 刘书源 学号 0616150128 班级 06161501 任课教师 刘永 时间 9月 教师指定题目 3-1计算器 评定难易级别 B 实验报告成绩 1.实验内容:

1.1 程序功能介绍

实现计算器的功能。用户根据程序的提示,输入数字,选择要进行的计算,可以进行加、减、乘、除运算,简单的四则运算及其测试,开平方,华氏温度与摄氏温度之间的相互转换。

1.2 程序设计要求

(1) 完善计算器程序,改为可对实数操作。

(2) 完善程序,改为多个操作数基本四则运算,遇到0为止。

(3) 增加函数,完成四则混合运算,注意算法要考虑运算符的优先级,增加相应的主菜单选

项。

(4) 添加语句,使四则运算具有测试功能,即计算机能够自动出题,并要求用户计算,同时

南京理工大学

计算机判断用户的计算的对错并打分,要求十题为一个单元,加减运算时最高为两位数运算,乘法为两位数乘一位数,除法是两位数除一位数,且要求没有余数。

1.3本人承担主要任务

本人在此次C++程序设计工作中与芮奕欣同学一组,共同完成了此次课程设计。在实验中,我们共同合作完成了两个主要的函数功能:四则运算的实现和测试。我自己主要负责了程序的后期调试工作,发现并改正程序中出现的错误,使程序顺利的运行。

本人添加的主要任务如下:

1. 四则运算功能的实现(void oopcalc) 2. 四则运算的测试(void calctest) 3. 程序的后期调试。

2. 源程序结构流程框图与说明(含新增子函数的结构框图)

南京理工大学

入开程始序进进入主菜单 选择所需要的运算界面 计算界面 四则运算的测试界面 简单的+ — * / √ 运算 复杂的整数四则运算 选择测试的难易 输入选择 输入运算表达式 根据提示输入所给出算式的结果 输入需要运算的数字 进行运算 输出结果 进行判断输出判断结果并记分 进行运算输出结果 做完十题后输出总得分 是否继续 执行程序 YES NO 结束退出

南京理工大学

3. 程序运行结果界面

图1,程序主界面,选择功能

图2,简单四则运算的测试功能 图3,复杂四则运算的实现

南京理工大学

4.关键源代码及注释

1. 四则运算功能的实现(void oopcalc)

void oopcalc :: calcmixed() { pos=0;

cout<<\"请输入整数表达式\"<>shizi; answer2=mixed(); if(answer2!=0)

cout<cout<<\"Press any key to continue\\n\" ; getch(); menu(); }

以上是四则运算的共有成员函数代码。 int oopcalc::mixed() {

int rtn=mul();

while(shizi[pos]=='+'||shizi[pos]=='-') {

int op=shizi[pos++];

int opr2=mul(); if(op=='+')

rtn+=opr2;

南京理工大学

else

rtn-=opr2; }

return rtn; }

int oopcalc::mul() {

int rtn=number();

while(shizi[pos]=='*'||shizi[pos]=='/') {

int op=shizi[pos++];

int opr2=number(); if(op=='*')

rtn*=opr2;

else

rtn/=opr2; }

return rtn; }

int oopcalc::number() { int rtn;

if(shizi[pos]=='(') {

pos++;

南京理工大学

rtn=mixed();

pos++; return rtn; }

rtn=atoi(shizi+pos); while(isdigit(shizi[pos]))

pos++;

return rtn; }

以上是实现四则运算功能的函数代码

以上是整数四则运算的全部程序,整数四则运算首先是通过调用公有成员函数void calcmixed()实现表达式的输入及储存,然后函数void calcmixed()再调用私有成员函数void mixed()以实现对表达式的运算,其原理是先找到()运算符再依次找* / + -运算符,按照他们的优先级进行运算。

2 四则运算的测试 (void calctest)

void oopcalc :: calctest() {

cout<<\"简单四则运算的测试\\n:\" ;

cout<<\"请选择题目的难易程度:易-请按1,难-请按2\\n\" ; int n ; cin>>n ; switch(n) {

case 1 : {

int i,a,b,c,d,e,f,h,sum=0 ;

南京理工大学

int m ;

for(i=0;i<10;i++) {

a=rand()%10 ; b=rand()%10 ;

c=rand()%10 ; d=rand()%10 ;

m=rand()%3 ; switch((int)m) {

case 0 :

cout<cout<cout<e=(a*10+b)*d;

cout<以上是四则运算的测试中易的部分(case1),在易的部分中计算机出的是简单的两个数的加,减,乘,除的运算。

case2则是四则运算的测试中难的部分,在这部分中计算机出的是含有两个运算符及括号的混合四则运算,因为case2与case的程序大致相似,故略去。

在以上两个程序中我们调用了头文件#include与#include并分别运用了他们的库函数rand()与isdigit(),以实现取随机数及{}的功能。

南京理工大学

5. 此次程序设计过程中的感想感想

此次程序设计的过程可以说对我来说是一次相当的锻炼。我和芮奕欣在确定程序设计方法后,便进入输入工作。可在连续几小时的输入结束后,运行时发现了几十个错误。我主要负责程序的调试及改错,这是我的责任。于是我在机房呆了整整一天,才将程序改好。这个过程是痛苦的,当错误减少到十几个时,突然一次改动又多出了几十个错误,那时真的快要崩溃了,真想停下来,但最后还是咬牙坚持住了,两眼紧紧盯着屏幕,不敢放松一毫,最后结束时,我长长地出了一口气,那一刻,感觉付出再多也值得了。所以,这次程序设计不仅仅是学到了知识,还学到了许多课堂上得不到的东西。在整个过程中,我和芮奕欣配合默契,虽然在过程中遇到了难题,但最后我们还是成功了。当最后看到程序顺利运行时,我们都十分高兴。

这次经历是艰苦的,可也是快乐的。我们收获了喜悦,也增强了我们的自信。感谢此次程序设计!

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- obuygou.com 版权所有 赣ICP备2024042798号-5

违法及侵权请联系:TEL:199 18 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务