c语言程序设计课程计算器设计报告.doc
《c语言程序设计课程计算器设计报告.doc》由会员分享,可在线阅读,更多相关《c语言程序设计课程计算器设计报告.doc(25页珍藏版)》请在冰豆网上搜索。
课程设计说明书
题目计算器程序设计
起讫日期2006年7月3日 至2006年8月6日
所在院系 软件学院
专业机械+软件班级04-2
学生姓名偶偶哦学号
指导教师
2006年8月日
摘要
当今社会是信息社会,科技经济高速发展的社会!
为了更方便人们的工作生活和加速人们处理信息的速度,计算器应运而生。
由于它体积小巧,携带方便,价格便宜,构造简单等诸多的优点成为人们生活中的必备品!
随着科技的发展计算器的种类变得更多,功能变得更强大,体积变得更小!
电脑的出现改变人们的生活习惯,很多事情都可以电脑来完成!
电脑的更大一个优点就是可以通过软件的应用无限的延伸电脑功能的外延!
下面我们将用我们学习的c语言编写一个简易的计算器程序!
实现简单的初步的计算功能!
本程序的编写基础是TubroC2.0汉化版,它在tubroc的原有基础上实现了多汉字的支持方便了我们的使用。
生成的程序可移植性强兼容性好稳定!
现在只实现了加、减、乘、除、求幂、求模,求平方根,求Sin,求Cos,求Log10,以及一个时钟原代码。
这个系统是基于软件发展的生命周期来研制的,它可以直接输入数学表达式,不需要任何转换,就可以直接输出数学四则运算的结果。
但是,每次只能运算一个表达式。
不能运算多个表达式。
在程序里面在添加一组选择函数即可。
本论文主要介绍了本课题的开发背景,开发的过程和所要完成的功能。
重点的说明了系统设计思想,设计的步骤、难点技术和解决方案。
关键词:
C语言Tubroc2.0汉化版计算器时钟
目录
第一章综述…………………………………………………………………1
1.1课题的现实意义………………………………………………………1
1.2软件环境………………………………………………………………1
1.3硬件环境………………………………………………………………1
第二章系统设计流程图……………………………………………………2
2.1系统流程图……………………………………………………………2
2.2主要功能表……………………………………………………………2
第三章系统分析和设计……………………………………………………3
3.1图形的绘制和输出……………………………………………………3
3.2文本的输出显示………………………………………………………3
3.3计算函数的调用………………………………………………………4
3.4程序的运行和退出……………………………………………………5
第四章系统测试……………………………………………………………6
4.1系统测试………………………………………………………………6
4.2调试……………………………………………………………………6
4.3错误原因分析一………………………………………………………6
4.4错误原因分析二………………………………………………………6
第五章用户使用说明书……………………………………………………8
5.1运行TurboC程序进入计算器界面…………………………………8
5.2计算器的使用…………………………………………………………9
5.3退出程序………………………………………………………………9
第六章工作总结……………………………………………………………10
参考文献………………………………………………………………………11
附录:
源代码
第一章综述
1.1课题的现实意义
现实学习生活中,常会遇到一些数目较大数据繁杂的数值运算,徒手运算起来很困难,这时候我们就必须用到计算器,所以便着手开发了这个计算器程序,以便用于自己的学习工作。
人们对计算的要求不断提高,普通的功能简单的仅能进行四则运算的计算工具已经不能满足需要,需要一种能进行多种计算。
现在已经有一些功能较为强大、涵盖面较广的计算软件,而且各种平台的小工具仍不断出现。
这些大大方便了我们的生活给我们更多的选择和实现方式。
这个程序可以直接输入数学表达式,不需要任何转换,就可以直接输出数学四则运算的结果。
并且操作简单、界面清晰、灵活、实用、方便等要求出发,它所能完成的主要计算功能有以下几个方面:
加法,减法,乘法,除法,求幂,求模,求平方根,求Sin,求Cos,求Log10。
计算器的设计使我们所学到的c语言知识在现实中得到检验!
信息时代是科技和经济发展的产物,软件产业是信息时代的产物,它在我们的生活工作中发挥着越来越大的作用,计算器的设计对我们知识的掌握有很大的作用,更能方便他人,可行性很强!
1.2硬件环境
一台完整的电脑,包括键盘、鼠标,最小硬盘空间1GHz
<1>386,486,586及兼容机.640K基本内存;
<2>1M以上扩充内存,10M以上的显示内存.
1.3软件环境
开发环境:
本系统的设计采用的是TC语言开发
WindowsXPsp2操作系统,TurboC2.0汉化版,WPSword
大连交通大学软件学院课程设计说明书
第二章程序设计流程图
2.1系统流程图(图1)
开始
输入第一个操作数
加法
减法
乘法
除法
求幂
求模
开平方
求正弦
求余弦
求对数
输入第二个操作数
显示结果
寄存器清零
结束
2.2主要功能表(表1)
序号
文件名
主要功能
备注
1
+
加法
两个操作数
2
-
减法
两个操作数
3
*
乘法
两个操作数
4
/
除法
两个操作数
5
%
求模
两个操作数
6
^
求x的y次幂
两个操作数
7
S
求平方根
一个操作数
8
O
求Sin
一个操作数
9
I
求Cos
一个操作数
10
L
求Log10
一个操作数
11
=
等于
12
C
寄存器清零
13
Q
退出
表1
第三章系统分析和设计
3.1图形的绘制和输出
在TurboC环境下,绘制程序中的计算器的图形,计算器的输入输出和显示结果的显示屏,绘制计算器的按键,绘制边框。
TurboC为用户提供了一个功能很强的画图软件库,它又称为BorLand图形接口,它包括图形库文件(graphics.lib),图形头文件(graphics.h)和许多图形显示器(图形终端)的驱动程序(如CGA.BGI、EGAVGA.BGI等)。
还有一些字符集的字体驱坳程序(如goth.chr黑体字符集等)。
编写图形程序时用到的一些图形库函数均在graphics.lib中,执行这些函数时,所需的有关信息(如宏定义等)则包含在graphics.h头文件中。
因此用户在自已的画图源程序中必须包括graphics.h头文件,在进行目标程序连接时,要将graphics.lib连接到自己的目标程序中去。
在编制图形程序时,进入图形方式前,首先要在程序中对使用的图形系统初始化,即要用什么类型的图形显示适配器的驱动程序,采用什么模式的图形方式(也就是相应程序的入口地址),以及该适配器驱动程序的寻找路径名。
所用系统的显示适配器一定要支持所选用的显示模式,否则将出错。
Turbo.C提供了一个图形系统初始化函数initgraph可完成这些功能。
当我们使用的存储模式为tiny(微型)、small(小型)或medium(中型)时,不需要远指针,因而可以将初始化函数调用格式写成如下形式(该说明适用于后面所述的任一函数):
intitgrapg(&graphdriver,&graphmode,,””);其中驱动程序目录路径为空字符“”时,表示就在当前目录下,参数graphmode用所示的模式号或标示符来定义,参数graphdriver是一个枚举变量{DETECT,CGA,VGA,…},一般:
graphdriver=DETECT一旦执行了初始化,显示器即被设置成相应模式的图形方式。
上面初始化过程中,将由DETECT检测所用适配器类型,并将当前目录下相应的驱动程序装入,并采用最高分辩率显示模式作为graphmode的值。
如检测到为CGA适配器时,则graphmode等于4或为CGAHI,若检测到VGA适配器,则graphmode等于2或为VGAHI。
由于图形程序运行并显示图象直接与显示器有关,而如何控制驱动显示器进行显示,TurboC并没有向用户提供这种技术,而这也是不必要的,因它与显示器硬件结构息息相关,编程者并不需要知道这些东西,否则太复杂了!
但用户的图形程序要能运行并显示,则必须要包含有驱动显示器的这种程序。
不同种类的显示器因硬件结构不同,因而驱动程序也不同,这些驱动程序已经在TubroC系统盘上提供。
在用户的图形程序中,进行图形系统初始化时,即执行函数。
initgraph(&graphdriver,&graphmode,charpath-for-driver)时,程序就按照path-for-driver所指的路径将图形驱动程序装入内存。
这样,以后的图形功能才能被支持。
若在所指路径下找不到相应显示器的驱动程序,或没有对驱动程序进行装入操作,则运行图形程序时,就会在屏幕上显示出错信息:
BGIError:
Graphicsnotinitialized(use”initgraph”)必须在工作盘上复制上这些文件,否则图形程序就无法运行,而出现上述的错误信息。
3.2文本的输出显示
TurboC2.0的字符屏幕函数主要包括文本窗口大小的设定、窗口颜色的设置、窗口文本的清除和输入输出等函数。
在TurboC2.0环境下,用ottextxy定位输出文本,如计算器上的函数意义的解释,一些使用说明,程序设计人。
TurboC2.0默认定义的文本窗口为整个屏幕,共有80列(或40列)25行的文本单元,每个单元包括一个字符和一个属性,字符即ASCII码字符,属性规定该字符的颜色和强度。
TurboC2.0可以定义屏幕上的一个矩形域作为窗口,使用window()函数定义。
窗口定义之后,用有关窗口的输入输出函数就可以只在此窗口内进行操作而不超出窗口的边界。
window()函数的调用格式为:
voidwindow(intleft,inttop,intright,intbottom);
函数中形式参数(intleft,inttop)是窗口左上角的坐标,(intright,intbottom)是窗口的右下角坐标,其中(left,top)和(right,bottom)是相对于整个屏幕而言的。
TurboC2.0规定整个屏幕的左上角坐标为(1,1),右下角坐标为(80,25)。
并规定沿水平方向为X轴,方向朝右;沿垂直方向为Y轴,方向朝下。
若window()函数中的坐标超过了屏幕坐标的界限,则窗口的定义就失去了意义,也就是说定义将不起作用,但程序编译链接时并不出错。
另外,一个屏幕可以定义多个窗口,但现行窗口只能有一个(因为DOS为单任务操作系统),当需要用另一窗口时,可将定义该窗口的window()函数再调用一次,此时该窗口便成为现行