欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    c语言课程设计报告--计算器的实现(内含完整报告-流程图-截屏-总结等)(共15页).doc

    • 资源ID:14073513       资源大小:67KB        全文页数:15页
    • 资源格式: DOC        下载积分:20金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要20金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    c语言课程设计报告--计算器的实现(内含完整报告-流程图-截屏-总结等)(共15页).doc

    精选优质文档-倾情为你奉上目 录66141415151 前言编写一个程序来实现算术计算器。通过结构体数组和共用体数组来存放输入的每一数字或运算符号的记录(包括1、2、3等数字,+、-、*、等运算符号),然后将其信息存入文件中。输入一个算术计算式,就在屏幕上显示结果。2 需求分析2.1要求(1)用C语言实现程序设计;(2)利用结构体、共用体进行相关信息处理;(3)画出查询模块的流程图;(4)系统的各个功能模块要求用函数的形式实现;(5)界面友好(良好的人机互交),程序要有注释。2.2任务(1)定义一个结构体类型数组,输入09及+、-、*等符号的信息,将其信息存入文件中;(2)输入简单的加减乘除算术计算式,并在屏幕上显示计算结果;(3)画出部分模块的流程图;(4)编写代码;(5)程序分析与调试。2.3运行环境(1)WINDOWS2000/XP系统(2)TurboC2.0编译环境2.4开发工具C语言3 概要设计3.1系统流程图如图3.1所示。w开始调用输入函数init_stack()If(!form_win()不能显示窗口,按任意键退出调用字符输入函数write_char()调用边框画线函数draw_border()调用图标按钮设置函数active_button调用结果输出函数out_text_win()调用计算机运算函数put_string()结 束NY图3.1 系统流程图 3.2查询函数流程图(1) 边界画线函数流程图char far *t,far *vi=sx+1i<cxv=t+i*160+sx*2i+i=sy+1i<cyv=t+i*160+sx*2i+下一个字符输入函数NY(2)图标按钮设置函数流程图int i (将预设图标定义为i)i=0i<17调用draw_border() 设置图标形状i+i=0i<17调用write_top()函数,使数字从最上的方框输入i+NYNY4 详细设计4.1分析和设计(1)在程序的开头部分定义了结构体类型,用来存放按钮信息,使数据能够从键盘上输入。 用输入函数input()来输入按键放在button数组中。再定义结构体栈:struct_stack() 用于数据的输入和存放。(2)进而定义了表格窗口函数,窗口画线函数draw_win() 和边界线函数draw_border(),定义out_text_win()输出文本窗口,定义window_xy(32,3); 计算结果窗口。通过这些为形成整个界面提供了大的前提。(3)接着通过“write_char()”,“active_button()”,“ write_top()”,“out_text_win()”, “get_key()” ,“window_xy()”等一系列的函数,使得计算器的整个外型呈现了出来。再定义了文本光标函数:text_clo()文本光标函数,通过光标移动选定数字并按空格键确定,通过mian()函数来调用各个子函数,最终得到结果。4.2具体代码实现 源程序代码:#include"dos.h"#include"conio.h"#include"string.h"#include"stdio.h"#define normbut_bor 0x80#define presbut_but 0xb8#define normnum_but 0x8e#define presnum_but 0xb9#define spebut_char 0x2c#define win_color 0xf2#define win_char 0xfbstruct s_button /*按键的结构体*/ int sx,sy,ex,ey; char *head; int press;button17; /*图表按键数*/struct stack /*结构体栈*/ char s20; int tos,top;stack;char tag; if(stack.tos>0) stack.s-stack.tos='0'draw_win() /*边框画线窗口*/ int i; char far *t; char *s="This is a simple calculator!" /*顶端边框输出的字符*/ draw_border(30,0,79,24,win_color); /*边框的位置和颜色*/ i=(79-30-strlen(s)/2+30; t=vid_mem+i*2; for(;*s;) *t+=*s+;*t+=win_color; /*顶端字体颜色*/ draw_border(int sx,int sy,int ex,int ey,int attrib) /*边界线函数*/ char far *t,far *v; int i; t=vid_mem; for(i=sx+1;i<ex;i+) v=t+sy*160+i*2;*v+=196; /*每一行上画线确定为直线*/ *v=attrib; v=t+ey*160+i*2;*v+=196; /*每一行下画线确定为直线*/ *v=attrib; for(i=sy+1;i<ey;i+) v=t+i*160+sx*2; *v+=179; /*每一列左画线确定为直线*/ *v=attrib; v=t+i*160+ex*2; *v+=179; /*每一列由画线确定为直线*/ *v=attrib; write_char(sx,sy,218,attrib); write_char(ex,sy,191,attrib); write_char(sx,ey,192,attrib); write_char(ex,ey,217,attrib);write_char(int x,int y,char ch,int attrib) /*字符输入函数*/ char far *v; v=vid_mem; v+=x*2+160*y; *v+=ch; *v=attrib;active_button()/*图表按钮设定函数*/ int i; make_button(0,32,9,38,11,"1");/*每个键对应的位置和数值*/ make_button(1,42,9,48,11,"2"); make_button(2,52,9,58,11,"3"); make_button(3,62,9,67,11,"+"); make_button(4,71,9,76,11,"-"); make_button(5,32,12,38,14,"4"); make_button(6,42,12,48,14,"5"); make_button(7,52,12,58,14,"6"); make_button(8,62,12,67,14,"*"); make_button(9,71,12,76,14,"/");/*“/”的位置*/ make_button(10,32,15,38,17,"7"); make_button(11,42,15,48,17,"8"); make_button(12,52,15,58,17,"9"); make_button(13,62,15,67,17,"="); make_button(14,71,15,76,17,"<-"); make_button(15,32,18,38,20,"0");/*“0”的位置*/ make_button(16,71,18,76,20,"End"); for(i=0;i<17;i+) draw_border(buttoni.sx,buttoni.sy,buttoni.ex,buttoni.ey,normbut_bor); for(i=0;i<17;i+) write_top(buttoni.sx+1,buttoni.sy+1,buttoni.ex-1,buttoni.head,normnum_but); write_top(int x1,int y,int x2,char *s,int attrib) char far *v,far *t; int i; v=vid_mem; for(i=x1;i<=x2;i+) t=v+y*160+i*2; *t+=' ' *t=attrib; i=(x2-x1-strlen(s)+1)/2+x1; t=v+160*y+i*2; for(;*s;) *t+=*s+; *t+=attrib; text_clo() /*文本光标*/ tx-; /*光标向左移*/ if(tx<32)tx+; /*backspace时X不能小于32*/ put_char(tx,ty,'');put_string() /*计算机运算函数*/ float result; tx=32; switch(tag) /*根据运算符号计算*/ case '+': result=v1+v2;break; /*做加法*/ case '-':result=v1-v2;break; /*做减法*/ case'*':result=v1*v2;break; /*做乘法*/ case '/': result=v1/v2;break; /*做除法*/ default :result=v1; /*若不计算输出0*/ sprintf(stack.s,"%.3f",result); /*输出结果保留小数点后三位*/ while(stack.sstack.top) put_char(tx,ty,stack.sstack.top+); tx+; send1() /*向服务器发送请求*/ sscanf(stack.s,"%f",&v1); /*输入并储存在V1中*/ clear_stack(); /*清除栈*/send2() /*向服务器发送信息*/ sscanf(stack.s,"%f",&v2); clear_stack(); /*清除栈*/select_but(int x,int y) /*选择按钮*/ int num; if(y>2) if(x<2)num=15; else num=x+5*y; draw_border(buttonnum.sx,buttonnum.sy,buttonnum.ex,buttonnum.ey,presbut_but); write_top(buttonnum.sx+1,buttonnum.sy+1,buttonnum.ex-1,buttonnum.head,presnum_but); write_top(buttonnum.sx+1,buttonnum.sy+1,buttonnum.ex-1,buttonnum.head,normnum_but); else draw_border(buttonnum.sx,buttonnum.sy,buttonnum.ex,buttonnum.ey,normbut_bor); write_top(buttonnum.sx+1,buttonnum.sy+1,buttonnum.ex-1,buttonnum.head,spebut_char); put_char(int x,int y,char ch) /*计算窗口的输入确定函数*/ char far *v; v=vid_mem; v+=x*2+y*160; /*光标的位置*/ *v+=ch; /*输入字符随光标的推进*/ *v=0xf0; /*输入数字的颜色*/ window_xy(x,y); /*光标在窗口坐标*/calculator() /*计算器构成的函数*/ int a,b; key_choice(); /*键选择函数*/menu() /*左边窗口函数*/ char *j="This is a calculator!nConductor Teacher:nCheng YaHuinnStudent:Chen ChunLinnNumber:nSchool:ShaoYang College” " char *s="Use Guide:nInput the number fromn the keyborde" draw_border(0,0,29,24,win_color); /*左边框的位置和颜色*/ write_top(1,2,28,"Introduction",0xf9);/*INTRODCTION的位置和颜色*/ write_text(2,5,j,0x79); /*输入字符的位置和颜色*/ write_text(2,17,s,0x79); /*输入字符的位置和颜色*/main() init_stack(); vid_mem=(char far *)0xb; if(!form_win() printf("can't form the device,press any key to leave!.");/*如果不能显示见面窗口,按任意退出。*/ getch(); exit(); menu(); calculator();main() init_stack(); vid_mem=(char far *)0xb; if(!form_win() printf("can't form the device,press any key to leave!.");/*如果不能显示见面窗口,按任意退出。*/ getch(); exit(); menu(); calculator();4.3程序运行结果 5 课程设计总结 本次C语言课程设计我是完全按照任务书上的要求来完成的,虽然还存在比较多的瑕疵,但我都是一饱满的热情、认真的态度去对待本次课程设计的。通过这次课程设计我对C语言的神奇功能更加佩服(只是一个程序运行后却可以显示出一个计算器来,并且画面比较唯美,且能进行计算),我默默在心里发誓一定要把C语言学好,而且将来我还要想学习C+语言,熟练的掌握编程的方法。本次课程设计,我设计的是一个算术计算器,本程序若完全靠现有的知识,是很难编写出来的,幸亏有我的指导老师成娅辉老师的耐心指导,我才能顺利完成。参考文献1张福祥. C语言程序设计M. 辽宁大学出版社,2008.12 张福祥,王萌C语言程序设计习题解答与实验实沈阳:辽宁大学出版社,20083 牛莉,刘远军等计算机等级考试辅导教程M北京:中国铁道出版社,2008 致 谢 这次C语言课程设计让我学到了很多,从编程中可以看出编写一个程序的是一件很难的事。要想成为一名优秀的程序员,需要持久的耐心和深厚的专业知识。虽然这次我这组的课程设计题目不是很难,但要做好也不是一件很容易的事情。我努力使我的设计更加完美,我也有幸得到成娅辉老师的指导,使我能够顺利完成我的课程设计,我同时也要感谢其他给予我帮助的同学,他们使我认识到团队的力量。再一次感谢所有帮助我完成这次课程设计的人。 专心-专注-专业

    注意事项

    本文(c语言课程设计报告--计算器的实现(内含完整报告-流程图-截屏-总结等)(共15页).doc)为本站会员(飞****2)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

    本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开