java二进制数的四则计算
输入两个二进制正整数(两个非“0”即“1”的字符串),而后输入一个运算符(“+”、“-”、“*”、“”),按int型整数运算方式求出这两个二进制整数的运算结果并输出。
提示:设计将2进制数化为10进制数、以及将10进制数化为2进制数的函数“int Chg2To10(char a[]);”和“ void Chg10To2(int n, char result[]);”,而后在主函数中通过调用Chg2To10先将两个输入串转化为10进制数,而后对这两个10进制数进行指定运算,再将运算结果通过Chg10To2转化为2进制数(结果在result)而后输出。
思考:按照上述处理方式也能对两个罗马数据进行相应的四则运算。
23.2概要设计:
本程设计思路: 要在界面上实现二进制的四则运算还是有点小麻烦的。开是的时候想的是将四则运算的符号当成字符串来读入,然后转换成对应的码值,但是在实现的时候老是会被当成错误的输入格式而被丢弃,很无奈,最好只好使用按钮来实现。但是却是有写麻烦的,应为这样就实现时我对每个计算都重新进行了一次读入计算等步骤,写起来比较的冗余。对于,转换成二进制和转化成十进制用的是两个定义的类来调用实现。算法倒不是太难。
23.3 详细设计与编码:见上传程序。
23.4 调试分析:
在二进制转化成十进制的时候乘上2的方数时,写成了总长减i的值,没有考虑到自己在写循环的时候是i的值是从0开是算起的。结果是老是出错,调试了不短的时间,才发现错误的。再有就是再画图的时候repaint忘了调用,以至于输入计算的值当用system.out.print输入调试的时候是正确的,但就是不能在画布上显示出来,很是郁闷。
程序执行的结果:
初始:加:减:乘:除: 错误检测:
什么都没有输入:
输入非数字:
输入负数:
23.5 用户使用说明:
直接在所显示的文本框上输入数值,如果输入有错误的话,会在下面的状态栏上提示。输入完后点击回车就行,计算后,结果会显示在画布上。
23.6 设计心得:原文请找腾讯752018766辣,文-论'文.网http://www.751com.cn
写实验的时候细心是相当的重要的。在写这题的时候我是犯了不少的失误。当然还是基本功不扎实的原因吧。感觉写程序思想还是很重要的,如果是遇上了难以解决的东西,并且自己目前的水平解决不了的话,我觉得最好还是用自己比较在行的方法来实现会比较好。像是这题,我就不知道要怎么样才能把运算符号读入从而来进行计算,费了不少的时间,想了很久还是不得要领,最后还是没办就使用了按钮来实现了。
设计总结
转眼软件课程设计就已经结束了,从刚开始的懵懵懂懂到现在,不敢说程序能写得很好,但是至少不会像刚开始那样拿到题目就犯憷,不会是一点思路都没有了。
感觉这次的课程设计对于我们来所是相当有帮助的,只要是有自己认真去做程序的,肯定是能获益匪浅的。以前总是觉得自己学的东西是没有多大的用处。到这次做软件课程设计的时候才猛然发现自己以前学的东西是那么的不扎实。不得不重新翻起了以前的c语言书、数据结构。并且在这么长的时间内题目越做越多,将编程的知识是越滚越熟练,颇有温故而知新的味道。而题目越做越难,对于自己的编程能力也是有着很大程度上的帮助。而由于之前我们学的是c语言,所以为了做这次的软件课程设计,可以说是下了不少的功夫的,不少同学都是到图书馆借了一本又一本的有关与c++的书来看。我选用的是java来编写的,对于我来说,这次的实验是帮我更深一步的了解了java的许多方面,同时是也认识到其实语言都是融会贯通的,有多c++的功能,java上也是可以实现的,就是方法步一样而已。就像是c++中的模板功能在java中就是没有的,但是在写的时候却是可以用函数的调用来实现。而对于指针的功能java中也是能够实现的,就是方法步一样而已,只要掌握了方法,其实是没有太多的差别的。
程序的调试从侧面反应了自己在编写程序的时候存在着许多的毛病。像是1、在写java的applet程序的时候,用画布来显示时repaint的调用是必须的,要不然就没有办法把下一次要显示的结果显示出来,而我在写的时候老是会粗心大意忘记加上,然后调试半天。2、还有一点就深刻认识到了写实验注解的必要性。因为在写实验报告的时候由于是要写出实验时的思想,然后经常就是看着以前写出来的题目不明其所以然,还得细心的一点点看,很是浪费时间,自己看尚且是如此,如果是有合作项目是,看到别人没有注解的程序,想必是相当的郁闷。3、再者就是对于java中栈的实现还是不太会,java中默认的栈是不太会使用,而自己写的栈,则是老有问题。用c++写的时候,也是老犯错。
虽然说自己的编程实践等的能力在这次的课程中是有很大的提高,但还是有着许多的不足之处。在调试的时候就遇到了许多是自己到现在都没有办法解决的。像是在java的检错方面,感觉自己还是有很长的路要走。要想让程序更加的健壮,错误的检查是必须的。而我在写程序的时候很多的检错方法都是不知道的,基本都是就用一种方法,不是很好,因为有时有些正确的输入也会被视为错误而被丢弃。还有就是对与java的运用还是不太熟悉,像是组件,可视化等方面自己还基本就算是只知道了一些皮毛,以后的道路还是源远而流长。
总的来说,这次的课程设计对我来说是有着相当大的帮助的,让自己的编程能力是有了不少的提高。并且也对于自己将来的编程习惯有着不小的影响,同时增强了对编程的认识,提高了编程的思想。1837