C语言课程设计计算器 2Word格式.docx
《C语言课程设计计算器 2Word格式.docx》由会员分享,可在线阅读,更多相关《C语言课程设计计算器 2Word格式.docx(16页珍藏版)》请在冰豆网上搜索。
4.5程序结果…………………………………………………………………5
4.6程序源代码及注释………………………………………………………8
4.7课程设计总结…………………………………………………………11
5.附录………………………………………………………………………13
1.设计任务书
1.1课程设计目的
本课程设计是计算机科学与技术专业重要的实践性环节之一,是在学生学习完《程序设计语言(C)》课程后进行的一次全面的综合练习。
本课程设计的目的和任务:
1.巩固和加深学生对C语言课程的基本知识的理解和掌握
2.掌握C语言编程和程序调试的基本技能
3.利用C语言进行基本的软件设计
4.掌握书写程序设计说明文档的能力
5.提高运用C语言解决实际问题的能力
1.2课程设计的实验环境
硬件要求能运行Windows2000/XP操作系统的微机系统。
C语言程序设计及相应的开发环境。
1.3课程设计的预备知识
熟悉C语言及C语言开发工具。
1.4课程设计要求
1.分析课程设计题目的要求
2.写出详细设计说明
3.编写程序代码,调试程序使其能正确运行
4.设计完成的软件要便于操作和使用
5.设计完成后提交课程设计报告
2.本人课题及任务
2.1.掌握C语言编程的基础知识。
2.2.较熟练地编写C语言应用程序。
2.3.了解C语言的常用标准函数、编程技巧、异常处理。
2.4.联系已学过的内容,巩固所学的理论,增强独立工作能力。
2.5.通过设计主要使学生有一个独立编写程序的过程,对理论学习及动手能力都有一个很大的提高。
2.6.通过本次设计,进一步培养学生热爱专业的思想,同时对本专业综合素质的提高起一个积极的推动作用。
课程设计过程中,要严格遵守实践环节的时间安排,听从指导教师的指导。
正确地完成上述内容,记录实习日记,规范完整地撰写出课程设计报告。
3.程序功能简介
3.1程序功能介绍
利用TurboC所具有的函数模仿画出计算器的界面,实现计算器的基本功能,进行浮点数加、减、乘、除、乘方和求模运算。
3.2程序整体设计说明
计算器的输入输出和显示结果的显示屏,绘制计算器的按键,绘制边框。
利用TurboC绘制程序中的计算器的图形.程序中对使用的图形系统进行初始化定义函数,然后输出函数进行字符的输入输出,来进行简单的+、-。
*、/运算。
4.主体内容
4.1设计思路
C语言编辑的程序可以直接输入数学表达式,是由于它具有优良的兼容性,有很好的数据处理能力,稳定性也很强。
不需要转换就可以直接输出数学运算的结果。
输入字符后,输出结果可以显示一个字符串表达式(传入参数,输出值),所以该程序具有较强的计算能力
4.2数据结构设计及用法说明
在主函数里先对接口、屏幕、系统等函数定义(#include<
math.h>
#include<
conio.h>
),屏幕函数包括文本窗口大小设定(<
voiddrawboder(void)>
)、窗口颜色的设置、窗口文本的清除和输入输出等函数。
编制图形程序时,在进入图形方式前,要在程序中对使用的图形系统初始化,进入相应程序的入口地址,利用ottextxy定位输出文本,用voidwindow(intleft,inttop,intright,intbottom)形式调用window()函数,而需要用另一窗口时,可以将定义该窗口的window()函数再次调用一次,就可以定义多个窗口。
4.3程序结构(流程图)
图2.1计算器流程图
4.4各模块的功能及程序说明
1、[+]主要功能:
加法2、[-]主要功能:
减法3、[*]主要功能:
乘法
4、[/]主要功能:
减法5、[/]主要功能:
除法备注:
两个操作数
使用方法:
用键盘方向键(上、下、左、右)←负值字的正负值字键,如果,当移动到相应得程序的入口地址,用算。
________________________________________________________________________________________________控制鼠标图形的移动,当移动到想要输入的按钮时按下回车键即可输入当前数字或者执行与之对应的函数
1、输入数值时,按下相应的数字键,若输入错误可以用CE键消去本次输入的数值,然后再重新输入正确的数值。
2、输入数值后,按+-*/等键进行四则运算。
3、按+/-可以更改输入数值的正负值。
4.5程序结果
(1)
图2.1程序运行图
(2)输入算式25-13=
输入步骤:
第一步:
图2.2输入25
第二步:
图2.3减去13
第三步:
图2.4等于12
(3)输入算式33/11=
图2.5输入33
图2.6除以11
图2.7等于3
4.6程序源代码及注释
#include<
stdio.h>
windows.h>
/*调用windows头文件的cls函数,用于清屏*/
/*计算N次方时调用pow函数*/
voidmenu()
{
system("
cls"
);
printf("
*******************************************\n"
*Calculators*\n"
*1:
Addition*\n"
*2:
Subtraction*\n"
*3:
Multiplication*\n"
*4:
Division*\n"
*5:
Remainder*\n"
*6:
Power*\n"
*7:
Exit*\n"
Pleaseinputyouchoice:
"
}
doubleadd(doublea[2])/*加法计算*/
*********%fAdd%f********\n"
a[0],a[1]);
returna[0]+a[1];
doublesub(doublea[2])/*减法计算*/
*********%fSub%f********\n"
returna[0]-a[1];
doublemul(doublea[2])/*乘法计算*/
*********%fMul%f********\n"
returna[0]*a[1];
doubledi(doublea[2])/*除法计算*/
doubleans;
*********%fDiv%f********\n"
if(a[1]==0)printf("
Divisorcannotbezero!
\n"
ans=a[0]/a[1];
returnans;
doublerem(doublea[2])/*余数计算*/
intx,y;
*********%fRem%f********\n"
aandbmustbeinteger!
x=(int)a[0];
y=(int)a[1];
returnx%y;
doublepo(doublea[2])/*次方计算*/
*********%fPow%f*********\n"
returnpow(a[0],a[1]);
doublexz(intchoice,doublea[2])/*选择调用某一个函数*/
switch(choice)
{
case1:
ans=add(a);
break;
case2:
ans=sub(a);
case3:
ans=mul(a);
case4:
ans=di(a);
case5:
ans=rem(a);
case6:
ans=po(a);
case7:
exit(0);
}
main()/*本程序中的数据类型均用double表示,并且主菜单为英文界面
可根据自己爱好在menu函数里修改*/
doublea[2],ans;
/*a[2]表示两个参与计算的数,ans存放计算结果*/
intchoice=-1,i;
/*choice表示在主菜单中进行的选择,i是输入a[2]时的循环变量*/
charch1,ch2;
/*一般输入结束后会按回车键,ch1用来接收完成a[2]输入后的回车键*/
/*程序计算完毕后,会将结果打印到屏幕上,如果不设置ch2变量,则
计算结果会一扫而过,而迅速地返回主菜单,ch2的作用是让计算结果
延长在屏幕上的保留时间*/
while(choice!
=7)
menu();
scanf("
%d"
&
choice);
while(!
(choice>
=0&
&
choice<
=7))/*while循环的作用是保证输入的choice在0到7之间*/
Pleaseinputyourchoice:
if(choice==7)exit(0);
for(i=0;
i<
2;
i++)/*输入a[2]时,以空格分断*/
%lf"
a[i]);
ans=xz(choice,a);
ans=%f\n"
ans);
ch1=getchar();
ch2=getchar();
4.7课程设计总结
通过本学期C语言学习,我对计算机有了全新的认识。
计算机硬件相当于人类的大脑,而程序则相当于人类的思想,我很高兴学习到了有关计算机编程方面的知识。
虽然我现在所学的东西远远不足以控制整个计算机系统,但是也可以让计算机成功的运行属于我自己的小程序,当屏幕上出现自己运行的程序的时候,那种激动的心情是无法形容的。
C语言是编程语言的基础,以后我一定会更加努力的学习C语言,为以后学习更多的语言打下坚实的基础。
期末阶段的课程设计,我们的任务是写一个计算器的程序,我开始摸索,先查找有关资料,然后用画图以及循环将框架设计出来,但是后来的步骤比较棘手,计算是关键和难点,我们也查阅了相关的资料,但它上面用得是坐标来做的,所以为了方便设计程序,我们也改为用坐标来做的,计算问题就解决了。
然后就是按键问题,我们找的资料是用鼠标做的,所以按键这个函数就只能自己设计,还好手头有类似的资料,经过自己的反复尝试和与同学们的探讨,这个问题也被我们解决了。
闪烁这个设计的方法很死板,都一个类型,就是算坐标比较烦琐,必须确定好它的位置,但是这些只要不断的去尝试,都可以解决。
整个课程设计终于完成了,虽然过程有些艰难,但还是顺利的完成了。
我们付出了很多努力,但我认为我们所得到的远远多余所付出的。
例如同学之间的互相帮助让我第一次这么深刻的体验到了什么叫团队精神,团队精神在日后的工作中是非常重要的。
有些同学积极的态度让我感到一丝惭愧,他们所体现出的坚持不懈的品质更令我折服。
这次课程设计也让我看到了自己基础的薄弱。
从今往后我将不断的求索,学习之路也好,人生之路也罢。
而学习C语言之路就是不断调试,完善自我。
这次的课程设计还提高了我实际分析问题、编程和动手能力,使我掌握了程序设计的基本技能,提高了我适应实际,实践编程的能力。
然而,这只是万里长征的第一步。
后面的路还很长,困难还很多,可是我能成功的编译一个程序,能够在思路卡壳的情况下,继续前进,我在此很想感谢那些给予我耐心解答的老师和同学,是他们为我小程序的成功起到了关键性的作用,那么多个日夜,如此多的困难,同学们勤恳塌实,从开始到结束,没有显出一点倦意,始终热情高涨,我感谢这种氛围,感谢学校提供的良好条件。
在课程设计过程中,我学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪,黑夜过去了,我们收获的是黎明。
在本次实践中,给我印象最为深刻的是在文件删除程序的编译过程中,先有我的各个子程序都已经编辑成功,那么这最后的程序就将是我成功的关键。
老天不会让我太过顺利,他在这最后的时刻设置的障碍,是要考验我的能力,他要置我于死地?
在这个问题的解决上,我打了退堂鼓,我不能忍受长时间的无功而反,时间正在消磨我的意志。
没有了柳暗花明的一天,那么我怎么能说经受住了考验?
谢谢老师的那句话,她说:
人力有所不能及,然而,人的精神是不会败倒的。
我鼓起勇气,到处问,到处查资料,黄天不负有心人,在一篇文章上,终于看到了我所特别要求的函数,我实现了组合是关键的理论。
不得不说这是精神的胜利,是永不言败的精神让我的程序重见天日。
谢谢给我指点迷津的老师。
附录:
参考文献:
[1]张龙祥.面向对象程序设计[M].北京:
人民邮电出版社,2001:
180-206
[2]高福祥等.汇编语言程序设计.沈阳:
东北大学出版社,1995:
97-133
[3]黄明等.C语言程序设计.大连理工大学出版社,2005:
68-98
[4]马靖善.C语言程序设计.清华大学出版社,2005:
75-120
[5]张颖江.C语言程序设计.北京:
科学出版社,1998:
135-170
[6]谭浩强.C语言程序设计(第二版).北京:
高等教育出版社,2002:
66-175
[7]张毅坤.C语言程序设计教程[M].西安交通大学出版社,2003:
208-230
[8]李成付.C语言程序设计基础.北京:
科学出版社,1992:
26-75
[9]李国昌.C语言程序设计基础.北京:
科学出版社,1998:
38-66
[10]李大友.C语言程序设计基础.北京:
清华大学出版社,1999:
26-56
[11]钱启平.C语言程序设计基础.北京:
中国铁道出版社,2000:
50-100
[12]郝玉洁.C语言程序设计.北京:
机械工业出版社,2000:
120-164
[13]姜仲秋.C语言程序设计基础.南京:
南京大学出版社,1998:
110-136
[14]张基温.C语言程序设计教程.上海:
高等教育出版社,1992:
67-108
[15]薛刚等.C语言实用教程.长春:
吉林科学技术出版社,1997:
60-127