版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、 综合实验报告( 2008- 2009年度第1学期)实验名称: C语言课程设计 题 目: 一个简单计算器 院 系:计算机科学与技术系 班 级: 计算0802班 组长学号: 组长姓名: 成员学号: 成员姓名: 指导教师: 郑玲 设计周数: 2 周 成 绩: 日期:2009年1月 日5 / 6文档可自由编辑打印题目名称:一个简单计算器小组组长姓名 (学号): 组员姓名(学号):组员姓名(学号):一、课程设计目的:1进一步掌握和利用C语言进行行程设计的能力;2进一步理解和运用结构化程序设计的思想和方法;3初步掌握开发一个小型实用系统的基本方法;4学会调试一个较长程序的基本方法;5学会利用流程图表示算
2、法;6掌握书写程序设计开发文档的能力(书写课程设计报告)。二、题目描述计算器是日常生活中的一种常用计算工具,能够进行加、减、乘、除四则运算,高级的计算器还具有函数计算及统计功能等。三、功能分析简单计算器能做加(+)、减(-)、乘(*)、除(/),四则运算和求百分运算(%);通过鼠标输入一个数,单击S按钮还可计算该数的平方根。简单计算器具有以下主要功能:1加减乘除四则运算例如,先后单击“1”、“+”、“2”、“=”按钮,应能进行1+2=3的计算。并且支持表达式的优先级计算处理。2求平方根运算 先后单击“9”、“S”按钮,应得到9的平方根是3并显示在输出显示框中。本计算器还可计算1+sqrt(9)
3、的值,并得到正确的结果是4。简单计算器不支持键盘操作,只有一个求数的平方根的函数计算功能,没有提供类似Windows计算器的菜单功能。 四、系统设计1程序总体结构简单计算器的处理过程是:首先进行图形和鼠标初始化,接着显示简单计算器外观,并接受用户的鼠标控制使用。如果单击了鼠标右键,则程序关闭图形方式并结束运行。其主流程如图2所示。图2简单计算器的流程图2界面设计简单计算器的界面如图3所示,具体设计如下:(1)计算器背景采用浅蓝色,然后用灰色作底色和红色作前景色。(2)第1行是数据输入和结果输出的信息显示框,使用bar函数,用黄色填充。(3)信息显示框下面是4排按钮,每排5个,同样使用bar函数
4、。按钮被设计成有按下和弹起两种状态,初始是弹起状态。(4)在每个按钮框上输出相应的数字或符号作为按钮的标签。(5)最后在简单计算器下方输出使用说明和设计单位信息。图3简单计算期的外观3重要数据的数据结构设计简单计算器没有用到复杂的数据结构,计算时定义了两个double变量u、v和一个字符数组s及几个标志变量。开始使用时u和v变量分别存储第1次和第2次输入的数据,计算结果始终保存在u中。继续运算时,输入的数据存于v,并与u中的数据运算后结果保存于u中。在简单计算器进行加减乘除运算的函数compute()中,定义以下主要标志变量:(1)sign:表示“+”、“”、“*”、“等运算符的整数变量。值为
5、0表示当前未单击过运算符。(2)flag:输人数据时是否单击了小数点。单击了小数点,flag为1,否则为0。4函数清单简单计算器程序采用了结构化程序设计的思想,由1个h文件和4个c文件组成,并构造了TC工程文件来管理和生成简单计算器应用。每个源文件包含多个函数的设计,这些函数的功能设计及处理描述见表1。文件名函数原型函数功能处理描述mouseCvoid initmouse()鼠标初始化调用0x33中断的0号功能。寄存器ax返回值不是-1,表明鼠标初始化失败。Void get_mouse_position(int *x,int *y)获取鼠标位置坐标调用0x33中断的3号功能。鼠标位置存于寄存器
6、cx和dx中,然后存于x、y指针变量指向的单元返回调用函数。int le()判断鼠标左键是否单击调用0x33中断的3号功能。鼠标状态存于寄存器bx,其第0位是1表明左键被按下。int rightpress()判断鼠标右键是否单击调用0x33中断的3号功能。鼠标状态存于寄存器bx,其第1位是1表明右键被按下。pictureCvoid picture()绘制计算器界面使用图形函数绘制计算器外框。调用公用函数bottonup()绘制弹起效果的按钮。调用系统outtextxy()输出按钮标签。调用系统outtextxy()输出使用说明等信息注:函数开始绘制鼠标图标并保存在全局变量imagep中,在co
7、mpute()函数(见computec文件)中涉及显示、移动鼠标等操作。utilCvoid GraphInit()图形初始化调用系统函数initgraph()进行初始化。失败则程序结束运行。void bottondown(int x,int y)画按下效果的按钮框调用画线及颜色设置函数绘制按下效果的按钮框。(x,y)表示按钮框的左上角坐标void bottonup(int x,int y)画弹起效果的按钮框 调用画线及颜色设置函数绘制弹起效果的按钮框 (x,y)表示按钮框的左上角坐标。void show(int x,int y)单击按钮的效果显示显示按下的按钮。延时。显示弹起的按钮注:模拟按钮
8、被单击。char getnumber(int x,int y)获取单击按钮图标每个按钮的位置是确定的(即矩形框的左上角坐标和大小已知)。根据单击按钮时鼠标的(x,y)可确定单击了哪个按钮,函数返回按钮的标签例:左上角坐标为(150,105)和右下角为(200,135)的矩形框表示计算器上数字“7”按钮。五、源程序整个计算器应用程序由6个源文件组成,分别是compute.prj、compute.h、mouse.c、picture.c、util.c和compute.c。1compute.prj文件简单计算器程序的TC工程文件,内容如下: mouse.C (compute.h) picture.C
9、(compute.h) util.c (compute.h) compute.c (compute.h)2computeh文件由简单计算器程序设计中所涉及的系统头文件、宏定义、外部全局变量申明和函数原型说明等组成,使构成简单计算器的各个C源程序文件只需引用该头文件即可。 #include<stdio.h> *系统提供的头文件* #include<math.h> #include<graphics.h> #include<conio.h> #include<stdlib.h> #include<dos.h>源程序见附录一。六、测试1界面及按钮单击测试检查界面布局是否合理、正确,单击按钮是否有按下再弹起效果,单击按钮的输入是否正确。2简单计算器的功能测试(1)加、减、乘、除四则运算的测试。(2)优先级处理的测试先后单击“1”、“+”、“2”、“*”、“4”、“=”按钮,输出结果是9,即支持四则运算的优先级处理。(3)求平方根运算的测试a)计算sqrt(9)先单击“9”、再单击“S”按钮,看结果是否正确。b)计算1十sqrt(9)检查是否能正确1+sqrt(9)。通过以上测试可以基本确定计算器程序是否实现了预定的功能。3正负(+-)运算处理的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
评论
0/150
提交评论