计算机技术基础(c语言)课程设计 雪花飘落
- 格式:doc
- 大小:52.50 KB
- 文档页数:8
c语⾔桌⾯下雪程序,⽤C++写的在桌⾯上飘雪的特效程序#include〈windows.h〉#include〈time.h〉#include〈stdlib.h〉#include〈iostream.h〉const int SnowNumber=500; //雪点数量struct SnowNode{POINT postion; //雪点位置int iColor; //先前的颜⾊int iSpeed; //下落速度int iMove; //下落距离int iStick; //粘贴度};SnowNode SnowNodes[SnowNumber]; //雪点数组int hTimer=0;int CrWind=0;int CrStep=0; //当前循环步数(⽤于限速)int ScreenWidth=0; //屏幕宽度int ScreenHeight=0; //屏幕⾼度void GetScreenSize();void CALLBACK TimerProc(HANDLE hWnd,UINT uMsg,UINT idEvent,DWORD dwTime);void InitSnowNodes();int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow){MSG msg; //标准windows消息LARGE_INTEGER Frequency; //⾼性能定时器频率LARGE_INTEGER StartCt,EndCt;//⾼性能定时器计数float ElapsedTime; //时间间隔srand((unsigned)time(NULL));GetScreenSize();InitSnowNodes();QueryPerformanceFrequency(&Frequency);hTimer=SetTimer(0,0,rand()%5*500,(TIMERPROC)TimerProc);if(hTimer==0){MessageBox(0,TEXT(“创建定时器失败“),TEXT(“提⽰“),MB_OK|MB_ICONINFORMATION); return -1;}RegisterHotKey(0,0,MOD_CONTROL,(int)’L’);while(1){QueryPerformanceCounter(&StartCt); //执⾏运算前计数值if(PeekMessage(&msg,0,0,0,1)){switch(msg.message){case WM_TIMER: TimerProc(0,0,0,0);break; //预设风向改变时间已到case WM_HOTKEY: KillTimer(0,hTimer);//删除随机风向定时 器UnregisterHotKey(0,0);//删除退出热键break;case WM_DISPLAYCHANGE:GetScreenSize(); //重新取屏幕的尺⼨InitSnowNodes(); //初始化雪点的数组break;}}MoveSnowNodes();QueryPerformanceCounter(&EndCt);//执⾏运算后的计数值ElapsedTime=(EndCt.QuadPart-StartCt.QuadPart)/Frequency.QuadPart;if((ElapsedTime〈0.0005))Sleep(2); //简单限速else if(ElapsedTime〈0.0010)Sleep(1);else if(ElapsedTime〈0.0015)Sleep(3);}//MessageBox(0,TEXT(“消息“),TEXT(“消息“),MB_OK|MB_ICONINFORMATION); return 0;}void GetScreenSize(){ScreenWidth=GetSystemMetrics(SM_CXSCREEN);ScreenHeight=GetSystemMetrics(SM_CYSCREEN);return ;}void CALLBACK TimerProc(HANDLE hWnd,UINT uMsg,UINT idEvent,DWORD dwTime) {// MessageBox(0,TEXT(“消息“),TEXT(“消息“),MB_OK|MB_ICONINFORMATION); srand((unsigned)time(NULL));if(hTimer==0){}SetTimer(0,hTimer,((rand()%27+4)*500),(TIMERPROC)TimerProc); 重设下次风向改变时间//修改风向if(CrWind!=0)CrWind=0;elseCrWind=rand()%3-1;return ;}void InitSnowNodes(){HDC hScreenDC=0;int j=0;hScreenDC=CreateDC(“DISPLAY“,NULL,NULL,NULL);if(hScreenDC==NULL){MessageBox(0,“获取屏幕DC失败!“,“信息“,MB_OK|MB_ICONERROR);return ;}srand((unsigned)time(NULL));for(j=0;j〈SnowNumber;j++){SnowNodes[j].postion.x=rand()%ScreenWidth;SnowNodes[j].postion.y=rand()%ScreenHeight;SnowNodes[j].iColor=GetPixel(hScreenDC,SnowNodes[j].postion.x,SnowNodes[j].postion.y); SnowNodes[j].iSpeed=(rand()%5+1); //每次下落距离(1-5)SnowNodes[j].iStick=(30-rand()%SnowNodes[j].iSpeed); //粘贴度(⼏次循环作⼀次粘贴连判断// cout〈〈SnowNodes[j].postion.x〈〈“ Y:“〈〈SnowNodes[j].postion.y〈〈endl;}DeleteDC(hScreenDC);}void MoveSnowNodes()HDC hScreenDC=0;srand((unsigned)time(NULL));int x=0,y=0,i=0;hScreenDC=CreateDC(“DISPLAY“,NULL,NULL,NULL);if(hScreenDC==NULL){MessageBox(0,“获取屏幕DC失败!“,“信息“,MB_OK|MB_ICONERROR);return ;}// TextOut(hScreenDC,0,0,“虽然⼤检查顺顺藤摸⽠克格勃呀加“,0);for(i=0;i〈SnowNumber;i++){//控制雪点下降速度if((CrStep%SnowNodes[i].iSpeed)!=0)continue;//恢复上次被覆盖点if((GetPixel(hScreenDC,SnowNodes[i].postion.x,SnowNodes[i].postion.y))==0XFFFFFF) SetPixel(hScreenDC,SnowNodes[i].postion.x,SnowNodes[i].postion.y,SnowNodes[i].iColor); //根据⼏向作随机飘落x=SnowNodes[i].postion.x+rand()%3+CrWind;y=SnowNodes[i].postion.y+SnowNodes[i].iMove;//积雪(停留)效果处理if( ( (CrStep%SnowNodes[i].iStick)==0)&&( (GetPixel(hScreenDC,x,y))!=(GetPixel(hScreenDC,x,y+1)))&&( (GetPixel(hScreenDC,x-1,y))!=(GetPixel(hScreenDC,x-1,y+1)))&&( (GetPixel(hScreenDC,x+1,y))!=GetPixel(hScreenDC,x+1,y+1))){//稍稍调整坐标if(GetPixel(hScreenDC,x,y-1)==GetPixel(hScreenDC,x,y-2)){y--;{if(GetPixel(hScreenDC,x,y-1)==GetPixel(hScreenDC,x,y-2))y++;x+=CrWind;}//画三个雪花点SetPixel(hScreenDC,x,y,0XFFFFFF);SetPixel(hScreenDC,x+1,y+1,0XFFFFFF);SetPixel(hScreenDC,x-1,y+1,0XFFFFFF);//重⽣雪点SnowNodes[i].postion.x=rand()%ScreenWidth;SnowNodes[i].postion.y=rand()%10;SnowNodes[i].iColor=GetPixel(hScreenDC,SnowNodes[i].postion.x,SnowNodes[i].postion.y); }else{if( (x〈0) || (x〉ScreenWidth) || (y〉ScreenHeight)){SnowNodes[i].postion.x=(rand()%10);SnowNodes[i].postion.y=(rand()%ScreenWidth);SnowNodes[i].iColor=GetPixel(hScreenDC,SnowNodes[i].postion.x,SnowNodes[i].postion.y); }else{//保存颜⾊并绘制雪点SnowNodes[i].iColor=GetPixel(hScreenDC,x,y);SetPixel(hScreenDC,x,y,0XFFFFFF);//此时保存新雪点位置SnowNodes[i].postion.x=x;SnowNodes[i].postion.y=y;}}CrStep++;}⽤C++写的在桌⾯上飘雪的特效程序.doc下载Word⽂档到电脑,⽅便收藏和打印[全⽂共3466字]编辑推荐:下载Word⽂档。
一、实训背景随着计算机技术的不断发展,计算机图形学在各个领域得到了广泛的应用。
在计算机视觉、虚拟现实、动画制作等领域,计算机图形学发挥着至关重要的作用。
本课程设计旨在通过实训,让学生掌握计算机图形学的基本原理和方法,提高学生的实践能力和创新意识。
本次实训内容为设计并实现一个具有动态效果的圣诞树。
二、实训目的1. 掌握计算机图形学的基本原理和方法。
2. 熟悉计算机图形软件的使用,如OpenGL、DirectX等。
3. 提高编程能力和算法设计能力。
4. 培养学生的创新意识和团队合作精神。
三、实训内容1. 圣诞树的设计与绘制2. 动态效果的实现3. 用户交互的实现4. 项目文档的编写四、实训过程1. 确定圣诞树的设计方案在实训过程中,我们首先对圣诞树的设计进行了讨论,确定了以下设计方案:(1)圣诞树由多个不同大小的三角形组成,颜色由下至上依次为绿色、红色、金色。
(2)圣诞树顶部有一个彩球,颜色为金色。
(3)圣诞树周围有雪花飘落效果。
2. 圣诞树的绘制根据设计方案,我们使用OpenGL编程语言进行圣诞树的绘制。
具体步骤如下:(1)创建一个OpenGL窗口。
(2)设置背景颜色为黑色。
(3)绘制圣诞树:使用多个不同大小的三角形绘制圣诞树的主体部分,顶部添加一个彩球。
(4)绘制雪花:在圣诞树周围随机生成雪花,并设置雪花下落动画。
3. 动态效果的实现为了使圣诞树更加生动,我们为其添加了以下动态效果:(1)雪花飘落:设置雪花下落速度和方向,使雪花在屏幕上随机飘落。
(2)彩球旋转:设置彩球旋转速度和方向,使彩球在屏幕上旋转。
4. 用户交互的实现为了让用户更好地体验圣诞树,我们添加了以下用户交互功能:(1)用户可以通过鼠标点击圣诞树,使雪花下落速度加快。
(2)用户可以通过键盘上的上下左右键调整彩球的旋转方向。
5. 项目文档的编写在实训过程中,我们认真编写了项目文档,包括以下内容:(1)项目背景和目的。
(2)设计方案和实现方法。
《雪花飘飘——制作有“影片剪辑”的动画》教案(一)小学信息技术五年级上册第11课年级:五年级上册学科:信息技术版本:清华版(2012)【教材分析】《雪花飘飘——制作有“影片剪辑”的动画》是小学信息技术五年级上册的一节重要课程。
本节课的主要目的是让学生学习并掌握如何使用Flash软件制作含有“影片剪辑”的动画。
通过这节课的学习,学生不仅能够了解影片剪辑的基本概念,还能学会如何创建图形元件、影片剪辑元件,以及如何在场景中应用这些元件来制作动画。
一、教学目标1. 知识目标:理解并掌握影片剪辑元件的概念和创建方法,学会在Flash中制作含有影片剪辑元件的动画。
2. 技能目标:能够利用图形元件和引导线制作雪花飘落的动画效果,能够熟练导出swf格式的Flash影片文件。
3. 情感目标:通过制作雪花飘飘的动画,体验动画制作的乐趣,培养学生的审美情趣和创新精神。
二、教学重难点1. 教学重点:影片剪辑元件的创建和使用方法,雪花飘落动画的制作。
2. 教学难点:影片剪辑元件的理解及其在动画中的应用,雪花飘落动画的流畅性和自然性的实现。
三、教学准备1. 教师准备:Flash软件、教学课件、示例动画、微课视频等。
2. 学生准备:电脑、Flash软件安装完成。
四、教学过程(一)导入新课1. 情境导入:播放一段关于冬天雪景的视频,引导学生观察雪花飘落的景象,并提问学生是否喜欢雪花以及雪花的美丽之处。
2. 引出课题:告诉学生今天我们将学习如何使用Flash 软件制作雪花飘飘的动画,并板书课题《雪花飘飘——制作有“影片剪辑”的动画》。
(二)新课讲授1. 创建新文件并导入背景:指导学生新建一个Flash文件,并导入一张雪景背景图片作为动画的背景。
2. 创建影片剪辑元件:讲解影片剪辑元件的概念和作用,即影片剪辑元件可以是一段独立的动画,可以在主场景中反复调用和播放。
演示如何创建一个名为“飞舞的小雪花”的影片剪辑元件,并在其中绘制雪花形状和设置动画效果。
小学信息技术教案雪花飘飘小学信息技术教案 - 雪花飘飘引言在信息化时代,信息技术已经成为小学教育的重要组成部分。
学生需要掌握基本的计算机操作技能,了解网络安全知识,并能够运用信息技术解决问题。
本教案以雪花飘飘为主题,通过教学活动帮助学生学习并应用信息技术。
一、教案目标1. 让学生熟悉计算机的基本操作,包括开机、关机、登录和退出。
2. 培养学生的基本键盘操作技能,如字母、数字和符号的输入。
3. 引导学生了解和运用网络搜索工具,获取与雪花相关的知识和信息。
4. 锻炼学生的信息组织与表达能力,让他们能够用计算机制作一个小册子或简报。
二、教学准备1. 计算机教室或学校提供的电脑设备。
2. 网络连接稳定的环境。
3. 雪花的相关资料,如图书、图片或视频。
4. 制作小册子或简报的相关软件,如Microsoft Word或Microsoft PowerPoint。
三、教学过程1. 导入(10分钟)教师先向学生介绍雪花的特点和形状,通过展示图片或视频引起学生的兴趣。
然后提问学生是否见过雪花,以及他们对雪花的了解。
教师可以和学生分享一些有关雪花的知识,如雪花的形成原理、不同种类的雪花等。
2. 计算机基本操作(20分钟)教师向学生解释计算机的基本操作流程,包括开机、关机、登录和退出。
教师可以在屏幕上演示这些操作,并让学生跟随操作。
在学生熟悉基本操作后,教师可以设计一些练习题,让学生巩固所学内容。
3. 键盘操作技能(20分钟)教师向学生介绍键盘的布局,并讲解字母、数字和符号的输入方法。
教师可以以导入部分介绍过的雪花为例,让学生尝试在键盘上输入"雪花"这个词。
之后,教师可以设计一些打字练习,让学生逐渐提高打字速度和准确性。
4. 网络搜索与信息获取(30分钟)教师引导学生使用互联网搜索工具,如百度或谷歌,搜索与雪花相关的知识和信息。
学生可以尝试输入关键词,如"雪花形状"或"不同种类的雪花"来获取相关结果。
小学信息技术小学教学设计花瓣飘落添秀丽小学信息技术小学教学设计:花瓣飘落添秀丽导语:信息技术作为现代教育的重要组成部分,对于小学生的学习和发展起着至关重要的作用。
本次教学设计旨在通过使用信息技术手段,引导小学生在学习过程中培养动手能力和创造力,并借助花瓣飘落的图像特效,打造一个视觉上令人愉悦的学习环境,激发学生对信息技术的兴趣。
第一部分:导入与情境营造(300字左右)在教学设计的第一阶段,我们将通过一个情境营造的活动来引发学生对信息技术的浓厚兴趣。
首先,教师可以选择适合小学生年龄特点的短篇故事,讲述一只迷失了方向的小鸟在追寻美丽花园的过程中遇到的困难。
接着,教师将利用电子白板展示一张安静、美丽的花园图片,然后通过简单的点击,让花瓣从天空中飘落到屏幕上,同时呈现出优美的动画效果。
这样一来,学生们就会被这个美丽的情境所吸引,进而对主题产生兴趣。
第二部分:理论与知识讲解(800字左右)在导入之后,教师需要对信息技术的基本理论和相关知识进行介绍和讲解。
首先,教师可以简要解释信息技术的概念,并与学生分享信息技术在日常生活中的应用。
这样可以帮助学生理解信息技术的重要性和普适性。
接着,教师可以详细讲解图像特效的原理和应用,特别是如何利用计算机软件实现花瓣飘落的效果。
通过讲解这些知识,学生将能够更好地理解信息技术与花瓣飘落之间的关系,并对之感兴趣。
第三部分:实践与创作(800字左右)在理论讲解之后,教师将引导学生亲自动手使用信息技术软件来实现花瓣飘落的效果,并从中发挥他们的创造力。
首先,教师将向学生展示使用计算机绘图软件绘制花朵的方法,并指导学生完成一次圣诞节主题的花朵绘制活动。
然后,教师将教授学生制作花瓣飘落的动画特效,例如如何实现花瓣随风摇摆的效果。
接着,学生将分组进行创作,利用所学软件工具和技巧,制作一段优美的花瓣飘落动画。
在创作过程中,教师应提供必要的指导和支持,鼓励学生展现自己的创意和想象力。
结语:通过本次教学设计,我们旨在激发小学生对信息技术的兴趣和学习动力。
计算机技术基础课程设计C语言设计报告题目:雪花飘落专业: 网络工程班级: 16(3)班姓名:代应豪指导教师:代美丽成绩:一、选题背景:本例实现一个综合的雪花飘落现象,用户可以观察到雪花飘落的过程、用户通过控制输入雪花的大小,雪花的数量,飘落的速度等实现雪花飘落。
二、设计思想:编程思路:首先在程序开始处,开通语句#include<stdlib.h>引入头函数,建立函数,然后定义结构体变量Snow,并且编写雪花的一系列操作的函数;最后在main函数的内部实现对各子函数的调用,实现雪花飘落的过程。
三.主要解决问题的方法及技术关键1.用keyx,keyy函数完成对内存空间保存,用DrawSnow函数完具体实现,change函数改变雪的颜色,Choose选择演示内容Init(void),Close(void)函数完成图形驱动和关闭等。
2.结构体函数实现图形的关闭,区域保存,在雪中输出文字等.用While,for循环,If语句等完成雪花的设计,包括速度、颜色、显示标题、闪烁效果等。
3.用起泡排序、汉诺塔、双链表、起泡排序、基数排序、二分查找、二叉树遍历等设置雪花颜色。
四.程序流程图五、程序清单:/* 源程序*//***dsdemo.c演示系统***/#include<stdlib.h>#include<graphics.h>#define ESC 0x011b#define ENTER 0x1c0d#define DOWN 0x5000#define UP 0x4800struct Snow/*雪的一些参数*/ {int x;int y;int speed;/*雪花的速度*/}snow[100];struct Star/*星星的一些参数*/{int x;int y;int color;}star[200];int key;/*按键变量*/int keyx,keyy;/*选项键的坐标*/int snownum=0;/*雪的个数*/int size;/*保存区域的大小*/int change=10;/*变颜色有关*/void *save1,*save2;/*保存空间*/void Copy(void);/*保存区域*/void DrawSnow(void);/*具体实现*/void Pr(void);/*输出字体*/void Choose(void);/*选择演示内容*/void DrawStar(void);/*最后的星星效果*/void DrawBall(int x,int y,int color);/*画选择的球体*/ void Init(void);/*图形驱动*/void Close(void);/*图形关闭*/void main(void){Init();Copy();DrawSnow();/*雪花飘动*/Choose();/*选择演示内容*/DrawStar();/*结束画面*/Close();exit(0);}void Init(void){int gd=DETECT,gm;initgraph(&gd,&gm,"c:\\tc");cleardevice();}void Close(void)/*图形关闭*/{getch();closegraph();}void Copy(void)/*保存区域*/{setcolor(0);setfillstyle(SOLID_FILL,15);fillellipse(200,200,4,4);size=imagesize(196,196,204,204);/*定义保存图象区域大小*/ save1=malloc(size);/*申请空间*/save2=malloc(size);getimage(196,196,204,204,save1);/*保存雪花*/getimage(96,96,104,104,save2); /*保存背景黑色*/}void Pr(void)/*在雪中输出文字*/{settextstyle(0,0,1);if(change>=20&&change<=30||change>=50&&change<=60|| change>=100&&change<=110)/*闪烁效果*/setcolor(YELLOW);elsesetcolor(BLACK);outtextxy(250,250,"anykey to continue");setcolor(change/10);/*变换颜色显示标题*/settextstyle(0,0,3);outtextxy(100,200,"Data Structure Demo");/*标题*/}/*显示雪花的具体过程*/void DrawSnow(void){int i;int sx[62];randomize();for(i=0;i<62;i++) /*定义雪花的x坐标*/sx[i]=(i+2)*10;cleardevice();while(!kbhit()){Pr();if(snownum!=100)/*生成新的雪花*/{snow[snownum].speed=2+random(5);/*速度随机定,但不小于2*/ i=random(62);snow[snownum].x=sx[i];/*随机取x坐标*/snow[snownum].y=10-random(100);}for(i=0;i<snownum;i++)/*去雪*/putimage(snow[i].x,snow[i].y,save2,COPY_PUT);Pr(); /*显示标题*/if(snownum!=100)snownum++;setfillstyle(SOLID_FILL,15);/*画雪*/for(i=0;i<snownum;i++){snow[i].y+=snow[i].speed;putimage(snow[i].x,snow[i].y,save1,COPY_PUT);if(snow[i].y>500)snow[i].y=10-random(200);}change++;if(change==140)/*颜色变化*/change=10;}}/*画选择的球体x和y为坐标,color为球的颜色*/void DrawBall(int x,int y,int color){setcolor(0);setfillstyle(SOLID_FILL,color);fillellipse(x,y+10,10,10);}/*选择演示函数*/void Choose(void){int yes;/*判断是否退出选项,1不退出0退出*/int oyes=1;while(oyes){Init();cleardevice();yes=1;keyx=140;keyy=150;setcolor(11);rectangle(40,40,600,440);/*画边框线/setcolor(13);settextstyle(0,0,3);/*标题大一些*/outtextxy(100,70,"Data Structure Demo");settextstyle(0,0,2);/*其它选项小一些*/setcolor(RED);outtextxy(200,150,"hanoi tower");/*汉诺塔*/setcolor(BLUE);outtextxy(200,190,"double link");/*双链表*/setcolor(GREEN);outtextxy(200,230,"bubble sorting"); /*起泡排序*/setcolor(YELLOW);outtextxy(200,270,"radix sorting"); /*基数排序*/setcolor(10);outtextxy(200,310,"binary serach"); /*二分查找*/setcolor(MAGENTA);outtextxy(200,350,"binary tree"); /* 二叉树遍历*/setcolor(WHITE);outtextxy(200,390,"exit");/*结束程序*/DrawBall(keyx,keyy,11);while(yes)/*选项的循环条件*/{key=bioskey(0);if(key==ESC)/*退出系统*/break;if(key==UP)/*上键盘操作*/{DrawBall(keyx,keyy,BLACK);/*先用黑色在原来位置去除球*/if(keyy!=150)keyy-=40;elsekeyy=390;DrawBall(keyx,keyy,11);/*新位置输出球*/}if(key==DOWN)/*下键盘操作*/{DrawBall(keyx,keyy,BLACK);/*先用黑色在原来位置去除球*/if(keyy!=390)keyy+=40;elsekeyy=150;DrawBall(keyx,keyy,11);/*新位置输出球*/}if(key==ENTER)/*确定键*/{switch(keyy)/*判断内容*/{case 150:system("hanoi");yes=0;break;/*调用汉诺塔*/case 190:system("dblink");yes=0;break;/*调用双链表*/case 230:system("bubble");yes=0;break;/*调用起泡排序*/case 270:system("radix");yes=0;break;/*调用基数排序*/case 310:system("binary");yes=0;break;/*调用二分查找*/case 350:system("tree2");yes=0;break; /*调用二叉树*/case 390: yes=0;oyes=0;/*exit选项*/}/*endswitch*/} /*endenter*/} /*endwhile*/} /*endwhile*/}/*结束画面*/void DrawStar(void){int i;cleardevice();setcolor(GREEN);settextstyle(0,0,2);while(!kbhit()){for(i=0;i<200;i++)/*随机生成星星*/{star[i].x=random(640);star[i].y=random(480);star[i].color=random(13)+1;}for(i=0;i<200;i++)/*输出星星*/{putpixel(star[i].x,star[i].y,star[i].color);delay(100);}outtextxy(100,200,"Thank you for use this system");sleep(1);for(i=0;i<200;i++)/*去除星星*/{putpixel(star[i].x,star[i].y,0);delay(50); }}}六.总结、设计结果说明1、通过本程序的练习可以使读者掌握汉诺塔、起泡排序、基数排序、二分查找、二叉树等函数的使用方法。
六年级上册信息技术教案2----编写简单的过程教学目标【知识与技能】1、了解波形在音频编辑中的作用,把握缩放波形的操作方法;2、能准确选择波形区域;3、把握复制、粘贴命令,实现对音频文件的截取、连接操作。
【过程与方法】通过引入银行排队叫号系统的生活情境,引导学生经历发觉问题——摸索问题——自主探究——解决问题等一系列的学习及实践过程,使学生逐步把握波形区域的选择、使用复制、粘贴命令,实现对音频文件的截取、连接操作。
【情感态度价值观】1.通过银行的排队叫号情境,让学生体验信息技术在生活中的广泛应用,激发学生学习信息技术的爱好和热情。
2.通过制作任意组合号码的音频文件和下课铃声的学习活动,紧密联系学生生活实际,使学生的制造力和知识整合能力得到培养,不断提高学生的审美能力和信息素养。
2学情分析小学六年级学生对运算机的差不多操作(如选取、复制、粘贴等)有较深的认识和较熟练的把握。
通过前一课的学习,学生差不多把握软件GoldWav e的启动方法,熟悉了GoldWave程序窗口的各个组成部分并学会了使用Gol dWave录制声音的基础上,进一步学习在GoldWave中对录音进行剪辑和加工。
3重点难点【教学重点】1、了解波形在音频编辑中的作用,把握缩放波形的操作方法;2、能准确选择波形区域;3、把握复制、粘贴命令,实现对音频文件的截取、连接操作。
【教学难点】1、编辑音频时,能熟练使用波形缩放操作,快捷自如的完成音频处理过程;2、三种粘贴命令的区别。
4教学过程4.1第一学时4.1.1教学活动活动1【导入】创设情境,问题导入引入银行里的”排队叫号系统“,让学生体会使用”排队叫号系统“的方便和舒服,并引导学生摸索千以内数字号码的声音文件是如何制作的?活动2【讲授】观看摸索,猎取新知任务一:认识并查看波形图1、在GoldWave程序中打开音频文件“数字0-9.wav”并试听;2、观看每个数字的波形的特点,尝试放大或缩小波形;3、问题:放大与缩小波形有什么作用?(学生摸索并回答)师演示并小结:波形图中有高低起伏的地点就有声音的区域,直线的地点确实是没有声音的区域我们称它为“静音”。
c程序课程设计雪花飘落一、教学目标本节课的教学目标是让同学们掌握C程序设计的基本方法,通过学习“雪花飘落”的实例,理解基本的编程概念和语法,培养编程思维和解决问题的能力。
知识目标包括了解C程序的基本结构,掌握变量、运算符、控制语句等基本语法;技能目标包括能够独立完成程序的编写和调试,提高代码的质量和效率;情感态度价值观目标包括培养学生的团队合作意识,激发学生对计算机科学的兴趣和热情。
二、教学内容本节课的教学内容主要包括C程序的基本语法和编程技巧。
首先,通过讲解和示例,让学生了解C程序的基本结构,包括变量、运算符、控制语句等;然后,通过“雪花飘落”的实例,让学生掌握基本的编程方法,包括函数的定义和调用、循环和条件语句的使用等;最后,通过练习和讨论,让学生巩固所学知识,提高编程能力和解决问题的能力。
三、教学方法为了达到本节课的教学目标,我们将采用多种教学方法,包括讲授法、案例分析法、实验法等。
首先,通过讲授法,向学生介绍C程序的基本语法和编程概念;然后,通过案例分析法,让学生通过分析“雪花飘落”的实例,理解和掌握编程方法;最后,通过实验法,让学生亲自动手编写和调试程序,提高编程能力和解决问题的能力。
四、教学资源为了支持本节课的教学内容和教学方法的实施,我们将准备多种教学资源,包括教材、参考书、多媒体资料、实验设备等。
教材和参考书将提供C程序的基本语法和编程概念的讲解和示例;多媒体资料将通过动画和视频等形式,生动形象地展示“雪花飘落”的实例;实验设备将让学生亲自动手编写和调试程序,提高编程能力和解决问题的能力。
五、教学评估本节课的教学评估将采用多元化的评估方式,包括平时表现、作业和考试等,以全面客观地评价学生的学习成果。
平时表现评估将关注学生在课堂上的参与度、提问和回答问题的表现等;作业评估将通过对学生的练习和项目进行评分,检查学生对知识的掌握和应用能力;考试评估将通过笔试和上机考试,测试学生对C程序设计的基本概念和编程技巧的掌握程度。
计算机技术基础课程设计C语言设计报告题目:雪花飘落一、选题背景:本例实现一个综合的雪花飘落现象,用户可以观察到雪花飘落的过程、用户通过控制输入雪花的大小,雪花的数量,飘落的速度等实现雪花飘落。
二、设计思想:编程思路:首先在程序开始处,开通语句#include<stdlib.h>引入头函数,建立函数,然后定义结构体变量Snow,并且编写雪花的一系列操作的函数;最后在main函数的内部实现对各子函数的调用,实现雪花飘落的过程。
三.主要解决问题的方法及技术关键1.用keyx,keyy函数完成对内存空间保存,用DrawSnow函数完具体实现,change函数改变雪的颜色,Choose选择演示内容Init(void),Close(void)函数完成图形驱动和关闭等。
2.结构体函数实现图形的关闭,区域保存,在雪中输出文字等.用While,for循环,If语句等完成雪花的设计,包括速度、颜色、显示标题、闪烁效果等。
3.用起泡排序、汉诺塔、双链表、起泡排序、基数排序、二分查找、二叉树遍历等设置雪花颜色。
四.程序流程图五、程序清单:/* 源程序*//***dsdemo.c演示系统***/#include<stdlib.h>#include<graphics.h>#define ESC 0x011b#define ENTER 0x1c0d#define DOWN 0x5000#define UP 0x4800struct Snow/*雪的一些参数*/ {int x;int y;int speed;/*雪花的速度*/}snow[100];struct Star/*星星的一些参数*/ {int x;int y;int color;}star[200];int key;/*按键变量*/int keyx,keyy;/*选项键的坐标*/int snownum=0;/*雪的个数*/int size;/*保存区域的大小*/int change=10;/*变颜色有关*/void *save1,*save2;/*保存空间*/void Copy(void);/*保存区域*/void DrawSnow(void);/*具体实现*/void Pr(void);/*输出字体*/void Choose(void);/*选择演示内容*/void DrawStar(void);/*最后的星星效果*/void DrawBall(int x,int y,int color);/*画选择的球体*/void Init(void);/*图形驱动*/void Close(void);/*图形关闭*/void main(void){Init();Copy();DrawSnow();/*雪花飘动*/Choose();/*选择演示内容*/DrawStar();/*结束画面*/Close();exit(0);}void Init(void){int gd=DETECT,gm;initgraph(&gd,&gm,"c:\\tc");cleardevice();}void Close(void)/*图形关闭*/{getch();closegraph();}void Copy(void)/*保存区域*/{setcolor(0);setfillstyle(SOLID_FILL,15);fillellipse(200,200,4,4);size=imagesize(196,196,204,204);/*定义保存图象区域大小*/ save1=malloc(size);/*申请空间*/save2=malloc(size);getimage(196,196,204,204,save1);/*保存雪花*/getimage(96,96,104,104,save2); /*保存背景黑色*/}void Pr(void)/*在雪中输出文字*/{settextstyle(0,0,1);if(change>=20&&change<=30||change>=50&&change<=60||change>=100&&change<=110)/*闪烁效果*/setcolor(YELLOW);elsesetcolor(BLACK);outtextxy(250,250,"anykey to continue");setcolor(change/10);/*变换颜色显示标题*/settextstyle(0,0,3);outtextxy(100,200,"Data Structure Demo");/*标题*/}/*显示雪花的具体过程*/void DrawSnow(void){int i;int sx[62];randomize();for(i=0;i<62;i++) /*定义雪花的x坐标*/sx[i]=(i+2)*10;cleardevice();while(!kbhit()){Pr();if(snownum!=100)/*生成新的雪花*/{snow[snownum].speed=2+random(5);/*速度随机定,但不小于2*/ i=random(62);snow[snownum].x=sx[i];/*随机取x坐标*/snow[snownum].y=10-random(100);}for(i=0;i<snownum;i++)/*去雪*/putimage(snow[i].x,snow[i].y,save2,COPY_PUT);Pr(); /*显示标题*/if(snownum!=100)snownum++;setfillstyle(SOLID_FILL,15);/*画雪*/for(i=0;i<snownum;i++){snow[i].y+=snow[i].speed;putimage(snow[i].x,snow[i].y,save1,COPY_PUT);if(snow[i].y>500)snow[i].y=10-random(200);}change++;if(change==140)/*颜色变化*/change=10;}}/*画选择的球体x和y为坐标,color为球的颜色*/void DrawBall(int x,int y,int color){setcolor(0);setfillstyle(SOLID_FILL,color);fillellipse(x,y+10,10,10);}/*选择演示函数*/void Choose(void){int yes;/*判断是否退出选项,1不退出0退出*/int oyes=1;while(oyes){Init();cleardevice();yes=1;keyx=140;keyy=150;setcolor(11);rectangle(40,40,600,440);/*画边框线/setcolor(13);settextstyle(0,0,3);/*标题大一些*/outtextxy(100,70,"Data Structure Demo");settextstyle(0,0,2);/*其它选项小一些*/setcolor(RED);outtextxy(200,150,"hanoi tower");/*汉诺塔*/setcolor(BLUE);outtextxy(200,190,"double link");/*双链表*/setcolor(GREEN);outtextxy(200,230,"bubble sorting"); /*起泡排序*/ setcolor(YELLOW);outtextxy(200,270,"radix sorting"); /*基数排序*/ setcolor(10);outtextxy(200,310,"binary serach"); /*二分查找*/ setcolor(MAGENTA);outtextxy(200,350,"binary tree"); /* 二叉树遍历*/ setcolor(WHITE);outtextxy(200,390,"exit");/*结束程序*/DrawBall(keyx,keyy,11);while(yes)/*选项的循环条件*/{key=bioskey(0);if(key==ESC)/*退出系统*/break;if(key==UP)/*上键盘操作*/{DrawBall(keyx,keyy,BLACK);/*先用黑色在原来位置去除球*/if(keyy!=150)keyy-=40;elsekeyy=390;DrawBall(keyx,keyy,11);/*新位置输出球*/}if(key==DOWN)/*下键盘操作*/{DrawBall(keyx,keyy,BLACK);/*先用黑色在原来位置去除球*/if(keyy!=390)keyy+=40;elsekeyy=150;DrawBall(keyx,keyy,11);/*新位置输出球*/}if(key==ENTER)/*确定键*/{switch(keyy)/*判断内容*/{case 150:system("hanoi");yes=0;break;/*调用汉诺塔*/case 190:system("dblink");yes=0;break;/*调用双链表*/ case 230:system("bubble");yes=0;break;/*调用起泡排序*/ case 270:system("radix");yes=0;break;/*调用基数排序*/ case 310:system("binary");yes=0;break;/*调用二分查找*/ case 350:system("tree2");yes=0;break; /*调用二叉树*/ case 390: yes=0;oyes=0;/*exit选项*/}/*endswitch*/} /*endenter*/} /*endwhile*/} /*endwhile*/}/*结束画面*/void DrawStar(void){int i;cleardevice();setcolor(GREEN);settextstyle(0,0,2);while(!kbhit()){for(i=0;i<200;i++)/*随机生成星星*/{star[i].x=random(640);star[i].y=random(480);star[i].color=random(13)+1;}for(i=0;i<200;i++)/*输出星星*/{putpixel(star[i].x,star[i].y,star[i].color);delay(100);}outtextxy(100,200,"Thank you for use this system");sleep(1);for(i=0;i<200;i++)/*去除星星*/{putpixel(star[i].x,star[i].y,0);delay(50); }}}六.总结、设计结果说明1、通过本程序的练习可以使读者掌握汉诺塔、起泡排序、基数排序、二分查找、二叉树等函数的使用方法。