C语言课程设计

发布 2022-10-03 02:54:28 阅读 5899

设计题目:洁白的雪绒花。

专业:计算机科学与技术

班级:c5-1

学生姓名:周云凤

学号:10号。

指导教师:郭天娇。

2023年7月。

目录。摘要3

第一章系统分析4

第二章系统实现5

第三章系统调试9

第四章使用说明10

总结11附录:

1源**12

2参考资料17

摘要。经过一个学期对《c程序设计》的学习,同学们都认为真正的学到了有用知识,可能有一些人学的不够理想,但无论如何,这些知识都为我们的下一步学习打下了坚实的基础。做这么一个课程设计,一方面是为了检查我们一个学期来我们学习的成果,另一方面也是为了让我们进一步的掌握和运用它,同时也让我们认清自己的不足之处和薄弱环节,加以弥补和加强。

本程序是夜晚飘舞浪漫的雪花,给人以清新气爽的感觉。您在疲惫的一天看到此程序,听到优美的**后,感到非常的轻松和快乐。但本人所学的c语言和自身能力有限,没有达到想象的效果,请老师和同学谅解。

关键字:address name unit number

第一章系统分析。

利用静态数组实现雪花的一些参数,数组的每一个元素是结构体类型,通过这个例子了解一些函数的基本功能,重点掌握数组元素为结构体的应用、数组作函数参数、文件读写、自定义函数等知识。

程序设计一般由两部分组成:算法和数据结构,合理地选择和实现一个数据结构和处理这些数据结构具有同样的重要性。在浪漫雪花管理程序中,由于雪花会动,必须定义雪的一些参数:

如速度、颜色、坐标、大小、动画效果、按键要求、去除雪花等。

基本功能模块如图所示。

第二章系统实现。

1、 数据结构。

由于使用静态数组需要预先估计记录数,所以先预定义一个常数,表示记录数,也就是数组的大小,记录为esc、enter、down、up,所以定义每个数组元素的类型为结构体。由于数组存储是采用顺序存放,在内存空间中占用连续空间,所以若干条记录通讯录的管理实质就是对顺序存储的线性表的管理。

2、main()主函数。

程序采用模块化设计,主函数是程序的入口,各模块独立,可分块调试,均由主函数控制调用。控制功能的实现通过循环执行一个开关语句,该语句的条件值是通过调用主菜单函数得到的返回值,根据该值,调用响应的各功能函数同时设置一个断点,即当返回值为一定条件时运行exit ()函数,以免造成死循环。

3、 void copy(void)

直接利用输出函数copy()保存函数区域,然后定义保存区域大小size,再设置保存雪花和背景色。如下例:

void copy(void)/*保存区域*/

setcolor(0);

setfillstyle(solid_fill,15);

fillellipse(200,200,4,4);

size=imagesize(196,196,204,204);/定义保存图象区域大小*/

s**e1=malloc(size);/申请空间*/

s**e2=malloc(size);

getimage(196,196,204,204,s**e1);/保存雪花*/

getimage(96,96,104,104,s**e2); 保存背景黑色*/}

由于程序中很多地方用到了字符串输入语句,会造成下一个字符不能正确读入,为了在程序调用执行了各个函数后能够清晰地看结果,可以设置背景色。

4、 copy()复制文件。

为了保存数据,防止意外发生,为数据做备份是很有必要的。

本函数是将文件读写功能结合到一起的应用。将事先保存的记录文件按rb方式打开,输入目标文件名,然后利用文件格式读写函数将源文件读写函数将源文件中的信息写到目标文件中。

5、 change 定义颜色的变化。

change++;

if(change==140)/*颜色变化*/

change=10;

6、 setcolor() 设置当前画线颜色。

如红色setcolor(re

绿色setcolor(gr

黑色setcolor(bl或。

setcolor(11) ,setcolor(8) 等。

7、dlay() 将程序的执行暂停一段时间(毫秒)

for(i=0;i<200;i++)去除星星*/

{ putpixel(star[i].x,star[i].y,0);

delay(50);

for循环从0---200,每循环一次加一,直到不满足条件为止。

8、putpixel() 在指定位置画一像素

void far putpixel(int x,inty,intpixecolor);

9、 cleardevice 清除图形屏幕。

void drawsnow(void)

int i;

int sx[62];

randomize();

for(i=0;i<62;i++)定义雪花的x坐标*/

sx[i]=(i+2)*10;

cleardevice();

画雪花,定义了x轴坐标,只要数组[sx]=(i+2)*10,就清除图形屏幕。

10、 settextstyle 为图形输出设置当前文本属性。

11、 outtextxy 在指定位置显示一字符串。

12、 setfillstyle 设置填充颜色和模式。

void drawball(int x,int y,int color)

setcolor(0);

setfillstyle(solid_fill,color);

fillellipse(x,y+10,10,10);

画小球时,用setfillstyle()填充颜色,用fillellipse画一个小球。

13、 putimage 在屏幕上输出一位图for(i=0;i14、 fillellipse 画出并填充一椭圆。

15、 getimage 将指定的区域的一个位图存到主存中。

16、 outtextxy() 在指定位置输入汉字。

setcolor(yellow);

outtextxy(100,200,"thank you for use this system");

在x=100处,y=200处输出“thank you for use this system” 。

第三章系统调试。

编译、连接的成功并不意味着程序的最终成功。逻辑上的错误机器不易检查出来,这时需要对数据结果进行分析。这种错误的查找是最难的,需要编程序的人有相当的耐心和细心去把问题找出来。

这也是本次程序编辑过程中碰到的最大的难题。往往运行之后得不到另人满意的结果,此时解决的方法一则用“分段检查”的方法,在程序的不同位置设几个printf函数语句,输出有关变量的值,逐段往下检查,或用debug进行调试,对检查出的错误进行修改,当调试完毕将设置的printf都删去。若在程序中找不到问题,则再来考虑算法是否逻辑严谨,再进行修改。

如此循环往复,直到最后程序运行成功。

在本次程序编辑过程中,我就是常遇到编译能通过,能够运行程序,但是总在输入、删除等操作完之后再想去看数据文件中存在的数据记录的时候,却一条记录也显示不出来,我怀疑是哪个对方对n变量的定义或使用出错了,于是在每个主要函数的操作过程中添加了printf语句用来显示n的变化,例如在执行某个函数前添加插入语句显示n的起始值,在执行完该个函数后再添加插入语句显示此时n的结果值,观察n的变化是否正确,如果错误了,也就说明该函数编写过程有错。诸如这样的调试方法,不断缩小检查范围,最后将错误找到,进行修改。所以到最后我找到了错误,及时改正,终于把程序完成了,一切功能显示正常。

第四章使用说明。

本程序使用十分简便,在windows操作界面上就可以操作,鼠标双击进入该程序,出现主菜单界面, 可以按提示输入信息。

按ctrl+f9键就可以运行此程序:

首先,映入眼帘的是飘动的雪花和着动听的**,按任意键就可以向下一步执行。

其次,进入一个画面是:一个会动的小球和退出按钮exit。按上下光标键就可以移动小球,小球移动到与exit平行时,按回车键就退出此画面。

最后,进入一个用小星星包围字体的画面。小星星可以随机动,字体是由不同颜色组成的,可以先后出现。按任意键就可以回到原程序。

总结。编程看起来似乎是一件很枯燥、乏味的事情,但是经历了这次大程序的编辑之后,发现其实里面还是充满乐趣的,一旦真的专研下去什么事情都可以放下,来认真研究。本来大家都认为花两周的时间来编一个大作业未免太浪费时间了,但是事实证明一周的时间只有真正利用起来才能做出优秀的作业。

很多同学一开始松松垮垮不把它当回事,等到时间临近再来弄的时候才发现很困难,而且时间又来不及,心情更加浮躁,根本就静不下心来考虑如何编程了,所以到**去偷袭一点过来,这样实习的意义也就没了。在这个编程过程中曾经我们想放弃过,因为实在太复杂,感觉太费时,但是最终我们还是说服了自己坚持了下来,看到自己最后的作业,虽然不是很优秀,但是还是很自豪。

总之,编程尤其是调试是一项细致深入的工作,需要下工夫、动脑子、善于积累经验,这往往能反映出一个人的水平、经验和科学态度。

附录。1 源**。

*3. 源程序*/

***演示系统***

#include<>

#include<>

#define esc 0x011b

#define enter 0x1c0d

#define down 0x5000

#define up 0x4800

struct snow/*雪的一些参数*/

int x;

int y;

int speed;/*雪花的速度*/

snow[100];

struct star/*星星的一些参数*/

int x;

int y;

C语言课程课程设计

课程设计报告。课程名称 c语言程序设计 系别 xxx 专业班级 xxx班 学号 xxxxxxxxxx 姓名 xxx 课程题目 10或100以内儿童加减乘除算术游戏。完成日期 2013.6.14 19 指导老师 xxx 2013年 6月 21日。附件 一 程序模块图。二 源程序。include inc...

C语言课程设计

目录。1 c语言程序课程设计教学大纲。2 c语言程序课程设计说明书。3 c语言程序课程设计报告 模板 4 c语言程序课程设计成绩评定表。xx xx学院。课程教学大纲。课程名称 c语言程序课程设计。适用专业 课程类别 专业基础课。制订时间 2010年11月 计算机科学与技术系制。c语言程序课程设计教学...

C语言课程设计

目录。1 c语言程序课程设计教学大纲。2 c语言程序课程设计说明书。3 c语言程序课程设计报告 模板 4 c语言程序课程设计成绩评定表。珠海学院。课程教学大纲。课程名称 c语言程序课程设计。适用专业 2010级计算机科学与技术系各专业。课程类别 专业基础课。制订时间 2010年11月 计算机科学与技...