c课程设计设计报告

2024-10-10

c课程设计设计报告(通用8篇)

1.c课程设计设计报告 篇一

课程设计是培养学生综合运用所学知识 ,发现,提出,分析和解决实际问题,锻炼实践能力的重要环节,是对我们的实际工作能力的具体训练和考察过程.随着科学技术发展的日新月异,当今计算机应用在生活中可以说得是无处不在。因此作为二十一世纪的大学来说掌握程序开发技术是十分重要的,而C语言又是最常见,功能最强大的一种高级语言,因此做好C语言课程设计是十分必要的。回顾起此次课程设计,至今我们仍感慨颇多,的确,自从拿到题目到完成整个编程,从理论到实践,在整整半个月的日子里,可以学到很多很多的东西,同时不仅可以巩固了以前所学过的知识,而且学到了很多在书本上所没有学到过的知识。

通过这次课程设计使我们懂得了理论与实际相结合是很重要的,只有理论知识是远远不够的,只有把所学的理论知识与实践相结合起来,从理论中得出结论,才能真正为社会服务,从而提高自己的实际动手能力和独立思考的能力。在设计的过程中遇到问题,可以说得是困难重重,这毕竟第一次做的,难免会遇到过各种各样的问题,同时在设计的过程中发现了自己的不足之处,对一些前面学过的知识理解得不够深刻,掌握得不够牢固,比如说结构体,指针,链表……通过这次课程设计之后,我们把前面所学过的知识又重新温故了一遍。

我做的是通讯录管理系统的课程设计,虽然是很简单的一个小的程序,但对我一个初学者来说却是一个很大的困难。更加是第一次做课程设计,所以第一天下午在机房做了一个下午却丝毫没有进展,最主要是不知从何开始,这个时候才知道上课老师们不厌其烦的教导是多么的宝贵,这个时候才后悔上课的时候没有认真的听讲。可是现在一切都晚了,还好时间还算是充裕,只好拿出书本重新复习一下。

特别是结构体,指针的部分,几乎是一片空白。不过经过几天的努力,大体上把课本上的知识点看了一遍,知识点也都基本是撑握了,所以一下一步就是开始正式的编程序了。不过毕竟是个新手,还是不知如何下手,于是就在网上下了一篇类似的程序,经过仔细的研究,终于读懂了C语言编程的基本过程和方法。经过一波三折,终于开始正式编程。

编程是一件很枯燥很无聊的事情,但是出于完成作业,得到学分的压力,还必须强破自己坚持下去,按照老师所说的模块化思想,分部分的进行编写。而且编程是一件高精度、模范化的事情,稍有疏乎都会影响全局,也可能因为某一处的小的错误而导致整个程序的无法运行。所以认真仔细就是非常重要的了。

开始的时候真的感觉编程是一件很无聊的事情,不过当一个程序运行成功的时候那种喜悦是无法言语的,那种成就感是无法比拟的。又经过几天的努力,终于把程序完成了,尽管程序还是有很多错误和漏洞,不过还是很高兴的。无论如何是自己的劳动成果,是自己经过努力得到的成绩,同时也是学习C语言的一次实践作业,自己进步的证明。

通过这次课程设计,使我对C语言有了更进一步的认识和了解,要想学好它要重在实践,要通过不断的上机操作才能更好地学习它,我也发现我的好多不足之处,首先是自己在指法上还不行,经常按错字母,通过学习也有所改进;再有对C语言的一些标准库函数不太了解,还有对函数调用的正确使用不够熟悉,还有对C语言中经常出现的错误也不了解,通过实践的学习,我认识到学好计算机要重视实践操作,不仅仅是学习C语言,还是其它的语言,以及其它的计算机方面的知识都要重在实践,所以后在学习过程中,我会更加注视实践操作,使自己便好地学好计算机。

在课程设计过程中,收获知识,提高能力的同时,我也学到了很多人生的哲理,懂得怎么样去制定计划,怎么样去实现这个计划,并掌握了在执行过程中怎么样去克服心理上的不良情绪。因此在以后的生活和学习的过程中,我一定会把课程设计的精神带到生活中,不畏艰难,勇往直前

2.c课程设计设计报告 篇二

关键词:项目课程,C语言,教学设计

1、引言

C语言是一种被广泛学习、普遍使用的计算机程序设计语言。大多数高职学校开设了该课程, 同时C语言也是程序员考证、计算机等级考试的考试课程, 因此C语言课程的重要性不言而喻。在以往的"C语言程序设计"课程的教学过程中, 都是先介绍变量定义, 再介绍指令的语法规则, 最后例子讲解, 上习题课。不断地进行强化训练, 到最后, 语法讲完了, 课也结束了。这种教学安排固然结构严谨, 但在实践中会产生一些问题。一是比较枯燥, 学生比较容易失去兴趣, 不断的有学生掉队;二是容易导致学生在思考C语言问题时缺乏全局观念, 不是为解决问题而写程序, 而是为学语法而写程序。坚持到最后的大多数同学普遍反映看得清程序的设计代码意义。但遇到实际问题就无从下手, 不知所措。从07级开始, 我们采用了项目课程的教学方法, 取得了较好的效果。

2、项目课程与传统课程的主要区别

传统的教学方法认为, 理论知识是墙脚, 只要理论知识掌握好了, 解决问题的实践能力就自然有了。但结果并非如此。那我们应该如何看待理论知识在实践能力发展中的作用呢?学习理论知识能直接促进理论思维能力、理论理解能力的发展, 但不能直接促进实践能力的发展;理论知识能促进实践能力的迁移, 但其功能发挥取决于学习什么理论知识, 以及如何学习这些理论知识;掌握理论知识只是促进能力迁移的一个方面。而项目课程突出了实践在课程中的主体地位 (关键不是实践课时的多与少) , 用工作任务来引领理论, 使理论从属于实践。传统的学科课程和项目课程的理论知识学习的模式见下图:

传统的实践观把实践仅仅理解为技能的反复训练, 或是孤立的工作任务的学习, 从而把过程与结果割裂开来了。学生在课堂上的学习与行动的结果无关。他们所能体验到的仅仅是动作的不断重复, 却无法体验到行动与后果之间的关系。项目课程的实践观把实践理解为过程与结果的统一体, 强调以典型产品为载体来设计教学活动, 整个教学过程最终要指向让学生获得一个具有实际价值的产品或服务。

3、C语言程序设计课程中的项目设置

在课程教学过程中, 项目的设计编排非常关键, 设计的好坏直接影响教学效果。首先必须围绕课程重点来进行, 将重要的知识点蕴涵到项目中, 项目任务尽量是学生感兴趣的, 并且是比较贴近学生生活的内容, 学生比较好理解;其次每个项目的设置不宜过大, 以免支撑的理论知识太多, 导致教学组织困难。对于较大的项目可以分解成模块来进行教学, 一般每个模块为2-4个学时, 以使学生在学习时经常有成就感。

根据C语言程序的特点, 我们选择学生比较熟悉学生成绩管理系统为逻辑线索来设计项目, 具体设计成两个项目:用数组来实现简单的学生成绩管理系统和用结构体和文件来实现学生成绩管理系统。这两个项目之间采用了循环的方式, 每个项目采用了分段式的安排。

具体项目安排如下:

按照上面的顺序, 学生就象搭积木一样完成了整个成绩管理系统, 学生做的每一步目的都很明确, 学生也很有兴趣。根据构建主义的理论:只有当一个人已有的知识无法解决他所面临的问题时, 真正的学习才会发生。并且这种学习是积极地、主动地。按照上面的学习过程, 在解决提出的每个问题的过程中, 学生已经学完了C语言的主要语法知识, 并在解决问题的过程中对前面学过的语法知识在不断地进行重复, 进行反复刺激, 这也符合艾宾浩斯遗忘曲线--记忆与复习, 通过及时复习使成为了学生短时的记忆东西成为了一种长时的记忆, 学生也就轻松地学好了课程。

4、结束语

项目课程是一种新的教育模式, 体现了高职教育的内涵、符合了我国的国情, 是我国高职教育课程模式改革的发展方向。在我国很多高职院校才刚刚开始实施, 面临着很多问题, 要进一步的摸索和研究。相信随着项目课程改革的不断深入, 项目课程的项目设置必将逐渐成熟。

参考文献

[1].蒋庆斌1, 徐国庆2基于工作任务的职业教育项目课程研究中国高职高专教育网

3.C语言程序设计课程的教学探索 篇三

关键词:C语言程序设计 课程教学 教学效果 教学方法

C语言是国内外广泛使用的计算机语言,学会使用C语言进行程序设计是计算机工作者的一些基本功。C语言程序设计是计算机相关专业的一门专业基础课。在计算机课程体系中,C语言程序设计是学习其他计算机课程的基础,也是引领学生进入计算机学科领域的第一门课程,学生学习C语言程序设计的效果,将对其他课程的学习积极性产生影响。因此,C语言程序设计课程的教学显得非常重要。作者根据多年从事C语言程序设计课程的实践,对该课程教学实践中遇到的若干问题进行整理,并提出一些解决思路,以供同仁们参考。

一、培养学生的学习兴趣

C语言程序设计课程是计算机相关专业学生所接触的计算机类课程的先行课程之一,学生在学习这门课程时,往往对程序设计满怀期望和好奇心。教学初期,要把握时机,对学生好奇心理加以利用,提高学生学习兴趣,提高学习效果。随着课程的深入,所学内容逐渐增多、学习难度加深,教师如不一如既往地特意培养学生学习兴趣,学生在学习中遇到的各种挫折都可能打击其学习兴趣。教学中、后期,要调用各种教学方法和手段,强化学生的学习兴趣。可以根据教学内容设计适宜的、学生感兴趣的题目供学生讨论,在讨论中以学生为中心,并进行适当的引导,使讨论富于情趣,寓教于乐,达到较好的教学效果,强化学生的学习兴趣。比如,在讲授起泡发排序时,教师先用多媒体课件将算法思想陈述清楚,然后随机抽取教室中就坐的一列学生,由全体学生根据算法思想对抽取的同学的身高进行排序,这样可以让所有学生在都参与算法的演示,以加强学生对算法思想的理解,在轻松愉悦的环境中培养学生的学习积极性。

二、授予算法思想

C语言程序设计课程的是一门专业基础课,其教学目标就要体现“专业”与“基础”两个方面。一是,使学生掌握各种C语言本身的语法与程序结构,二是,使学生通过该门课程的学习掌握一定的算法和常用子程序的编程实现,学会用C语言编写程序,实现所需处理的任务,为后续课程打下坚实的基础。

算法是程序的核心,是程序的靈魂。语法是程序的外壳,是程序的工具。教学中,要处理好算法与语法的关系。不能把重点放在语法规则上。语法是重要的,掌握不好语法就无法编写出正确的程序,但是,只学会语法,甚至把语法背得滚瓜烂熟,也不可能编写出好的程序。要把重点放在算法思想上,通过大量的实例讲解和练习使学生学会怎样设计算法,编写程序,解决实际问题。算法思想与语法知识的关系就如“授予渔”与“授予鱼”的关系。教育不是要“授予鱼”,而是要“授予渔”。因此,C语言程序设计课程“授予算法思想”最为重要。

三、改进教学方法

在教学实践中采用多媒体教学与传统教学相结合的方法。多媒体教学信息量大、变换快速、表现直观、操作简便,教学活动很容易出现课件喧宾夺主的不良倾向;教师容易忽视教学策略和教学方法,忽视教学难点和重点,忽视与学生的交流;学生忙于观看课件,无暇做笔记,无暇思考。因此,在C语言程序设计课程中一定要注重适时适当地采用一些传统的教学方法,加强与学生的交流,在课堂中注重与学生的互动,杜绝采用填鸭式教学方法。教师要从学生的主宰转变为学生学习的引导者,课堂教学要从过去的“满堂灌”“填鸭式”转变为学生自主探讨,尽可能把时间还给学生,使学生从被动的“受教育者”转变为主动的“探索者”。

此外,教师要注意在每一堂课结束之后对所学内能进行归纳小结,整理教学内容的内在联系。在整门课程的教学过程中,注重各种C语言程序结构之间及数组、函数、指针、结构体与共用体之间的比较,使学生总览全局,对各种C语言程序结构之间及数组、函数、指针、结构体与共用体之间的差异和联系有宏观的把握,促进对各种C语言程序设计知识的理解和掌握。

四、抓好实验教学

程序语言的学习最终的目标就是能够熟练地根据具体问题设计适合的算法将其转变为C语言程序,解决实际问题。所以,实验是C语言程序设计课程必学、必练的教学环节。学生对实验内容的掌握程度直接反映学生对C语言程序设计课程的掌握程度。

C语言程序设计课程是计算机相关专业学生的开设的第一门专业基础课,学生对该课程的学习思维的把握需要一个循序渐进的过程。因此,在实验教学中,教师要把握循序渐进的度。一开始,可以学生非常熟悉的问题设计实验内容,在实验中为学生给出完整的实验程序,其目的是让学生掌握C语言程序设计课程的上机环节及编程的基本方法。接下来,可以根据第一次的实验,设计一个有关语句、语法、程序结构等环节的实验内容,是学生对C语言程序的基本结构、基本的语法特点有一个总体的印象。之后便可以根据教学内容来设计实验内容。

在实验教学中,对于实验内容的设计除了要与教学内容相结合外,还要注意实验内容满足学生的兴趣。而且,一定要把握好实验预习、准备关。除了最初的两次实验之外,其他的实验,一定要要求学生做好充分的准备,严格要求学生在实验之前提交实验程序。我们的做法是将课后作业与实验内容合二为一,学生因为对布置的内容有准备,所以尽管实验内容多,但也能较好地完成,能较好地达到实验教学的预期目标。而且,学生对自己的学习目标的达成及完成情况更加清晰、明确,对于C语言程序设计课程的学习亦随着实验内容的增多和。

五、结束语

C语言程序设计课程具有鲜明的实践目标性,教学中,教师一定要结合学生实际,合理设计教学内容及教学环节,用恰当的方法方式引领学生进入更加广阔的计算机相关专业领域。

参考文献:

4.C语言设计课程实训报告 篇四

课程设计报告

课 程 名 称: 课程设计题目: 姓

名:

系:

业: 年

级: 学

号: 指 导 教 师:

C语言设计课程设计

万年历

信息工程系

计算机科学与技术

2012

2013 年月 12 日

任 务 书

实训的目标

1.进一步培养学生结构化程序设计的思想,加深对高级语言基本语言要素和控制结构的理解。

2.针对C语言中的重点和难点内容进行训练,独立完成有一定工作量的程序设计任务,同时强调好的程序设计风格。

3.掌握C语言的编程技巧和上机调试程序的方法。4.掌握程序设计中的常用算法。

任务名称:万年历

项目功能:

1、能够显示当前月的日历以及标志出当前日期。

2、可以翻页、翻年。

3、可以输入年月日查看输入的年月的日历。

4、拥有记事本的功能。

教师签名:

目录

一、实训要求:................................................................................................................4 1.掌握时间函数的运用。................................................................................................4 2.掌握在WinTC下的动画制作。...................................................................................4 3.掌握bioskey和随机函数的运用。.............................................................................4 4.学会边界的判断。........................................................................................................4 5.掌握链表和文件。........................................................................................................4 6.综合所学内容编写一个程序。....................................................................................4

二、实训题目:.......................................................................................................................4 1.①给出时间计算与几天的差值;②给出天数计算日期;③给出两个日期计算差值。4

2.①让一个圆在屏幕上动起来;②制作一个太阳、地球、月亮的动画。................4 3.①区域内有障碍物使方块不能穿过;②小球在区域内运动,碰到边界后随机改变方向继续运动。...................................................................................................................4 4.①创建一个结构体;②创建链表并输出;③删除已有链表中的一个节点;④在已有链表中增加一个节点。...................................................................................................4 5.万年历............................................................................................................................4

三、实训过程:.......................................................................................................................4 1.时间函数:....................................................................................................................4 思考过程:.......................................................................................................................4 2.动画制作:....................................................................................................................4 思考过程:.......................................................................................................................4 障碍物(边界判断)...........................................................................................................4 思考过程...........................................................................................................................4 链表及文件:.......................................................................................................................4 思考过程...........................................................................................................................4 1.课程设计:万年历(带记事本功能)........................................................................5 ① 思考过程.....................................................................................................................5 ②源代码:.......................................................................................................................5 ③ 运行结果...................................................................................................................10

四、实训心得:.....................................................................................................................11

一、实训要求:

1.掌握时间函数的运用。

2.掌握在WinTC下的动画制作。3.掌握bioskey和随机函数的运用。4.学会边界的判断。5.掌握链表和文件。

6.综合所学内容编写一个程序。

二、实训题目:

1.①给出时间计算与几天的差值;②给出天数计算日期;③给出两个日期计算差值。2.①让一个圆在屏幕上动起来;②制作一个太阳、地球、月亮的动画。

3.①区域内有障碍物使方块不能穿过;②小球在区域内运动,碰到边界后随机改变方向继续运动。

4.①创建一个结构体;②创建链表并输出;③删除已有链表中的一个节点;④在已有链表中增加一个节点。5.万年历

三、实训过程:

1.时间函数:

a)思考过程: 第一小题:先把系统当前时间用time函数转换成秒,再把输入的天数用24乘3600秒转换成秒,再与系统当前的秒数相加减,最后用ctime函数以字符串输出。第二小题:调用localtime取得系统当前年月日,然后把当前年月日提取出来用自己输入的年月日进行替换,用mktime把该年月日转换成秒,然后再把系统当前时间转换成秒,两个秒数进行相加减,把加减后的结果除以(24*3600)就得到相差的天数。第三小题和第二小题同理,输入两个日期、转换成秒以后相加减,最后除以(24*3600),就得到了两个日子相差的天数。

2.动画制作:

思考过程:做个循环,先用白色画一个圆,然后再用背景色画一个圆把当前圆覆盖,然后改变圆心,然后在画圆再覆盖~最后循环完之后,再用白色在用位置画个圆,因为不这样干的话,屏幕上就没有最好运行的位置了…第二小题同理~ 障碍物(边界判断);

① 思考过程:第一小题:判断出上下左右移动的时候能运动的范围(即控制外边界),然后再把范围内的某些不能通过的点的范围找出来,把他们分别排除在外,其他的坐标点就是可以任意移动的了,用bioskey计算按下的键的键值,然后判断可以移动之后,就在当前位置用背景色画一个方框,然后在移动之后的位置用白色画方框和障碍物等。第二小题划定一个匡,然后在匡的范围再把小球的半径减去,就是最后小球能运动的范围了…然后我设置的是让小球逆时针转动,然后用随机函数(系统时间做种子)来控制小球偏移的位置(或者说角度)。

链表及文件: ① 思考过程:第一个问题需要做的是结构体的认识并运,定义一个结构体,然后输入内容,然后再输出之前输入的内容。第二个问题则是创建链表并输出,将一个节点分成了两份,一边是指针域,一边是数据域,而指针域,指针域是下一节点的地址,我把头结点不存储数据,以方便之后两题的操作;第三个问题是删除链表,首先定义一个空的字符串,P,P1,P2,把头指针赋值给P,随后让用户输入要删去数据的名字,储存在字符串中,利用strcmp函数进行查找,随后如果第一个有数据的节点就符合要求,就把第二个节点的地址赋值给头节点的指针域后跳出循环,如果不是第一个节点符合要求就执行循环,让P赋值给P2,再把p->next赋值给P,这时P就到了下一个节点,再把p->next赋值给P1,也就是让P1得到第三个节点的首地址,P指向第二个节点,P2指向第一个节点,再进行循环,还是没找到就把P,P1,P2同时向后移动一个节点,如果找到了,就把P2的值赋给p->next,再把p->next的值赋给P,这时P就回到了上一个节点,再把p->next直接指向P1,就把中间的那个节点跳过,完成了删除功能;第四个问题则是增加节点,同样定义一个整型数据(即学号),P,P1,P2,P3,让用户键入想要添加的位置,之后让头指针赋值给P,p->next就赋值给P1,也就是让p1指向下一个节点,随后执行循环,让用户输入想学号和每个节点内的学号比较,如果找到了,就创建一个新的链表,并让P3指向它,让用户输入添加的信息,并且把p->next赋值给P2和P,这是P就到了下一个节点,再把p->next赋值给P1,也就是让P1指向第二个,P和P2都指向第一个,返回循环,如果符合要求就让p3->next指向P1,p2->next指向P3,这样,新的节点就进入了链表中,满足要求,最后在主函数中先输入数据,然后执行一个死循环,让用户选择功能,如果选择1就删除一个节点,选择2就增加一个节点,选择0就跳出循环结束程序。1.课程设计:万年历(带记事本功能)

① 思考过程:用localtime取得当前的系统时间,并且提取出年月日,然后把公元元年到今年一月一日前的天数计算出来,把这个天数除7取余为a,然后就获得了今年元旦前的一天是星期几。然后循环、从一月循环到当前月的上一月的最后一天,在这个循环中,循环一次a+1;当a=7时a置零,这个是用来计算当前月的上一月的最后一天是星期几,然后从新在次循环外另开一个循环来输出当前月的日历,并标记出今天用()标记,然后用bioskey读取用户按下的键值,并实现相应的翻页、标记特殊日子、记事本、从新输入年份等功能…

②源代码:

#include #include #include void f();

/*计算公元元年到某年某月的时间*/ void f1(long int t,long int n,int y,int r);

/*按日历模式输出要得到的那个月的日历*/ void w();

/*当前月的日历*/ void s();

/*输入某个年份和月份*/ void m(long int n,int y,int r);

/*记事本功能的函数*/

struct jishiben

/*记事本的结构体定义*/ {

long int a;

char name[100];};

void w()

/*输出当前月的日历*/ {

int y,r,a,b,c;

/*分别定义月份日期以及记录键值记录日期以及某月最后一天*/

long int n;

/*定义年份的变量*/

time_t timep;

struct tm *p;

time(&timep);

p=localtime(&timep);/*取得当地时间*/

printf(“%d--%d--%d n”,(1900+p->tm_year),(1+p->tm_mon), p->tm_mday);/*输出当前的年月日*/

n=(1900+p->tm_year);

/*获得当前年份*/

y=(1+p->tm_mon);

/*获得当前月份*/

r=p->tm_mday;

/*获得当前的是几号*/

for(;;)

{

printf(“jin tian shi %d--%d--%d n”,(1900+p->tm_year),(1+p->tm_mon), p->tm_mday);

/*输出当前年月日*/

f(n,y,r);

/*调用函数f获得某年某月的日历*/

printf(“an fang xiang jian ke tiao jie nian huo yuen”);

printf(“ru xu shu ru nian fen qing an hui ge jian n”);

printf(“ruo xu shi yong ji shi ben qing an hui chen”);

if(y==1||y==3||y==5||y==7||y==8||y==10||y==12)c=31;

if(y==4||y==6||y==9||y==11)c=30;

if(y==2&&(((n%4==0)&&(n%100!=0))||((n%100==0)&&(n%400==0))))c=29;

if(y==2&&((n%4!=0)||((n%100==0)&&(n%400!=0))))c=28;

/*判断月份及最后一天*/

a=bioskey(0);

/*取得按下的键值*/

if(a==18432)n=n-1;

/*按方向键向上则年份减一*/

if(a==20480)n=n+1;

/*按方向键向下则年份加一*/

if(a==19200){y=y-1;if(y==0){y=12;n=n-1;}}

/*按方向键向左则月份减一*/

if(a==19712){y=y+1;if(y==13){y=1;n=n+1;}}

/*按方向键向右则月份加一*/

if(a==18488){b=r;r=r-7;if(r<1)r=b;}

/*按小键盘8则上一周*/

if(a==19509){b=r;r=r+7;if(r>c)r=b;}

/*按小键盘5则下一周*/

if(a==19252){b=r;r=r-1;if(r<1)r=b;}

/*按小键盘4则上一日*/

if(a==19766){b=r;r=r+1;if(r>c)r=b;}

/*按小键盘则下一日*/

if(a==7181)m(n,y,r);

/*调用m函数 进行记事本功能*/

if(a==3592)s();

/*按回格键调用函数s 出入年份和月份*/

if(a==283)exit(0);

/*按esc键 直接退出程序*/

system(“CLS”);

} } void f(long n,int y,int r)

/*计算公元元年一月一号到某年的天数n y r为年月日*/ { long int i,t;

/*定义 i为循环变量

t为天*/ t=0;for(i=1;i

if(((i%4==0)&&(i%100!=0))||((i%100==0)&&(i%400==0)))/*判断闰年*/

t=t+366;

if((i%4!=0)||((i%100==0)&&(i%400!=0)))

/*判断平年*/

t=t+365;

if(t%7==0)

/*为防止数据过大 所以当t除7的余数是0的时候,让t=0;*/

t=0;} f1(t,n,y,r);

/*调用函数f输出某月的日历*/ }

void f1(long int t,long int n,int y,int r)

/*按日历模式输出某月的日历n y r为年月日*/ { int i,j,k,a;

/*a为记录星期的*/ a=t%7;for(i=1;i

/*循环到某月的前一个月*/

{

for(j=1;;j++)

{

a=a+1;

if(a==7)a=0;

if((i==1||i==3||i==5||i==7||i==8||i==10||i==12)&&j==31)break;

if((i==4||i==6||i==9||i==11)&&j==30)break;

if(i==2&&(((((n%4==0)&&(n%100!=0))||((n%100==0)&&(n%400==0)))&&j==29)||(((n%4!=0)||((n%100==0)&&(n%400!=0)))&&j==28)))break;

}

}

printf(“%ld nian %d yue ri lin”,n,y);printf(“ 1 n”);printf(“MON TUE WED THU FRI SAT SUNn”);for(k=0;k

”);for(j=1;;j++)

/*按日历模式输出某月*/ {

if(j==r)printf(“(%2d)”,j);

/*标记出当前的日子以及特殊的日期*/

else printf(“ %2d ”,j);

a=a+1;

if(a==7){a=0;printf(“n”);}

/*当循环一个星期以后,输出一个换行符*/

if((y==1||y==3||y==5||y==7||y==8||y==10||y==12)&&j==31)break;

if((y==4||y==6||y==9||y==11)&&j==30)break;

if(y==2&&(((((n%4==0)&&(n%100!=0))||((n%100==0)&&(n%400==0)))&&j==29)||(((n%4!=0)||((n%100==0)&&(n%400!=0)))&&j==28)))break;/*判断这个月的最后一天时跳出循环*/ } printf(“n”);}

void s()

/*输入年月的函数*/ { long int n;int y,r,a;for(;;){

printf(“qing shu ru nian he yuen”);

scanf(“%ld%d”,&n,&y);

if(y<12&&y>0)break;

/*判断输入的月份是否正确*/

else printf(“yue fen shu ru cuo wun”);} for(;;){ r=0;

/*这里不需要标记处某天,所以令r=0*/ f(n,y,r);

/*调用函数f来输出需要的某月的日历*/ printf(“an fang xiang jian ke tiao jie nian huo yuen”);printf(“ru xu shu ru nian fen qing an hui ge jian n”);printf(“an r jian fan hui dang qian yuen”);a=bioskey(0);if(a==18432)n=n-1;

/*按方向键上键 则年份减一*/ if(a==20480)n=n+1;

/*按方向键下键 则年份加一*/ if(a==19200){y=y-1;if(y==0){y=12;n=n-1;}} /*按方向键左键月份减一*/ if(a==19712){y=y+1;if(y==13){y=1;n=n+1;}} /*按方向键右键 月份加一*/ if(a==283)exit(0);

/*按esc退出程序*/ system(“CLS”);

/*清屏*/ if(a==4978)w();

/*按小写的r 则调用函数w显示当前月的日历*/ if(a==3592)s();

/*按回格键 调用它自己 从新输入一个年月*/ } } void m(long int n,int y,int r){

long int c;

/*c是用来计算结构体长度的*/

long int s=r+100*y+10000*n;

/*转换年月日 例如2013-7-10 就转换成20130710*/

struct jishiben kefu;

/*定义结构体*/

FILE *fp;

/*定义文件指针*/

c=sizeof(struct jishiben);/*计算结构体需要的长度*/

system(“CLS”);

/*清屏*/

if((fp=fopen(“qw2.txt”,“a+”))==NULL)

/*判断这个文件是否存在*/

{printf(“da kai shi bai qing xian chuang jian gai wen jiann”);exit(-1);}

else

{

for(;!feof(fp);){fread(&kefu,sizeof(kefu),1,fp);if(kefu.a==s)break;} /*筛选数据*/

if(kefu.a==s)

{

printf(“ri qi %ld---%s n”,kefu.a,kefu.name);}

/*若得到了需要的数据 则显示出来*/

else

/*否则录入数据*/

{

/*录入前先把文件关闭掉

然后再从新以追加方式打开*/

fclose(fp);

fp=fopen(“qw2.txt”,“a”);

fseek(fp,-c,2);

printf(“qing shu ru xing xi n”);

kefu.a=s;

/*令长整型变量等于s 方便筛选*/

printf(“qing shu ru nei rongn”);

printf(“%ldn”,kefu.a);

gets(kefu.name);

/*输入字符*/

fwrite(&kefu,c,1,fp);

/*把数据写入*/

}

getch();

fclose(fp);

/*关闭文件*/

}

w();

/*返回w函数再进行相应的操作*/ }

int main(){ w();

/*调用函数w来开始第一次运行*/ getch();} ③ 运行结果

按回车实现记事本功能:

按回车返回记事本:

在特殊日子下按回车,查询是否有要做的事情:

四、实训心得:

5.c课程设计设计报告 篇五

《C51程序设计》 课程设计报告书

题目:

班级:学号:姓名:成绩:

课程设计报告格式

一、绪言

(一)设计任务(简要说明设计题目的目的、意义、内容等)

(二)提出方案及方案论证(这两个部分可分开也可合并,主要是就自己的课程设计题目提出一个或几个解决方案,并就不同的方案加以论证,从中精选出最佳的一个方案)

(三)原理说明:根据方案论证的结果,简述设计原理,最好能给出较为明了的框图来说明整个设计思路。

二、系统设计

(一)电路设计

(二)程序流程图

(三)C51程序设计,重要的代码要有注释。

三、仿真验证

(一)系统仿真调试步骤及方法,写程序或设计电路时,不可避免的会出现这样或那样的错误,这部分主要简述一下自己在整个设计过程中采用的仿真调试步骤及方法,重点阐述对出现的问题的解决方法;

四、总结

书写格式:

1、一级标题为宋体,三号,加粗;二级标题为宋体,小三,加粗;报告正文内容

为宋体,小四;1.5倍行间距;

《C51程序设计》课程设计评分标准

课程设计主要的主要目的是培养学生综合利用知识的能力,提高学生的综合设计和实践能力。课程设计成绩主要从工作量、设计讲解、回答问题、设计能力、设计说明书等方面评定:

1.工作量(20%):考查学生完成课程设计的工作量大小,从难度、完成情况等方

面考察;

2.方案设计讲解(20%):考查学生对整体设计的认识和把握;

3.回答问题(20%):是否能够正确回答教师所提的问题;

4.课程设计报告(40%):是否认真撰写课程设计报告。

6.c课程设计 篇六

设计要求:

每人选定2个题目,限1人选的题目只能由1人单独完成,限2人选的题目可由1-2人完成。

1.模块化程序设计 2.锯齿型书写格式 3.必须上机调试通过 设计报告格式:

1、设计目的

2、总体设计(程序设计组成框图、流程图)

3、详细设计(模块功能说明(如函数功能、入口及出口参数说明,函数调用关系描述等)

4、调试与测试:调试方法,测试结果的分析与讨论,测试过程中遇到的主要问题及采取的解决措施

5、源程序清单和执行结果:清单中应有足够的注释

检查要求:

1、每个人必须有可运行的程序(学期末检查);

2、每个人必须交《C语言课程设计报告》(打印稿)打分标准:

1、根据平时上机考勤;注重平时上机成绩,教师要不定期检查学生进度,学生不得以自己有私人电脑为借口而不来上机。

2、根据程序运行结果;

3、根据《C语言课程设计报告》,学生能对自己的程序面对教师提问并能熟练地解释清楚

以上三项缺一不可,否则不能到得相应学分

1、职工信息管理系统设计(限最多2人完成)

职工信息包括职工号、姓名、性别、年龄、学历、工资、住址、电话等(职工号不重复)。试设计一职工信息管理系统,使之能提供以下功能:

系统以菜单方式工作,所有信息保存到文件中 职工信息录入功能(职工信息用文件保存)--输入 职工信息浏览功能 --输出

查询和排序功能:(至少一种查询方式)--算法

按工资查询 按学历查询

职工信息删除、修改功能(任选项)

2、图书信息管理系统设计(限最多2人完成)

图书信息包括:登录号、书名、作者名、分类号、出版单位、出版时间、价格等。试设计一图书信息管理系统,使之能提供以下功能:

系统以菜单方式工作,所有信息保存到文件中 图书信息录入功能(图书信息用文件保存)--输入 图书信息浏览功能--输出 查询和排序功能:(至少一种查询方式)--算法

按书名查询 按作者名查询

图书信息的删除与修改(可选项)

3、学生信息管理系统设计(限最多2人完成)

学生信息包括:学号,姓名,年龄,性别,出生年月,地址,电话,E-mail等。试设计一学生信息管理系统,使之能提供以下功能:

系统以菜单方式工作,所有信息保存到文件中 学生信息录入功能(学生信息用文件保存)---输入 学生信息浏览功能---输出 查询、排序功能---算法

按学号查询 按姓名查询

学生信息的删除与修改(可选项)

4、学生选修课程系统设计(限最多2人完成)

假定有n门课程,每门课程有课程编号,课程名称,课程性质,总学时,授课学时,实验或上机学时,学分,开课学期等信息,学生可按要求(如总学分不得少于60)自由选课。试设计一选修课程系统,使之能提供以下功能:

系统以菜单方式工作,所有信息保存到文件中 课程信息录入功能(课程信息用文件保存)--输入 课程信息浏览功能--输出

查询功能:(至少一种查询方式)--算法v 按学分查询 按课程性质查询

学生选修课程(可选项)

5、销售管理系统(限最多2人完成)

某公司有四个销售员(编号:1-4),负责销售五种产品(编号:1-5)。每个销售员都将当天出售的每种产品各写一张便条交上来。每张便条包含内容:

1)销售员的代号 2)产品的代号

3)这种产品的当天的销售额

每位销售员每天可能上缴0-5张便条。假设,收集到了上个月的所有便条,编写一个处理系统,所有信息保存到文件中,读取上个月的销售情况(自己设定),进行如下处理。

1)计算上个月每个人每种产品的销售额。

2)按销售额对销售员进行排序,输出排序结果(销售员代号)

3)统计每种产品的总销售额,对这些产品按从高到底的顺序,输出排序结果(需输出产品的代号和销售额)

4)输出统计报表

销售统计报表

产品代号

销售之和 销售员代号

每种产品之和

总和

6、设计一个简单计算器(限最多1人完成)

要求: 在功能上功能尽量模拟windows操作系统中的计算器,系统界面不做强制要求。

7、编写一万年历系统(限最多1人完成)

要求: 模仿现实生活中的挂历.当前页以系统当前日期的月份为准显示当前月的每一天(显示出日及对应的星期几).当系统日期变到下一月时,系统自动翻页到下一月.8、学生成绩管理(限最多2人完成)

1.主要功能:

(1)能按学期、按班级完成对学生成绩的录入、修改

(2)能按班级统计学生的成绩,求学生的总分及平均分,并能根据学生的平均成绩进行排序

(3)能查询学生成绩,不及格科目及学生名单(4)能按班级输出学生的成绩单(5)所有信息保存到文件中

9、通讯录管理(限最多1人完成)

1.主要功能:

(1)能建立、修改和增删学生通讯录(2)能够按多种方式进行查询

2.要求:界面友好,易于操作,所有信息保存到文件中

10、一元多项式简单的计算器(限最多1人完成)

1主要功能:

(1)输入并建立多项式;(2)输出多项式;

(3)两个多项式相加,建立并输出和多项式;(4)两个多项式相减,建立并输出差多项式。

(5)算法的时间复杂度、另外可以提出算法的改进方法 实现提示:可选择带头结点的单向循环链表或单链表存储多项式,头结点可存放多项式的参数,如项数等。

2.要求:一元多项式简单计算器的基本功能

11、图书管理系统(限最多2人完成)

1、功能描述

新进图书基本信息的输入。2.图书基本信息的查询。3.对撤消图书信息的删除。4.为借书人办理注册。

5.办理借书手续(非注册会员不能借书)。6.办理还书手续

信息描述:有关该系统基本信息的描述,如:图书名称、图书编号、单价、作者、存在状态、借书人姓名、性别、学号等

7.所有信息保存到文件中

12、用栈来设置密码(限最多1人完成)

要求:用栈来做一个密码验证程序,密码验证只有三次机会。

13、双向链表的排序(限最多1人完成)

要求:输入一个双向链表,显示些双向链表并对此双向链表排序,所有信息保存到文件中

14、成绩记录簿(限最多2人完成)

编制一个C语言成绩记录簿,每个学生信息包括:学号、姓名、C语言成绩。具体功能:

(1)创建信息链表并以磁盘文件保存;

考核方式

课程设计完成情况; 课程设计报告;

课程设计期间的表现.参考评定依据

课程设计成绩评定的依据有设计文档资料、具体实现设计方案的程序及课程设计考勤登记表,其中平时成绩占总成绩的20%。

优:按要求完成题目,有完整的符合标准的文档,文档有条理、文笔通顺,格式正确,其中有总体设计思想的论述,有正确的流程图,程序完全实现设计方案,设计方案先进,软件可靠性好;

良:完成设计题目,有完整的符合标准的文档,文档有条理、文笔通顺,格式正确;有完全实现设计方案的软件,设计方案较先进;

中:基本完成题目,有完整的符合标准的文档,有基本实现设计方案的软件,设计方案正确;

及格:基本完成题目,有完整的符合标准的文档,有基本实现设计方案的软件,设计方案基本正确;

不及格:没有完成题目的要求,没有完整的符合标准的文档,软件没有基本实现设计方案,设计方案不正确。

提交资料:

课程设计报告

提交报告的内容

一、题目内容的描述

二、应用程序功能的详细说明

三、输入数据类型、格式和内容限制;

四、主要模块的算法描述 –以程序流程图的方式给出 –简要的语言描述

五、结束语

六、程序的源代码清单

七、报告的字数,不算源代码清单不少于4页 提交报告的格式

正文宋体小四号字

每个自然段开始空两格.文中英文用新罗马(time new roman),四号

源程序清单用英文新罗马五号 正文宋体小四号字 提交报告封面

软件:需提供源程序,并能正常运行。

7.C语言程序设计课程教学探析 篇七

一、影响教学效果的关键问题及相应对策

1. 学生学习兴趣不高。

学生对难以理解的概念、术语及语法规则、枯燥无味的例题感觉找不到头绪,认为C语言枯燥、难学,有厌倦心理。部分学生不知学为何用而不感兴趣,部分学生觉得它难学而厌学,还有部分学生学而不得法,不知如何学,教学效果和学习效果均不甚理想。

如何激发学习兴趣,增强学生信心,成为该课程教学设计的关键。首先用应用程序展示C语言的结构、特点,讲明学习C语言是掌握编程能力的必由之路。授课过程中应采用互动式教学,多举一些有趣、实际的例题,每一个例题都与新知识、新概念相关联,完成一个任务也就学到了新知识、新概念。这种“练——学——练一—学”的循环过程让学生学得轻松、学得愉快,使枯燥乏味的理论在生动多样的实际问题中逐步为学生理解、接受和掌握。

2. 传统教学方法的局限性。

计算机语言课一直是“讲概念——分析概念——例题讲解——上机操作”的教学模式。以教师“教”为中心,学生处于被动的接受状态,这种“填鸭式”使师生之间交互少,学生“做”得更少,理论与实践脱节,表现于学生“听得懂,不会编”的现象。“很难培养学生在程序设计上的创新能力和逻辑思维能力,这就给后续课程的教学、毕业设计乃至学生日后从事的工作留下了隐患。”

要突出对学生编程能力的培养,应把解题思路当作授课重点,理解如何用程序设计方法分析、解决问题,建立正确的思维模式。教学内容的组织形式应该是“提出问题——介绍解决问题的方法——归纳出概念或一般规律”,教会学生如何运用C语言编写程序,一些细节、具体规则可以让学生自学,结合提问将问题层层剖析、逐步深入,达到师生互动的效果,充分发挥学生的想象力,以学生自学为主,以教师指导为辅。

3. 实验、考核环节。

不重视实验、考试环节,会使实验只是走过场,无人监管,达不到实验的目的;而单一的考试形式,无法真正测评出学生对所学知识的掌握,二者都影响对学生编程能力的培养。

该课程实践性强,只靠听讲,难以记住,必须多阅读、编写、调试程序才能自然地、熟练地掌握。实验可设计为例题验证、程序修改、独立编程三个层次。例题验证使学生进一步理解基本概念和语法,并树立信心;程序修改是让学生根据课堂中讲过的知识点填充,给予学生发挥的余地;独立编程则要求学生阅读教材和相关资料掌握实验所涉及到的知识,独立完成实验项目。教师只起答疑、解惑的作用,引导和激发学生程序设计欲望和创新动力。

考试应采用机考,以综合性、应用型题目为主,并应增加学生平时实践操作能力所占分值的比例。

二、将软件工程思想、项目驱动教学法融入教学中

1. 注重程序设计风格的培养。

编写程序只有正确性远远不够,必须是可维护的、健壮的、并具有良好的界面风格,要求代码简单、清晰、添加适当的注释,使程序具有可读性;用缩进、空行增加层次感,使程序逻辑清晰,好理解,可维护。现在的程序都是程式化、团队式的开发,每个程序员都按照统一的要求编写程序,保证程序清晰、易维护。学习C语言也是一个养成书写程序习惯的过程,在这个阶段如果养成了不好的习惯,以后将很难改掉,教学中要特别予以重视。

2. 教学中期采用项目驱动教学法。

项目驱动教学法是指在教学过程中以一个项目为主线来展开教学,把相关的知识点融入到项目的各个环节中去,层层推进项目。通过对问题的深化或功能的扩充,来拓宽知识的广度和深度,直至得到一个完整的项目解决方法,从而达到学习知识、培养能力的目的。

学生初步掌握了C语言的数据类型、运算符、表达式三种基本结构后,引入一个精心选择的项目,如学生成绩管理系统。先对项目进行需求分析、设计,而不是急于编代码,避免一边想,一边修改;用流程图、N-S图、PAD图等工具描述模块算法,然后编码。采用项目驱动教学法,把课程的主要知识点分解到各个具体模块,例如,项目初期采用一维数组存放学生成绩,用数组名调用排序函数,随着教学的深入,采用结构数组存储信息,用结构指针调用函数,使教学内容前后衔接,运用自如;随着函数定义、调用、参数传递、变量作用域等概念的学习,运用指针、数组、结构体、文件读写等操作完成项目各个任务,并将软件生命周期各个阶段的任务穿插到教学中,循序渐进、潜移默化地把软件工程思想贯穿教学全过程,使学生在学习程序设计的同时,也掌握了软件工程思想,对培养和提高学生编程能力有极其重要的作用。

3. 培养学生程序调试、测试的能力。

在测试项目各个模块功能时,介绍白盒测试和黑盒测试的概念,使学生懂得测试用例设计不仅要有合理的输入数据,还要有不合理的输入数据;随着教学的不断深入,将各个模块逐个添加到系统中,符合自顶向下增量集成的测试方式,减少了错误数量和测试难度,可向学生灌输集成测试、确认测试的概念,这是完成大型项目开发的必要环节;引导学有余力的学生编写新的模块来完善系统功能,发挥他们的想象力和创造力,使学生始终保持浓厚的学习兴趣。完成一个相对完整的应用程序开发,会有一种“从一盘散沙到一串珍珠”的感觉,既培养了学生自学能力和独立分析、解决问题的能力,又使其了解了软件工程思想,在其后续学习中达到事半功倍的效果。

对于综合型项目,将学生每3-5人分为一组,从需求分析、系统设计、代码编写到程序调试、运行,整个过程都在小组内协作完成,他们一起研究、探讨、设计,再经过思考、改进,不断完善,教师只起一个点拨和指导作用,选出成功的小组经验在全班讲评,促进整体编程能力提高。

三、结束语

8.c课程设计设计报告 篇八

【关键词】C语言 程序设计 实验 考核体系

【中图分类号】G64【文献标识码】A 【文章编号】2095-3089(2016)37-0234-01

1.引言

C语言程序设计(实验)通过上机实践,可以帮助学生巩固课堂教学的理论知识,真正体现学生将知识“内化”的过程[1],意在培养学生分析问题、解决问题的实际动手能力和创新能力。传统的实验课程考核方式单一,不能公正的评价学生的实际综合能力。为了全面培养学生的学习兴趣、全面考查学生的综合知识点,全面注重学生的创新能力和实践能力的提高,以达到培养创新人才的目的,切实推进课程考核改革及考核体系已经刻不容缓[2]。

2.课程简介

程序设计基础是一门专业基础课,这门课通过全面、深入、系统地介绍程序设计方法和程序设计语言,使学生初步建立起程序设计的基本概念,通过学习一种典型的程序设计语言(C语言),初步掌握程序设计方法,具有一定的程序设计能力。我院的程序设计基础(C语言)分上下两个学期,程序设计基础(一)和(二),程序设计实验是单独的一门课程,有程序设计基础(一)实验和(二)实验,实验内容主要是辅助,强化理论各个章节的知识点,提高学生的动手能力为目的进行设计的。

本考核体系是基于程序设计基础(一)实验设计的。我院程序设计基础(一)主要的内容有:数据的表示、组织和处理、程序的基本结构控制(顺序、选择和循环)。

3.現行的考核方式

现行的考核方式比较单一,是从三个方面进行成绩给定:(1)考勤;(2)实验报告;(3)创新设计。这里的(2)和(3)都是以实验报告来给定成绩,其中一部分以实验报告的书面结果给定成绩,另一部分以答辩实验报告的方式给定成绩。现行的考核方式不能公正的评定学生的实际综合能力,也没有促进学生进行创新设计。

4.全程考核体系的构建

全程考核体系意在促进学生核心能力的提升,在学习过程和学习结果两个维度上设置考核指标:过程考核可以提高课程的教学质量,培养学生的学习能力以及提高学生的协作能力、表达能力、沟通能力等综合素质;结果考核目标是使学生掌握基本理论、基本知识的基础上增强职业素养与专业技能,提高分析问题及解决问题的能力。

全程考核体系:

(1)考勤

考勤是学生学习的基础和保证,能促使学生养成遵章守纪的习惯,以培养学生进行自我管理。每次实验使用E-learning系统进行签到记录。

(2)实验报告

实验课中,教师观察、了解学生学习的过程,学生参与课堂活动的广度和深度,学生学习过程中表现出来的解决问题的能力。而实验报告是实验过程中唯一存档的资料,是值得重视的环节。教师根据学生的实验报告的完成步骤、完成程度以及答辩等对每次实验进行综合评价。

(3)综合大作业

为培养学生的创新能力及实践工程能力,让学生以三人一组,综合运用所学知识,共同自主学习、相互启发、收集资料、团队协作开发一个趣味性、实用性的小系统。

大作业从三个方面给定成绩:一是系统的整体评价;二是团队分工;三是团队成员各自答辩情况。

成绩给定之一:系统的整体评价包括科学正确性、趣味性/适用性、界面的清晰性。成绩给定之二:根据团队的分工,评价团队各成员的工作量。成绩给定之三:团队成员各自的答辩情况加入各自的成绩。

(4)期末无纸化考试

为对学习结果进行公正的考核,且激发学生对C语言的热爱,我们用C语言编写了一个无纸化考试系统,并让学生观摩编制考试系统中的主要算法。考试系统的中的试题均为编程题目,按照实验教学大纲的知识模块将试题划分成几个组,每个组中的题目难度相当,考试系统从每个组中抽取一道编程题目,随机组成程序设计试卷。

考试过程中,为保证公正,避免学生考试上网查阅资料,使用E-learning系统控制学生,禁止其使用电脑的浏览器、U盘。

考试成绩从三个方面给定:一是程序结果,单纯地考核程序运行的正确性;二是程序设计思路;三是理论基础知识。

5.结束语

本考核体系应用于本学院15级数字媒体专业,将考核贯穿于整个学习过程中,调动了学生学习的兴趣,学生的实践能力和创新能力得到了一定的提升,能更公正地评价学生的综合能力,学生也表现出了对该门课程的热情和自信,本考核体系得到了学生的一致认可。

参考文献:

[1]王丽娜,吕红,张杰,任颖.《计算机程序设计实验》课程的教学改革与实践.计算机工程与科学.2014年.第A1期.

上一篇:(王家河)小学六年级语文毕业试卷下一篇:趣味成语详案