课程设计报告
中继续寻找,发现在menu函数中我用了一个清屏的代码,把它删掉后继续调试,这次,运行起来后不再出现问题了,我进行的所有操作都保留下来了,没有被删除。原来,每次调用menu函数时,都会执行一次清屏,用户上次的运算结果会被删除并显示新的菜单。
(4).在选择菜单项时,会出现问题,例如:输入1,选择正弦函数操作,但是输入12,却变成了选择正弦函数操作并且对2进行正弦计算,经过考虑并且尝试我发现只要将选择输入由字符型改成整形就可以了。
5. 结果分析
这次的课设,虽然老师早早的就把题目给我了,但我因为书本还没看完,就迟迟没有动手去做。从开始准备做这个题到完成也就是几天的事,所以很多地方写的不好,甚至有些地方还不是很懂。在多次调试后,有些错误依然存在,而且我想不出办法解决,实在是惭愧。现在,在这里也只能说说它的不足之处了。
首先是类的问题,整个程序中,我只用了一个类,几乎所有的函数都是这个类的成员,让人感觉很臃肿,我也试图去优化它,但最终也没能想出办法来。
容易在基础的东西上出错,经常忘记写“;”,或者同一个函数不同地方调用时会打错名字,这些都是不应该的,必须改掉。
函数参数设定不够完美,整个程序中对指针的运用比较少。对于指针的巧妙运用把握得不够。
一开始挺顺利,但在如何实现四则混合运算时,我茫然了。我苦想一整天都没能想出如何去做。于是,我去百度了一下,还好,让我找到了。可是,问题又来了,在实现四则混合运算时运用了栈和二叉树的知识,这让我很头疼,这两样东西我压根不懂。跑到图书馆借了相关的书看,还是不能完全理解,只能凑合着用了。
在错误提示方面我还是很不足,经常忘记,都是调试出现问题了才会想到。
6.总结
通过课程设计,我感觉到平时学的时候对书上的程序是看懂了,可是真正运用这些知识的时候还是有点力不从心,不能很好的了解并运用到自己的程序之中。通过这次的课程设计我明白了学习程序设计语言必须要勤做实验,通过实验总结经验。平时遇到的一些小问题一定要重视,越是基础的知识越要理解透彻。比如指针与数组方面的知识,一旦没有弄清楚,在设计程序时就会吃亏。
7
课程设计报告
这次的课程设计中,我遇到了很多的问题,有的通过思考或查看书本解决了,有的还留在脑子里,只有通过孜孜不倦的求索我们才会有进步,不懂得思考就不能真正的掌握一门知识。
像我做这个程序的时候,就感觉自己对栈的知识还很欠缺,有的地方不是很明白,多亏了上网查找的这方面知识和一些源程序才帮助我完成了这个程序的设计。可是一直到现在,对于混合运算中用到的栈和二叉树我只是有些理解,真正运用还不行。之前我学的书上没有这些内容,虽然我去图书馆看了有关这些内容的书,但毕竟能力有限,短时间内无法理解的那么好,运用起来就更加捉襟见肘了。今后,我还是会去看这方面的书的,把没弄懂的东西弄懂。
最后,还有一点不得不说,这个程序中,我只定义了一个类,所有的函数都包含在里面,感觉很臃肿,想要优化,可最终也没能想出办法,真是一大遗憾。
8
课程设计报告
附录:源程序清单
#include
#include
#include
double number1,number2,answer; int input; class count { public: double cadd(double number1,double number2);//定义加法运算 double csub(double number1,double number2);//定义减法运算 double cdiv(double number1,double number2);//定义除法运算 double cmult(double number1,double number2);//定义乘法运算 void csqure();//定义平方函数 void squreroot();//定义求平方根运算 void ccos();//定义余弦函数 void ctan();//定义正切函数 void csin();//定义正弦函数 void clog();//定义对数函数 void fatoce();//定义华氏温度转化为摄氏温度 void cetofa();//定义摄氏温度转化为华氏温度 //定义混合运算函数 void mixed(); void calcu(); double calculate(char *f); void cexit();//定义退出函数 void menu();//定义主菜单函数 void badinput();//定义出错提示函数 void test();//定义测试函数 };
double count::cadd(double number1,double number2)//加法运算 { answer=number1+number2; return(answer); }
double count::csub(double number1,double number2)//减法运算 { answer = number1-number2; return(answer);
9
课程设计报告
}
double count::cdiv(double number1,double number2)//除法运算 { if(number2==0)//排除除数为零的情况 { cout<<\除数不可为0!\\n\ exit(0); } else answer = number1/number2; return(answer); }
double count::cmult(double number1,double number2)//乘法运算 { answer = number1*number2; return(answer); }
void count::csqure()//求平方的函数 { cout<<\求平方\\n\ cout<<\请输入一个数:\ cin>>number1; answer=(number1*number1); cout< void count::squreroot()//求平方根的函数 { cout << \求平方根\\n\ cout << \请输入一个非负数: \ cin >> number1; if(number1<0)//排除负数开平方根 { cout<<\输入错误!不可为负数!\\n\ cin.ignore(); menu(); } else answer = sqrt(number1); cout<< number1 << \的平方根是\ cin.ignore(); menu(); } 10 课程设计报告 void count::csin()//正弦函数 { cout<<\求正弦\\n\ cout<<\请输入一个数:\ cin>>number1; answer=sin(number1); cout< void count::ccos()//余弦函数 { cout<<\求余弦\\n\ cout<<\请输入一个数:\ cin>>number1; answer=cos(number1); cout< void count::ctan()//正切函数 { cout<<\求正切\\n\ cout<<\请输入一个数:\ cin>>number1; answer=tan(number1); cout< void count::clog()//对数函数 { cout<<\求对数\\n\ cout<<\请输入一个正数:\ cin>>number1; if(number1<=0) { cout<<\输入错误!不可为负数!\\n\ cin.ignore(); menu(); } else answer=log(number1); cout< 11