当前位置:文档之家› C语言课程设计报告烟花绽放

C语言课程设计报告烟花绽放

课程设计报告书设计题目烟花绽放
系别计算机工程系
专业计算机科学与技术
班级
姓名
指导教师
设计任务下达日期2011年 12 月 24 日
设计时间2011年12月26日至 2010年12月30日
课程设计任务书
一、目的和意义
本课程设计是《C语言程序设计》课程的后继教学环节, 通过研究C语言中图形编程技术或者声音控制等其它方面的多媒体编程技术,一方面拓展学生在这些领域的C语言知识,另一方面使学生在运用所学理论知识进行实践开发,更好的培养学生综合学习能力和实践能力。

本次课程设计学生可以根据喜好,可以利用复杂的数据类型实现成绩管理系统等小型的综合应用程序。

二、题目(可从下面题目中任选一个)
1、C语言的图形编程应用
设计实现如菜单、图形的显示,再如动画和小游戏。

2、简易电子琴模拟程序的实现
为实现在键盘模拟电子琴设计的程序。

由学生自行设计并且实现。

3、成绩管理程序
学生本人设计具体方案,然后改进和编码实现。

三、课程设计报告书应包括的主要内容
1、介绍概要的思路和设计方案,程序的总体功能和模块划分。

2、主要算法的介绍及流程图,主要功能的实现手段的说明文档。

3、对于有设想但最终未实现的功能的大致编程思路的阐述和设计过程中的启发。

四、进度要求
1、设计时间:2011年12月19日至2011年12月25日
2、编写课程设计报告书:2011年12月26日至2011年12月29日
3、提交报告及答辩时间:2011年12月30日
专科
四、进度要求
1、设计时间:2011年12月26日至2011年12月28日
2、编写课程设计报告书:2011年12月29日
3、提交报告及答辩时间:2011年12月30日
目录
一.课程设计目的: (3)
二.课程设计原因 (4)
三.课程设计思路以及方案 (4)
1.基础思路 (4)
2总体功能 (4)
四.课程设计中涉及的知识点 (3)
附录:源代码 (3)
一.课程设计目的:
熟练掌握条件语句、循环、数组、函数操作,将本课程所学的知识合理地运用于实践当中。

了解一些书上没有的函数及使用方法。

为以后的用C语言乃至其他设计语言解决实际问题打下了一个良好的基础。

二.课程设计原因
对图形图像的操作加以熟悉以掌握和应用
三.课程设计思路以及方案
1.基础思路
以黑色为背景色作为夜空,用两个圆嵌套填充颜色画一个月亮,用数组和for循环按角度画出星星。

在固定的几个点上烟花逐渐循环放大。

2功能描述
夜空中悬挂着月亮和零星的几颗星星,烟花逐个绽放而且越变越大。

四.课程设计中涉及的知识点
程序用到了for循环语句、数组、setcolor、setfillstyle、floodfill函数、ellipse、circle、line函数、putpixel、delay 以及rand等函数,还有宏定义和函数调用。

动画效果是有for循环实现的大小和色彩不断变化的圆。

附录:源代码
#include <stdio.h>
#include <conio.h>
#include <dos.h>
#include <math.h>
#include <graphics.h>
#include <bios.h>
#include <stdlib.h>
#define PI 3.14159
void moon()
{
int x=50,y=50,n=30; setcolor(YELLOW); setfillstyle(1,YELLOW); ellipse(x,y,0,360,n,n); Fllodfill(x,y,YELLOW); circle(x,y,n);
circle(x+n/2,y,n);
}
void star(int x, int y)
{
int i,a;
int n=5;
int x1[5],y1[5],x2[5],y2[5];
setcolor(YELLOW);
for (i=0;i<5;i++)
{
x1[i]=x+n*cos(i*72*PI/180);
y1[i]=y+n*sin(i*72*PI/180);
x2[i]=x+n/2*cos(i*72*PI/180+PI/5);
y2[i]=y+n/2*sin(i*72*PI/180+PI/5); }
for(i=0;i<5;i++)
{
a=i+1;
if(a>4) a=0;
line(x1[i],y1[i],x2[i],y2[i]);
line(x2[i],y2[i],x1[a],y1[a]);
}
}
void drawstar()
{
int a[]={70,250,190,400,150}; int b[]={43,27,38,79,90},i;
setfillstyle(1,14);
for(i=0;i<5;i++)
{
star(a[i],b[i]);
floodfill(a[i],b[i],YELLOW);
}
}
void starflower()
{
int i=0,j,n=60,n1=2;
int x=200,y=200,size=100;
int cover=0;
int delay1=5000;
int wid,hei;
int px,py;
int color=9;
while(!kbhit())
{
if(i<size)
{
for(j=0;j<n;j++)
{
px=x+i*cos(j*360/n*PI/180); py=y+i*sin(j*360/n*PI/180); putpixel(px,py,rand()%16); putpixel(px-1,py,color); putpixel(px,py+1,color); putpixel(px+1,py-1,YELLOW); putpixel(px,py-1,YELLOW); putpixel(px+1,py,RED); putpixel(px+1,py+1,RED);
}
}
if(i>size && cover<size)
{
setcolor(BLACK);
circle(x,y,cover++);
delay1=1000;
}
if(cover==size)
{
i=0;
x=50+rand()%550;
y=rand()%400;
cover=0;
color=rand()%16;
size=50+rand()%250;
delay1=10000; clearviewport();
drawstar();
moon();
}
i+=n1;
delay(delay1);
}
}
main()
{
int i,j,k;
int gdriver = DETECT, gmode;
registerbgidriver(EGA VGA_driver);
initgraph(&gdriver,&gmode,"");
drawstar();
moon();
starflower();
Closegraph();
}
参考文献:
[1] 王娣安剑孙秀梅《C语言程序开发范例宝典(1CD)》出版社:人民邮
电出版社ISBN:978-7-115-21818-6 出版时间:2010-01-01
[2] 王敬华, 林萍,陈静. C语言程序设计教程[M]. 北京: 清华大学出版社, 2005.10:141~167
[3] 谭浩强. C程序设计语言[M],. 北京: 机械工业出版社, 2003.4:205-256
[4]李邦几胡金桂王敬华. 最新C语言实用教程[M]. 北京: 化学工业出版社, 1996.3:35~43 66~97 132~148
[5] 李军民. 新编C语言程序设计教程(第二版)[M]. 西安: 西安电子科技大学出版社, 2005.08:68~93 148~171
指导教师评语
成绩评定:
指导教师签字:
年月日。

相关主题