c语言计算器程序设计,c语言计算器代码程序设计报告.docx

c语言计算器代码程序设计报告

《C语言课程设计》报告  设计题目:简单计算器设计  学院名称:电子与信息工程学院专业:计算机科学与技术班级:计科姓名:学号指导教师:  定稿日期:XX-5-28  一、设计题目  简单计算器设计  二、设计要求  在功能上功能尽量模拟windows操作系统中的计算器,系统界面不做强制要  求。  三、设计目的  ①通过本项课程设计,可以培养独立思考、综合运用所学有关相应知识的能  力,能更好的巩固《C语言程序设计》课程学习的内容,掌握工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了c语言的好处和其可用性!同时增加了同学之间的团队合作精神!更加也体会到以后在工作中团队合作的重要性和必要性!  ②通过C语言课程设计,使学生了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。为后续各门计算机课程的学习和毕业设计打下坚实基础。  四、设计思想及过程  ①由于需要使功能尽量模仿Windows下的计算器,而很多功能要以图形界面  实现,故用BorlandC++Builder编写。所以用的是面向对象程序设计。但因为这是C语言的课程设计,所以除了面向对象的使用以外,所有语法都是按照C语言的格式编写。  ②采用工程模式,文件包括(运算主函数头文件,包括各运算符的操作以及其辅助函数)、(窗体类的声明头文件)、(工程初始化文件)、(代码主文件,包括各空间操作的函数)以及一些其它附属文件,包括dll动态链接库。  ③在参考了Windows里的计算器以后,决定在我的课程设计中实现:  ⒈0~9的数字输入功能  ⒉实现加、减、乘、整除、取模、阶乘、位运算左移、x的y次方、与、异或、x立方、x平方运算功能,二进制、八进制、十进制、十六进制  转换功能,正负转换功能,退格、归零等功能。  ⒊数字显示最多为40位,超过即用科学表示法表示。⒋运算时因最高能对5000位的数字进行运算,故所有功能建立在自行编写代码的高精度运算基础上。  ④在按键操作中,先判断用户按的是数字键还是功能键。功能键分运算符键、进制转换键以及清空键。然后记录下来用户当前的按键,然后对上次按的功能键键进行运算。如按了1、+、5,再按任何功能键即对1+5进行运算。如果按的是进制转换键,就记录当前进制,则在以后每次操作中,都将显示结果转换为当前进制再显示。  如:以下是按5以及*号时的函数代码  ⑤对于高精度,采用结构体structhigh{intnum[MAXN];};的形式,数组的一个元素存一位。个位为num[1],将符号存在num[0]之中。  ⒈对于高精度加法,先判断两个数符号,如果为异号,则进行高精度减法,否则将各位逐个相加,然后逐位进位,返回答案即可。  ⒉对于高精度减法,先判断两个数符号,如果为异号,则进行高精度加法,否则用大数减小数,逐个相减,然后逐位退位,判断符号、返回答案即可。  ⒊对于高精度乘法,用第二个数的各位乘以第一个数的各位。然后错位相加,相当于小学生摆竖式。最后将各位相乘的结果相加,逐位进位,判断符号、返回答案即可。  ⒋对于高精度整除,采用各位从0~9枚举形式,如果此位与0~9相乘刚好小于等于相应数字,则为此位答案为这个数。最后返回答案即可。  ⒌对于高精度取模,则只需求出高精度整除,然后将数字减去整除的结果即可。  ⒍对于n阶乘,做n次乘法,每乘一次,乘数减一。  ⒎对于左移,虽然是建立在位运算基础上,但其效果只是乘以二,所以只需高精度乘以二即可。  ⒏对于x的平方、立方、y次方,只需将x高精度相乘2次、3次或者更多次即可。  ⒐对于与运算,先将两个数转换为二进制,然后对每位进行与运算,最后转换回十进制即可。  ⒑对于异或运算,原理同与运算。  ⑥对于进制转换,采用除n取余法。将其转换为相应进制。  ⑦对于清零键,按按键功能对actNum、ans、nowSym等变量清空或者减少一位即可。  ⑧我对于程序容错性做了很大程度上的优化。对于超出位数的运算会跳出“数字太大”提示。对于各按键混合使用会导致的程序混乱用了极大程度上的优化,也就是说对于按键的随意性有很好的兼容性。比如说可以直接按2再按*然后按=,就会算出2的平方。  ⑨对于显示函数,先判断当前进制数,然后再将需要显示的数字转换为当前进制数再显示。如果位数超过40,则取前几位,采用科学计数法显示。  ⑩未能实现部分:小数部分。由于时间关系,未能实现复制粘贴数字功能。  五、流程图  C语言课程设计报告  题目:设计一个简单计算器  目录  1.设计目的  2.内容

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值