1、编号: 课程设计说明书题 目: 简单计算器 院 (系): 信息和通信学院 专 业: 信息对抗 学生姓名: 孙浩宇 刘剑 学 号: 指导老师: 马杰 12 月 4 日1. 题目和要求11.1 课程设计目标11.2本系统包含知识点11.3功效要求12 课程设计基础过程12.1 功效需求13. 总体设计13.1 系统模块机构框图13.2 功效模块框图23.3 系统步骤图33.4 界面设计44.具体设计54.1 模块描述54.2 系统头文件54.3 函数申明55.程序测试126.设计总结126.1 谢辞126.2 参考文件121. 题目和要求1.1 课程设计目标(1)巩固和加深C语言课程基础知识了解和
2、掌握(2)掌握C语言编程和程序调试基础技能(3)利用C语言进行基础软件设计(4)掌握书写程序设计说明文档能力(5)提升利用C语言处理实际问题能力1.2 本系统包含知识点Goto loop循环 switch选择语句嵌套return退出语句格式化输入和输出If判定语句 函数调用2. 课程设计基础过程课程设计基础过程包含5个步骤,即功效需求,总体设计,具体设计,程序测试,结论。每个步骤全部有其特定任务。2.1 功效需求功效概述:该软件为用户提供一个在windows系统上运行简单计算器,能进行简单加、减、乘、除四则运算和部分常见特殊运算,包含余弦运算、正弦运算、正切运算、绝对值、平方根运算、以e为底指
3、数运算、以10为底对数运算。3 总体设计3.1 系统模块机构框图简单计算器数 学 计 算退 出 程 序显 示 界 面3.2功效模块框图简单计算器四则运算退出程序特殊运算加法运算减法运算乘法运算除法运算余弦运算正弦运算正切运算求绝对值求平方根以e为底指数运算以10为底对数运算3.3系统步骤图NN结束是否继续?显示结果进行运算选择需要进行运算类型输入数字选择要进行运算符号Y开始Y3.4界面设计系统主界面四则运算界面特殊运算界面4. 具体设计基于系统需求分析和系统总体设计结论,本系统采取Visual C+实现各模块功效。下面根据模块划分来分别叙述系统具体设计和实现过程。4.1 模块描述(1)显示界面
4、模块为系统提供类似于菜单功效,让用户输入要操作运算类型数字代码,并进入对应功效实施程序,显示对应界面。(2)数学计算模块中,依据用户选择运算类型和运算符号,自动调用对应函数,运行相关程序,进行计算,并显示结果。(3)退出程序模块。依据用户需要,选择是否退出程序。4.2系统头文件#include /* I/Q函数 */#include /* 数学函数定义 */#include /*屏幕操作函数*/#include /*库函数*/int size(); /*函数定义*/double teshu();4.3函数申明(1)主函数main()功效:计算器功效选择界面输入:用户输入运算类型、退出程序对应数
5、字代码(1 四则运算,2 特殊运算,3 退出程序)处理: 依据用户输入数字代码,跳转到相关功效函数输出:显示对应界面或退出程序程序清单(a)void main()char h;int a;double b;doprintf( 简单计算器 n);printf(*n);printf( 请输入要进行运算 n);printf(-n);printf( 1 四则运算 n);printf( 2 特殊运算 n);printf( 3 退出程序 n);h=getche();switch(h) /*判定用户想要进行操作*/case1: /*输入1则调用四则运算函数*/ a=size(); printf(结果是: %
6、d,a);break;case2: /*输入2则调用特殊运算函数*/b=teshu();printf(结果是:%f,b);break;case3: /*输入3则退出程序*/break;while(h!=3);(2)自定义函数size()功效:进行简单加、减、乘、除四则运算输入:用户输入要计算数字和运算符号(+、-、* 、/)处理:依据用户输入运算符号,跳转到相关运算函数,并调用输出:运算结果和是否需要继续运算(y/n)程序清单(b)int size() /*定义四则(size)运算函数*/int n,m;int c;char l;int d;doprintf(n请输入第一个要计算数并按Ente
7、r结束:);scanf(%d,&m); printf(n请输入第二个要计算数并按Enter结束:);scanf(%d,&n);printf(n请选择运算符号t+t-t*t/t:);l=getche(); /*得到运算符号*/switch(l)case+: /*加法运算*/c=m+n;printf(nnt结果是 %dn,c);printf(n);break;case-: /*减法运算*/c=m-n;printf(nnt结果是 %dn,c);printf(n);break; case*: /*乘法运算*/c=m*n;printf(nnt结果是 %dn,c);printf(n);break;case
8、/: /*除法运算*/c=m/n;printf(nnt结果是 %dn,c);printf(n);break;for(d=0;d=999999;d+)printf(t 是否继续?(y/n):); /*是否继续运算*/l=getche(); /*得到输入值*/printf(n);if(l=y) /*假如得到是y,则反复运算步骤,达成无限运算作用*/printf(n请输入下一个要计算数并按Enter结束:);scanf(%d,&n);printf(n请选择运算符号t+t-t*t/t:);l=getche();switch(l)case+: /*加法运算*/c=c+n; printf(nnt结果是 %
9、dn,c);printf(n);break;case-: /*减法运算*/c=c-n;printf(nnt结果是 %dn,c);printf(n);break;case*: /*乘法运算*/ c=c*n;printf(nnt结果是 %dn,c);printf(n);break; case/: /*除法运算*/ c=c/n;printf(nnt结果是 %dn,c);printf(n);break;elseexit(l); /*假如得到是n,则退出程序*/while(l!=n);return(c); /*返回值*/(3)自定义函数teshu()功效:进行部分特殊运算(余弦运算、正弦运算、正切运算、
10、绝对值、平方根运算、以e为底指数运算、以10为底对数运算)输入:用户输入要计算数字和特殊运算方法数字代码(1 余弦,2 正弦,3 正切,4 绝对值,5 平方根,6 以e为底指数,7 以10为底对数)处理:依据用户输入数字代码,跳转到相关运算函数程序输出:运算结果和是否需要继续运算(y/n)程序清单(c)double teshu() /*定义(teshu)特殊运算函数*/double y;int n,m;char p;printf(-请选择特殊运算类型-);printf( 1 余弦 2 正弦 3 正切 4 绝对值 n);printf( 5平方根 6 以e为底指数 7 以10为底对数 n);pri
11、ntf(n请输入您要计算数并按Enter结束: );scanf(%d,&m); /*得到要进行运算数*/printf(n请选择您要做运算类型: );n=getche(); /*得到要做运算*/ doswitch(n)case1:y=cos(m); /*余弦函数*/printf(nnt结果是: %fn,y);printf(n);break;case2:y=sin(m); /*正弦函数*/ printf(nnt结果是: %fn,y);printf(n);break;case3:y=tan(m); /*正切函数*/ printf(nnt结果是: %fn,y);printf(n);break;case
12、4:y=fabs(m); /*绝对值函数*/ printf(nnt结果是: %fn,y);printf(n);break;case5:y=sqrt(m); /*平方根函数*/ printf(nnt结果是: %fn,y);printf(n);break;case6:y=exp(m); /*底数为e指数函数*/ printf(nnt结果是: %fn,y);printf(n);break;case7:y=log10(m); /*底数为10对数函数*/ printf(nnt结果是: %fn,y);printf(n);break;printf(n是否继续?y/n);p=getche();if(p=n)
13、exit(1); return(y); /*返回值y*/while(p=y);5. 程序测试系统主界面其它功效截图等6. 设计总结6.1谢辞程序调试后无错误、警告,运行正常。经过这次c语言课程设计,我认为自己知识还很欠缺,每种函数功效还没有熟练掌握,尤其是循环结构函数应用还很欠缺,应用时候感到力不从心,经数次调试后才运行正常,初步尝试编写程序时出现了好多错误,发觉自己当初学函数和结构没有深入去研究,做这次课程设计花了一周多时间,数次翻阅书本和查资料,真发觉学习c语言在日常生活中,未来工作中很关键。这次c语言课程设计加强了我对c语言认识,使我明白程序软件开发不易。因为这是第一次进行设计,写汇报,难免会有部分细节注意不到或出现错误。请老师谅解。6.2参考文件关键参考C语言程序设计书本和上网查询具体函数利用。