C++语言毕业课程设计报告正文计算器的实现Word格式.docx

上传人:b****1 文档编号:13655516 上传时间:2022-10-12 格式:DOCX 页数:22 大小:104.30KB
下载 相关 举报
C++语言毕业课程设计报告正文计算器的实现Word格式.docx_第1页
第1页 / 共22页
C++语言毕业课程设计报告正文计算器的实现Word格式.docx_第2页
第2页 / 共22页
C++语言毕业课程设计报告正文计算器的实现Word格式.docx_第3页
第3页 / 共22页
C++语言毕业课程设计报告正文计算器的实现Word格式.docx_第4页
第4页 / 共22页
C++语言毕业课程设计报告正文计算器的实现Word格式.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

C++语言毕业课程设计报告正文计算器的实现Word格式.docx

《C++语言毕业课程设计报告正文计算器的实现Word格式.docx》由会员分享,可在线阅读,更多相关《C++语言毕业课程设计报告正文计算器的实现Word格式.docx(22页珍藏版)》请在冰豆网上搜索。

C++语言毕业课程设计报告正文计算器的实现Word格式.docx

(1)用C语言实现程序设计;

(2)利用结构体、共用体进行相关信息处理;

(3)画出查询模块的流程图;

(4)系统的各个功能模块要求用函数的形式实现;

(5)界面友好(良好的人机互交),程序要有注释。

2.2任务

(1)定义一个结构体类型数组,输入0~9及+、--、*等符号的信息,将其信息存入文件中;

(2)输入简单的加减乘除算术计算式,并在屏幕上显示计算结果;

(3)画出部分模块的流程图;

(4)编写代码;

(5)程序分析与调试。

2.3运行环境

(1)WINDOWS2000/XP系统

(2)TurboC2.0编译环境

2.4开发工具

C语言

3概要设计

3.1系统流程图

如图3.1所示。

图3.1系统流程图

 

开始

调用输入函数init_stack();

N

Y

printf("

can'

tformthedevice,pressanykeytoleave!

..."

);

调用左窗口函数menu();

再调用计算器构成函数calculator();

结束

3.2查询函数流程图

4详细设计

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;

用输入函数input()来输入按键放在s_button数组中。

再定义结构体栈:

structstack/*结构体栈*/

chars[20];

inttos,top;

}stack;

chartag;

用于数据的输入和存放。

进而定义了表格窗口函数,窗口画线函数和边界线函数:

intform_win()/*表格窗口初始化*/

textbackground(WHITE);

/*窗口背景颜色*/

clrscr();

/*清零*/

draw_win();

/*窗口画线*/

active_button();

/*窗口按键*/

out_text_win();

/*输出文本窗口*/

window_xy(32,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()把小键盘数字键和运算键的键值通过“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)/*根据运算符号计算*/

{

case'

+'

:

result=v1+v2;

break;

/*做加法*/

-'

result=v1-v2;

/*做减法*/

case'

*'

result=v1*v2;

/*做乘法*/

/'

result=v1/v2;

/*做除法*/

default:

result=v1;

/*若不计算输出0*/

}

sprintf(stack.s,"

%.3f"

result);

/*输出结果保留小数点后三位*/

通过switch来实现相应的计算,输出保留三位小数的结果。

最后mian()函数:

main()

init_stack();

vid_mem=(charfar*)0xb;

if(!

form_win())

printf("

getch();

exit();

menu();

calculator();

}

通过调用上面定义的函数实现了计算器整个功能。

4.2具体代码实现

源程序代码:

#include"

dos.h"

conio.h"

string.h"

stdio.h"

#definenormbut_bor0x80

#definepresbut_but0xb8

#definenormnum_but0x8e

#definepresnum_but0xb9

#definespebut_char0x2c

#definewin_color0xf2

#definewin_char0xfb

intsx,sy,ex,ey;

init_stack()/*初始化栈*/

stack.tos=0;

stack.top=0;

stack.s[stack.tos]='

\0'

;

push(charch)/*入栈*/

stack.s[stack.tos++]=ch;

pop()/*取栈数据通过*/

if(stack.tos>

0)

stack.s[--stack.tos]='

clear_stack()/*清空栈*/

textbackground(WHITE);

window_xy(32,3);

/*计算结果窗口*/

inti;

charfar*t;

char*s="

Thisisasimplecalculator!

"

/*顶端边框输出的字符*/

draw_border(win_color);

/*边框的位置和颜色*/

i=(79-30-strlen(s))/2+30;

t=vid_mem+i*2;

for(;

*s;

*t++=*s++;

*t++=win_color;

/*顶端字体颜色*/

charfar*t,far*v;

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;

/*每一行下画线确定为直线*/

for(i=sy+1;

ey;

v=t+i*160+sx*2;

*v++=179;

/*每一列左画线确定为直线*/

v=t+i*160+ex*2;

/*每一列由画线确定为直线*/

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(intx,inty,charch,intattrib)/*字符输入函数*/

charfar*v;

v=vid_mem;

v+=x*2+160*y;

*v++=ch;

active_button()/*图表按钮设定函数*/

make_button(,"

1"

/*每个键对应的位置和数值*/

2"

3"

+"

-"

make_button(4,"

4"

5"

6"

*"

/"

/*“/”的位置*/

make_button(17,"

7"

8"

9"

="

<

make_button(20,"

0"

/*“0”的位置*/

End"

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1