文档视界 最新最全的文档下载
当前位置:文档视界 › C语言程序设计之简单计算器资料

C语言程序设计之简单计算器资料

C语言程序设计之简单计算器资料
C语言程序设计之简单计算器资料

攀枝花学院

学生课程设计(论文)

题目:简易计算器

学生姓名:葛肪瑜学号:201010801018 所在院(系):计算机学院

专业:计算机科学与技术

班级:10计本(1)班

指导教师:陈三清职称:讲师

2011年6月25日

攀枝花学院教务处制

攀枝花学院本科学生课程设计任务书

题目计算器的设计

1、课程设计的目的

本课程设计的目的和任务:(1)巩固和加深学生对C语言课程的基本知识的理解和掌握;(2)掌握C语言编程和程序调试的基本技能;(3)利用C语言进行简单软件设计的基本思路和方法;(4)提高运用C语言解决实际问题的能力。

2、课程设计的内容和要求(包括原始数据、技术要求、工作要求等)

一、用C实现如下功能:

使用C语言编写一个类似于Windows附件提供的计算器软件,实现计算器的基本功能,能进行浮点数的加、减、乘、除、乘方和求模运算。

二、撰写课程设计报告或课程设计总结课程设计报告要求:总结报告包括需求分析、总体设计、详细设计、编码(详细写出编程步骤)、测试的步骤和内容、课程设计总结、参考资料等,不符合以上要求者,则本次设计以不及格记。

3、主要参考文献

[1] 潭浩强,《C程序设计》,清华大学出版社

[2] 王声决,《C语言程序设计》,中国铁道出版社

[3] 潭浩强,《C程序设计题解与上机指导》,清华大学出版社

[4] 刘玲等,《C语言程序设计应用教程》,西南师范大学出版社

4、课程设计工作进度计划

第1天完成方案设计与程序框图

第2、3天编写程序代码

第4天程序调试分析和结果

第5天课程设计报告和总结

指导教师(签字)日期年月日

教研室意见:

年月日

学生(签字):

接受任务时间:年月日注:任务书由指导教师填写。

课程设计(论文)指导教师成绩评定表题目名称教师网上成绩录入系统开发

评分项目分

评价内涵

工作表现20% 01 学习态度 6 遵守各项纪律,工作刻苦努力,具有良好的科学

工作态度。

02 科学实践、调研7 通过实验、试验、查阅文献、深入生产实践等渠

道获取与课程设计有关的材料。

03 课题工作量7 按期圆满完成规定的任务,工作量饱满。

能力水平35% 04 综合运用知识的能力10

能运用所学知识和技能去发现与解决实际问题,

能正确处理实验数据,能对课题进行理论分析,

得出有价值的结论。

05 应用文献的能力 5

能独立查阅相关文献和从事其他调研;能提出并

较好地论述课题的实施方案;有收集、加工各种

信息及获取新知识的能力。

06

设计(实验)能力,方案

的设计能力

5

能正确设计实验方案,独立进行装置安装、调试、

操作等实验工作,数据正确、可靠;研究思路清

晰、完整。

07 计算及计算机应用能力 5 具有较强的数据运算与处理能力;能运用计算机

进行资料搜集、加工、处理和辅助设计等。

08

对计算或实验结果的分析

能力(综合分析能力、技

术经济分析能力)

10 具有较强的数据收集、分析、处理、综合的能力。

成果质量45% 09

插图(或图纸)质量、篇

幅、设计(论文)规范化

程度

5 符合本专业相关规范或规定要求;规范化符合本

文件第五条要求。

10 设计说明书(论文)质量30 综述简练完整,有见解;立论正确,论述充分,

结论严谨合理;实验正确,分析处理科学。

11 创新10 对前人工作有改进或突破,或有独特见解。

成绩

指导教师签名:年月日

目录

目录 ......................................................................................................................... I V 摘要 .......................................................................................................................... V

1 绪论 ....................................................................................................................... V I

1.1 课程设计背景.................................................................................................................. VI

1.2 需求环境 ......................................................................................................................... VI

1.3 课程设计思路.................................................................................................................. VI

2 课程设计概要 (2)

3 程序结构和各模块分析 (3)

3.1菜单操作模块 (3)

3.1.1 fun1函数功能 (3)

3.1.2 功能实现代码 (3)

3.2 加减乘除运算模块 (3)

3.2.1 fun2函数功能 (3)

3.2.2 功能实现代码 (4)

3.3 乘方和开方运算模块 (4)

3.3.1 fun3函数功能 (4)

3.3.2 功能实现代码 (4)

3.4 进制转换运算模块 (5)

3.4.1 convert函数功能 (5)

3.4.2 功能实现代码 (5)

3.5 求模运算模块 (5)

3.5.1 fun4函数功能 (5)

3.5.2 功能实现代码 (6)

3.6 退出模块 (6)

3.6.1代码功能 (6)

3.6.2 功能实现代码 (6)

4 程序调试 (7)

4.1 操作界面 (7)

4.2 加减乘除运算 (7)

4.3 乘方和开方运算 (9)

4.4 进制转换运算 (10)

4.5 求模运算 (11)

4.6 退出 (12)

5 课程设计总结 (12)

参考文献 (13)

附录:源代码 (14)

摘要

一直以来,C语言都是在国际上广泛流行的通用编程语言,它既具有高级语言的特点,又具有低级语言的些特点;既可用于编写系统软件又可用于编写应用软件。虽然说近二十年来计算机技术取得了长远的进步,各种编程语言不断地涌现出来,但是C语言功能强大,使用灵活,即使是在科技快速发展的二十一世纪,仍展现出了强大的生命力,为社会的高度信息化,特别是在信息技术和网络技术领域做出了十分重要的贡献。

本文介绍了用C语言编写一个简易计算器。实现数学上对浮点数加、减、乘、除、乘方、开方、求模以及进制转换的运算。利用这个程序可以方便的进行日常性的小规模运算,小巧简易,是个实用的工具。

关键词:程序设计,计算器,C语言,函数,循环

1 绪论

1.1 课程设计背景

日常生活中我们经常会遇到一些小型数据计算的问题,本课程设计就是以此为出发点,设计了这样一个简单的计算器,用以实现基本的数学运算。在C语言当中通过定义模块函数,并在主函数中进行调用从而实现数据的运算。通过与用户之间的交互,可以在操作界面上实现对各种运算的选择和程序的控制。

在完成课程设计的期间,参阅了相关的书籍并在网络上查找相关的资料,对实现这个设计提供了很大的帮助。由于设计水平和知识方面的匮乏,本次课程设计还存在缺点和不足,希望大家提出宝贵的意见,互相交流以期提高。

1.2 需求环境

本课程设计需要的设备为硬件要求和软件配置要求具体要求如下:

①硬件要求:一台计算机。

②软件配置:WINDOWS系统、c/c++程序设计学习与实验软件

1.3 课程设计思路

做计算器最主要的就是实用性,要简单,便于操作。程序的界面要方便与用户之间的交互。并以设计的要求为基础,进行了创新,增加了对进制转换运算的支持,这就大致的确定了程序的几个模块。然后对每个模块进行设计,再整合起来,由此一个简洁美观的计算器就建立起来了。

2 课程设计概要

在设计程序的时候,考虑到计算器的功能,我按照其功能划分为几个模块,在程序开始后,可以进行选择,到自己希望进行操作的模块中去。有了具体的模块之后,在设计程序的时候有更方便了,同时也有法可依,不会造成混乱。具体分为:加减乘除运算、乘方开方运算、进制转换运算、求模运算和退出五个模块。

具体的模块关系如表2-1:

表2-1 基本模块表

模块 简单的四

则运算 乘方开方 进制转换 求绝对值 退出

实现功能 加减乘除运算

乘方开方运算

进制转换运算

求模运算 退出程序

流程图详解:首先用户运行程序,进入开始菜单,由用户对所要进行的运算做出选择。当选择运算方式时,程序将调用对应的运算模块,对用户输入的数据进行处理,并输出结果,随后,当用户确认结果后,程序将清屏,并返回开始菜单,由用户继续进行选择。当选择退出时,程序将调用退出模块,显示“拜拜!谢谢使用哈!”,并退出程序。

图2-1 程序流程图

开始菜单

选择

减 乘除 乘方 开方 进制 转换 求绝 对值

退出

结束

3 程序结构和各模块分析

3.1菜单操作模块

3.1.1 fun1函数功能

在这个模块中,为了方便用户的使用,我们定义了一个菜单调用函数,将整个菜单尽量做到简易美观。程序开始时,由用户对所要进行的运算进行选择。3.1.2 功能实现代码

程序如下:

void fun1() /* 定义菜单调用函数*/

printf(" ***********************菜单**********************\n");

printf(" * *\n");

printf(" * 设计人:葛肪瑜*\n");

printf(" * *\n");

printf(" *************************************************\n");

printf(" * 1.加法运算*\n");

printf(" * 2.减法运算*\n");

printf(" * 3.乘法运算*\n");

printf(" * 4.除法运算*\n");

printf(" * 5.乘方运算*\n");

printf(" * 6.开平方运算*\n");

printf(" * 7.转换为2进制*\n");

printf(" * 8.转换为8进制*\n");

printf(" * 9.转换为16进制*\n");

printf(" * 10.求绝对值*\n");

printf(" * 11.退出*\n");

printf(" *************************************************\n");

printf("\n");

printf(" 输入你想要进行的运算(1~11):\n" );

printf("\n");

}

3.2 加减乘除运算模块

3.2.1 fun2函数功能

当用户的选择为1~4时,程序将调用fun2函数(加减乘除运算模块),该函数首先对用户的选项进行匹配,当匹配为1时,进行加法运算;为2时,进行减法运算;为3时,进行乘法运算;为4时,进行除法运算。最后将所得结果输出。

3.2.2 功能实现代码

算法:采用swich语句的分支机构,对用户选择的加减乘除运算进行匹配,匹配后将进行相应的运算并输出结果。

程序如下:

void fun2(float x,float y,int c) /* 定义加减乘除模块函数*/

{float z;

switch(c)

{

case 1: z=x+y;printf("输出结果为: %g+%g=%g\n",x,y,z);break; /* 进行加法运算*/

case 2: z=x-y;printf("输出结果为: %g-%g=%g\n\n",x,y,z);break; /* 进行减法运算*/

case 3: z=x*y;printf("输出结果为: %g*%g=%g\n",x,y,z);break; /* 进行乘法运算*/

case 4: if(y==0) printf(" 输入错误!"); /* 如果分母为0则输出“输入错误!”*/ else{z=x/y;printf("输出结果为:%g/%g=%g\n",x,y,z);}break; /* 进行除法运算*/ default: printf(" 输入错误!");

}

}

3.3 乘方和开方运算模块

3.3.1 fun3函数功能

当用户的选择为5或6时,程序将调用fun3函数(乘方和开方运算模块),该函数首先对用户的选项进行匹配,当匹配为5时,进行乘方运算;为6时,进行开方运算。最后将所得结果输出。

3.3.2 功能实现代码

算法:采用swich语句的分支机构,对用户选择的乘方开方运算进行匹配,匹配后将进行相应的运算并输出结果。

程序如下:

void fun3(float x,int c) /* 定义乘方开方模块函数*/

{float z;

switch(c)

{

case 5: z=x*x;printf("输出结果为: %g\n",z);break; /* 进行乘方运算*/

case 6: if(x<0) printf(" 输入错误!"); /* 如果x小于0则输出“输入错误!”*/ else{z=sqrt(x);printf("输出结果为: %g\n",z);}break; /* 进行开方运算*/ default: printf(" 输入错误!");

}

}

3.4 进制转换运算模块

3.4.1 convert函数功能

当用户的选择为7~9时,程序将调用convert函数(进制转换运算模块),该函数首先对用户的选项进行匹配,当匹配为7时,将把用户所输入的数据转换为2进制数;为8时,将把用户所输入的数据转换为8进制数;为9时,将把用户所输入的数据转换为16进制数。最后将所得结果输出。

3.4.2 功能实现代码

算法:采用swich语句的分支机构,对用户所要进行转换的进制进行匹配,匹配后将进行相应的运算并输出结果。

程序如下:

void convert(int m,int c) /* 定义进制转换模块函数*/

{char s[128];

switch(c)

{case 7: itoa(m, s, 2);printf("输出结果为: [%s]\n",s);break; /* 转换为二进制数*/

case 8: printf("输出结果为:%o\n",m);break; /* 转换为8进制数*/

case 9: printf("输出结果为:%x\n",m);break; /* 转换为16进制数*/

default: printf(" 输入错误!");

}

}

特殊函数介绍:

itoa()函数的头文件是# include ,该函数有3个参数:第一个参数是要转换的数字,第二个参数是要写入转换结果的目标字符串,第三个参数是转移数字时所用的基数。在上例中,转换基数为2,所以函数将把数据转换为二进制数。

3.5 求模运算模块

3.5.1 fun4函数功能

当用户的选择为10时,程序将调用fun4函数(求模运算模块),并将用户所输入的数据求绝对值并输出。

3.5.2 功能实现代码

算法:采用fabs()的求绝对值函数,匹配后将数据进行相应的运算并输出结果。

程序如下:

void fun4(float x) /* 定义求绝对值模块函数*/

{float z=0;

z=fabs(x); /* 进行求模运算*/

printf("输出结果为: %f\n",z);

}

3.6 退出模块

3.6.1代码功能

当用户的选择为11时,程序将调用quit函数(退出模块),该函数将终止程序,并退出当前界面。

3.6.2 功能实现代码

程序如下:

void quit() /* 定义退出程序模块函数*/

{exit (0);}

4 程序调试

4.1 操作界面

在TC环境下运行程序,进入程序主界面。首先是由用户对所要进行的运算进行选择。图4-1就显示出操作的界面。

图4-1 操作界面

4.2 加减乘除运算

运行程序,当用户的选择为1-4时,程序将根据用户所选择的运算方式进行加减乘除运算。图4-2~4-5显示了具体的操作方法及结果。

图4-2 加法运算

图4-3 减法运算

图4-4 乘法运算

图4-5 除法运算

4.3 乘方和开方运算

开启程序后,当用户的选择为5或6时,程序将根据用户所选择的运算方式进行乘方和

开方运算。图4-6和4-7显示了具体的操作方法及操作结果

图4-6 乘方运算

图4-7 开方运算

4.4 进制转换运算

运行程序,当用户的选择为7-9时,程序将根据用户所选择的运算方式把所输入的数据

分别转换为2进制、8进制和16进制数。操作方法及结果见图4-8~4-10。

图4-8 转换为二进制

图4-9 转换为八进制

图4-10 转换为十六进制

4.5 求模运算

开启程序后,当用户的选择为10时,程序将根据用户所选择的运算方式进行求绝对值的

运算。图4-11显示了具体的操作方法及操作结果

图4-11 求模运算

4.6 退出

基本操作完成之后,我们可以选择11退出程序。操作方法及结果见图4-12。

图4-12 退出

攀枝花学院本科课程设计(论文)课程设计总结

5 课程设计总结

在这次课程设计中,我基本上完成了任务,通过对各模块函数的调用和对无限循环算法的使用实现了计算器的演示过程,基本上达到了此次课程设计的要求。但是这个程序仍然有不少的问题,例如作为一个计算器它的界面还不够人性化,功能也不够丰富等,所以整个程序的功能有待进一步完善,让更多的功能得以实现。

虽然在这次的课程设计中有很多的不足,但是我也收获了很多。由于本身计算器这个课题就比较简单,涉及的知识不是很多,所以我一个人一组,、通过与同学们的交流,解决了不少长久以来困扰我的C语言问题,让我深切体会到了大家共同努力的重要性。在设计这个系统的时候,我查阅了很多相关的书籍,并通过网络解决了不少问题。通过这次课程式设计,我对TC的开发环境有了更多的认识和了解,让我对C语言的认识又加深了一步,不仅使我学会了如何查阅资料,同时也让我发现了网络这个好老师,总之收获了很多。

参考文献

[1] 谭浩强.C语言程序设计(第三版).清华大学出版社,2005;260-265,294-308。

[2] 黄明,梁旭,万洪莉.《C语言课程设计》.电子工业出版社。

[2] 谭浩强.《C语言程序设计习题解答与上机指导》.清华大学出版社。

[3] 攀枝花学院本科学生课程设计任务书。

[4] 攀枝花学院本科学生课程设计论文详细格式。

[5] C语言程序设计参考实例。

[6] C语言名题精选百则技巧篇。

[7] C语言程序设计实验指导 - c语言程序设计

[8] 程序设计基础(C语言版)

附录:源代码

/* Note:Your choice is C IDE */

#include

#include

#include

void fun1()

{ printf(" ***********************菜单**********************\n");

printf(" * *\n");

printf(" * 设计人:葛肪瑜*\n");

printf(" * *\n");

printf(" *************************************************\n");

printf(" * 1.加法运算*\n");

printf(" * 2.减法运算*\n");

printf(" * 3.乘法运算*\n");

printf(" * 4.除法运算*\n");

printf(" * 5.乘方运算*\n");

printf(" * 6.开平方运算*\n");

printf(" * 7.转换为2进制*\n");

printf(" * 8.转换为8进制*\n");

printf(" * 9.转换为16进制*\n");

printf(" * 10.求绝对值*\n");

printf(" * 11.退出*\n");

printf(" *************************************************\n");

printf("\n");

printf(" 输入你想要进行的运算(1~11):\n" );

printf("\n");

}

void fun2(float x,float y,int c) /* 定义加减乘除模块函数*/

{float z;

switch(c)

{case 1: z=x+y;printf("输出结果为: %g+%g=%g\n",x,y,z);break; /* 进行加法运算*/

case2: z=x-y;printf("输出结果为: %g-%g=%g\n\n",x,y,z);break; /* 进行减法运算*/

case 3: z=x*y;printf("输出结果为: %g*%g=%g\n",x,y,z);break; /* 进行乘法运算*/

case4: if(y==0) printf(" 输入错误!"); /* 如果分母为0则输出“enter error!”*/

else{z=x/y;printf("输出结果为:%g/%g=%g\n",x,y,z);}break; /* 进行除法运算*/

default: printf(" 输入错误!");

}

}

c语言程序设计课程计算器设计报告

课程设计说明书 题目计算器程序设计 起讫日期 2006 年 7月 3日至 2006 年 8月 6日 所在院系软件学院 专业机械+软件班级 04-2 学生姓名偶偶哦学号 指导教师 2006年 8 月日

摘要 当今社会是信息社会,科技经济高速发展的社会!为了更方便人们的工作生活和加速人们处理信息的速度,计算器应运而生。由于它体积小巧,携带方便,价格便宜,构造简单等诸多的优点成为人们生活中的必备品! 随着科技的发展计算器的种类变得更多,功能变得更强大,体积变得更小!电脑的出现改变人们的生活习惯,很多事情都可以电脑来完成!电脑的更大一个优点就是可以通过软件的应用无限的延伸电脑功能的外延!下面我们将用我们学习的c语言编写一个简易的计算器程序!实现简单的初步的计算功能! 本程序的编写基础是Tubro 汉化版,它在tubro c的原有基础上实现了多汉字的支持方便了我们的使用。生成的程序可移植性强兼容性好稳定!现在只实现了加、减、乘、除、求幂、求模,求平方根,求Sin,求Cos,求Log10,以及一个时钟原代码。这个系统是基于软件发展的生命周期来研制的,它可以直接输入数学表达式,不需要任何转换,就可以直接输出数学四则运算的结果。但是,每次只能运算一个表达式。不能运算多个表达式。在程序里面在添加一组选择函数即可。本论文主要介绍了本课题的开发背景,开发的过程和所要完成的功能。重点的说明了系统设计思想,设计的步骤、难点技术和解决方案。 关键词:C语言 Tubro c 汉化版计算器时钟

目录 第一章综述 (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)

C语言实现计算器功能

实验一多功能计算器 一、问题描述 设计一个多功能计算器,可以完成基本的计算。 设计要求: 1. 具备整型数据、浮点型数据的算术(加、减、乘、除)运算功能。依次输入第一个运算数、运算符(+,- ,* ,/ )、第二个运算数,然后输出结果。结果可以作为下一个运算的第一运算数。按’C清 屏,按’R'返回菜单。 例如:输入:2 + 5 输出:7 2. 实现单运算符表达式计算的功能。输入的操作数可以包含整数或浮点数。输入表达式如下: 例如:输入:2+5 输出:7 二、算法说明 1.数据结构说明(可以图示说明,也可以文字说明) 本程序主要根据选择菜单编写了六个自定义函数,用于在main()函数中调用,在main()中,用一个字符变量num1 来记录下菜单选项的标号,根据num1 的值来决定调用哪个函数。 程序要完成的功能及所要用到的函数如下:

使用各菜单分别调用的函数 '≡ua∩ Ξ huyun≡u an O ■> SUanShUyUnSLLan2 panduan() > bi aodashiyunsuan 0 > QirLgPing () > fanhuicaidan() 菜 I Y l - ▽ 算术运算 a 卑运篡符表达 b 清屏 C 返回菜单 E 退岀程序 t F 面是整个程序的流程图:

2?算法说明(即函数说明) Void SUa nshuyu nsua n() //做算术运算时调用的函数 Void SUanshuyunsuan2() //选择继续做算术运算调用的函数,将上次运算的结果做为下次算术运算的第一个操作数〃判断算术运算是否继续 void Pan dua n() 〃判断算术运算是否继续 void biaodashiyu nsua n() 〃单运算符表达式实现函数 void qin gpi ng() 〃清除屏幕 void fan huicaida n() // 显示菜单 三、测试结果(这部分需文字与图示结合) 1 ?第一组测试用例 (1) 测试输入: (≡ΓF;I学习\匚语言程序设计实习'实验一Ilkb II丛匚语言实验一一 测试目的:测试算术运算的功能结果输出:

C语言简易计算器的实现

目录 一.课程设计目的 (1) 二.设计环境 (1) 三.设计内容 (1) 四.设计说明 (2) 五.设计程序流程图 (2) 六.调试 (4) (1)错误原因分析一 (4) (2)语法错误 (5) (3)逻辑错误 (5) 七. 调试结果图 (6) 八. 结论与心得体会 (7) 九.附录 (8) 具体代码实现 (8) 十.参考文献 (18)

一.课程设计目的 1.通过一个学期的学习,我认为要学号C语言程序这门课程,不仅要认真阅读课本知识,更重要的是要通过上机实践来巩固我 们的知识,特别是学计算机专业的,我们更应该注重这一环节, 只有这样我们才能成为一个合格的计算机人才。通过这一个课程 设计,进一步来巩固所学的语句,如:循环,和分支结构的运用。还要熟悉四则运算和函数的算法。 2.通过这次课程设计扩展自己的知识面,课本上的东西是远 远不够的,可以通过上网或去图书馆查资料等方式得到一些新的 知识, 3.通过课程设计,加深对课程化设计思想的理解,能进行一 个系统功能分析,并设计一个合理的模块化结构,提高程序开发 能力。 二.设计环境 1.硬件:一台完整的电脑,包括键盘、鼠标,最小硬盘空间1GHz 2.软件:安装有Microsoft visual c++6.0 三.设计内容 以简易计算器为例,通过对简单应用软件计算器的设计,编制、调试,实现

简单的加,减,乘,除等运算,以学习应用MFC库类编写对话框的原理,加深对C++类的学习及应用。 (1)定义一个结构体类型数组,输入0~9及+、--、*等符号的信息,将其信息存入文件中; (2)输入简单的加减乘除算术计算式,并在屏幕上显示计算结果; (3)画出部分模块的流程图; (4)编写代码; (5)程序分析与调试。 四.设计说明 1)包含的功能有:加、减、乘、除运算,开方、平方等功能。 (2)计算器上数字0—9为一个控件数组,加、减、乘、除为一个控件数组,其余为单一的控件。 (3)输入的原始数据、运算中间数据和结果都显示在窗口顶部的同一个标签中。 (4)计算功能基本上是用系统内部函数。 (5)程序可以能自动判断输入数据的正确性,保证不出现多于一个小数点、以0开头等不正常现象。 (6)“CE”按钮可以清除所有已输入的数据从头计算 五.设计程序流程图

C语言课程设计 简单计算器程序

课程设计名称:C语言课程设计课程设计题目:简单计算器程序

目录 第1章需求分析 (1) 1.1设计要求 (1) 1.2任务 (1) 第2章总体设计 (2) 2.1设计简介及设计方案论述 (2) 2.2功能模块层次图 (2) 第3章详细设计 (3) 3.3由(后缀)逆波兰表达式计算中缀表达式原理 (8) 3.3.1算法描述 (8) 第4章调试分析 (10) 4.1程序设计中所遇到的错误及犯错的原因 (10) 4.2错误的解决方法 (10) 第5章用户手册 (11) 总结 (15) 参考文献 (16) 附录(程序清单) (17)

第1章需求分析 1.1 设计要求 (1)用 C 语言数据结构实现程序设计; (2)利用结构体、栈、进行相关信息处理; (2)系统的各个功能模块要求用函数的形式实现; (4)界面简单,可操作性高。 1.2任务 (1)定义一个结构体类型数组,输入0~9 及+、--、*等符号的信息,将其信息存储起来; (2)输入简单的加减乘除算术计算式,并在屏幕上显示逆波兰(后缀式)表达式和计算结果; (3)编写代码; (4)程序分析与调试。 说明: 本课程设计将实现一个简单计算器。在功能上尽量模仿windows 的计算器。系统界面不做牵制要求。该程序能实现标准型中+、-、*、/、(、)、.、的混合运算表达式(一般意义上的中缀表达式),将其转换成逆序波兰表达式(后缀表达式)并计算输出结果。在进行运算后可以选择继续运算或者结束当前运算。即时准确地获得需要的计算的结果,充分降低了数字计算的难度和节约了时间,对人们的生活有一定的帮助。

第2章 总体设计 2.1设计简介及设计方案论述 逆波兰表达式又叫做后缀表达式。在通常的表达式中,二元运算符总是置于与之相 关的两个运算对象之间,所以,这种表示法也称为中缀表达式。波兰逻辑学家 J.Lukasiewicz 于 1929 年提出了另一种表示表达式的方法。按此方法,每一运算符都置 于其运算对象之后,故称为后缀表达式。 后缀表达式的优点是显而易见的, 编译器在处理时候按照从左至右的顺序读取逆波 兰表达式,遇到运算对象直接压入堆栈,遇到运算符就从堆栈提取后进的两个对象进行计算,这个过程正好符合了计算机计算的原理。后缀表达式比前缀表达式更加易于转换,并且它的最左面一定为数字,这一点在实 际编程的时候就会体会到它的好处了。 逆波兰表达式有一个更大的优点,就是拆括号,根据运算符的级别将中缀表达式转 换成逆波兰表达式后,运算顺序就已经替代了运算符的级别,这样也避免了括号提高运 算级别的特殊处理。 2.2功能模块层次图 将算术表达式转化为逆波兰表达式 计算逆波兰表达式的值 简单计算器 表 达 式 格 式 转 换 系统 求 值 计 算 系 统

c语言计算器源代码

c语言计算器源代码 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

#i n c l u d e<> #include<> #include<> #definemaxsize100 typedefdoubledatatype1; typedefchardatatype2; typedefstructstack1 { datatype1data1[maxsize]; inttop1; /*栈顶元素*/ }seqstack1,*pseqstack1;/*顺序栈*/ typedefstructstack2 { datatype2data2[maxsize]; inttop2; /*栈顶元素*/ }seqstack2,*pseqstack2;/*顺序栈*/ /*栈的初始化*/ pseqstack1init_seqstack1(void) { pseqstack1S; S=(pseqstack1)malloc(sizeof(pseqstack1)); if(S) S->top1=-1; returnS; } pseqstack2init_seqstack2(void) { pseqstack2S; S=(pseqstack2)malloc(sizeof(pseqstack2)); if(S) S->top2=-1; returnS; } /*判断栈空*/ intempty_seqstack1(pseqstack1S)

if(S->top1==-1) return1; else return0; } intempty_seqstack2(pseqstack2S) { if(S->top2==-1) return1; else return0; } /*X入栈*/ intpush_seqstack1(pseqstack1S,datatype1X) { if(S->top1==maxsize-1) { printf("栈满,无法入栈!\n"); return0; } else { S->top1++; S->data1[S->top1]=X; return1; } } intpush_seqstack2(pseqstack2S,datatype2X) { if(S->top2==maxsize-1) { printf("栈满,无法入栈!\n"); return0; } else { S->top2++; S->data2[S->top2]=X; return1; }

速算,简易计算器c语言代码,可实现加减乘除

#include"stdio.h" #include"math.h" #include"stdlib.h" struct optrstyle { int top; char stack[20]; } struct opndstyle { int top; int stack[20]; } void main() { char ch; while(1) { printf("-----------------------------------------\n"); printf("|-----------欢迎来到速算24--------------|\n"); printf("|----------是否开始游戏?????------------|\n"); printf("|--------- 开始游戏请按'Y'-------------|\n"); printf("|--------- 退出游戏请按其他键-------------|\n"); printf("-----------------------------------------\n"); scanf("%c",&ch); if(ch=='Y' or ch=='y') { } else break; } } int EvaluateExpression() { // 算术表达式求值的算符优先算法。设OPTR 和OPND 分别为运算符栈和运算数栈,OP 为运算符集合。 InitStack(OPTR); Push(OPTR,'#'); InitStack(OPND); c = getchar(); while(c!='#' || GetTop(OPTR)!='#') { if(!In(c,OP))

C语言课程设计计算器图形界面

C语言课程设计计算器图形界面

扬州大学 C语言课程设计报告 题目一个简易计算器的设计与实现 班级 学号 姓名 指导教师 成绩 老师评语: 扬州大学信息工程学院 年 6 月 25 目录

一、程序设计目的: (1) 二、程序设计内容: (1) 三、课程设计所补充的内容:补充的函数或算法…………3,4 四、系统总体设计 (4) 五、系统详细设计………………………………………5,6,7,8 六、运行结果………………………………………………8,9,10 七、系统调试…………………………………………8,9,10,11 八、课程设计体会总结………………………………8,9,10,11 1 课程设计目的 (1).课程设计是一项综合性实践环节,是对平时实验的一个补充,课程设计内容包括课程的主要理论知识,但由于C语言对初学者较难掌握,因而对一个完整的C语言程序不适合平时实验。

经过课程设计能够达到综合设计C语言程序的目的。 (2)经过本课程设计,能够培养独立思考,综合运用所学有关相应知识的能力,能更好地使用C语言的知识,更好地了解C语言的好处和其可用性!掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级程序设计能力。为后续各门计算机课程的学习和毕业设计打下坚实基础! (3)经过本程序训练程序设计的基本技能,掌握字符串的表示方法和字符串函数的功能、自学掌握四则运算的算法及WIN-TC的图形操作的基本知识、键盘上特殊键的获取及图形方式下光标的显示。 2 课程设计内容 目的:本课程的课程设计要求学生模拟实现一个简单计算器,要求(1)能够实现四则运算,并能支持优先级运算。(2)三角与反三角运算:如sinx,cosx等。(3)指数对数运算:如log (x),lnx,e的x次方等。(4)其它运算:如X!,x的累加等。(4)不允许调用库函数,使用自行开发的程序实现常见函数运算。(5)进一步考虑计算器外观设计,用可视化界面给出计算器外观、功能按键及输入界面。 使用说明:执行加法运算,'—'表示执行减法运算,表示执行乘法运算,'/'表示除法运算.‘Q’表示退出计算器‘C’表示清零,’=’表示得出结果'^'表示执行x的y次方,'e'表示执行e的x次方操

大学计算机c语言计算器源代码

C++语言编写。。 #include #include #include using namespace std; const double pi = 3.14159265; const double e = 2.718281828459; const int SIZE = 1000; typedef struct node//为了处理符号而建立的链表(如: 1+(-2)) { char data; node *next; }node; typedef struct stack_num//存储数的栈 { double *top; double *base; }stack_num; typedef struct stack_char//存储运算符号的栈 { char *top;

char *base; }stack_char; stack_num S_num;//定义 stack_char S_char;//定义 char fu[18] = {'\n', ')', '+', '-', '*', '/', '%', '^', 'Q', 'L', 'C', 'S', 'T', 'c', 's', 't', '('}; int compare[1000];//表现出各运算符号的优先级 double shu[1000];//存储"数"的数组 double dai_result;//运算的结果,是为了处理M运算(简介函数里有M的定义) int biao = 0;//和dia_result一样,为了处理M运算 char line[SIZE];//输入的所要计算的表达式 void init()//初始化 { compare[fu[0]] = -2;//用数字的大小表现出符号的优先级 compare[fu[1]] = -1; compare[fu[2]] = 2; compare[fu[3]] = 2; compare[fu[4]] = 4; compare[fu[5]] = 4; compare[fu[6]] = 4;

C编写简易计算器附源代码超详细

超详细 一、因为计算器设计的控件太多,不便使用控制台应用程序完成,所以这里 使用Windows窗体应用程序,并命名为Calc,如下图所示: 二、向窗体中拖入需要的控件,如下图所示: (完成效果图) 结果显示区(作者博客左边的文本框)是TextBox控件,并修改其name为txtShow,按键0~9为Button控件,并将其name分别修改为btn_0、btn_1、btn_2、btn_3、btn_4、btn_5、btn_6、btn_7、btn_8、btn_9;按键【负数】的name值修改为btn_sign,按键【.】的name修改为btn_dot,按键【+-*/】的name值分别修改为btn_add、btn_sub、btn_mul、btn_div,按键【=】的name值修改为btn_equ,按键【倒数】的name值修改为btn_rev,按键【平方】的name值修改为btn_sqr,按键【开方】的name值修改为btn_sqrt。右边的计算器图片空间是PictureBox,作者博客控件是LinkLabel,可以不添加,以上所有控件均可按照需求添加,只保留自己需要的按钮控件和textbox控件即可。 三、代码部分(含解释),采用switch多分支语句编写 using System; using System.Drawing; using System.Collections; using https://www.docsj.com/doc/9e11562587.html,ponentModel; using using System.Data; namespace Calc { ///

///温柔一刀C#简易计算器的实现 /// publicclass CalcForm:Form { private Button btn_0; private Button btn_1; private Button btn_2; private Button btn_3;

C语言简单计算器的编写课程设计

C语言简单计算器的编 写课程设计 IMB standardization office【IMB 5AB- IMBK 08- IMB 2C】

2013-2014学年第二学期 《高级语言程序设计》 课程设计报告 题目:简单计算器 专业:数字媒体技术 班级:13级1班 姓名:邢洪波 指导教 师:王辉 成绩: 计算机与信息工程系 二0一四年二月二十日 1设计内容及要求 利用本学期所学的《C语言程序设计》课程,运用相关知识,查阅相关资料,编写C语言程序,设计一个简单计算器,要求编写的简单计算器能够模拟windows系统的计算器,用户能够用键盘输入

相关数据,能够进行简单的加、减、乘、除运算,并且在程序运行过程中能够正常的退出程序。 在计算器程序运行中,输入数据时如果遇到输入错误的情况,能够能过键盘上的退格键进行删除,并且重新输入正确的数据。在数据输入完成后,如果需要放弃本次计算操作,可以利用程序中设置好的按键进行清零,并为下一次运算作准备。 运用相关知识,查阅相关资料,编写一个简单的计算器,能够实现简单的基本的加减乘除运算,在计算器工作时用户能利用键盘或鼠标进行相应操作。程序基本功能要求实现完整,并有简单的验证。程序还 须有符合标准的程序设计报告。

2概要设计 系统流程图 系统流程图主要功能表

3设计过程或程序代码 #include<> #include<> #include<>/*malloc的头文件代表在内存中开辟存储空间*/ doublejisuan(chara[]) { inti=1,j,k,m,cnt=0,t1=0,t2=0,t3=0;/*定义整型变量 i,j,k,m,n,cnt,t1,t2,t3*/ charnibo[50],zhan2[50];/*定义字符型数组*/ doublex,n,l,z=0,zhan3[50];/*定义双精度变量x,n,l,z,zhan3[50]*/ typedefstruct/*表示可以用con定义结构体变量*/ { doubled1; intd2; }dd; typedefstruct { dddata[50]; inttop; }zhan1; zhan1*shu;/*定义指针变量*/ shu=(zhan1*)malloc(sizeof(zhan1)); shu->top=0; while(a[i]!='\0')/*外循环是用while语句*/ {

简易计算器设计-msp430-C语言

简易计算器

目录 摘要…………………………………………………………………………………P3 关键字………………………………………………………………………………P3 一、设计要求………………………………………………………………………P3 二、方案论证与选择………………………………………………………………P3 2.1 单片机选择………………………………………………………………P3 2.2 LCD显示屏选择…………………………………………………………P3 2.3 键盘选择…………………………………………………………………P4 2.4 CPU工作方式选择………………………………………………………P4 三、系统实现………………………………………………………………………P4 3.1 硬件设计…………………………………………………………………P4 3.1.1系统框图……………………………………………………………P4 3.1.2 盘的电平设计以及与单片机的连接 键……………………………P5 3.2.3单片机与显示器的连接…………………………………………… P5 3.2软件设计…………………………………………………………………… P6 四、作品性能测试与分析…………………………………………………………P10 4.1试性能概览………………………………………………………………P10 4.2误差分析…………………………………………………………………P12

五、参考文献………………………………………………………………………P12 六、附录……………………………………………………………………………P13 6.1计算器功能介绍…………………………………………………………P13 6.2仿真电路图………………………………………………………………P13 6.3元件清单…………………………………………………………………P13 6.4原程序代码………………………………………………………………P14 摘要:本设计以低功耗单片机MSP430V136T、1602字符型液晶屏和4*4简易键盘为主要器件,来实现加、减、乘、除、开根号、平方、求倒数等运算。设计中分别采用P1口低4位和P2口低4位与键盘的行列线相连,用于采集中断信号并分析键值;键盘规格为4*4,由于所需的功能键数大于16,因此需要进行按键复用;单片机的P3口连接显示器的D0~D7端,用于输出显示数据或控制命令;选用P4口中的3、4和5口用于实现显示屏的控制功能:使能、控制/数

C语言制作简单计算器

C语言制作简单计算器 一、项目介绍 我们要用c语言做一个简单的计算器,进行加、减、乘、除操作。本程序涉及的所有数学知识都很简单,但输入过程会增加复杂性。我们需要检查输入,确保用户没有要求计算机完成不可能的任务。还必须允许用户一次输入一个计算式,例如:32.4+32 或者9*3.2 项目效果图 编写这个程序的步骤如下: ?获得用户要求计算机执行计算所需的输入。 ?检查输入,确保输入可以理解。 ?执行计算。 ?显示结果。 三、解决方案 1.步骤1

获得用户输入是很简单的,可以使用printf()和scanf()。下面是读取用户输入的程序代码: #includeint main(){ double number1=0.0; //定义第一个操作值 double number2=0.0; //定义第二个操作值 char operation=0; //operation必须是'+''-''*''/'或'%' printf("\nEnter the calculation\n"); scanf("%lf%c%lf",&number1,&operation,&number2); return0; } 2.步骤2 接着,检查输入是否正确。最明显的检查是要执行的操作是否有效。有效的操作有+、-、*、/和%,所以需要检查输入的操作是否是其中的一个。 还需要检查第二个数字,如果操作是/或者%,第二个数字就不能是0。如果右操作数是0,这些操作就是无效的。这些操作都可以用if语句来完成,switch语句则为此提供了一种更好的方式,因此它比一系列if语句更容易理解。 switch(operation) { case'+': printf("=%lf\n",number1+number2); break; case'-': printf("=%lf\n",number1-number2); break; case'*': printf("=%lf\n",number1*number2); break; case'/': if(number2==0) printf("\n\n\aDavision by zero error!\n"); else printf("=%lf\n",number1/number2); break;

简易计算器C语言代码

简易四则运算计算器 计算机工具地历史而言,中国古代最早采用地一种计算工具叫筹策,又叫做算筹,这种算筹多用竹子制成,也有用木头,兽骨充当材料的,大约270枚一束,放在布袋里可随身携带。直到今天仍在使用的住算盘,是中国古代计算工具领域中的另一项发明明代时的住算盘已经与现代的住算盘几乎相同。 17世纪初,西方国家的计算工具有了较大的发展。英国数学家纳尔发现了“纳皮尔算筹”;英国牧师奥却德发明了圆柱形对数计算尺,这种计算尺不仅能做加减乘涂,乘方和开方运算,甚至可以计算三角函数,指数函数和对数函数。这些计算工具不仅带动了计算的发展,也为现代计算器发展尊定了良好的基础,成为现代社会应用广泛的计算工具,如手机,操作系统上附带的多功能计算器。 项目设计目的 掌握模块的划分; 掌握结构体定义; 掌握栈的操作; 掌握函数的定义; 掌握栈的基本操作; 掌握VC的基本绘图库; 掌握鼠标的响应操作; 目设计内容 设计一个含有界面的计算器,输入一个包含括号的表达式,使用栈数据类型实现整数的四则运算操作,开方运算。 项目设计要求 根据分析,系统要求实现以下几点基本功能: 可通过按钮输入数字、运算符; 能通过按钮实现退格、清除功能; 实现加、减、乘、除、开方运算功能; 实现括号运算; 显示运算结果; 良好的交互界面。

项目详细设计 功能模块图 根据系统功能要求,主要含有四大模块,分别是计算器界面设计模块、计算器按键控制模块、四则混合运算模块、计算器记忆处理模块。 计算器界面设计模块:调用VC图形系统函数和字符函数画出计算器的界面,包括24个按钮和一个文本输入框。 计算机按键控制模块:计算器通过键盘按键值的判断,执行相应的操作,如接收数字输入等。 计算器计算处理模块。计算处理模块主要完成可以包括括号的表达式运算,运算包括加,减,乘,除、开方。计算处理模块在按键控制模块中被调用执行。处理模块是通过栈来实现的,分别定义了两个顺序栈,一个用来存放操作符栈,一个用来存放操作数栈。 计算器记忆处理模块。记忆处理模块使计算其具有记忆功能。记忆当前输入的表达式,给出一个最后的运算结果。可以清楚部分或全部记忆的值。 图简易计算器模块图 数据结构 该系统主要的数据有操作符集,用一维数组存放;存放操作符的优先级关系集,操作符的优先级关系用一个二维数组来体现;另外定义两个栈,一个用来存放操作符,一个用来存放操作数。 char ops[7]={'+','-','*','/','(',')','#'}; int cmp[7][7]={ {2,2,1,1,1,2,2}, {2,2,1,1,1,2,2}, {2,2,2,2,1,2,2}, {2,2,2,2,1,2,2}, {1,1,1,1,1,3,0}, {2,2,2,2,0,2,2}, {1,1,1,1,1,0,3}}; typedef struct { char elem[Stack_Size]; int top; }SeqStack; typedef struct { int elem[Stack_Size]; int top; }SeqStackOperand;

C语言课程设计--计算器(图形界面)

扬州大 学 题目一个简易计算器的设计与实现 班级 学号 姓名 指导教师 成绩 老师评语: 扬州大学信息工程学院 2010 年6 月25

目录 一、程序设计目的: (1) 二、程序设计内容: (1) 三、课程设计所补充的内容:补充的函数或算法…………3,4 四、系统总体设计 (4) 五、系统详细设计………………………………………5,6,7,8 六、运行结果………………………………………………8,9,10 七、系统调试…………………………………………8,9,10,11 八、课程设计体会总结………………………………8,9,10,11

1 课程设计目的 (1).课程设计是一项综合性实践环节,是对平时实验的一个补充,课程设计内容包括课程的主要理论知识,但由于C语言对初学者较难掌握,因而对一个完整的C语言程序不适合平时实验。通过课程设计可以达到综合设计C语言程序的目的。 (2)通过本课程设计,可以培养独立思考,综合运用所学有关相应知识的能力,能更好地使用C语言的知识,更好地了解C语言的好处和其可用性!掌握基本的程序设计过程和技巧,掌握基本的分析问题和利用计算机求解问题的能力,具备初步的高级程序设计能力。为后续各门计算机课程的学习和毕业设计打下坚实基础! (3)通过本程序训练程序设计的基本技能,掌握字符串的表示方法和字符串函数的功能、自学掌握四则运算的算法及WIN-TC的图形操作的基本知识、键盘上特殊键的获取及图形方式下光标的显示。 2 课程设计内容 目的:本课程的课程设计要求学生模拟实现一个简单计算器,要求(1)能够实现四则运算,并能支持优先级运算。(2)三角与反三角运算:如sinx,cosx等。(3)指数对数运算:如log(x),lnx,e的x次方等。(4)其他运算:如X!,x 的累加等。(4)不允许调用库函数,使用自行开发的程序实现常用函数运算。(5)进一步考虑计算器外观设计,用可视化界面给出计算器外观、功能按键及输入界面。 使用说明:执行加法运算,'—'表示执行减法运算,表示执行乘法运算,'/'表示除法运算.‘Q’表示退出计算器‘C’表示清零,’=’表示得出结果'^'表示执行x的y次方,'e'表示执行e的x次方操作,'&'表示执行累加操作.,你可以可以用键盘上的上下左右键对光标进行移动,当光标移动到计算器按键上时,按ENTER即可执行该键的操作!最后按“=”则可得出结果。 3 课题设计的补充知识 本程序通过int specialkey(void)和#include来实现对屏幕的操作,通过调用int arrow()函数,int specialkey(void)和#include来实现对光标的操作。计算机图形采用Turbo C 2.0绘图程序制作。因此涉及C的图形程序设计知识。此外,由于不允许调用库函数,则要自行开发程序实现sinx,cosx,e的x次方函数运算,则可以根据幂级数的展开式来设计实现其运算的算法,而x的阶乘和x的累加则可用for语句来实现。 最后,不得不说说四则运算的算法,有两种方法可以实现:(1)利用堆栈实现四则运算(2)还可以用递归整数的四则运算。 sinx函数 #include

(完整word版)C语言简易计算器课程设计.doc

C语言课程设计报告书题目:简易计算器 院系: 班级: 学号: 姓名:

摘要 该软件为用户提供在windows 系统上的简易计算器,能进行简单的加、减、 乘、除四则运算与混合运算。目的是为了巩固和加深 C 语言课程的基本知识的理 解和掌握,利用 C语言进行基本的软件设计,掌握 C 语言的编程和程序调试 的基本技能,掌握书写程序设计说明文档的能力,提高运用 C 语言解决实际问 题的能力。 关键词: C; 简易计算器 ; 程序 ; 基本算法;混合运算 SUMMARY the software provides a simple calculator in Windows system for users ,can be a simple add,subtract,multiply,divide.The purpose is to consolidate and deepen the basic knowledge of C language courses to understand and master, The use of C language for software design basic, To master the basic skills of C language programming and program debugging, Master the writing program design documentation ability,improve the ability to use C language to solve practical problems.

单片机C语言简易计算器

课程设计报告 课程名称单片机原理及应用设计题目简易计算器设计专业班级 姓名 学号

1.项目概述 中国古代最早采用的一种计算工具叫算筹。这种算筹多用竹子制成,也有用木头,兽骨充当材料的。约二百七十枚一束,放在布袋里可以随身携带。17世纪初,西方国家的计算工具有了较大的发展,英国数学家纳皮尔发明的“纳皮尔算筹”,英国牧师奥却德发明了圆柱形对数计算尺,这种计算尺不仅能做加减乘除,乘方,开方运算,甚至可以计算三角函数,指数函数和对数函数,这些计算工具不仅带动了计算器的发展,也为现代计算器发展奠定了良好的基础,成为现代社会应用广泛的计算工具。 2.项目要求 基于AT89C51单片机的简易计算器,设计要求如下: (1)计算器至少能正常显示8位数。 (2)开机时,显示“0” (3)计算器能对整数进行简单的加减乘除四则运算,在做除法时能自动舍去小数部分 (4)运算结果超过可显示的位数时能进行出错提示。 3.小组人员组成及分工

4.系统设计1.框图设计 显示 录入 5.硬件设计 (1)电路原理图: AT89C51 八位七段数码管 按键录入模 块(0-9 +-*/=c)

(2)元件清单: 6.软件设计(1)算法流程图: 主函数

显示函数 按键函数

(2)程序清单: #include /***按键程序***/ char keyscan(); /***显示程序***/ void display(); char dsp[9]={0,0,12,12,12,12,12,12,12}; //初始化显示数组 /***计算程序***/ void calculate(char k,char c1[8],char c2[8]); /***片选***/ unsigned char code Select[]= {0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80}; /***码选***/ unsigned char code LED_CODES[]= {0xC0,0xF9,0xA4,0xB0,0x99, //0-4 0x92,0x82,0xF8,0x80,0x90, //5-9 0x86,0xAF,0xFF,0x7F,0xBF,}; //E,r,空格,.,- /***main函数***/ void main(void) { char i,j,k,c; char a[8],b[8]; /***定时1ms***/ TMOD=0; //TL0=-(1000/256); //TH0=-(1000%256); EA = 1; //总中断开关

C语言_程序设计_计算器

C语言_程序设计_计算器 课程设计说明书 题目多功能计算器起讫日期 2006 年 7月 3日至 2006 年 8月 6日 所在院系 专业班级 学生姓名学号 指导教师 2006年 8 月 1 日 摘要 当今社会,随着人们物质生活的不断提高,电子产品已经走进家家户户,无论是生活和学习还是娱乐和消遣几乎样样都离不开电子产品,计算器可谓是我们最亲密的电子伙伴之一。 随着科技的发展,人们对计算要求的精确度越来越高,各种不同功能的计算器已经悄悄走进我们的生活和学习中。对于学生来说一个功能齐全的计算器对我们的学习有着莫大的帮助。借着C语言程序设计的机会,我决定自己动手来研究一下计算器。在练习巩固C语言学习的同时又可以从中体会到计算器的强大功能,然而由于学习的内容和时间有限,至今为止我只能实现四则运算加、减、乘、除、平方、立方和开方的一些简单功能,并且在计算器的里面加了一个漂亮的时钟,用来方便我们的学习。在今后的学习中,我会继续研究,争取进一步来完善它的功能。 本系统采用Turbo C语言开发,生成可执行文件在任何系统下都可以执行,具有很好的数据处理能力和稳定性。本论文主要介绍了该课题的开发背景以及过程和

所要完成的功能。并且重点的说明了系统设计思想,设计的步骤、难点技术和解决方案。由于“初来乍到”,这个程序设计还有一些漏洞和缺陷,希望您多多提出~关键字:Turbo c c语言计算器程序四则数值运算 目录 第一章综述...........................................................................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 运行Turbo C程序进入计算器界面…………………………………8 5(2 计算器的使

c 面向对象程序设计MFC简单计算器实验报告

计算机与信息工程学院 《程序设计基础》课程设计报告 题目名称:60.编写一个能实现简单功能的计算器学生姓名:刘沛东 学生学号:54 专业班级:电子信息工程(1)班 指导教师:高攀

1 课程设计的题目 编写一个能实现简单功能的计算器 2 题目要求 1. 有一个计算器图形。 2. 能实现加、减、乘、除及乘方的运算。 3. 当输入题目时,屏幕上要在指定位置上显示出相应的题目内容,且相应的数字键要改变颜色 例如:输入数字1 时,在计算器图形上的1键变为红色。 4. 屏幕、图形颜色、形状自定 3 总体设计 总体框架 图1 系统框架

系统功能说明 在VC++中绘制计算器界面,各控件的设置 对0~9控件设定相应的ID和其他属性: 图2 “1”控件设置 对“+、-、*、\”控件设定相应的ID和其他属性: 图2 “+”控件设置 对其它控件设定相应的ID和其他属性: 图3 其它控件设置

主要使用到Layout菜单中的Align功能对各个按钮进行对其,使界面更加整洁。拖出的控件有上面的一个Edit控件用于显示数字,Button控件用于处理鼠标的消息。 4 程序详细设计 系统主调模块 图5 程序流程图

各模块详细设计 建立的变量,控件的命名,对应的消息处理函数对应表 double poz; 按钮的处理函数 void CCalcDlg::OnPt() { point_flag=TRUE; && buffer[i+1]==0)之前那位 }

m_Dis=strtod(buffer,NULL);整个大的程序的实现分8个功能,每个功能都通过一个相应的函数来实现.在调试时分别进行调试,使得调试更方便些.在编写各个函数只是按着题目要求的去完成,后来经指导老师指导后,发现了很多自己欠缺的地方,又一次将程序整体进行调试.最后把程序完善了许多。 本次MFC计算器的制作,学习到了MFC基本的编程方法。对OOP编程的理解进一步加深。但是程序仍然存在一定的问题,比如除数不能为0的Exception handle,符号键多次点击结果混乱。通过这次课程设计,以后Windows 应用程序势必会轻车熟路。 参考书目: [1]谭浩强,《C++程序设计》,北京,清华大学出版社,2006年。[2]孙鑫《深入浅出MFC》,视频教程。 [3]《Visual_C++MFC入门教程》,电子版。

相关文档