1、中南大学c语言课程设计报告学号中南大学C语言程序设计课程设计报告 题 目:数据的图形化处理 学 院: 专 业: 班 级: 姓 名: 指导老师: 2015年1月3日目录1 设计内容及要求 31.1设计要求 3 1.2程序设计流程图 32 详细设计 5 2.1详细设计 52.2数据结构与程序评析 72.3用法说明 83 设计结果与分析 83.1调试与测试 83.2测试结果与分析 84 小结(心得体会) 115 附录 121设计内容及要求1.1设计要求用c语言绘图函数绘制函数图像;要根据输入的信息,用c语言画出相应函数y=sin(x),y=cos(x),.;画出的点数为N个,即N个像素点;可以不画出
2、坐标值,N的值要大于20。程序界面设计合理,色彩得体大方,显示正确,界面清晰、美观。1.2程序设计流程图 图1:总程序流程 图2:总程序流程图2详细设计2.1详细设计(1)#include调用系统提供的标准库函数 #include调用math库文件里的函数 #include调用通过控制台进行数据输入和数据输出的函数 #include调用图像处理函数(2)main() float i,x0,y0,x,y; int a,b; int gd=DETECT,gm;定义变量(3) for(b=0;b=20;b+) 实现程序的多次循环使用(4)initgraph(&gd,&gm,);初始化图形系统(5)p
3、rintf(Choose a function to see its functional image!n); printf(1.y=xn); printf(2.y=sinxn); printf(3.y=cosxn); printf(4.y=exn); printf(5.y=log(e)(x)n); printf(6.y=x2n); printf(7.y=tanxn); printf(Number 1-7,just try them!n); printf(Please enter number:);输出一个基本初等函数可选列表 scanf(%d,&a);输入一个整型变量(6)cleardevi
4、ce();清除屏幕和图形缓冲区 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);
5、标记y轴 outtextxy(90,245,o);标记原点(7)switch(a)实现多分支选择 case 1:第一种情况 for(x0=0;x0=21;x0+=1) y0=x0;要画出的函数表达式 x=6*x0+100; x,y的坐标控制,使点落在屏幕适当位置 y=-6*y0+250; putpixel(x,y,RED);画点函数,画出红色像素点 break;跳出多分支选择结构 case 2:第二种情况 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
6、,y,RED); break; case 3:第三种情况 for(x0=0;x0bgiobj egavga (把图形驱动编译成相应的库文件) c:tctclibgraphics.lib+tcbgiegavga (把图形驱动的库文件和系统库文件graphics.lib连接组成新的库文件) 在源程序的initgraph()函数前加入下列语句: registerbgidriver(EGAVGA_driver); (在程序中注册图形驱动)此问题得以解决。如没有遇到此结果,则不需要执行此操作。3.2测试结果与分析程序初始界面函数图像数据不符合要求时显示 程序运行成功,得到预期结果。4小结(心得体会) 刚
7、开始做的时候我只懂得一些雷老师讲过的基本函数,对图形处理函数什么都不懂,更别说做了。不过参考了很多资料,在网站上查找,并思考理解了较长时间,才对图形处理函数有了基本的认识和把握,能实现一些简单应用,因为是自己亲自学习并制作的,并非抄袭,虽然遇到了不少的困难,但心里还是蛮有成就感的,希望把c语言学通的信心更足了。经过多次上机实践学习,我对c语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它。我所懂得的更重要的是,程序设计需要大量的理解和应用,有些没有学过的知识不一定非要一字不差掌握,会理解运用才是重点,不能急于求成!计算机编程大大简化了我们生活中的很多复杂繁
8、琐的工作,实现了简单化,自动化。这大大增加了我学习这门课程的兴趣。计算机的发展趋势越来越快,我相信计算机在将来能更好地为人类服务。我清楚地知道这次的程序还有很多可以优化的地方,没有最好,只有更好!因此我一定会积极地学习这门课程,充分发挥这门课程的作用,查找更多的可用资源,用来补偿我的不足。5附录参考文献【1】谭浩强 C语言程序设计(第四版)清华大学出版社【2】李丽娟,马淑萍 C语言程序设计(第二版)中国铁道出版社【3】王正仲 21天学通C语言人民邮电出版社【4】凯尼格 C陷阱与缺陷人民邮电出版社源代码#include#include#include#includemain() float i,
9、x0,y0,x,y; int a,b; int gd=DETECT,gm; for(b=0;b=20;b+) initgraph(&gd,&gm,); printf(Choose a function to see its functional image!n); printf(1.y=xn); printf(2.y=sinxn); printf(3.y=cosxn); printf(4.y=exn); printf(5.y=log(e)(x)n); printf(6.y=x2n); printf(7.y=tanxn); printf(Number 1-7,just try them!n);
10、printf(Please enter number:); 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); outt
11、extxy(110,180,y); outtextxy(90,245,o); switch(a) case 1: for(x0=0;x0=21;x0+=1) y0=x0; x=6*x0+100; y=-6*y0+250; putpixel(x,y,RED); break; case 2: 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; case 3: for(x0=0;x0=10*3.14159;x0+=0.1) y0=50*si
12、n(x0+3.14159/2); x=10*x0+100; y=-y0+250; putpixel(x,y,RED); break; case 4: 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; case 5: 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; case 6: 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; case 7: 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(Enter data error!n); getch(); closegraph();
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1