




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上精选优质文档-倾情为你奉上专心-专注-专业专心-专注-专业精选优质文档-倾情为你奉上专心-专注-专业目 录 TOC o 1-2 h z u 66141415151 前言编写一个程序来实现算术计算器。通过结构体数组和共用体数组来存放输入的每一数字或运算符号的记录(包括1、2、3等数字,+、-、*、等运算符号),然后将其信息存入文件中。输入一个算术计算式,就在屏幕上显示结果。2 需求分析2.1要求(1)用C语言实现程序设计;(2)利用结构体、共用体进行相关信息处理;(3)画出查询模块的流程图;(4)系统的各个功能模块要求用函数的形式实现;(5)界面友好(良好的人机互交),
2、程序要有注释。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_but
3、ton调用结果输出函数out_text_win()调用计算机运算函数put_string()结 束NY图3.1 系统流程图 3.2查询函数流程图边界画线函数流程图char far *t,far *vi=sx+1icxv=t+i*160+sx*2i+i=sy+1icyv=t+i*160+sx*2i+下一个字符输入函数NY(2)图标按钮设置函数流程图int i (将预设图标定义为i)i=0i17调用draw_border() 设置图标形状i+i=0i0) stack.s-stack.tos=0;draw_win() /*边框画线窗口*/ int i; char far *t; char *s=Th
4、is 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;iex;i+) v=t+sy*
5、160+i*2;*v+=196; /*每一行上画线确定为直线*/ *v=attrib; v=t+ey*160+i*2;*v+=196; /*每一行下画线确定为直线*/ *v=attrib; for(i=sy+1;iey;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,a
6、ttrib); 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
7、,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_
8、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;i17;i+) draw_border(buttoni.sx,buttoni.sy,buttoni.ex,buttoni.ey,normbut_bor); for(i=0;i17;i+) write_top(buttoni.sx+1,buttoni.sy+1,buttoni.ex-1,buttoni.head,normn
9、um_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(tx2) if(x2)num=15; else num=x+5*y; draw_
10、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,but
11、tonnum.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=0 xf0; /*输入数字的颜色*/ window_xy(x,y); /*光标在窗口坐标*/calculator() /*计算器构成的函数*/
12、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,0
13、 xf9);/*INTRODCTION的位置和颜色*/ write_text(2,5,j,0 x79); /*输入字符的位置和颜色*/ write_text(2,17,s,0 x79); /*输入字符的位置和颜色*/main() init_stack(); vid_mem=(char far *)0 xb; if(!form_win() printf(cant form the device,press any key to leave!.);/*如果不能显示见面窗口,按任意退出。*/ getch(); exit(); menu(); calculator();main() init_stac
14、k(); vid_mem=(char far *)0 xb; if(!form_win() printf(cant 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 牛莉,刘远军等
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 二零二五年度分手补偿协议书范本-情感经济赔偿细则
- 二零二五年度地下停车场施工合同终止与照明系统升级协议
- 2025年度环保技术企业工伤保险与劳动合同执行标准
- 2025年度绿色环保住宅承包出租房租赁协议
- 2025年度租赁式办公空间管理合同
- 2025年度烟草专卖许可证转让及市场推广合作合同
- 2025年度科技型企业多人入股共同创业协议
- 2025年度股指期货交易经纪业务合作协议
- 2025年度新能源开发生意合作合同模板
- 二零二五年度法院执行和解协议书司法鉴定争议解决合同
- 成人慢性肾脏病食养指南(2024年版)
- 新概念英语第一册Lesson67-(共69张课件)
- 羊传染性脓疱病
- 医学实验室与临床交流与沟通的方式和意义
- 《跨境电子商务实务》教学大纲
- 人教版英语八年级下册 Unit 2 单元复习检测卷
- 药品与耗材进销存管理制度
- 胸外科医生进修汇报
- 2024至2030年中国关节养护品行业市场前景调查及投融资战略研究报告
- 软件工程外文翻译文献
- 胸腔闭式引流护理-中华护理学会团体标准
评论
0/150
提交评论