中南大学c语言课程设计报告.docx

上传人:b****3 文档编号:5492722 上传时间:2022-12-17 格式:DOCX 页数:15 大小:293.11KB
下载 相关 举报
中南大学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

《中南大学c语言课程设计报告.docx》由会员分享,可在线阅读,更多相关《中南大学c语言课程设计报告.docx(15页珍藏版)》请在冰豆网上搜索。

中南大学c语言课程设计报告.docx

中南大学c语言课程设计报告

学号

 

中南大学

《C语言程序设计》

课程设计报告

 

题目:

数据的图形化处理

学院:

专业:

班级:

姓名:

指导老师:

 

2015年1月3日

目录

1设计内容及要求3

1.1设计要求3

1.2程序设计流程图3

2详细设计5

2.1详细设计5

2.2数据结构与程序评析7

2.3用法说明8

3设计结果与分析8

3.1调试与测试8

3.2测试结果与分析8

4小结(心得体会)11

5附录12

1设计内容及要求

1.1设计要求

用c语言绘图函数绘制函数图像;要根据输入的信息,用c语言画出相应函数y=sin(x),y=cos(x),...;画出的点数为N个,即N个像素点;可以不画出坐标值,N的值要大于20。

程序界面设计合理,色彩得体大方,显示正确,界面清晰、美观。

1.2程序设计流程图

图1:

总程序流程

图2:

总程序流程图

2详细设计

2.1详细设计

(1)#include调用系统提供的标准库函数

#include调用math库文件里的函数

#include调用通过控制台进行数据输入和数据输出的函数

#include调用图像处理函数

(2)main()

{

floati,x0,y0,x,y;

inta,b;

intgd=DETECT,gm;定义变量

(3)for(b=0;b<=20;b++){

实现程序的多次循环使用

(4)initgraph(&gd,&gm,"");初始化图形系统

(5)printf("Chooseafunctiontoseeitsfunctionalimage!

\n");

printf("1.y=x\n");

printf("2.y=sinx\n");

printf("3.y=cosx\n");

printf("4.y=e^x\n");

printf("5.y=log(e)(x)\n");

printf("6.y=x^2\n");

printf("7.y=tanx\n");

printf("Number1-7,justtrythem!

\n");

printf("Pleaseenternumber:

");输出一个基本初等函数可选列表

scanf("%d",&a);输入一个整型变量

(6)cleardevice();清除屏幕和图形缓冲区

setbkcolor(WHITE);设置背景色

setcolor(GREEN);设置前景颜色

line(100,350,100,180);

line(95,190,100,180);

line(100,180,105,190);

line(40,250,500,250);

line(495,245,500,250);

line(500,250,495,255);画坐标轴和箭头

settextstyle(SANS_SERIF_FONT,HORIZ_DIR,1);设置字体

outtextxy(500,250,"x");标记x轴

outtextxy(110,180,"y");标记y轴

outtextxy(90,245,"o");标记原点

(7)switch(a)实现多分支选择

{

case1:

第一种情况

{

for(x0=0;x0<=21;x0+=1)

{

y0=x0;要画出的函数表达式

x=6*x0+100;x,y的坐标控制,使点落在屏幕适当位置

y=-6*y0+250;

putpixel(x,y,RED);画点函数,画出红色像素点

}

break;跳出多分支选择结构

}

case2:

第二种情况

{

for(x0=0;x0<=10*3.14159;x0+=0.1)

{

y0=50*sin(x0+2*3.14159);正弦函数

x=10*x0+100;

y=-y0+250;

putpixel(x,y,RED);

}

break;

}

case3:

第三种情况

{

for(x0=0;x0<=10*3.14159;x0+=0.1)

{

y0=50*sin(x0+3.14159/2);余弦函数

x=10*x0+100;

y=-y0+250;

putpixel(x,y,RED);

}

break;

}

..........其他常见函数

default:

printf("Enterdataerror!

\n");否则输出数据错误提示

}

(8)getch();从控制台读取一个字符,但不显示在屏幕上,等待你按下任意键,再继续执行下面的语句

closegraph();关闭图形系统

}

}

2.2数据结构与程序评析

(1)对图形处理函数作比较全面的分析,即对程序要使用的编写方法功能,运行方式进行分析,并作出正确的解决方案。

(2)程序并不是很复杂,但程序的编写是一项困难的任务,完成此程序必须运用书中和网络上的很多知识,而且要有清晰的思路和较强的语言组织能力。

(3)程序的检查和系统的调用。

当程序运行后,显示出规定好的函数图像。

2.3用法说明

(1)用编辑程序把编制的源程序按照一定的书写格式送到计算机中。

(2)把送入的源程序翻译成机器语言,即用编译程序对源程序进行编译,并将符合语法规则的源程序语句翻译成计算机能识别的语言。

(3)使用计算机中的连接程序,把翻译好的计算机语言程序连接起来,并扶植成一个计算机能真正运行的程序。

(4)将修改后的程序运行,以后使用时双击相应exe文件即可。

3设计结果与分析

3.1调试与测试

调试方法:

多次运行源程序,找出tc提示的错误,修改后再次运行,直至无错误时再对源程序进行简单优化。

问题:

源程序中变量数据类型错误,语句位置错误,导致编译时出现错误,执行不出结果。

经分析后修改,程序成功运行。

如果该程序没有在C语言环境下运行,那么程序运行的结果:

BGIERROR:

Graphicsnotinitialized!

(useinitgraoph)

这是因为编程的时候没有把图形的驱动和程序一起编译,程序在脱离C语言环境后找不到驱动。

要使程序能够脱离C语言环境运行,就要使程序和图形驱动一起编译。

①在DOS命令提示符下运行下列命令:

c:

\tc\bgi>bgiobjegavga(把图形驱动编译成相应的库文件)

c:

\tc\tc\lib\graphics.lib+\tc\bgi\egavga(把图形驱动的库文件和系统库文件graphics.lib连接组成新的库文件)

②在源程序的initgraph()函数前加入下列语句:

registerbgidriver(EGAVGA_driver);(在程序中注册图形驱动)

此问题得以解决。

如没有遇到此结果,则不需要执行此操作。

3.2测试结果与分析

程序初始界面

函数图像

数据不符合要求时显示

程序运行成功,得到预期结果。

 

4小结(心得体会)

刚开始做的时候我只懂得一些雷老师讲过的基本函数,对图形处理函数什么都不懂,更别说做了。

不过参考了很多资料,在网站上查找,并思考理解了较长时间,才对图形处理函数有了基本的认识和把握,能实现一些简单应用,因为是自己亲自学习并制作的,并非抄袭,虽然遇到了不少的困难,但心里还是蛮有成就感的,希望把c语言学通的信心更足了。

经过多次上机实践学习,我对c语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它。

我所懂得的更重要的是,程序设计需要大量的理解和应用,有些没有学过的知识不一定非要一字不差掌握,会理解运用才是重点,不能急于求成!

计算机编程大大简化了我们生活中的很多复杂繁琐的工作,实现了简单化,自动化。

这大大增加了我学习这门课程的兴趣。

计算机的发展趋势越来越快,我相信计算机在将来能更好地为人类服务。

我清楚地知道这次的程序还有很多可以优化的地方,没有最好,只有更好!

因此我一定会积极地学习这门课程,充分发挥这门课程的作用,查找更多的可用资源,用来补偿我的不足。

 

5附录

参考文献

【1】谭浩强《C语言程序设计(第四版)》清华大学出版社

【2】李丽娟,马淑萍《C语言程序设计(第二版)》中国铁道出版社

【3】王正仲《21天学通C语言》人民邮电出版社

【4】 凯尼格 《C陷阱与缺陷》人民邮电出版社

源代码

#include

#include

#include

#include

main()

{

floati,x0,y0,x,y;

inta,b;

intgd=DETECT,gm;

for(b=0;b<=20;b++)

{

initgraph(&gd,&gm,"");

printf("Chooseafunctiontoseeitsfunctionalimage!

\n");

printf("1.y=x\n");

printf("2.y=sinx\n");

printf("3.y=cosx\n");

printf("4.y=e^x\n");

printf("5.y=log(e)(x)\n");

printf("6.y=x^2\n");

printf("7.y=tanx\n");

printf("Number1-7,justtrythem!

\n");

printf("Pleaseenternumber:

");

scanf("%d",&a);

cleardevice();

setbkcolor(WHITE);

setcolor(GREEN);

line(100,350,100,180);

line(95,190,100,180);

line(100,180,105,190);

line(40,250,500,250);

line(495,245,500,250);

line(500,250,495,255);

settextstyle(SANS_SERIF_FONT,HORIZ_DIR,1);

outtextxy(500,250,"x");

outtextxy(110,180,"y");

outtextxy(90,245,"o");

switch(a)

{

case1:

{

for(x0=0;x0<=21;x0+=1)

{

y0=x0;

x=6*x0+100;

y=-6*y0+250;

putpixel(x,y,RED);

}

break;

}

case2:

{

for(x0=0;x0<=10*3.14159;x0+=0.1)

{

y0=50*sin(x0+2*3.14159);

x=10*x0+100;

y=-y0+250;

putpixel(x,y,RED);

}

break;

}

case3:

{

for(x0=0;x0<=10*3.14159;x0+=0.1)

{

y0=50*sin(x0+3.14159/2);

x=10*x0+100;

y=-y0+250;

putpixel(x,y,RED);

}

break;

}

case4:

{

for(x0=0;x0<=21;x0+=0.1)

{

y0=pow(2.71828,x0);

x=10*x0+100;

y=-y0+245;

putpixel(x,y,RED);

}

break;

}

case5:

{

for(x0=0.1;x0<=21;x0+=0.1)

{

y0=log(x0)/log(1.1);

x=10*x0+100;

y=-y0+250;

putpixel(x,y,RED);

}

break;

}

case6:

{

for(x0=0.1;x0<=21;x0+=0.1)

{

y0=pow(x0,2);

x=10*x0+100;

y=-y0+250;

putpixel(x,y,RED);

}

break;

}

case7:

{

for(x0=0.1;x0<=5*3.14159;x0+=0.05)

{

y0=50*tan(x0);

x=25*x0+100;

y=-y0+250;

putpixel(x,y,RED);

}

break;

}

default:

printf("Enterdataerror!

\n");

}

getch();

closegraph();

}

}

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

当前位置:首页 > 解决方案 > 学习计划

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

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