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