C语言程序设计心得体会
C语言程序设计心得体会
在这为期半个月的时间内,通过我们小组各成员之间的相互讨论和合作,我们完成了学生信息管理系统的程序设计,更值得高兴的是我们的程序得到了大家的喜爱,在每次的简报中都得到了较好的成绩。
虽然在上个学期中,我们已经学习了《C语言程序设计》这门课,但是我所学的知识最多也就是在做作业的时候才会用到,平时没有什么练习的机会,这次的课程设计是我第一次通过自己构思,和同学讨论并且不断查阅资料来设计一项程序。这次设计,不仅巩固了我以前所学的知识,还让我对c语言有了更深一步的了解,掌握了更多的技巧和技能。
C语言是计算机程序设计的重要理论基础,在我们以后的学习和工作中都有着十分重要的地位。要学好这种语言,仅仅学习课本上的知识是不够的,还要经常自己动手,有较强的实践能力。只有多动手,经常编写程序,才能发现我们学习上的漏洞和自己的不足,并在实践中解决这些问题,不断提高自己转化知识的能力。
在我们小组有解决不了的问题时,我们会主动查阅相关的资料,或向其他同学询问,这不仅丰富了我们的知识,还增进了我们同学之间的友谊。为了增大信息的安全性,需要用文件来存储信息,由于我们在上课时不注重对文件的运用,所以在这方面有较大的困难。我先将书本认认真真地看了一遍,又做了一下课后习题来验证和增进自己的理解,终于,经过我们的不懈努力,我们小组的程序有了突破,成功地实现了用文件来保存并查看学生的信息。
这次设计中,我的收获还有就是学会了用流程图来表达自己的想法,并根据流程图来逐步实现程序的功能。开始的时候,我画流程图很是困难,需要一个多小时才能清楚的根据自己的想法画出图来,后来画多了,就更加了解它的功能,十分得心应手,能够比较快而准确的画出来。
在这次课程设计中,我们首先对系统的整体功能进行了构思,然后用结构化分析方法进行分析,将整个系统清楚的划分为几个模块,再根据每个模块的功能编写代码。而且尽可能的将模块细分,最后在进行函数的调用。我们在函数的编写过程中,我们不仅用到了for循环、while循环和switch语句,还用到了函数之间的调用(包括递归调用)。由于我们是分工编写代码,最后需要将每个人的代码放到一起进行调试。因为我们每个人写的函数的思想不都一样,所以在调试的过程中也遇到了困难,但经过我们耐心的修改,终于功夫不负有心人,我们成功了!
在参考书上,我们不仅参考了曾经学过的高敬阳主编的《c语言程序设计》,还找到了由谭浩强主编的第三版《c语言》进行参考。当然,我们的程序还有一些不完善的地方,比如说,当输入的数据不符合我们定义的数据的格式的时候,程序会出现一些错误,有时会出现主菜单的死循环;在一次程序运行中,只能行使一种权限,要想再行使另一种权限,就只能退出程序,然后再运行程序。
三周的小学期即将结束,时间虽短,但是我收获了很多。最后,谢谢老师和同学们的指导,更要感谢我们小组成员之间的合作与交流。
扩展阅读:C语言心得体会
计网09《C语言程序设计》实训
《C语言实训报告》
姓名:陶艳琼____________班级:计算机网络091班
【500字以内的实训体会】
C语言实训心得体会
在初学C语言的一个学期后,我们进行了C语言阶段,尝试编写各种类型的程序。在为期一个周时间中,我的感受是:C语言实训和平时上课所接触的成有很多不同,所经受的考验和克服的困难和平时的相差不大,遇到不会做的题同学互相讨论,互相帮助,共同解决,攻克了C语言的复杂程序,我感触良多。
在这次实训中,我对C语言有了一个更深的认识了解,也对这学期的知识得到巩固,还尝试了运行编程,每次运行程序成功,让我对下面的项目充满了信心通过自己的努力最终把最初的理论知识转化成基本技能,这次的实训,是我对C语言的学习产生了农活的兴趣。
还是这次实训,最令人激动的就是同学遇到问题互相帮助虽然只是一个很小得实训,但同学们的满腔人情却是值得骄傲的,我们在实训中取长补短在实训中长知识,提高了我们学习,虽然对有些时候老师没给我们指出解决问题的方法有一些小抱怨,但到了结束是才知道,这种教学让我们自己学会了自学,学会了去看懂别人的代码。更多的是老师的感动,每天在我们来之前家到了机房,给我们我分享他学C语言的感受,还提醒我们注意在编程时与遇到的事项,,这些是我们平时上课无发了解到的知识是我们更
第1页计网09《C语言程序设计》实训
深层次的极大收获。
通过实训我们也发现了许多问题,在试训中我认识到自己还有很多知识没学好,最基本的知识点没有理清楚,而且许多东西要经过翻书,上网查阅,搜索,遇到一小点错误运行不出来,就会烦躁不安,觉得有些自暴自弃或这抱怨题目有些变态,以后要克服,尽量保持一颗蓝好的心态,学好C语言,用C语言来编写一个按要求的系统。
对于未来,近程下个学期,我觉得我还有许多方面需要提高。首先我要继续学习好C语言的基础知识,然后能在电脑上熟练的运用。能写出一些程序,上网的时候多看一些优秀的教程和优秀的代码,遇到问题是多和同学讨论,并且多弄出几套方案,多练习自己结局问题的能力和与同学合作的能力。
总之,这一切都成为我记忆里面的一个篇章,更是C语言编程上的一个里程碑。
第2页计网09《C语言程序设计》实训
《C语言程序设计》实训计划
指导教师:毛跃平
一.实训目的
《程序设计语言》是计算机相关专业一门专业基础课,通过对《C语言程序设计》的学习,掌握计算机程序设计的基本知识、掌握编写运行程序的步骤,掌握常用的计算机算法,本课程也是实践性较强的课程,为此安排一周实训,能进一步加强巩固理论知识,锻炼解决问题的能力。为继续学习其他课程打下坚实的基础。二.实训班级
计算机网络技术091班三.实训日期及时间
201*年6月28日201*年7月2日,共5天四.实训要求
要求每一位参加实训的同学认真分析每个题目,认真回答题目给出的问题,在该题..
后面写出解题思路及算法,再编写程序,在计算机调试并运行,最后上交该实训文...................档和源代码。.....
以自己的姓名建立一文件夹,以1-1.c1-2.c2-1.c…为源码名保存程序每一程序顶部的注释中写如下的内容/*
姓名:XXXX题目:1.1日期:201*-6-x*/
实训过程中可以相互讨论,查阅相关资料,但一定要自己理解问题并自己动手实成
题目,严禁抄袭,一经发现,成绩以零分记。
注意解题过程中算法的设计,注意分析和理解题目的描述是如何转换为C程序的语
句,体会使用不同解题算法之间的低劣。
第3页计网09《C语言程序设计》实训
五.实训题目一、基本知识
1.1完成课本P68页第7题
注意:c9/5(F32)输入,9/5是求整运算。
1.2输入一个分数(0-100),根据分值,90-100输出’A’,80-89输出’B’,70-79输出’c’,60-69输出’D’,其他输出’E’,要求使用switch语句完成。利用switch的循环结构,注意符号输入
1.3写一程序,实现判断一个整数n是否是素数。
要求判断素数的功能写成一个函数,在main函数中输入要判断的数n,根据该函数的返...............回值输出相关信息二、常见推理问题
2.1有一条长阶,若每步跨2阶,则最后剩1阶;若每步跨3阶,则最后剩2阶;若每步跨5阶,则最后剩4阶;若每步跨7阶,则最后正好一阶不剩.编程求出楼梯的长度。
【思路】根据题义,假定该楼梯长为7(请问为何要假定为7,若从其他数开始行不行?),看7能否满足要求,若满足要求,则该楼梯长为,否则,看8,9,10….直到找到一个满足要求的整数n,即该数同时满足n%2==1,n%3==3,n%5==4,n%7==0,则停止循环,输入该数即可(思考,满足这一条件的数是否只有一个)。
因为,每步跨2阶,则最后剩1阶;若每步跨3阶,则最后剩2阶;若每步跨5阶,则最后剩4阶;若每步跨7阶,则最后正好一阶不剩.刚好剩一个,不可从其他书开始运行。2.2Jacky和Mary养了很多猪。他们想要给猪安家。但是Jacky没有足够的猪圈,很多猪只能够在一个猪圈安家。Jacky建了3个猪圈,为了保证公平,剩下1头猪就没有地方安家了。Mary生气了,骂Jacky没有脑子,并让他重新建立猪圈。这回Jacky建造了5个猪圈,但是仍然有1头猪没有地方去,然后Jacky又建造了7个猪圈,但是还有头没有地方去。Jacky都快疯了。你对这个事情感兴趣起来,你想通过Jacky建造猪圈的过程,知道Jacky家至少养了多少头猪?
2.3一个猴子吃桃子,每天吃现有桃子数量的一半再多一个,到第九天吃完的时候只剩下1个桃子,求原来有多少桃子?
【思路】倒推法,今天吃之前的桃子数=昨天吃的一半少一个,即today=(yesterday/2)-1
第4页计网09《C语言程序设计》实训
===>yeterday=(today+1)*2i=10today=1推出第9天吃之前的桃子数,再把第9天当作今天(today=yesterday),推出第8天吃之前的桃子数….直到推出第一天吃之前的桃子数为止。(注意循环变量初值和终值是多少)循环变量初值1和终值是1533
2.4某日,王母娘娘送唐僧一批仙桃,唐僧命八戒去要桃.八戒从娘娘宫里挑上仙桃出发,边走边望着前箩筐中的仙桃咽口水,走到128里时,倍觉心烦腹几饥口干不能再忍,于是找了个僻静处开始吃前头箩筐中的仙桃来,越吃越有兴头,不觉竟将一筐仙桃吃尽,才猛然觉得大事不好.正在无奈之时,发现身后还有一筐,便转悲为喜,将身后的仙桃一分为二,重新上路.以后,每走前一段路的一半,边吃光前一箩筐中的仙桃,才上路.如此这般,最后一里走完,正好遇上师傅.师傅一看,两个箩筐中各有一个仙桃,于是大怒,要八戒交代一路吃了多少个仙桃?八戒掰着指头,好几个时辰也回答不出,请你帮八戒算算他吃了多少仙桃!
2.5一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米(请注意下落几次,反弹几次)?第10次反弹多高?下落12次,反弹11次。三、穷举搜索算法
此类问题的解题思路是按题目要求及条件,把所有可能的情况都罗列出来,在其中找出符合要求的解。
3.13025这个数具有一种独特的性质:将它平分为二段,即30和25,使之相加后求平方,即(30+25)2,恰好等于3025本身,即abcd=(ab+cd)2。请求出具有这样性质的全部四位数。
【思考】如何求出一个数的前两位和后两位?循环变量初值要从多少开始,到多少结束,把每个数前两位和后两位拆出来相加再求平方,并判断结果是否等于该数本身,如等则输出,注意输出格式控制。
前两位a=m%100;后两位b=m/100;m为一个四位数,循环变量从第一个符合要求的数开始,高9801.
3.2百钱买百鸡:公元5世纪,我国古代数学家张丘建在《算经》中提出了如下问题:鸡翁一值钱五,鸡母一值钱三,鸡雏三值钱一。凡百钱买百鸡,问鸡翁、母、雏各几何?
第5页计网09《C语言程序设计》实训
3.3有30人在一饭馆吃饭,包括男,女和小孩。共花了50元,男的每人3元,女的每人2元,小孩每人一元,求男,女,小孩各多少人?
3.4一个口袋里有12个球,3个白球,3个红球,6个黑球,取出8个球,求一共有有多少种取法,输出每一种取法中各种球的数目。四、递归问题
4.1编写一递归函数,该函数的功能是求出n的阶层(注n!=n*(n-1)!(n>=2)1!=10!=1)4.2汉诺塔问题
上帝创造世界的时候做了三根金刚石柱子,在一根柱子上从下往上安大小顺序摞着64片黄金圆盘。上帝命令婆罗门把圆盘从下面开始按大小顺序重新摆放在另一根柱子上。并且规定,在小圆盘上不能放大圆盘,在三根柱子之间一次只能移动一个圆盘。有传言说,这件事完成时宇宙会在一瞬间闪电式毁灭。也有人相信婆罗门至今还在一刻不停地搬动着圆盘。请你编写一程序模拟10个盘子的移动过程。
五、常见的数组问题
5.1一群猴子有50只,坐在一起选猴王,每只猴子都有一个编号1~50。从1号猴子开始报号,报到7号则退出;下只猴子继续从1开始报,依次循环,则最后的一只猴子为猴王。试求出这只猴子的编号
5.2选择排序(SelectionSort)的基本思想是:每一趟从待排序的记录中选出关键字最小的记录,顺序放在已排好序的子文件的最后,直到全部记录排序完毕,编写一函数对n个数进行排序。
5.3回文数是指一个像16461这样“对称”的数,即:将这个数的数字按相反的顺序重新排列后,所得到的数和原来的数一样。这里,“回文”是指像“妈妈爱我,我爱妈妈”这样的,正读反读都相同的单词或句子。设计两个函数一个函数用来判断一个2位及以上的数是否回文数,另一函数用来判断一字符串是否回文串。
六、文件操作
6.1编写一程序,实现将10个同学的信息(学号,姓名,性别及3门课程成绩保存到文件中,并能读出指定记录和改该记录的程序)
第6页计网09《C语言程序设计》实训
【思考】文件根据其访问方式分为哪两种?根据文件内容又分为哪两种?对文件进行操作的步骤有哪些?如何读或写文件?
在main函数中赋予只,在另一函数ptintf中将他们输出。
七、图形绘制
【基础知识】在C语言中显示信息的方式有两种,即字符模式和图形模式,我们之前的信息输入输出都在字符模式下,要让C程序能画出图形,要把显示模式设置在图形模式下,在图形模式下,是按像素来定义坐标的。对VGA适配器,它的最高分辨率为640x480,其中640为整个屏幕从左到右所有像素的个数,480为整个屏幕从上到下所有像素的个数。屏幕的左上角坐标为(0,0),右下角坐标为(639,479),水平方向从左到右为x轴正向,垂直方向从上到下为y轴正向(如图)。TURBOC的图形函数都是相对于图形屏幕坐标,即像素来说的,所有图形函数都包含在graphics.h头文件中
要在屏幕上画图,要先设置背景色和画线颜色,线形,还能对某封闭区域填充,要设置填充样式和填充颜色
setlinestyle(stly,pattern,width)函数,设置画线样式
stly=0-40实线1点线2中心线3虚线4自定义线,pattern只有当stly=4时有效,pattern一般设为0,width为线宽范围1或3,也可以取2
setfillstyle(intpattern,intcolor);函数设置填充封闭区域的填充样式pattern设置填充方式,取值0-12
floodfill(x,y,color)函数设置填充的封闭区域
x,y为封闭区域内任意一点坐标,color为封闭区域边界颜色
要注意使用顺序,先画一封闭区域,再设置填充方式,然后使用floodfill()函数填充,
第7页640(0,0)(639,0)(320,240)480(0,479)(639,479)计网09《C语言程序设计》实训
例,要画出如图所示的蓝背景,红色圆,绿色填充的程序代码如下:#includeintmain(){
intgdriver,gmode;gdriver=DETECT;
initgraph(&gdriver,&gmode,"");/*设置图形显示模式*/setbkcolor(1);/*设置背景色*/setcolor(RED);/*设置画线色*/
setlinestyle(1,0,3);/*设置以宽度为3个像素的实线方式画图*/circle(320,240,80);/*以320,240为圆心,80像素为半径画圆*/setfillstyle(1,GREEN);/*设置以实心方式绿色填充*/floodfill(320,240,RED);/*取320,240这点,向四周填充到红色边界*/getch();/*程序停在此处,将画出的图形显示在屏幕上,按任意键返回*/closegraph();/*关闭图形模式*/}
题目:要求根据以上了解到的知识,设计画一面五星红旗的程序
第8页计网09《C语言程序设计》实训
1、有关函数
moveto(intx,inty);移动游标到(x,y)点,不是画点,在移动过程中亦画点。line(intx0,inty0,intx1,inty1);画一条从点(x0,y0)到(x1,y1)的直线。lineto(intx,inty);画一作从现行游标到点(x,y)的直线。
circle(intx,inty,intradius);以(x,y)为圆心,radius为半径,画一个圆。
arc(intx,inty,intstangle,intendangle,intradius);以(x,y)为圆心,radius为半径,从stangle开始到endangle结束(用度表示)画一段圆弧线。
ellipse(intx,inty,intstangle,intendangle,intxradius,intyradius);以(x,y)为中心,xradius,yradius为x轴和y轴半径,从角stangle开始到endangle结束画一段椭圆线,当stangle=0,endangle=360时,画出一个完整的椭圆。
rectangle(intx1,inty1,intx2,inty2);以(x1,y1)为左上角,(x2,y2)为右下角画一个矩形框。.
第9页
友情提示:本文中关于《C语言程序设计心得体会》给出的范例仅供您参考拓展思维使用,C语言程序设计心得体会:该篇文章建议您自主创作。
来源:网络整理 免责声明:本文仅限学习分享,如产生版权问题,请联系我们及时删除。