1、简单计算器C语言重庆科技学院课程设计报告 院(系):_电子信息工程学院_ _ 专业班级: 测控08(1)班学生姓名: 陈 寅 学 号: 2008441028设计地点(单位):_I520,I515_ _ _ _ _设计题目:_简单计算器_ _完成日期:2009年07月 10日指导教师评语: _ _ _ _ _成绩(五级记分制):_ _指导教师(签字): _ _重庆科技学院课程设计任务书设计题目:简单计算器学生姓名陈寅课程名称C语言程序设计课程设计专业班级测控普2008-01地 点I520,I515起止时间6.29-7.10设计内容及要求设计内容:设计一个简单计算器,模拟windows系统的计算器
2、进行简单的加、减、乘、除运算等。设计要求:要求应用图形模式设计用户界面,用户利用键盘或鼠标进行操作。设计参数1. 程序不低于500行代码。2. 程序基本功能要求实现完整,并有简单的验证。3. 设计报告要求格式规范,符合学校课程设计报告要求。4. 报告中流程图要求描述规范,算法设计清楚正确。 进度要求1. 理解设计题目,要求和说明 2009.6.29 2. 查阅资料,确定设计任务,熟悉相关知识 2009.6.303. 确定程序设计的思路和技术方案 2009.7.1 4. 编程实现基本功能 2009.7.2 - 2009.7.65. 调试并完善程序 2009.7.7 - 2009.7.86. 撰写
3、课程设计报告 2009.7.9 - 2007.7.10参考资料1. 克尼汉.c程序设计语言(第二版).机械工业出版社 2. (美)霍顿著,杨浩译.C语言入门经典(第4版).清华大学出版社3. Peter Prinz,Tony Crawford.C语言核心技术. 机械工业出版社其它说明.本表应在每次实施前一周由负责教师填写二份,院系审批后交院系办备案,一份由负责教师留用。.若填写内容较多可另纸附后。3.一题多名学生共用的,在设计内容、参数、要求等方面应有所区别。教研室主任: 指导教师: 年 月 日摘 要C语言是目前国内外最广泛使用的程序设计语言之一。它处理功能丰富、表达能力强、使用方便灵活、执行
4、程序效率较高、可移植性强;既具有汇编语言的特点。它具有较强的系统处理能力,可直接实现对系统硬件和外部接口的控制。C语言是一种结构化程序设计语言,它支持自顶向下逐步求精的结构化程序设计技术。另外,C语言程序的函数式结构也为实现程序的模块化设计提供了强有力的保障,目前,很多人就把C语言作为编程的首选语言。本次课程设计就是利用C语言的丰富表达能力来编写一个简单计算器,模拟windows系统的计算器进行简单的加、减、乘、除运算等,在编写这次课程设计的计算器过程中要求画出计算器的图形界面,并且能够保证进行基本的运算。关键字:程序设计,简单计算器,图形界面,基本运算。1 设计内容利用本学期所学的C语言程序
5、设计课程,运用相关知识,查阅相关资料,编写C语言程序,设计一个简单计算器,要求编写的简单计算器能够模拟windows系统的计算器的图形界面,用户能够用键盘输入相关数据,能够进行简单的加、减、乘、除运算,并且在程序运行过程中能够正常的退出程序。在计算器程序运行中,输入数据时如果遇到输入错误的情况,能够能过键盘上的退格键进行删除,并且重新输入正确的数据。在数据输入完成后,如果需要放弃本次计算操作,可以利用程序中设置好的按键进行清零,并为下一次运算作准备。程序运行中如果遇到输入错误情况时能够相应的进行报错处理,提醒用户当前的错误输入情况。2 设计目的与要求2.1设计目的C语言是目前国内最广泛使用的程
6、序设计语言之一,它处理功能丰富、表达能力强、使用方便灵活、执行程序效率高、可移植性强;既具有高级语言的特点,又具有汇编语言的特点。根据本学期所学的C语言程序设计课程,为了使我们能够更好、更灵活的使用C语言进行各种编程的应用,保证把这学期的课程知识能够熟练的应用,初步的掌握C语言的基本概念及其应用,因此,在这学期快要结束之时对C语言这门课程进行相应的课程实践设计,做到理论与实践相统一。2.2设计要求运用相关知识,查阅相关资料,编写一个简单的计算器,计算器的界面须实现Windows图形界面,应用图形模式设计用户界面,并且能够实现简单的基本的加减乘除运算,在计算器工作时用户能利用键盘或鼠标进行相应操
7、作。程序基本功能要求实现完整,并有简单的验证。程序还须有符合标准的程序设计报告。3 设计环境、原理与说明3.1设计环境由于计算器是一个图形界面,里面包含了图形文件头,图形文件头在VC编译环境里没有定义,所以本程序的编译设计环境需要在Turbo C在进行,Turbo C里面包含了头文件,在编译时可直接调用。3.2结构图假图3.2 计算器结构图3.3说明程序运行时首先从main()函数开始,然后依次执行main()函数里面的第一条语句,最后结束于main()函数。程序进入主函数后,首先开始执行main()函数里的第一条语句initialize()函数,使得计算器在运行的开始就将系统设置进入图形模式
8、;然后再进入第二条语句huakuang()函数,这个函数使得函数在进入图形模式的的前提下进行屏幕上的画图形操作,在屏幕上画出一个二维的计算器的外壳界面,为进行计算器的计算而打下基础;接下来程序运行进入的是一个计算器的核心环节compute()函数,compute()函数用来将从键盘上输入的数字进行统计并且根据相应的法则进行计算,得出相应的结果并送回到计算器的显示屏上面;其次,进入的是一个closegraph()函数,closegraph()函数在文件头中已经有相应的包含,所以在此直接调用,目的是为了使系统关闭图形模式返回文本模式;最后,用一句return 0语句来结束整个程序的运行。4 设计过
9、程4.1定义定义两个符号常量:#define EXCAPE 27#define ENTER 13用来控制计算器再运行过程中实现数的退格和进行结果运算。再定义全局变量:int j=0这样使得在程序代码中的可读性强,使程序易于修改。4.2 主函数一个程序有且仅有一个主函数main( )函数,程序运行时首先从main( )函数开始,然后依次执行main( )函数里面的第一条语句,最后结束于main( )函数。程序进入主函数后,首先开始执行main( )函数里的第一条语句initialize( )函数;然后再进入第二条语句huakuang()函数;接下来程序运行进入的是一个计算器的核心环节comput
10、e()函数;其次,进入的是一个closegraph()函数,closegraph()函数在文件头中已经有相应的包含,所以在此直接调用,目的是为了使系统关闭图形模式返回文本模式;最后,用一句return 0语句来结束整个程序的运行。如图4.2:图4.2 主函数组织结构图4.3设置系统进入图形模式不同的显示器适配器有不同的图形分辨率,即使是同一显示器适配器, 在不同模式下也有不同分辨率。因此, 在屏幕作图之前, 必须根据显示器适配器种类将显示器设置成为某种图形模式,,因此也就在主函数里面调用了initialize()函数来达到目的。首先定义两个变量Maxx,Maxy来存放屏幕的长宽,然后自动检测显
11、示器,分别返回一个数值给Maxx,Maxy,使函数在进行图形的设计时能够更好的控制住屏幕的坐标,从而有效的进行分配,方便的进行管理。如图4.3: 4.3 系统进入图形模式函数流程图4.4屏幕颜色的设置函数对于图形模式的屏幕颜色设置,分为背景色的设置和前景色的设置。在Turbo C中分别用下面两个函数。设置背景色setbkcolor( int color); 设置作图色setcolor(int color),其中color 为图形方式下颜色的规定数值,颜色的符号常数及数值可以在conio.h和graphics. h两个头文件中查到。4.5封闭图形的填充填充就是用规定的颜色和图模填满一个封闭图形。
12、Turbo C提供了一些先画出基本图形轮廓, 再按规定图模和颜色填充整个封闭图形的函数。在没有改变填充方式时, Turbo C以默认方式填充。bar(int x1, int y1, int x2, int y2)确定一个以(x1, y1)为左上角, (x2, y2)为右下角的矩形窗口, 再按规定图模和颜色填充,须要注意的是: bar(int x1, int y1, int x2, int y2)函数不画出边框,因此填充色就是边框的颜色。bar3d(int x1, int y1, int x2, int y2, int depth, int topflag)当topflag为非0时,以(x1,
13、y1)为左上角, (x2, y2)为右下角,画出一个三维的长方体。当topflag为0时, 三维图形不封顶。当depth的值越大时,长方体的深度也就越深。需要说明的是: bar3d()函数中,长方体第三维的方向不随任何参数而变,即始终为45度的方向。4.6图形模式下的文本输出在图形模式下,只能用标准输出函数,如printf(),puts(),putchar() 函数输出文本到屏幕。除此之外, 其它输出函数(如窗口输出函数)不能使用, 即是可以输出的标准函数,也只以前景色为白色,按80列,25行的文本方式输出。Turbo C2.0也提供了一些专门用于在图形显示模式下的“文本输出函数”outtex
14、txy(int x, int y, char far *textstring),该函数输出字符串指针textstring所指的文本在规定的屏幕的(x, y)位置。 其中x 和y为像素坐标。格式化输出函数sprintf(char *str, char *format, variable-list),它与printf()函数不同之处是将按格式化规定的内容写入str 指向的字符串中, 返回值等于写入的字符个数。例如: sprintf(s, your TOEFL score is %d, mark); 这里s应是字符串指针或数组,mark为整型变量。另外,图形方式下的文本输出函数, 可以通过setcolor()函数设置输出文本的颜色。4.7计算器名称函数计算器名称函数void name(void),用于给计算器命名,这样使得程序结构性增强,便于理解。4.8计算器介面设置函数此函数是为了画出计算器的介面而自定义的一个函数,开始时,先将背景颜色设置成“3”对应的颜色,然后将画线的颜色设置成5对应的颜色,用这种颜色以坐标(MaxX/4, MaxY/4-40)和
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1