计算机用c语言课程设计方案,C语言课程设计方案(简易计算器设计方案)带所有代码.doc...

个人收集整理 勿做商业用途

封 面

作者:Pan Hongliang

仅供个人学习

《C语言课程设计》报告

设 计 题 目: 简单计算器设计

学 院 名 称: 电子与信息工程学院

专 业: 计算机科学与技术

班 级: 计科

姓 名: 学 号

指 导 教 师:

定稿日期: 2013-5-28

设计题目

简单计算器设计

设计要求

在功能上功能尽量模拟windows操作系统中的计算器,系统界面不做强制要求。

设计目的

通过本项课程设计,可以培养独立思考、 综合运用所学有关相应知识的能力,能更好的巩固《C语言程序设计》课程学习的内容,掌握 工程软件设计的基本方法,强化上机动手编程能力,闯过理论与实践相结合的难关!更加了解了c语言的好处和其可用性!同时增加了同学之间的团队合作精神!更加也体会到以后在工作中团队合作的重要性和必要性!

通过C语言课程设计,使学生了解高级程序设计语言的结构,掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级语言程序设计能力。为后续各门计算机课程的学习和毕业设计打下坚实基础。

设计思想及过程

由于需要使功能尽量模仿Windows下的计算器,而很多功能要以图形界面实现,故用Borland C++ Builder编写。所以用的是面向对象程序设计。但因为这是C语言的课程设计,所以除了面向对象的使用以外,所有语法都是按照C语言的格式编写。

采用工程模式,文件包括calc.h(运算主函数头文件,包括各运算符的操作以及其辅助函数)、Main.h(窗体类的声明头文件)、Calc.cpp(工程初始化文件)、Main.cpp(代码主文件,包括各空间操作的函数)以及一些其它附属文件,包括dll动态链接库。

在参考了Windows里的计算器以后,决定在我的课程设计中实现:

0~9的数字输入功能(小数点除外)

实现加、减、乘、整除、取模、阶乘、位运算左移、x的y次方、与、异或、x立方、x平方运算功能,二进制、八进制、十进制、十六进制转换功能,正负转换功能,退格、归零等功能。

数字显示最多为40位,超过即用科学表示法表示(例如1E50)。

运算时因最高能对5000位的数字进行运算,故所有功能建立在自行编写代码的高精度运算基础上。

在按键操作中,先判断用户按的是数字键还是功能键。功能键分运算符键、进制转换键以及清空键。然后记录下来用户当前的按键,然后对上次按的功能键键进行运算。如按了1、+、5,再按任何功能键即对1+5进行运算。如果按的是进制转换键,就记录当前进制,则在以后每次操作中,都将显示结果转换为当前进制再显示。

如:以下是按5以及*号时的函数代码

void __fastcall TMainForm :: bt_5Click(TObject

void __fastcall TMainForm :: bt_5Click(TObject *Sender) /*输入5*/

{

if(_lastKey == key_sym) initNum(&actNum); /*初始化当前动作数字*/

if(_lastKey == key_sym && nowSym == 'N') /*如果最后的按键是符号而且按的是等号*/

{

initNum(&ans); /*让答案等于0*/

lastSym = 'N';

}

incMed(&actNum, 5); /*将活动数字加一位,并且最后一位是5*/

ShowText(actNum); /*显示当前活动数字*/

_lastKey = key_num; /*记录最后按键为数字键*/

}

void __fastcall TMainForm :: bt_mulClick(TObject *Sender) /*输入*号*/

{

doAns(&ans, actNum,&nowSym, '*', lastSym, _lastKey);

/*↑做出上一步答案(不是按乘号这一步)*/

ShowText(ans); /*显示答案*/

lastSym = nowSym; /*现在即将运算的符号赋值给最后的符号*/

nowSym = '*'; /*将*号现在即将运算*

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值