您好,欢迎访问三七文档
当前位置:首页 > 电子/通信 > 综合/其它 > C语言课程设计(猜数游戏和折线图)
C语言程序设计——实验报告班级:信管082班姓名:学号:2009年6月程序设计1——猜数游戏一设计目的与要求实验目的:使用C语言编写一个猜数游戏,可以判断一个人的反应快慢。要求程序运行后在屏幕上有这样的提示:DOYOUWANTTOPLAYIT.(‘Y’OR’N’),如果按下键盘上的Y,就可以进入猜数游戏中,把输入的数和随机产生的数进行比较,并根据比较的结果进行提示,若使用者输入的数字和随机产生的数字相同所。本例用的时间小于15秒,就打印出“你太聪明了”。基本要求:能够掌握随机函数的具体使用,利用它产生随机数作猜数游戏。二基本原理和设计方法程序说明:本例主要是利用时间函数来让游戏者猜一个数。这个数是随机产生的,如果输入的数比这个数小,则它会提示让游戏者输入一个大点的数:PLEASEINPUTALITTLEBIGGER,当输入的数比这个数小时,则会提示输入一个小一点的数:PLEASEINPUTALITTLESMALLER,当猜对了这个数的时候,则问:DOYOUWANTTOTRYITAGAIN?(YORN),当刚进入游戏的时候提示输入一个数:PLEASEINPUTNUMBERYOUGUESS,并开始计时。设计方法:进入程序时显示一个提示语句:doyouwanttoplayit(‘y’or‘n’)根据游戏者的选择进入一个循环,循环内部使用随机函数产生一个随机数,并提示游戏者输入一个数字同这个数比较(在游戏者输入的同时开始计时),根据每次比较的结果给出提示说明,最后显示出游戏者猜中这个随机数所用的时间并根据给予一定的评价。使用的头文件和函数:intrand(viod)stalib.返回一个随机数字;time_ttime(time_t*timer)time.h返回当前时间;doubledifftime(time_ttime2,time_ttime1)time.h返回从time1到time2的时间差三源程序#includetime.h#includestdlib.h#includestdio.hmain(){charc;clock_tstart,end;/*定义时间函数*/time_ta,b;doublevar;inti,guess;srand(time(NULL));/*设置随机数种子*/printf(doyouwanttoplayit.('y'or'n')\n);loop:while((c=getchar())=='y')/*读取字符y,随后进入循环*/{i=rand()%100;/*设置随机产生的数范围在0~100之间*/printf(\npleaseinputnumberyouguess:\n);start=clock();/*开始计时*/a=time(NULL);scanf(%d,&guess);while(guess!=i){if(guessi){printf(pleaseinputalittlesmaller.\n);scanf(%d,&guess);}else{printf(pleaseinputalittlebigger.\n);scanf(%d,&guess);}}end=clock();b=time(NULL);printf(\1:ittookyou%6.3fseconds\n\n,var=difftime(b,a));if(var15)printf(\1\1Youareveryclever!\1\1\n\n);elseif(var25)printf(\1\1youarenormal!\1\1\n\n);elseprintf(\1\1youarestupid!\1\1\n\n);printf(\1\1Congradulations\1\1\n\n);printf(Thenumberyouguessis%d,i);}printf(\ndoyouwanttotryitagain?(\y\.or.\n\)\n);if((c=getch())=='y')/*返回循环*/gotoloop;}四运行结果五总结与感受经过两个星期的上机实践学习,使我对C语言课程设计这门课程有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,通过实践,我也发现我的好多不足之处,首先是以前的C语言基础没打好,一些基本常识性东西都不知道,再有操作时有很多很生疏的东西,虽然在学习课本知识的时感觉什么东西都很简单,但真正操作起来确实如此之难,语言中经常出现的错误也不了解,通过实践,使我在这几个方面的认识有所提高。通过实践的学习,我认到学好计算机要重视实践操作,不仅仅是学习C语言程序设计,还是其它的课程,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己更好地学好计算机。回顾起此次C语言课程设计,至今我仍感慨颇多,的确,从选题到定稿,从理论到实践,在整整两星期的日子里,可以说得是苦多于甜,但是可以学到很多很多的的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。通过这次课程设计使我懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对以前所学过的知识理解得不够深刻,掌握得不够牢固,不过设计终于顺利完成了,在设计中遇到了很多编程问题,最后在老师的辛勤指导下,终于游逆而解。同时,在老师的身上我学得到很多实用的知识,再次表示感谢!同时,对给过我帮助的所有同学和各位指导老师再次表示忠心的感谢!程序设计2——折线图一设计目的与要求实验目的:让读者掌握调用图形函数及在程序中运用数学原理来可视化数据的方法。实验要求:运用模块化的设计思想完成各功能模块的设计;程序运行界面美观。二基本原理和设计方法1问题描述利用TurboC提供的图形库,对某工厂10个月的产值进行折线图的绘制。2基本原理利用graphics.h中的绘图函数画出线等基本图元,并显示在屏幕上。3程序总体结构设计主函数由屏幕初始化函数(画出坐标轴外貌)和折线图绘制函数(画出各数据对应的折线段)两部分构成。其主要部分如下:#includegraphics.h…voidmain(){…屏幕初始化函数;折线图绘制函数;…}三源程序#includedos.h#includegraphics.h#includeconio.hvoidmain(){intdriver=DETECT,mode=0;/*定义两个整型变量*/intb[]={1,3,4,5,2,3,1,1,4,3};/*定义整型数组b*/inti,j,xstep=48,ystep=40;/*给X,Y轴设定字符*/charbuffer[10];initgraph(&driver,&mode,G:\\tc3\\bgi);/*初始化图形系统*/gotoxy(30,3);/*将光标移动到指定行3和列30*/printf(%s,thisissample);line(40,80,40,310);/*在每两点之间划直线*/line(40,310,540,310);j=310;settextjustify(CENTER_TEXT,CENTER_TEXT);/*设置文本对齐的方式为原点*/for(i=0;i=5;i++){line(20,j,40,j);itoa(i,buffer,10);/*把数i转化为10进制数保存在buffer中*/outtextxy(10,j,buffer);/*在坐标(10,j)显示buffer中的内容*/j-=ystep;}gotoxy(6,4);/*将光标移动到指定行4和列6*/printf(%s,value);j=40;settextjustify(CENTER_TEXT,TOP_TEXT);/*设置文本对齐的方式为y轴最上*/for(i=0;i=10;++i){line(j,320,j,310);/*在每两点之间划直线*/itoa(i,buffer,10);/*把数i转化为10进制数保存在buffer中*/outtextxy(j,330,buffer);/*在坐标(j,330)显示buffer中的内容*/j+=xstep;}j=40;moveto(j,310-(b[0]*ystep));/*将cp移动到指定位置*/for(i=0;i=10;++i){if(i!=10){setcolor(2);/*设置颜色*/lineto(j+xstep,310-(b[i]*ystep));}j+=xstep;}gotoxy(j/8,22);printf(%s,month);getch();closegraph();}四运行结果五总结与感受经过两个星期的程序设计,我深深的体会到,平时用到的一些含简单的程序,其实在编写的时候都是很复杂的,需要查找的资料有很多。通过这次程序设计,我学到了很多以前课本上没有的东西,感觉自己又充电不少。在今后的学习生活中,真的要不断的学习才行。关键时刻去找资料,问同学,自己想,而且还是在时间比较紧张的情况下进行的,真的是太累了!最后,真的要谢谢悉心给与我帮助的老师和同学们~!
本文标题:C语言课程设计(猜数游戏和折线图)
链接地址:https://www.777doc.com/doc-7409768 .html