C语言课程设计(计算器)

C语言课程设计(计算器)

ID:40965822

大小:190.00 KB

页数:26页

时间:2019-08-12

C语言课程设计(计算器)_第1页
C语言课程设计(计算器)_第2页
C语言课程设计(计算器)_第3页
C语言课程设计(计算器)_第4页
C语言课程设计(计算器)_第5页
资源描述:

《C语言课程设计(计算器)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、目录1前言22需求分析22.1要求22.2任务22.3运行环境22.4开发工具23概要设计23.1系统流程图33.2查询函数流程图44详细设计84.1分析和设计84.2具体代码实现95课程设计总结25参考文献25致谢26261前言编写一个程序来实现算术计算器。通过结构体数组和共用体数组来存放输入的每一数字或运算符号的记录(包括1、2、3等数字,+、--、*、等运算符号),然后将其信息存入文件中。输入一个算术计算式,就在屏幕上显示结果。2需求分析2.1要求(1)用C语言实现程序设计;(2)利用结构体、共用体进行相关信息处理;(3)画出查询模块的流程图;(4)系统的

2、各个功能模块要求用函数的形式实现;(5)界面友好(良好的人机互交),程序要有注释。2.2任务(1)定义一个结构体类型数组,输入0~9及+、--、*等符号的信息,将其信息存入文件中;(2)输入简单的加减乘除算术计算式,并在屏幕上显示计算结果;(3)画出部分模块的流程图;(4)编写代码;(5)程序分析与调试。2.3运行环境(1)WINDOWS2000/XP系统(2)TurboC2.0编译环境2.4开发工具C语言3概要设计3.1系统流程图26如图3.1所示。图3.1系统流程图开始调用输入函数init_stack();if(!form_win())NYprintf("c

3、an'tformthedevice,pressanykeytoleave!...");调用左窗口函数menu();再调用计算器构成函数calculator();结束3.2查询函数流程图26262626264详细设计4.1分析和设计在程序的开头部分定义了结构替类型,用来存放按钮信息structs_button/*按键的结构体*/{intsx,sy,ex,ey;char*head;intpress;}button[17];/*图表按键数*/charfar*vid_mem;staticinttx=32,ty=3;/*静态变量*/floatv1=0.0,v2=0.0;用

4、输入函数input()来输入按键放在s_button数组中。再定义结构体栈:structstack/*结构体栈*/{chars[20];inttos,top;}stack;chartag;用于数据的输入和存放。进而定义了表格窗口函数,窗口画线函数和边界线函数:intform_win()/*表格窗口初始化*/{textbackground(WHITE);/*窗口背景颜色*/clrscr();/*清零*/draw_win();/*窗口画线*/active_button();/*窗口按键*/26out_text_win();/*输出文本窗口*/window_xy(32

5、,3);/*计算结果窗口*draw_win()/*边框画线窗口*/………draw_border(intsx,intsy,intex,intey,intattrib)/*边界线函数*/………通过这些为形成整个界面提供了大的前提。接着通过“write_char()”,“active_button()”,“write_top()”,“make_button()”,“out_text_win()”,“get_key()”,“window_xy()”等一系列的函数,使得计算器的整个外型呈现了出来。为了输入方便一些,就接着定义的小键盘的输入函数:key_choice()把小

6、键盘数字键和运算键的键值通过“get_data(bx,by);send1()”和计算器界面按键连接起来,使得通过小键盘相应的键就能获得计算器相应的值。下面就定义了文本光标函数:text_clo()/*文本光标*/{tx--;/*光标向左移*/if(tx<32)tx++;/*backspace时X不能小于32*/put_char(tx,ty,'');}当按“〈-”或:”backspace”时光标随tx减小而减小。再就是计算器运算的主程序:put_string()/*计算机运算函数*/{floatresult;tx=32;switch(tag)/*根据运算符号计算*

7、/{case'+':result=v1+v2;break;/*做加法*/case'-':result=v1-v2;break;/*做减法*/case'*':result=v1*v2;break;/*做乘法*/case'/':result=v1/v2;break;/*做除法*/default:result=v1;/*若不计算输出0*/26}sprintf(stack.s,"%.3f",result);/*输出结果保留小数点后三位*/通过switch来实现相应的计算,输出保留三位小数的结果。………最后mian()函数:main(){init_stack();vid_

8、mem=(charfar

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。