c语言课程设计含运行截图文档格式.docx

上传人:b****3 文档编号:6526701 上传时间:2023-05-06 格式:DOCX 页数:15 大小:101.61KB
下载 相关 举报
c语言课程设计含运行截图文档格式.docx_第1页
第1页 / 共15页
c语言课程设计含运行截图文档格式.docx_第2页
第2页 / 共15页
c语言课程设计含运行截图文档格式.docx_第3页
第3页 / 共15页
c语言课程设计含运行截图文档格式.docx_第4页
第4页 / 共15页
c语言课程设计含运行截图文档格式.docx_第5页
第5页 / 共15页
c语言课程设计含运行截图文档格式.docx_第6页
第6页 / 共15页
c语言课程设计含运行截图文档格式.docx_第7页
第7页 / 共15页
c语言课程设计含运行截图文档格式.docx_第8页
第8页 / 共15页
c语言课程设计含运行截图文档格式.docx_第9页
第9页 / 共15页
c语言课程设计含运行截图文档格式.docx_第10页
第10页 / 共15页
c语言课程设计含运行截图文档格式.docx_第11页
第11页 / 共15页
c语言课程设计含运行截图文档格式.docx_第12页
第12页 / 共15页
c语言课程设计含运行截图文档格式.docx_第13页
第13页 / 共15页
c语言课程设计含运行截图文档格式.docx_第14页
第14页 / 共15页
c语言课程设计含运行截图文档格式.docx_第15页
第15页 / 共15页
亲,该文档总共15页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

c语言课程设计含运行截图文档格式.docx

《c语言课程设计含运行截图文档格式.docx》由会员分享,可在线阅读,更多相关《c语言课程设计含运行截图文档格式.docx(15页珍藏版)》请在冰点文库上搜索。

c语言课程设计含运行截图文档格式.docx

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

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

(4)编写代码;

(5)程序分析与调试。

2.3运行环境

(1)WINDOWS2000/XP系统

(2)TurboC2.0编译环境

2.4开发工具

C语言

3概要设计

3.1系统流程图

如图3.1所示。

w

图3.1系统流程图

3.2查询函数流程图

(1)边界画线函数流程图

(2)图标按钮设置函数流程图

4详细设计

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"

conio.h"

string.h"

stdio.h"

#definenormbut_bor0x80

#definepresbut_but0xb8

#definenormnum_but0x8e

#definepresnum_but0xb9

#definespebut_char0x2c

#definewin_color0xf2

#definewin_char0xfb

structs_button/*按键的结构体*/

{intsx,sy,ex,ey;

char*head;

intpress;

}button[17];

/*图表按键数*/

structstack/*结构体栈*/

{chars[20];

inttos,top;

}stack;

chartag;

{

if(stack.tos>

0)

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

\0'

;

}

draw_win()/*边框画线窗口*/

inti;

charfar*t;

char*s="

Thisisasimplecalculator!

"

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

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(intsx,intsy,intex,intey,intattrib)/*边界线函数*/

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()/*图表按钮设定函数*/

{inti;

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;

17;

draw_border(button[i].sx,button[i].sy,button[i].ex,button[i].ey,normbut_bor);

write_top(button[i].sx+1,button[i].sy+1,button[i].ex-1,button[i].head,normnum_but);

write_top(intx1,inty,intx2,char*s,intattrib)

charfar*v,far*t;

for(i=x1;

=x2;

{t=v+y*160+i*2;

*t++='

'

*t=attrib;

i=(x2-x1-strlen(s)+1)/2+x1;

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

{*t++=*s++;

*t++=attrib;

text_clo()/*文本光标*/

{tx--;

/*光标向左移*/

if(tx<

32)tx++;

/*backspace时X不能小于32*/

put_char(tx,ty,'

'

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);

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

while(stack.s[stack.top])

{put_char(tx,ty,stack.s[stack.top++]);

tx++;

send1()/*向服务器发送请求*/

{sscanf(stack.s,"

%f"

&

v1);

/*输入并储存在V1中*/

clear_stack();

/*清除栈*/

send2()/*向服务器发送信息*/

v2);

select_but(intx,inty)/*选择按钮*/

{intnum;

if(y>

2)

if(x<

2)num=15;

elsenum=x+5*y;

draw_border(button[num].sx,button[num].sy,button[num].ex,button[num].ey,presbut_but);

write_top(button[num].sx+1,button[num].sy+1,button[num].ex-1,button[num].head,presnum_but);

write_top(button[num].sx+1,button[num].sy+1,button[num].ex-1,button[num].head,normnum_but);

else

draw_border(button[num].sx,button[num].sy,button[num].ex,button[num].ey,normbut_bor);

write_top(button[num].sx+1,button[num].sy+1,button[num].ex-1,button[num].head,spebut_char);

put_char(intx,inty,charch)/*计算窗口的输入确定函数*/

charfar*v;

v+=x*2+y*160;

/*光标的位置*/

/*输入字符随光标的推进*/

*v=0xf0;

/*输入数字的颜色*/

window_xy(x,y);

/*光标在窗口坐标*/

calculator()/*计算器构成的函数*/

inta,b;

key_choice();

/*键选择函数*/

menu()/*左边窗口函数*/

{char*j="

Thisisacalculator!

\nConductorTeacher:

\nChengYaHui\n\nStudent:

ChenChunLin\nNumber:

0841330197\nSchool:

ShaoYangCollege”"

char*s="

UseGuide:

\nInputthenumberfrom\nthekeyborde"

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=(charfar*)0xb8000000;

if(!

form_win())

printf("

can'

tformthedevice,pressanykeytoleave!

..."

/*如果不能显示见面窗口,按任意退出。

*/

getch();

exit();

menu();

calculator();

}menu();

4.3程序运行结果

5课程设计总结

本次C语言课程设计我是完全按照任务书上的要求来完成的,虽然还存在比较多的瑕疵,但我都是一饱满的热情、认真的态度去对待本次课程设计的。

通过这次课程设计我对C语言的神奇功能更加佩服(只是一个程序运行后却可以显示出一个计算器来,并且画面比较唯美,且能进行计算),我默默在心里发誓一定要把C语言学好,而且将来我还要想学习C++语言,熟练的掌握编程的方法。

本次课程设计,我设计的是一个算术计算器,本程序若完全靠现有的知识,是很难编写出来的,幸亏有我的指导老师成娅辉老师的耐心指导,我才能顺利完成。

参考文献

[1]张福祥.C语言程序设计[M].辽宁大学出版社,2008.1

[2]张福祥,王萌.C语言程序设计习题解答与实验实沈阳:

辽宁大学出版社,2008.

[3]牛莉,刘远军等.计算机等级考试辅导教程[M].北京:

中国铁道出版社,2008.

致谢

这次课程设计让我学到了很多,从编程中可以看出编写一个程序的是一件很难的事。

虽然这次我这组的课程设计题目不是很难,但要做好也不是一件很容易的事情。

我努力使我的设计更加完美,我也有幸得到成娅辉老师的指导,使我能够顺利完成我的课程设计,我同时也要感谢其他给予我帮助的同学,他们使我认识到团队的力量。

再一次感谢所有帮助我完成这次课程设计的人。

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

当前位置:首页 > 工作范文 > 其它

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2