c语言课程设计设计报告(精选11篇)
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语言程序设计》设计之前,可能通过新生入学教育或从高年级学生中知道这是一门专业必修课程而兴致勃勃,但到真正学习时,如果一直都是面对一堆单调而且枯煤无味的语法知识,则容易使学生产生厌学心理从而逐渐失去学习的兴趣。因此,要改进教学方法。首先,通过展示学校近几年来在各种比赛中获得的好成绩,让学生观看比赛的图片,让学生知道只要努力,在各种竞赛中都可以占有一席之地,这样学生就有可达到的奋斗目标从而消除他们的畏难情绪,激发学生的学习兴趣。
其次,在课堂讲授时尽可能找一些趣味性较强的例子讲解,除布置基本的训练学生掌握语法或者算法的题目外,设计1—2个有趣味性的游戏程序设计,如在选择结构编程练习中简易计算器的开发,在循环结构编程练习中加入猜数字游戏设计,在一维数组编程练习中加入猜牌术游戏等,这些游戏程序设计的开发有一定的难度,鼓励学生结成兴趣小组,互帮互助共同完成,在此过程中,学生的学习自主性和团队协作精神都得到大幅提高。
(二)精心设计实验教学
要根据《C语言程序设计》实验的教学大纲制定实验计划,精心设计每一次实验内容,要综合考虑学生编程能力上的差异,不要把题目设计得太深或者太简单,可以设计必做题和选做题,对基础较差的学生,最低要完成必做题;对能力较强的学生,在完成必做题的基础上,鼓励他们去完成选做题。同时,在实验的编排上,注意验证性、设计性和综合性实验的比例,对验证性实验进行精选,即使是验证性实验,也不要简单验证程序的运行结果,而是首先要求学生阅读程序,写出运行结果或程序实现的功能,然后再上机运行,同时可以设计一些问题让学生思考并对程序进行进一步修改,然后再分析运行结果。减少验证性实验项目,增加设计性和综合性实验项目,由浅入深、由易到难,加强学生动手能力、分析问题和解决问题能力的培养,最终提高学生的编程能力。
(三)灵活运用多种教学手段
在做题过程中,教师的主要任务是及时发现问题,回答学生的疑难问题。但是,在实验练习的过程中,学生主要依靠自己讨论或者上网寻求思路来解决问题。这是一个值得鼓励的好现象,能够充分体现学生独立自主学习的能力,在课堂教学中应当鼓励学生互相讨论,互相交换思想共同解决问题。但是,在教学中教师的作用体现不够充分,不愿意寻求帮助的学生会因为一道题目没有解决而无法正常进行实验练习,教师的作用应该是在学生自主解决问题的同时,能够及时提供帮助,尽量统一实验进度。在上机指导学生实验时,要以问题为中心,广泛采用启发式、参与式和讨论式等教学手段,要打破学生对教师的依赖性,让学生自己去思考如何编程,如果较难的题目允许学生讨论,鼓励学生去查阅相关资料,也可以适当给学生一些提示,但一定不要给学生源代码,重点给出解题的思路与建议性方法,给学生留下足够的独立思考和设计的空间,使学生在实验过程中亲自体会并掌握程序设计思想,提高实验的教学效果。
(四)利用网络教学平台让学生主动学习
充分利用校园网内建立的《C语言程序设计》网络教学平台,在该平台上共享本课程部分教学视频、相关课件、经典算法资料、ACM大赛历年题目,可以让学生通过此网络教学平台更加自主地选择性学习,更重要的是利用此平台与学生进行互动交流,在答疑区对学生提出的问题,老师与学生都可以及时解答,同时其他学生也可以分享交流过程,随时再提出新问题,更好地激发学生的学习兴趣,增强教师与学生、学生与学生之间的互动。通过多种教学方式的结合,不仅加深了学生对所讲知识点的理解,而且激发了学生的学习兴趣,提高了学生学习的自觉性,同时通过互动交流式学习增强了学生的自信心。
参考文献:
[1]张红军.C语言程序设计教学改革初探[J],信息与电脑,2015 (9):140-142.
[2]刘红霞,张永恒.CDIO工程教育模式下的C程序设计教学改革研究[J],榆林学院学报,2015 (4):83-86.
[3]李文锦,游戏化学习在C语言程序设计的应用与实践[J],新课程研究,2015 (7):76-77.
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
/*计算公元元年到某年某月的时间*/ 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();} ③ 运行结果 按回车实现记事本功能: 按回车返回记事本: 在特殊日子下按回车,查询是否有要做的事情: 四、实训心得: 《C51程序设计》 课程设计报告书 题目: 班级:学号:姓名:成绩: 课程设计报告格式 一、绪言 (一)设计任务(简要说明设计题目的目的、意义、内容等) (二)提出方案及方案论证(这两个部分可分开也可合并,主要是就自己的课程设计题目提出一个或几个解决方案,并就不同的方案加以论证,从中精选出最佳的一个方案) (三)原理说明:根据方案论证的结果,简述设计原理,最好能给出较为明了的框图来说明整个设计思路。 二、系统设计 (一)电路设计 (二)程序流程图 (三)C51程序设计,重要的代码要有注释。 三、仿真验证 (一)系统仿真调试步骤及方法,写程序或设计电路时,不可避免的会出现这样或那样的错误,这部分主要简述一下自己在整个设计过程中采用的仿真调试步骤及方法,重点阐述对出现的问题的解决方法; 四、总结 书写格式: 1、一级标题为宋体,三号,加粗;二级标题为宋体,小三,加粗;报告正文内容 为宋体,小四;1.5倍行间距; 《C51程序设计》课程设计评分标准 课程设计主要的主要目的是培养学生综合利用知识的能力,提高学生的综合设计和实践能力。课程设计成绩主要从工作量、设计讲解、回答问题、设计能力、设计说明书等方面评定: 1.工作量(20%):考查学生完成课程设计的工作量大小,从难度、完成情况等方 面考察; 2.方案设计讲解(20%):考查学生对整体设计的认识和把握; 3.回答问题(20%):是否能够正确回答教师所提的问题; 4.课程设计报告(40%):是否认真撰写课程设计报告。 //定义学生结构体,st数组。 int score[5];float jqave;int rank;}st[27]; struct kecheng { int num;char kcname[20]; //定义课程结构体,course数组.float xuefen;float biaozhuncha;int youxiu;int lianghao;int zhongdeng;int jige;int bujige; }course[5]; void readdata1(){ int i,j; char str1[100]; FILE *f1; f1=fopen(“c:xinji110213.txt”,“r”); fgets(str1,100,f1);// printf(“%-s”,str1); for(i=0;i<27;i++) { fscanf(f1,“%d%s”,&st[i].num,st[i].name); // printf(“%-4d%-10s”,st[i].num,st[i].name); for(j=0;j<5;j++) { fscanf(f1,“%d”,&st[i].score[j]);// printf(“%-9d”,st[i].score[j]);} // printf(“n”);} fclose(f1);} void readdata2(){ int k; char str2[100]; FILE *f2; f2=fopen(“c:xj02kc.txt”,“r”); fgets(str2,100,f2);// puts(str2); for(k=0;k<5;k++) { fscanf(f2,“%d%s%f”,&course[k].num,course[k].kcname,&course[k].xuefen); // printf(“%-8d%-10s%2.1fn”,course[k].num,course[k].kcname,course[k].xuefen); } fclose(f2);} void jqave(){ int i,j;float s=0,sum=0;for(i=0;i<27;i++) { for(j=0;j<5;j++) { s+=course[j].xuefen; sum+=st[i].score[j]*course[j].xuefen; } st[i].jqave =sum/s; } } void ranking() { int i,j; for(i=0;i<27;i++){ st[i].rank=1; for(j=0;j<27;j++) if(st[i].jqave st[i].rank=st[i].rank+1;} } void paiminghoudechengji(){ int i,j;FILE *fp;fp=fopen(“c:MC110213.txt”,“w”);printf(“ 名次 学号 姓名 数学分析 高等代数 C语言 大学物理 大学艺术 加权平均分 n”);fprintf(fp,“ 名次 学号 姓名 数学分析 高等代数 C语言 大学物理 大学艺术 加权平均分 n”); for(i=0;i<27;i++) { printf(“%3d%5d%8s”,st[i].rank,st[i].num,st[i].name); fprintf(fp,“%3d%5d%8s”,st[i].rank,st[i].num,st[i].name); for(j=0;j<5;j++) { printf(“%10d”,st[i].score[j]); fprintf(fp,“%10d”,st[i].score[j]); } printf(“%12.2fn”,st[i].jqave); fprintf(fp,“%12.2fn”,st[i].jqave);} fclose(fp);} void xiechengji(){ int j;FILE *fp;fp=fopen(“c:xj1110213.txt”,“w”);fprintf(fp,“ 编号 课程名称 课程学分 标准差 优秀 良好 中等 及格 不及格 n”);printf(“ 编号 课程名称 课程学分 标准差 优秀 良好 中等 及格 不及格 n”);for(j=0;j<5;j++) { printf(“%3d%15s%10.2f”,course[j].num,course[j].kcname,course[j].xuefen);fprintf(fp,“%3d%15s%10.2f”,course[j].num,course[j].kcname,course[j].xuefen); printf(“%10.1f%8d%8d%8d%8d%6dn”,course[j].biaozhuncha,course[j].youxiu,course[j].lianghao,course[j].zhongdeng,course[j].jige,course[j].bujige); fprintf(fp,“%10.1f%8d%8d%8d%8d%6dn”,course[j].biaozhuncha,course[j].youxiu,course[j].lianghao,course[j].zhongdeng,course[j].jige,course[j].bujige); } fclose(fp);} void pingjunfen(){ int i,j; for(j=0;j<5;j++) { float zongfen=0,pingjunfen=0; for(i=0;i<27;i++) zongfen+=st[i].score[j]; pingjunfen=zongfen/27; } } void biaozhuncha(){ int i,j; for(j=0;j<5;j++){ float zongfen=0,pingjunfen=0,x=0; for(i=0;i<27;i++) zongfen+=st[i].score[j]; pingjunfen=zongfen/27; for(i=0;i<27;i++) x+=(st[i].score[j]-pingjunfen)*(st[i].score[j]-pingjunfen); course[j].biaozhuncha=(float)sqrt((x/27)); } } void count(){ int i,j; for(i=0;i<5;i++) { course[i].youxiu=0,course[i].lianghao=0,course[i].zhongdeng=0,course[i].jige=0,course[i].bujige=0; for(j=0;j<27;j++) { if(st[j].score[i]<60) course[i].bujige++; else if(st[j].score[i]<=69) course[i].jige++; else if(st[j].score[i]<=79) course[i].zhongdeng++; else if(st[j].score[i]<=89) course[i].lianghao++; else course[i].youxiu++; } } } void chengjitiao(){ int i,j;FILE *fp;fp=fopen(“c:cjt110213.txt”,“w”);do { printf(“请输入你要查询的编号 退出请按零”); scanf(“%d”,&i); fprintf(fp,“ 编号 姓名 数学分析 高等代数 C语言 大学物理 大学艺术 加权平均分 名次n”);printf(“ 编号 姓名 数学分析 高等代数 C语言 大学物理 大学艺术 加权平均分 名次n”);if(i>=0&&i<=26)fprintf(fp,“%3d%10s”,st[i-1].num,st[i-1].name); printf(“%3d%10s”,st[i-1].num,st[i-1].name);for(j=0;j<5;j++){ printf(“%9d”,st[i-1].score[j]); fprintf(fp,“%9d”,st[i-1].score[j]);} printf(“%12.2f%8dn”,st[i-1].jqave,st[i-1].rank);fprintf(fp,“%12.2f%8dn”,st[i-1].jqave,st[i-1].rank);fclose(fp);} while(i>0&&i<28); } void bujigexueshengmingdan(){ int i,j; printf(“不及格学生名单如下:n”);printf(“ 学号 姓名 不及格课程 分数 n”);for(i=0;i<27;i++){ for(j=0;j<5;j++) if(st[i].score[j]<60) {printf(“%3d%12s”,st[i].num,st[i].name); printf(“%15s%8dn”,course[j].kcname,st[i].score[j]); // printf(“ 平均分”); // printf(“%10.2f 名次%8dn”,st[i].jqave,st[i].rank); } } } void youdeng(){ int i,k;printf(“ 优等生名单如下n”);printf(“编号 姓名 数学分析 高等代数 C语言 大学物理 大学艺术 加权平均分 名次n”);for(i=0;i<27;i++){ // for(j=0;j<5;j++) if(st[i].jqave>=90||st[i].rank<=3) { printf(“%2d%10s”,st[i].num,st[i].name); for(k=0;k<5;k++) printf(“%9d”,st[i].score[k]); printf(“%10.2f%8dn”,st[i].jqave,st[i].rank); } else; } } void caidan() { loop: printf(“ &&简易教学管理系统&&n”); printf(“press 1 for 排名后的成绩表 !n”); printf(“press 2 for 各科成绩情况!n”); printf(“press 3 for 成绩条!n”); printf(“press 4 for 不及格学生名单!n”); printf(“press 5 for 优等生名单!n”); printf(“press 0 for 退出n”); int t; scanf(“%d”,&t); switch(t) { case 1: paiminghoudechengji();break; case 2: xiechengji();break; case 3: chengjitiao();break; case 4: bujigexueshengmingdan();break; case 5: youdeng();break; case 0: exit(0); } goto loop; } void main(){ readdata1(); readdata2(); jqave(); ranking(); pingjunfen(); biaozhuncha();count(); 关键词:高级语言程序设计,课程网站,网站设计,实现方式 随着计算机网络技术的普及和快速发展, 孕育了一种新型的教学方式———课程网站教学, 以高效率、信息化、资源共享的特点和优势逐步渗入到当前高校教学中, 打破了传统教学时间和空间的限制, 让学生在更为开放、安全、自由的环境中汲取更多知识, 满足教学的基本目标, 达到优质教育的目的。 高级语言程序设计, 是一门专业性比较强的计算机课程, 对学生的基础编程能力要求较高, 旨在培养学生的编程思维, 提高学生计算机水平和专业度。高级语言程序设计 (C) 课程网站的设计, 是时代发展的产物, 知识体系更丰富, 学习方式更灵活, 更适于当代学生的理解和接受。 因此, 实现高级语言程序设计 (C) 课程网站设计的高质量, 成为当前高校教育的重要组成部分。 一、高级语言程序设计 (C) 课程网站设计的必要性 高级语言程序设计 (C) 课程网站设计, 是时代的发展要求。C语言是计算机专业学生必须掌握的基本内容, 课程网站设计充分利用互联网技术力量, 提高了信息传播的高效率、资源共享的高质量。课程网站建设, 能够对教学资源进行全面细致的梳理, 提高了师生在线交流的便捷, 并根据C语言教学的特殊性提供了在线作业提交、在线考试、在线解疑等版块功能, 提高了教学的质量和效率, 成为高校C语言教学的重要方式。 二、高级语言程序设计 (C) 课程网站设计基本要求 1) 结合高级语言程序设计 (C) 课程特点, 划分课程网站设计版块。高级语言程序设计 (C) 课程网站设计, 是为了辅助课堂教学, 实现学习高效率的一种方式。C语言程序学习有其课程的独特性和特殊性, 因此, 网站设计的不同版块、不同内容要与课程要求密切相关, 以提供更为针对性的课程服务和网络操作。 2) 合理规划课程网站系统功能, 达到高效的资源共享。高级语言程序设计 (C) 课程考察的是学生的编程等计算机能力, 学习过程中哪些部分、哪些功能需要借助于网络的力量都要有明确的划分和系统性的规划, 以确保课程网站建设能够满足学生的学习需要和老师的教学需求, 不同的系统功能要对应到不同的服务内容, 课程学习、在线交流、作业上交等功能要遵循网络特点, 实现良好的可操作性。 3) 优化数据库资源信息存储, 实现课程网站设计信息化。高级语言程序设计 (C) 课程网站设计, 不仅涉及到相关的精品课程内容, 而且涉及到用户的基本信息, 在数据信息的存储方面, 要遵循安全性原则, 充分利用信息技术和大数据资源, 实现课程网站设计的信息化和科学化。 三、高级语言程序设计 (C) 课程网站的实践手段和实现方式 (一) 检测课程网站效果, 及时反馈完善可能性bug 为保证高级语言程序设计 (C) 课程网站能够正常运行, 在课程网站完成之初要及时进行效果检测, 课程网站利用涉及到教师、学生、管理员等, 首先要确保不同的用户登录的正常, 用户正常登录后, 要确保可浏览页面的正常显示, 并能够及时搜索到相关的课程内容, 确保不同用户拥有不同的权限, 网站信息录入要与实际相一致, 后台信息的添加要准确无误, 前台显示与后台数据信息要保持一致。对不能登录、页面显示异常、用户权限不明等情况要及时反馈并及时处理, 对课程网站进行必要的修正和完善, 确保课程网站的正常使用。 (二) 对不同版块系统功能进行测试, 优化功能使用 高级语言程序设计 (C) 课程网站设计, 是一种辅助性的教学方式和措施, 涉及到网上选课、提交作业、辅导解疑、网上教程等多个版块内容, 不同的版块内容对应不同的系统功能。课程网站设计完成后, 要及时对不同版块系统功能进行测试, 确保功能能够正常使用的基础上还要进行不断优化, 提高页面的打开速度, 节省网站登录和浏览的时间。 高级语言程序设计 (C) 由于其课程的特殊性, 很多作业都是网上作业, 考察学生的编程等相关的计算机知识, 网上提交作业作为常用的系统功能, 要及时优化, 避免可能性的错误和异常。作业操作的流程、作业提交的步骤等系统功能都要及时优化处理, 避免因为系统功能的不健全影响学生作业的及时提交, 给学生带来不必要的麻烦和阻碍。 (三) 调试课程网站操作系统, 强化网站后台管理 高级语言程序设计 (C) 课程网站涉及到课程学习、在线交流、作业指导等多个操作版块, 后台管理极为重要。在线交流过程中会存在一些不合适的因素, 管理员要合理利用自己的权限确保学习环境的良好氛围, 将不合适的言论和影响学习的因素及时删除, 但是管理员并非可以任意妄为, 管理员的相关数据信息也要经过后台的审核。因此, 在确保系统运作正常的基础上还要强化后台管理, 为网站的正常运行奠定基础。 总之, 互联网时代背景下, 课程网站是高校教学的重要手段和组成方式, 课程网站充分利用计算机网络技术和信息化手段, 将精品知识体系通过网络进行公布, 达到高效优质的资源共享。高级语言程序设计 (C) 作为计算机专业学生的基础课程之一, 对学生的编程思维能力和网络实践能力要求较高, 课程网站的设计要从课程的基本特点和教学要求出发, 实现教学资源的充分利用、教学活动的有效融合、教学管理的科学合理, 达到高水平的优质教学目标。高级语言程序设计 (C) 课程网站的设计与实现不是一蹴而就的, 需要进行全方位的考虑和重复性的检测, 以为大家创设一个良好的网络学习空间, 实现网络课程的及时更新和精品课程的高效操作。 参考文献 [1]马艳萍, 魏慧琴.高级语言程序设计移动学习平台的设计与实现[J].软件导刊 (教育技术) , 2015年04期. [2]詹秀菊, 刘梢.基于CDIO的高级语言程序设计C课程教学改革研究[J].中宜教育, 2014年03期. 【关键词】C语言;教学方式;评价系统 1.引言 现阶段,我们国家的很多高职院校都将C语言看做是比较重要的课程,并且是计算机专业学习的基础,但是,经过相关调查显示,在学校任职的教师在对C语言进行教学的过程中,比较普遍的反映就是比较难教,并且在教学的过程中教师基本上比较注重基本的专业知识的培养,而学生在学习C语言的过程中基本上的反应都是比较难学,所以说在C语言的教学过程中无论教师还是学生都极为不满意。 经过笔者深入的调查研究发现,在实施C语言程序设计的教学过程中主要存在以下几个问题:第一,在教学的过程中教师处于主体地位,学生基本上只是负责接收教师教的基本理论知识,不能有效的和老师进行互动,不能积极的发表自己的观点。第二,在教学过程之中,对学生细微意识的培养还远远不够。第三,对于学生成绩的好坏进行的评价基本上都是以考试成绩进行评价的,这样的评价方式明显是不合理的。第四,对于学生独立思考的培养不够,虽然在教学结束之后学生能够进行简单的编程,但是其综合素质方面是十分不完善的。 2.问题一,转变教学观念和教学模式 在教学过程中要不断的重视学生自主能力的培养,在学习过程之中要不断引导学生积极主动的学习,进而使得他们在学习方式上有所转变。对于在教学的过程中教师的教学地位进行重新的定义,经过研究之后教师在教学的过程中其地位主要在下面几个方面体现:(1)负责对课程进行设计。在教学的过程中,教师对于案例进行合理的分析,然后在此基础上进行教学,主要的目的是对学生的思维能力进行培养,为学生架构比较完善的知识体系结构。(2)在学生之间组织共同学习。在C语言的教学过程中分成不同的小组,然后让小组之间经常进行交流,那么一定程度上能够培养学生独立思考的能力。在教学的过程中最为主要的是要让学生了解为什么要学些C语言,不然在学生不知道为什么学习的情况下进行学习,那么他的学习就会存在一定的盲目性。(3)教师在学生学习过程中还要扮演一个合作者的角色。在教学的过程中要对学生的优点进行肯定,对于不同的学习要采取适合他们的教学方法,培养学生的兴趣,对于不同学习程度的学生设计不同的学习目标。(4)在教学过程中要及时的进行反思。主要是对教学过程中的教育方式、态度以及教学的重点进行反思,在此基础上对教学的过程进行总结,使得教学水平有效的提高。 3.问题二,协同学习与合作研究方式 由于信息技术的快速发展,使得个人获得知识的渠道有限。在教学的过程中可以根据学生的学习水平以及性格等各个方面,将能够互相学习的小组放在一个小组,这样在学习的过程中这些学生能够自主的进行学习。在学习的过程中,为了更好的掌握所学的知识就会更加及时的进行交流,久而久之也就形成了合作研究的学习方式。 4.问题三,编写符合学生思维规律的讲义 在C语言教学的过程中,之前对于语法一直都比较看重,教科书在编写的过程中比较的难懂,处于学习阶段的学生对此根本不能完全理解。在这样的教学模式之下,就使得学生即使能听懂C语言课程,但是却不能妥善的进行应用。在这样的背景之下,在编写C语言的教程的时候,需要按照学生的思维方式进行编写,这样使学生更加容易理解,并且在理解的基础上能够投入实用。教学过程中要注意培养学生的综合素质,不要使得培养的学生只能进行理论研究,却不能够将学习到的知识投入实用。 5.问题四,注重研究带动教学 随着教学改革的实施,现阶段属于一种创新性的教学模式,现代社会的发展最需要的就是创新型人才,要想培养这样的人才就需要运用创新型的教学模式。在创新性教学模式中,教学的主体是学生,教学的过程主体也是学生,因此在教学过程中一定要注重学生、教师间及时的交流沟通,同时强调在教学过程中教师、学生共同参与的重要性,最大限度的使学生创新思维的能力得到有效培养。 6.问题五,丰富教学方法和教学手段 在教学过程中,一定要充分考虑学生要求,然后根据学生可以接受的学习方式来进行教学,改变传统老师教、学生听的教学模式,对比较受学生欢迎的教师组织学习观摩,使得教学成功的案例被有效的推广。随着现如今互联网的快速发展,可以依靠互联网带动教学发展,并把传统教学模式融入到互联网教学中,进而大幅度提高教学小龙。对于那些难以理解的部分,增加动画演示。在教学的过程中要注意引导学生自主进行编程。请比较优秀的学生传授起学习的经验,培养学生合作的精神。 7.总结 经过一段时间的实践之后发现,现阶段我们所使用的教学方法是比较合理的,因为已经取得了非常显著的研究成果。在运用该教学方法之后学生自主编程的能力得到有效的提高,并且学生之间懂得了如何进行团队协作,学生对于为什么学习C语言也有了一个较为全面的认识。对于C语言的教学模式进行改革不是短时间内就能完成的,接下来还需要做很多的研究。 【参考文献】 [1]任正云.课程建设的探索实践与研究——以《C语言程序设计》为例[J].电脑知识与技术,2016(19) [2]赵震伟.应用型高校《C语言程序设计》课程教学改革[J].黑龙江科技信息,2016(24) [3]陶荷芳.浅谈如何在C语言教学中培养学生的合作能力[J].读与写(教育教学刊),2014(02) [4]陈效兰,张岩.师生互动式研究型教学对创新型人才培养的探索[J].教育探索,2008(10):35-36 一周的计算机C语言课程设计很快就结束了,回想这一周,几分欣喜,几分紧张,欣喜的是学了C语言能得到应用,紧张的是怕自己不能更好的设计自己的程序,生怕自己设计的程序不能顺利的完成。但是在老师的帮忙下,在我们组员的共同的努力下,我们能很好而顺利的将程序设计并且运行出来,虽然有几处不足但在老师的改正下我们的程序也得到了完善。 透过这一周的C语言课程设计,我懂得了很多,它让我明白做事情需要认真与细心,需要耐心与恒心。就拿我们的程序来说把,起初做完运行后有很多错误,当时我们组每个人都十分焦虑,的确,看着长长的程序想要去一一把问题解决也并非是件简单的事,但如果你静下心来细心的去找就会把错误一个一个的找出来。还有一点是十分重要的,那就是有不懂的地方及时向老师提问,那样的话你就会对不懂的地方有个深刻的理解,以后再碰到此类问题自己也就能解决了。所以我们的程序是在老师的帮忙下,在我们组成员的耐心的查找与改正下完成的。我们的成功离不开老师的指导,离不开我们的共同努力。看着运行出来的程序我们笑了,真的,当时的情绪真的想不出用哪个词语去形容,也许笑容代表了一切。 短短的几天时间让我对C语言有了一个全新的概念,它不仅仅是一门课程,更是一门技术。也使我领会到实践的重要性,我期望在以后的学习生活中我会有更多的实践机会来提高我的思考潜力与动手潜力,培养我的细心、耐心与恒心。这是难忘的一次实训课程,它会在我的人生旅途中写上浓重的一笔。感谢老师的指导帮忙,感谢同组兄弟的支持,谢谢!未来的社会必将是科学技术全面,全面发展的社会,我们需要更就应懂得并掌握现代化的科学知识,C语言是一门全新的课程,也许当我们初次接触这门课程会感觉到新鲜,当你更加深入的学习它你会体会到它的乐趣与方便,而未来的社会也正需要全能型的人才,让我们共同努力吧,学会更多的知识技术,为了完美的未来而加油! 设计一个学生成绩管理系统,该系统记录了全班同学语文数学英语3门课程的成绩,并对成绩进行管理。主要功能如下: 1)具备对成绩的管理功能(添加、删除、排序) 2)具备对课程成绩的统计功能(最高分,最低分,平均分,及格率等) 3)具备按学号、姓名、或课程名查询成绩的功能。 4)具备将学生成绩写入文件,并从文件读入学生成绩的功能 备注:成绩记录以下信息:班级,学号,姓名,课程成绩(百分制)。可以用能表示学生成绩的结构体数组存储数据。 设计要求 1.分析课程设计题目的要求 2.写出详细设计说明 3.编写程序代码,调试程序使其能正确运行 4.设计完成的软件要便于操作和使用 关键词 中职;C语言;教学方法 中图分类号:G712 文献标识码:B 文章编号:1671-489X(2015)21-0106-02 1 前言 C语言程序设计是江苏中职对口单招计算机专业的必考科目之一,具有较强的理论性和实践性。该课程涉及的概念、规则繁多,语句书写灵活,语法限制不太严格,还用到英文和数学相关知识,中职生学习较为困难,也给教师的教学提出新的要求。 2 中职对口单招C语言程序考试情况分析 江苏对口单招新大纲已经使用五年了,新大纲中C语言占有很大比重,共140分,其中理论60分,技能80分。理论部分较为基础,分数上拉不开差距;技能部分难度较大,容易拉开差距,是重点也是难点。前几年我校学生在该门课程成绩上不理想,最高在260分左右,而苏南学校部分学生接近满分,平均分在260分左右。究其原因主要是学生对C语言知识、技能掌握不牢,拿到题目无从下手,甚至一些同学放弃对该门课程的学习。 3 中职对口单招C语言教学现状分析 学生学习情况分析 中职学生是一个比较特殊的群体,他们文化基础较为薄弱,学习能力不强,缺乏学习主动性、积极性,大多没有良好的学习习惯,不善于思考问题、独立解决问题。刚开始学习C语言程序设计时还有些热情,但由于学生的英语和数学都很薄弱,经过一段时间的学习后就感觉枯燥,对上课没有了兴趣,乃至丧失了继续学习该课程的信心。 教师教学情况分析 大部分教师仍采用传统的教学方式进行C语言程序设计课程的教学,老师注重讲,学生被动的学,师生间互动少。教学的重点主要放在C语言的语法规则上,忽视了编程思想的培养,算法的编写。实验教学也只是把书上的程序输入验证一下,既不能调动学生的积极性,也无法培养学生的编程能力。教学内容与考试要求有一定的距离,高三复习时学生无法接受较复杂的问题,拿到题目无从下手,最终只有放弃。 4 中职对口单招C语言课程教学改革研究 多种教学方法的综合应用,提高课堂教学效果 C语言教学中采用多种教学方法,可以激发学生的学习兴趣,提高教学效果,培养学生的编程能力和创新意识。 1)问题引导教学法。问题引导法能够突出学生的主体作用,有效发挥学生的思维,培养学生的综合处理问题的能力。以“排序”为例,可以先讲解排序的原理,让学生思考排序的算法,接着写出算法流程图,最后用循环语句实现算法。这个过程结合课件和Flash动画,逐步引导,层层解决,效果较好。 2)案例教学法。案例是指那些在日常生活中能教好地反映教学内容的事例。经典趣味的案例比较有代表性,能够吸引学生的注意力,培养学生的学习兴趣,增强他们参与课堂的主动性。如“水仙花数”“猴子吃桃问题”“哥德巴赫猜想”等,引导学生对案例进行剖析,使学生能通过归纳掌握知识内容,从而达到教学目标。实践证明,案例教学,内容容量大,知识点的前后紧密联系,学生对知识印象深刻,能够灵活应用。 3)任务驱动法。任务驱动法教学,就是通过完成教师布置的一个任务或多个任务,建构真正自己的知识与技能,培养学生解决问题的能力。C语言教学过程中,可引导学生由易到难地完成一系列任务。如学习循环问题中素数时,可按以下任务进行教学:任务一,用键盘输入一个正整数,编程判断是否为素数;任务二,打印出100~999之间所有的素数;任务三,编程找出第100个素数。以上三个任务是由易到难,第一个任务学生可以自我解决,第二个任务需要在教师提示下完成,第三个任务需要教师讲解分析后,学生方能编出程序。通过教学,学生掌握了所学知识,培养了编程能力。 灵活应用现代教学手段,提高学生学习积极性 1)课件与板书相结合。使用课件教学有利于简化教学过程,吸引学生的注意力,提高学习兴趣。可以把烦琐的概念和语句格式及比较长的程序做成课件,直观地向学生展示,免去了板书的时间。但有时用板书,可以达到课件无法实现的效果,如在分析算法过程、程序编写及执行过程时,用板书可以给学生留下深刻的印象,使师生能够随时互动,效果良好。 2)应用Flash动画演示。C语言中的一些算法,用语言描述学生感觉述枯燥乏味,难以理解,容易遗忘。如果用Flash动画形象的展示出来,可以达到事半功倍的效果。例如在讲到交换两个变量的值、排序、求极值等算法时,可以把算法过程做成Flash动画,学生看完动画后,教师接着讲授算法结构及分析编写过程,最后学生编写出相关程序。应用Flash动画不仅能够使学生记忆深刻,而培养他们的逻辑思维能力。 3)网络教室的应用。网络教室不仅可以广播课件内容,可以广播教师示范操作过程,还可以实时解决上机过程中出现的各种情况。如学生通过网络教室将作业上传到教师机,通过检查作业老师可以学生掌握情况,及时做出评价。 4)网络平台的应用。网格技术不断发展,利用网格平台进行多媒体教学已成为一种发展趋势[1]。教师建立C语言教学网络平台,把课件、案例、练习传到平台上,供学生课余时间下载学习,也可以课后到机房调试程序。可以利用留言板或电子邮箱和学生进行交流,可以进行个别辅导,帮学生解决他们练习中遇到的问题,激发学生学习C语言的热情。 注重培养学生的学习兴趣,提高学生学习动力 “兴趣是最好的老师”,有了兴趣才有学习的动力。可按以下方法激发学生学习兴趣:把学生分成几个兴趣小组,每组6~7个人,选出一名小组长,负责小组和老师之间的联络。老师布置与学习内容相关的综合实例,由小组讨论合作完成,学生在学习理论的同时得到了综合能力的训练,增强学生的自信心。另外,加强学生思想教育,强调学习C语言程序设计课程的重要性。可找一些数学方面的问题,通过编写程序来实现求解,让学生体会到程序的用途,提高学习兴趣。如“鸡兔同笼”“百钱买百鸡”等,培养学生的学习C语言程序设计的兴趣。在上机过程中,教师还可以让学生完成基本任务后,做一些拓展练习,激发他们的学生动力,培养了他们的自信心。 注重实验环节教学,提高学生编程能力 对口单招考试中技能考试占80分,考核要求较高,特别是阅读程序能力、编写程序能力的要求。学生的编程能力是不断训练出来的,要上机实践训练。通过上机实践,不但可使生学生掌握所学知识、直观判断编写的程序是否正确,而且训练学生输入程序及调试程序的能力。上机课时,以学生操作为主,教师指导为辅,从而培养学生的编程能力。对于学生不太明白的地方和重点环节,教师加以引导,学生进行输入程序和反复的调试来解决。实验内容需要老师精心准备,难度适中。 实践证明,教学改革使学生提高了C语言学习兴趣,课堂听课质量明显提高,学生能积极地思考问题、分析问题,并提高了上机实习课效率,较好地掌握程序设计的方法,高考分数也有了很大提高,出现了280以上的高分。 参考文献 【c语言课程设计设计报告】推荐阅读: c语言课程设计题目09-25 C语言课程设计与评价学习总结09-12 C语言课程设计任务书新——刘阳10-01 C语言课程设计——飞机订票系统源代码10-30 c课程设计设计报告10-10 2022语言课程设计任务书08-22 C语言程序设计实验指导及报告07-26 c课程设计实训报告07-04 C语言与语言混合编程DSP设计08-23 项目驱动教学法在C语言课程中的应用的论文10-105.c语言课程设计设计报告 篇五
6.C语言课程设计程序 篇六
7.c语言课程设计设计报告 篇七
8.c语言课程设计设计报告 篇八
9.c语言课程设计总结 篇九
10.c语言课程设计作业(推荐) 篇十
11.c语言课程设计设计报告 篇十一