c实践报告(共8篇)
1.c实践报告 篇一
(1)掌握结构化编程的基本方法和面向对象编程的基本思想和方法。
(2)掌握c的基本概念和基础知识。
(3)通过训练,能读懂复杂的C语言源程序,具备基本的C语言编程能力。
(4)掌握常用类的定义、继承和文件应用,为更好的理解面向对象打下更好的基础。
(5)通过实践训练,培养自己编写、调试、分析大型应用的能力。
(6)掌握面向对象的基本原理,提高学生的综合编程能力。
(7)培养独立解决问题和发现数据的能力。互相帮助、沟通和合作的团队精神。
(8)培养自己良好的学习兴趣和独立编程风格。
(9)通过实训,检查自己的学习不足,掌握C语言的基础知识和技能。
(10)《C语言程序设计》是计算机专业的一门重要课程。c语言功能丰富,表达能力强,使用灵活方便,可以编写实际应用软件。
(11)灵活运用C语言编程,巩固语句、变量定义、输入、输出、结构、指针、文件操作等概念和方法。
(12)提高调试程序的技能和编写软件的能力。学会编写结构清晰、风格良好、数据结构合适的C语言程序,从而具备解决综合实际问题的能力。
二、课程设计题目:学生成绩管理系统
三.课程设计报告的内容
1.学生成绩数据包括:学生人数、姓名、语言、数学、英语、总分2。使用结构数组存储学生成绩。
Typedef结构stud /学生成绩数据结构/
{ char id[10];
字符名称[20];
虞雯国际机场;
Int shuxue
在于颖
Int totalscore
} stud
学习科学;/学生成绩数组/
#定义N 60
3.实现功能:
输入数据
删除的数据
查询数据
更新数据
可视数据
数据可以保存在文件中
可以从文件中读取数据
有命令菜单提示
4.编写的程序要求功能齐全,用户界面友好,程序运行可靠。
5.设计步骤
(1)需求分析:了解基本原理,确定软件的基本功能,查找相关信息;
(2)总体设计:确定软件的总体结构、模块关系和总体流程;
(3)详细设计:确定模块的内部流程和实现算法。
(4)计算机编码和调试;
(5)用实际数据运行测试。
6.命名每个功能模块和功能
7.各功能模块介绍:
(1).输入结果
指定班级名称和学期
输入几条记录
添加到指定等级文件的末尾
(2).删除一个同学的成绩信息
指定班级名称和学期
输入学生的学号
打开班级和学期的成绩文件,读取所有数据,找到指定学号的成绩记录,如果找到则删除记录,将所有数据写回原始数据成绩文件
(3).查询学生的成绩
指定班级名称和学期
输入学生的学号
打开班级和学期的成绩档案,读取所有数据,找到指定学号的成绩记录并显示记录
(4).修改学生的成绩
指定班级名称和学期
输入学生的学号
打开班级和学期的成绩档案,读入所有数据,找到指定学号的成绩记录,找到记录输入正确的学生成绩
将所有数据写回原始数据分数文件
(5).退出系统
8.工艺流程
四.摘要
学生成绩管理系统的编写看似杂乱无章,其实不然。它的每个功能都可以分为模块。俗话说,大事小,小事小。c语言编程也是官方的情况,把一个大的程序分成几个独立的模块,这样每个模块的工作就变得简单明了,既降低了难度,又使思路清晰,很容易写出要做的程序,从而为设计一些更大的软件打下了良好的基础。
分析问题:
学生成绩管理的总体功能包括数据输入、数据删除、数据查询、数据修改和数据显示
五大板块。
设计的`数据对象包括塑形:各科成绩的人物类型和总分:姓名和学号。程序的编译和运行:
(1)发现错误是件麻烦的事,但要注意技巧,注意平时的经验
的积累。为了在最快的时间内找出错误
(2)用心去寻找。也许你会发现,错误并不难发现。
(3)如果程序编译成功,不要满足现状,要积极测试程序的可用性,积极改进和完善功能和缺点不尽人意的地方。
动词(verb的缩写)经历和感受
一周的C语言训练,虽然时间有点仓促,但是教会了我很多实用的技巧!
首先,实训的第一步是写一个功能单一的小程序。虽然是小程序,但是用到的知识是我们这学期学到的关键知识。做题过程中,让我们复习知识,强化知识!
其次,这项工作中遇到的问题在实际训练中已经有所触及,所以我们都很清楚这些问题的要求和算法。正因为如此,在编写小程序时,速度更快,算法更简单,操作更准确。我理解很多编程问题要写很多遍,修改很多遍,调试很多遍才能得到最简单的算法。
第三,我们平时学习C语言是为了考试或者做一些比较常规的题,但是这个训练给了我们把所学应用到解决实际问题的机会,让人更有激情。这是写软件的雏形,也让我们感受到了写软件程序的乐趣。但不仅如此,更重要的是,在应用所学知识的过程中,记住这些知识,广泛应用!
虽然我这次在写一个菜单程序,但是如果注意的话,我们身边有很多内置程序的电子设备。我们也可以在这种专门的训练之后,自行确定其他题目来写程序,可以加深和丰富我们的知识!
这次训练对我来说似乎是一次很大的考验。节目正在不慌不忙地进行。根据我自己的进度,提前完成是没问题的,但是很多客观条件让我不得不在最后一次交作业。每次写完程序,写的文件都因为每台电脑识别格式不同而一次次损坏。即便如此,我还是没有放弃,终于在截止日期前交了作业!
这一次写大作业的程序,让我觉得学习程序可以锻炼缜密的思维。因为平时练习小程序,所以句子少,有些错误很容易查出来。不过这次培训是几百句,比较难查,而且我好像也没有怎么查的经验。那一刻,我感到很焦虑,但我不知道该怎么办,但我没有轻易问老师。因为看起来挺简单的,我相信我能查出来,所以我一般都是独立完成,只有少数是在老师同学的讨论下完成的。
在编写程序时,决定成败的是细节,因为无论程序有多少条语句,只要有一条语句或语法不正确,程序就无法得到所需的结果。没有让自己写的程序等待想要的结果,说明它是一个不尽人意的程序,但对于这种写来说,它就是一个失败。
在训练的过程中,我把自己训练的很好,首先是兴趣方面。通过编写通讯录管理系统,我更喜欢编程,把我从以前的困惑中解放出来,让我明白了编程的真谛。我想这对我以后的生活会有很大的帮助。其次,通过写通讯录管理系统,对写程序有了一定的想法,让我明白了算法的意义和模块化的好处。
通过一周的编码,我对书本上的知识有了更深的理解,甚至很多我不理解的问题,在这个过程中自然也就明白了。对期末考试更有信心。在黄爽的悉心指导下,我对C语言有了更深的理解,大大提高了程序算法、数据定义和程序纠错的能力,大大增加了我对编程的注意力、耐心和兴趣,受益匪浅。
2.c实践报告 篇二
C语言是一门面向大一新生的通识课程, 旨在培养学生的逻辑思维能力和创新实践能力, 为后续专业课程的学习奠定良好的基础。
然后, 由于高中教学模式的强化应试训练, 学生的应变贯通能力有限, 学习缺乏主动性和能动性, 仅凭教师“ 灌输式”的教学, 即便技艺高超, 也很难达到预期的目标。 因此, 我们必须从学生的实际出发, 认真分析学情, 建立以学生为主体, 能力为本位的教学理念, 变“ 课堂”为“ 学堂”, 激发学生的学习热情和求知欲, 变“ 被动”为“ 主动”, 以达到“ 授人于渔”、“ 教学双赢”的教学效果[1,3,4]。
1 存在的教学弊端[4]
1.1 实践教学环节松软, 走于形式
由于学生的知识层次差异, 缺乏主动学习、创新性和行业竞争力, 而对于掌握一门算法类编程语言来说, 动手实践是一个非常重要的环节。如果只停留在对知识的理论学习而不进行及时的动手操作和调试, 是学不好程序设计课程的, 也是不可能真正掌握程序设计的灵魂———算法。因此, 为了加深对理论知识和技能知识的理解, 必须将课堂引入到“ 教学做”一体化的教室中去, 让学生边听、边学、边练, 以当场消化课堂所学。
1.2 实训内容模板化, 缺乏创新能力的培养
首先, 实训内容偏向验证性, 缺乏激发学生的创造性思维;其次, 教师干预太多, 使学生处于一种被动学习的状态。
1.3 课程考核模式单一, 缺乏激励机制
传统考核模式以知识点的考核为主, 内容相对局限, 无法综合考察学生知识结构和时间能力, 因此有的学生虽然成绩优异, 但是专业技能仍然不过关, “ 高分低能”的现象十分普遍。
1.4 学生缺乏互助学习能力, CVCC团队协作意识薄弱
目前多数软件项目以团队形式研发, 团队团队成员之间的沟通协作效率对于软件开发成果影响较大。传统实践教学模式下, 学生忙于应付作业, 缺乏团队合作的机会, 更谈不上互助学习和团队协作了。
2 教学实践
2.1 将cvcc能力融入到课堂教学中, 践行互助学习型课堂教学模式, 变课堂为“ 学堂”
结合ACM ( 大学生程序设计竞赛) 和CVCC ( 职业核心能力) 模式, 将学生进行分组, 2~3 人一组, 秉承“ 快乐编程、强弱搭配”的宗旨, 相互协作, 共同协作完成每次的课堂任务, 以培养学生的团队协作能力, 在课堂中采用“ 情景导入-自主学习-成果展现-教师点评-反馈练习” ( 图1 所示) 教学模式, 提升团队整体对计算机程序设计的兴趣和热情。
第一, 任务情景导入[2]。通过创设趣味化的生活问题情境进行教学导入, 抛出主题设计思路, 激发学生的探知欲和分析问题的思维。
第二, 团队自主学习。各小组成员根据任务进行剖析、讨论, 理顺解题思路 ( 即算法) 后, 利用已有的技能点加以代码实现, 并进行整理做好回报展示。
第三, 成果展示[2]。 小组自主学习完毕后, 派代表进行成果展示, 另外采用“ 强弱组合”的组队原则, 组内表现优秀的学生对学习困难的学生进行帮助, 这种做法不仅能促进学困生的进步和成长, 提升他们的学习兴趣, 而且能进一步挖掘和加深优秀成员对问题的理解能力。
第四, 教师点评。 针对本问题情景所涵盖的知识点和技能点, 进行问题剖析、点评和知识拓展, 并进一步引导学生进行思考, 让学生讨论和探究问题, 分析算法的优劣, 从而教会学生学会学习。
第五, 反馈训练。 围绕知识目标和技能目标, 设计相关趣味化的生活情景进行强化巩固训练。 在训练巩固的过程中, 仍采取小组互动、学生互助的方式。
2.2 践行ACM机制的实践教学模式, 让学生在学习中体验乐趣
①将实训内容按照难易程度进行分级分层。 针对不同的学生, 设计不同的题目, 采用简单题和复杂题相结合, 以满足不同层次学生的学习需求。
传统的实训内容通常是按照知识点来安排的, 每个知识点的题目对所有学生都是相同的, 这种“ 一刀切”的实训模式, 使得基础差的学生无法按时完成, 而基础扎实的又觉得学无所得, 总之难以满足个性化的学习需要。 而ACM平台就实现了这一需求。 它根据学生能力水平的差异, 对同一个知识点按难度等级设计出不同的题目, 为学生提供了更多选择。 底子比较扎实的学生可以安排一些应用型或综合型的题目, 以满足不同水平学生的学习需要。 考核时要求学生完成一定分数, 按照难度级别设置题目对应的分数, 可以平衡每个学生的训练量, 不致于出现太大的差距。
②将实训内容趣味化和生活化, 让学生根据自己的判断自主选择数据结构和算法进行求解, 以充分调动其主观能动性, 彻底转变被动的学习方式, 使其快乐主动学习。
传统的实训内容多是语法描述为主, 缺乏激发学生的求知欲。而ACM的题目大多只是告诉你一个问题场景, 算法则掩藏在问题描述中, 这就使得题目非常具有趣味性和挑战性。 另外, 要解决ACM题目, 要求学生必须具备较好的问题分析和抽象能力, 才能挖掘出隐藏在问题中的算法, 并将算法用具体的编程语言加以实现。 通过这样久而久之的训练, 学生的积极性和主动性比传统的训练有了很大的提高, 可以较好地完成实训环节的教学要求。
③将实训时间分散化, 利用开源OJ代码搭建的在线评测系统, 可供学生随时随地地进行自主学习, 延伸了有限的课内实验时间。
传统排课模式下, 实训课程往往不被重视, 理论课与实训课的比例严重失衡。课余, 学生编写了代码, 却没法验证程序的准确性。 ACM平台为学生提供了实践学习的内容, 学生通过该平台可以在线测试, 最后由系统自带的测评系统自动验证程序的正确性, 并且能够及时反馈运行时间和内存占用情况。学生通过平台可以查看自己的解题数量和排名情况, 也可以查看其他学生的解题情况, 并与其做比较, 判断自行算法的优劣, 以激发学生的求知欲和兴趣。 另外, acm平台还具有在线讨论功能, 做题学生可以针对某个问题或某一算法进行讨论, 在讨论中交流观点, 学到一些不同的解题算法和编程技巧, 还可以锻炼学生的表达能力和沟通能力, 延伸了学生的课内学习时间。
另外, 利用ACM平台, 可供教师进行异地指导, 大大提升教学效率。
2.3 引入ACM-OJ平台和moodle平台, 改革传统的“一锤子”的做法, 践行过程考核。
传统的考核通常“ 期末考试”成绩来衡量, 不能很好地体现学生的真正学习水平, 往往会出现“ 高分低能”的现象。 利用OJ系统和moodle来践行过程考核, 可以更好地检验学生的学习能力, 由于OJ系统具有“ 在线提交, 黑盒测试、实时判题”等特点, 保证了评判的客观性和公正性, 学生也拥有了更多自主性, 可以发挥创造性思维, 针对同一个问题提出多个解题方案, 同时也可以大幅度地降教师检查的工作量, 使教师腾出足够的时间和精力来指导学生编程。 ( 表1)
2.4 注入人文关怀, 注重情感教学
在教学过程中, 教师不仅要有高超的教学技能和人格魅力, 更要有一份爱心。教与学是一个互长的过程, 参与的对象是具有情感的人, 试想, 如果学生不喜欢老师, 即便你真的技艺高超, 也无用武之地, 在这种情况下何谈提升教学效果?鉴于此, 教师要注重情感教学, 正确地处理好师生关系, 营造和谐的教学氛围, 对顺利开展教学和提升教学质量会有无形的保障。
情感教学的方式有很多, 力求“ 和风细雨, 润物细无声”。比如在学生正确回答问题后给以赞美和鼓励, 在学生遇到问题时给予关怀、支持和帮助, 要从学生的角度出发, 真正做好“ 良师益友”的角色, 尽力及学生所想, 解学生所优, 让学生能感受到教师的诚意和关怀, 进而激发学生对该课程的关注度。
3 结论
“ 以学生为主体”的核心, 旨在打破传统“ 灌输式”的教学机理, 建立起“ 以学生为主体, 快乐互助学习”的“ 学堂”, 引入ACM实践教学模式和考核机制, 变被动学习为主动学习, 注入人文关怀, 从而全面锻炼学生的综合能力。
在几年的实践探索中, 本文所提倡的这种教学模式取得了不错的效果, 但是并不意味着过程中没有任何问题, 我们必须与时俱进, 在教学方法和教育模式上不断求是求新, 为进一步提升学生的综合能力而努力。
摘要:结合C语言目前的教学弊端和学情, 以培养学生的逻辑思维能力和创新实践能力为宗旨, 提出一种“以学生为主体, 能力为本位”的教学模式, 提倡快乐学堂, 注重团队协作, 践行过程考核, 渗透人文关怀和情感教学, 大大激发了学生的学习热情和能动性, 提升了教学效果和教学质量。
关键词:主动学习,团队协作,过程考核,ACM模式,情感教学
参考文献
[1]王金娥.基于兴趣和自主的CDIO教学模式研究[J].现代教育科学, 2012 (1) :89-91.
[2]熊芳敏, 许烁娜.C语言课程教学探讨[J].计算机教育, 2010 (13) :104-106.
[3]王秀, 余春艳, 叶东毅.兴趣导向的课程导入模式在高级语言程序设计中的应用[J].计算机教育, 2013 (12) :76-80.
[4]米磊, 贲可荣, 赵皑.“面向学生”的C语言教学方法研究与实践[J].计算机工程与科学, 2014 (31) :5-9.
3.社会实践与政治教学c 篇三
一、社会实践是乡土教育的“好教材”
初中学生能从实践中深化和拓展知识,挖掘“乡土”典型,加强乡情教育,使学生倍感亲近、亲切,原来书本中的知识就在自己的身边。这既增强了思想政治课的说服力,又培养了学生热爱自己家乡的思想情感。初中学生对“市场经济条件下发扬集体主义精神”感到很迷惘,有学生说:“市场经济讲究物质利益,个人是物质利益的主体,追求个人利益把个人放在首位是无可厚非的。”针对这一思想,组织学生社会调查。
二、社会实践是培育兴趣、发挥特长的“沃土”
培养学生正当的爱好和志趣,丰富、发展学生的个性特长是一个积极能动的过程,是当前素质教育的重要内容。由于时代特征和年龄特点,为引导、培养学生的兴趣和爱好,组织了以社会调查为主要形式的“社会调研”兴趣小组等。结合社会热点,广泛接触社会,如针对国企下岗工人再就业问题,走访了本市最大的国企——慈二棉;针对企业转轨问题,走访了国家优秀企业——中国金轮集团;针对富起来的农民如何消费问题,对市文明村——宗汉庙山村和中国周巷食品城的农民公园进行了调查。通过参观访问,调查研究,激发和培养了学生参与社会实践的兴趣和爱好,同时在活动中加深对教材的理解,提高了分析和解决实际问题的能力。学生在社会调查基础上撰写的调查报告、小论文,分析入理,见解深刻,为有关部门高度肯定,并在各级竞赛中获奖。其中《金轮的秘诀》荣获第四届全国中学生思想政治课小论文竞赛浙江赛区一等奖,全国三等奖。
三、社会实践是坚定信念的“催化剂”
《课程标准》规定:“思想政治课是对中学生系统进行公民品德教育和马克思主义常识教育的必修课程,是中学德育工程的主要途径。它对帮助学生确立正确的政治方向,树立科学的世界观、人生观、价值观,形成良好的道德品质起着重要的导向作用。”而要提高学生觉悟、规范和训练其行为,做到“知行合一”,“信”无疑是首要前提。所谓“信”,是指信念,它是人们对某种政治主张、思想观念、道德规范的由衷信仰和强烈的责任感。课堂教学中传授的知识,能否内化为学生觉悟、外化为学生行为,关键是让学生深入实际,在社会实践中去比较、去检验,并强烈地感受到“内化’与“外化”的必要性。社会实践是促使学生形成坚定信念的“催化剂”,“知行合一”的中介和关键。在《理想与奋斗》教学时,部分学生对现阶段还要提倡艰苦奋斗表示不以为然。针对学生的这种思想,组织学生访问了市级明星企业——宁波兴业集团。该企业原只是5名工人,12000元资产的村办小厂,20多年的艰苦创业,使企业成为有6.26亿元资产,年产值6.01亿元,利税3193万元的国家大型企业集团,他们至今保持着创业者们当年“只值几分钱的旧扫帚柄也加以再利用”的优良传统,规定“上至厂长,下至各级管理人员,不得私用、挪用企业的信封、信笺”。
四、社会实践是学生能力的“培育场”
学生运用所学知识观察、分析、解决实际问题的能力,是要在实践中培育的。在初中进行“共同富裕”教学时,为把先富与共富关系讲深讲透,尝试了社会实践教学法,把一个班级同学分成若干小组,分别参观工厂,访问先富的私营企业主,调查农村走向共富的现状,然后各小组撰写参观访问记、调查报告,互相交流,共同探讨,既巩固深化了知识,又提高了学生能力,达到了预期目的。
诚然,作为推进素质教育的途径的社会实践,其效果就是指由实施这一活动所引起的学生的认识、能力和觉悟水平等发展变化的社会效应。为更好地发挥其作用,社会实践中,必须正确认识和处理以下几对关系:
1.“显效果”和“隐效果”的关系
所谓社会实践的“显效果”,是指学生参加社会实践后在行为表现上所发生的种种有形变化。所谓社会实践的“隐效果”,是指学生参加社会实践活动后在思想认识,道德情感、意志信念等心理上的无形变化。事实上,学生参加社会实践活动后在信念、兴趣、能力等方面的提高和发展,归根到底是学生身上所体现的这种“有形变化”和“无形变化”的矛盾运动。
2.主体和主导的关系
社会实践所产生的社会效应如何,关键是要正确处理好“主导”与“主体”关系。教师是主导,如活动内容、形式的选择、活动中的组织工作和思想工作,活动后的总结交流,巩固提高,均是教师主导作用的体现。学生则是主体,是社会实践的具体参与者,二者相互联系,不可分割,更不能颠倒关系。
4.c实践报告 篇四
计算机x班
XXX 学号XXXXXXXXX 1.程序源代码
实践4:结构体编程练习(2课时)2.在屏幕上模拟显示一个数字式时钟 #include
time.second = 0;
time.minute++;} if(time.minute == 60)
{
time.minute = 0;
time.hour++;} if(time.hour == 24)
{
time.hour = 0;} } void Display()
{ printf(“%2d:%2d:%2dr”, time.hour, time.minute, time.second);} void Delay(){ long t;for(t=0;t<400000000;t++){
} }
void main(){ long i;printf(“请输入时钟起始时间:”);scanf(“%d %d %d”,&time.hour, &time.minute, &time.second);for(i=0;i<100000;i++)
{
Update();
Display();
Delay();
} }
3.遇到的问题及解决方法
问题1:编写时钟函数?
解决方法:每60秒进一位,即一分钟;每60分钟进一位,即一小时。在函数体内用循环,在主函数中调用。
问题2:添加起始时间?
解决办法:由用户输入时间,将时间给结构体变量。
问题3:时间变化太快? 解决办法:要使用一个函数来缓冲每一秒的变化时间。
4.总结(心得体会)
这是“C语言课程实践”的第四次实践,也就是本学期最后一次实践。题目简单,主要是使用了结构体。
原题目是使用了全局变量,而现在是要求使用结构体。结构体内的成员毫无疑问是小时、分钟和秒,然后需要编写一个时间变化的函数。然后在主函数中调用该函数,并由负责输出的函数输出时钟,但是在编译过程中发现时间变化太快,这就需要用到缓冲,来增加每一秒变化的时间。
最后我发现该题目有些不足,为什么不能由用户输入时间,然后以此时间开始呢?于是就增加了一个由用户输入的功能。
5.C语言实验报告 篇五
第1次实验: 时间 2010-9-15
项目名称:创建第一个C语言程序
仪器设备:电脑一台,操作系统WindowsXP,开发环境Visual C++ 6.0
实验程序:
1、单击“开始”“程序”“Microsoft Visual Studio 6.0”“Microsoft Visual C++ 6.0”,打开VC++。
2、在菜单中选择“文件”“新建”,在“工程”选项卡中选择“Win32 Console Application”,输入一个名称,点“确定”,新建一个新的工程。
3、再选择“文件”“新建”命令,在“文件”选项卡中选择“C++ Source File”,输入一个
名称,点“确定”,新建一个C++源文件。由于C++全面支持C,因此可以在此输入C语言的源代码,进行实验。
4、在代码框中输入如下代码:
#include
void main()
{
int a,b,sum;
a=123;b=456;
sum=a+b;
printf(“sum is %dn”, sum);
}
5、编译、连接、运行:在“编译”中选择“编译”,没有错误和警告以后,在“编译”中
选择“构建”最后在“编译”中选择“执行”。
实验结果:
sum is 579
讨论:本实验让我们了解了如何创建一个C语言的控制台应用程序,并学会了C语言程序的基本构架和个别特殊语句如“main”“printf”等。
实验地点:3B-20
3第2次实验:时间:2010-10-6
项目名称:顺序结构程序设计实验
(书89页4.9题,先把题抄下来)
仪器设备:电脑一台,操作系统WindowsXP,开发环境Visual C++ 6.0
实验程序:
1、打开VC++6.0,新建一个C++源程序,在代码窗口输入程序如下:
(自己写代码)
2、编译、连接、运行:在“编译”中选择“编译”,没有错误和警告以后,在“编译”中选择“构建”最后在“编译”中选择“执行”。
实验结果:„„
讨论:„„
实验地点:3B-20
3第3次实验:时间:2010-10-27
项目名称: 选择语句switch的使用
(书111页5.6题,先抄题)
仪器设备:电脑一台,操作系统WindowsXP,开发环境Visual C++ 6.0 实验程序:
1、打开VC++6.0,新建一个C++源程序,在代码窗口输入程序如下:
(自己写代码)
2、编译、连接、运行:在“编译”中选择“编译”,没有错误和警告以后,在“编译”中选择“构建”最后在“编译”中选择“执行”。实验结果:„„ 讨论:„„ 实验地点:3B-20
3第4次实验:时间:2010-11-17 项目名称:循环语句for的使用(书129页6.1,先抄题)
仪器设备:电脑一台,操作系统WindowsXP,开发环境Visual C++ 6.0 实验程序:
1、打开VC++6.0,新建一个C++源程序,在代码窗口输入程序如下:
(自己写代码)
2、编译、连接、运行:在“编译”中选择“编译”,没有错误和警告以后,在“编译”中选择“构建”最后在“编译”中选择“执行” 实验结果:„„ 讨论:„„
实验地点:3B-20
3第5次实验:时间: 2010-12-8 项目名称: 数组的应用(书134页例题7.3,先抄题)
仪器设备:电脑一台,操作系统WindowsXP,开发环境Visual C++ 6.0 实验程序:
1、打开VC++6.0,新建一个C++源程序,在代码窗口输入程序如下:(自己写代码)
2、编译、连接、运行:在“编译”中选择“编译”,没有错误和警告以后,在“编译”中选择“构建”最后在“编译”中选择“执行” 实验结果:„„ 讨论:„„
实验地点:3B-20
3第二学期实验:
第1次实验: 时间 2011-2-25 项目名称:编写函数
(在主函数中输入两个数,分别调用四个自定义函数,实现两个数的加、减、乘、除并输出结果。)
仪器设备:电脑一台,操作系统WindowsXP,开发环境Visual C++ 6.0 实验程序:
6、打开VC++6.0,新建一个C++源程序,在代码窗口输入程序如下: #include
int add(int x,int y);int sub(int x,int y);int mul(int x,int y);float div(int x,int y);int c,a,b;float d;
scanf(“%d,%d”,&a,&b);c=add(a,b);
printf(“%d+%d=%dn”,a,b,c);c=sub(a,b);
printf(“%d-%d=%dn”,a,b,c);c=mul(a,b);
printf(“%d*%d=%dn”,a,b,c);
d=div(a,b);printf(“%d/%d=%fn”,a,b,d);}
int add(int x,int y){
return x+y;
}
int sub(int x,int y){}
return x-y;
int mul(int x,int y){} {
return x*y;
float div(int x,int y)
return(float)x/(float)y;
}
2、编译、连接、运行:在“编译”中选择“编译”,没有错误和警告以后,在“编译”中选择“构建”最后在“编译”中选择“执行”。实验结果:„„ 讨论:„„。
实验地点:3B-20
1第2次实验:时间:2011-3-11 项目名称:指针的应用(书278页10.3,先抄题)
仪器设备:电脑一台,操作系统WindowsXP,开发环境Visual C++ 6.0 实验程序:
1、打开VC++6.0,新建一个C++源程序,在代码窗口输入程序如下:(自己写代码)
2、编译、连接、运行:在“编译”中选择“编译”,没有错误和警告以后,在“编译”中选择“构建”最后在“编译”中选择“执行”。实验结果:„„ 讨论:„„
实验地点:3B-20
3第3次实验:时间:2011-4-8
项目名称:顺序结构程序设计实验(书318页11.3题,先把题抄下来)
仪器设备:电脑一台,操作系统WindowsXP,开发环境Visual C++ 6.0 实验程序:
1、打开VC++6.0,新建一个C++源程序,在代码窗口输入程序如下:
(自己写代码)
2、编译、连接、运行:在“编译”中选择“编译”,没有错误和警告以后,在“编译”中选择“构建”最后在“编译”中选择“执行”。实验结果:„„ 讨论:„„
实验地点:3B-203
9.1
#include
#define S(A,B,T)T=A;A=B;B=T void main(){} 9.6
#include
int a,b,t;
scanf(“%d,%d”,&a,&b);S(a,b,t);
printf(“%d,%dn”,a,b);
#define F “%6.2f”
#define F1 F NL #define F2 F F NL #define F3 F F F NL void main(){
float a,b,c;a=1;b=2;c=3;PR(F1,a);
PR(F2,a,b);PR(F3,a,b,c);}
作业:
#include
#include
void main(){
void fun1(float a,float b, float c);void fun2(float a,float b ,float c);void fun3(float a,float b, float c);float a,b,c,disc;
scanf(“%f%f%f”,&a,&b,&c);disc=b*b-4*a*c;if(disc>0)fun1(a,b,c);else if(disc==0)fun2(a,b,c);else
fun3(a,b,c);}
void fun1(float a,float b,float c){
float d=b*b-4*a*c;float x1,x2;
x1=(-b+sqrt(b*b-4*a*c))/(2*a);x2=(-b-sqrt(b*b-4*a*c))/(2*a);printf(“%f,%fn”,x1,x2);}
void fun2(float a,float b,float c){
float d=b*b-4*a*c;float x1,x2;
x1=x2=(-b)/(2*a);
printf(“%f,%fn”,x1,x2);}
void fun3(float a,float b,float c){
printf(“此函数无解”);} P278
#include
for(i=0;i<10;i++)scanf(“%d”,&a[i]);
printf(“交换前:n”);
for(i=0;i<10;i++)printf(“%d,”,a[i]);printf(“n”);aa(a,10);
printf(“交换后:n”);for(i=0;i<10;i++)
printf(“%d,”,a[i]);printf(“n”);
}
void aa(int x[],int n){
int
temp,max=x[0],min=x[0],max_n=0,min_n=0,i;//假设第一个数是最大和最小的数,那么max,min的下标就=0for(i=1;i max=x[i];max_n=i;} if(min>x[i]){min=x[i]; min_n=i; }} if(min_n!=0){temp=x[0];x[0]=x[min_n]; x[min_n]=temp; } if(max_n!=n-1){temp=x[n-1];x[n-1]=x[max_n];x[max_n]=temp; } } eee: #include void main(){void jiaohuan(int *pt1,int *pt2);int a,b; scanf(“%d,%d”,&a,&b);printf(“n交换前:n”);printf(“a=%d,b=%dn”,a,b);jiaohuan(&a,&b);printf(“n交换后:n”);printf(“a=%d,b=%dn”,a,b); } void jiaohuan(int *pt1,int *pt2){int temp;temp=*pt1;*pt1=*pt2;*pt2=temp; } 习题11.3 方法一: #include struct student{int num; char name[10];int score[3]; }stu[5]={{101,“A”,50,60,80},{102,“B”,9 0,67,45},{103,“C”,30,40,50},{104,“D”,90,80,70},{105,“E”,60,70,80}}; printf(“NUM NAME SCOREn”);for(i=0;i<5;i++) printf(“%4d%8s%8d,%2d,%2dn”,stu[i].num,stu[i].name,stu[i].score[0],stu[i].score[1],stu[i].score[2]); } 方法二 : #include struct student{int num; char name[10]; int score[3];}stu[5];for(i=0;i<5;i++){ printf(“ 学号:”);scanf(“%d”,&stu[i].num);printf(“姓名:”);scanf(“%s”,&stu[i].name);printf(“成绩 : ”);scanf(“%d,%d,%d”,&stu[i].score[0],&stu[i].score[1],&stu[i].score[2]);}printf(“NUMNAME SCOREn”);for(i=0;i<5;i++) 1.2 实训目的 [参考本文档的说明,用一小段话说明小学期实训的目的] 第2章 设计说明 2.1 题目选择 [所选择的题目具体内容。] 2.2 业务分析 [用流程图描述业务流程,用文字说明流程以及数据结构的设计思路。] 第3章 系统设计 [要求在本章中给出类、属性、方法的设计结果,或函数、数据结构的设计结果,可结合源程序进行说明。] 3.1模块结构设计 [列出类命名、各属性和方法命名、类型等,或函数声明、数据类型定义等,并结合流程图说明各部分的关联关系] 3.2 主要程序源码 [此部分裂成主要的程序源码,并以文字说明各部分的关系。] 第4章 程序调试与运行 [此部分说明所使用的开发工具情况,以及对程序进行调试的方法和过程,要求以具体案例说明调试过程及结果。列出程序运行的输入数据及输出结果] 第5章 实训总结 [用简短文字说明此次综合实训的收获与体会。] 1.1 编程能力差,影响后续课程和就业方向 通过对计算机专业学生的观察和调查,学完《C语言程序设计》课程后能熟练掌握、灵活运用的学生为5%左右,基本掌握的学生为25%左右,部分学生只是为了应付考试,甚至还有5%的学生采取完全放弃的态度。《C语言程序设计》课程是《数据结构》、《C#.NET程序设计》和《JAVA程序设计》等后续课程的重要基础和重要工具,但是当前学生所具备的C语言程序基础和编程能力较弱,对这些后续的课程具有非常大的影响。 1.2 程序初学者没有有效的方法引导 由于C语言是一门逻辑性强、难度较大的课程。其中基本语法和程序结构学生能理解,但是在算法分析和程序设计时却无从下手,实际应用能力较差,走上工作岗位后不能快速适应企业的岗位要求。究其原因:学生习惯了高中文化课的教授式学习方式,理论掌握较好,实践能力较弱。由于C语言的内容抽象,概念复杂,规则较多,使用灵活,容易出错,再加上Turbo C调试环境很不直观,如果没有有效的方法引导,不仅达不到课程的教学目标,也影响学生后期课程的学习方式。因此,需要借助现有教学资源,教授学生有效的学习方法,进而提升学生的学习兴趣和学习能力。 1.3 程序编写能力差异大,需要扶优补差 由于C语言程序设计难度大,对学生的程序编写能力要求较高,部分学生由于各方面原因,跟不上全班学习进度,慢慢失去兴趣,转为完全放弃该课程的学习。另一部分学生程序能力较强,完成课堂内容后需要进行引导提升。如何根据学生的现有能力水平,扶优补差,从实践中提升学生整体的程序编写能力,是急需解决的问题。 2 教学策略 2.1 树立软件工程和面向对象的观点,培养程序设计风格 在计算机行业中,软件设计工作被当作一项系统工程来对待。《C语言程序设计》课程作为大多数工科院校学生接触的第一门程序设计语言,首先要让学生改变程序设计的观念,树立软件工程的观点,把“面向对象程序设计”思想融合到C语言教学中。在程序项目设计时强调一个项目就是一个工程,是处理对象有过程,要求结合软件工程开发的实际需要,用软件的生命周期管理对程序进行问题定义、可行性研究、需求分析、概要设计、详细设计、编码、测试、运行与维护。这样不仅让学生理解程序项目的应用意义,为学生将来从事软件开发打下基础,而且培养学生解决实际问题的综合能力。 C语言是学生接触的第一门程序设计语言,要特别注意培养学生良好的程序设计风格。具有良好的设计风格应该是软件开发人员所具备的基本素质。从一开始就强调程序设计风格,不仅有助于提高程序的规范可读性,而且让程序的调试及运行直观易懂,能快速找出程序的错误所在,进而改善程序质量,也为以后进入工作岗位快速适应工作环境打下基础。在程序规范中要特别强调标识符的命名规范及“见名知义”的原则,并采用适当的注释,要求用序言性注释对程序的整体功能进行说明,在关键代码处用功能性注释描述出代码功能。在书写程序时每行只写一条语句,用分层缩进方式展现嵌套结构层次,特别强调IF语句和循环的多层嵌套层次在察看程序执行过程中有着非常重要的作用。书写表达式时适当使用空格或圆括号作隔离符,输入和输出满足“人性化”原则,输入数据时,要使输入前有提示,步骤和操作尽可能简单等。 2.2 教授程序初学者有效的学习方法 计算机技术日新月异,发展较快,在以后的实际生活和学习的应用中,学生会接触到不同的知识领域,因此需要在教给学生不同知识的同时还要教会学生获取这些知识的方法。在第一节课中,要先用大量的时间来让学生了解C语言程序设计的学习目标,教授学习该课程的方法。告诉学生C语言是“结构化程序设计”方法,结构化程序设计的过程是培养学生思维能力的过程,让学生明确C语言程序的质量首先取决于其结构,程序设计的基本方法是自顶向下地逐步求精和模块化。学习C语言不是理解语法规则和语句格式为重点,而是如何应用这些内容解决好实际问题。程序设计的实质就是编写处理对象的过程,需要改变高中时教师传授学生听的学习方式,明确大学的学习方法要自主探索研究。不要局限于书本知识,可通过教材、参考书和网络来拓展知识领域,发掘自身的潜力,勇于动手实践,在程序的编写与调试中学会取他人之长补自身之短,同学间互相帮助,学会协作学习。 2.3 多种教学方法辅助教学 教学方法的单一性不能反映教学的本质规律,C语言是一门以实践为主的较难的课程,在语法规则、语句格式和程序设计教学时,要采用不同的方法来解决程序初学者出现的各种问题。 2.3.1 分组教学法 分组教学方法已经在《计算机应用基础》和《办公软件综合应用》课程中进行探索与实践,取得了较好的效果。把这些成熟的经验借鉴到《C语言程序设计》课程中实践与总结,效果显著。 分组教学体现了学生的主体地位,可以激发学习兴趣。根据班级人数和机房布置情况5人-6人分为一组,组长位置坐在中间,水平较好的学生挨着水平较差的学生。教师通过程序项目的方式下达任务后,组长组织成员进行算法的分析与设计,共同讨论与探索,并画出流程图或NS图。用组内举荐和教师随机抽查的方式找出学生进行算法分析讲解,难度较大的,请组长来分析。每个学生主动参与,在组内交流、讨论、争辩的过程中,思维异常活跃,算法思路越辩越清晰。在该组组员回答问题的时候,同组的同学还会不断地为他进行补充,如果老师对该组的回答再加以及时肯定,该组所有人的热情高涨,其他组也会受到感染,也会在想下次轮到自己组的时候也争取有个好的表现。 分组教学可以实现提优补差。在程序调试的过程中,通过组长辅导,检查程序完成情况。基础好的学生通过辅导基础差的同学,帮着寻找程序语法错误和逻辑错误,巩固了已有的知识,同时遇到自己编程时没有出现的问题时会通过寻找问题的新的解决方法从而激发其深入研究的兴趣。水平较差的学生在遇到问题时得到及时帮助,能跟上全班进度,也增强了继续学习的信心。 分组教学可以培养学生自主探究、合作学习能力。《C语言程序设计》课程是用程序项目的方式把实验内容布置下去,许多综合性程序项目要求以小组为单位完成。每个小组在分工与合作共同完成程序项目的过程中,既要独立自主寻找问题的解决方法、设计算法、编写代码和调试运行,又要互相帮助提高。进行程序代码的整合调试,遇到综合复杂问题时,同组的学生共同讨论、集体探索,有助于培养独立求知与思维的能力及协作学习的能力。 2.3.2 项目教学法 结合教学大纲的要求,把C语言程序设计课程内容设计成小型程序项目和小型应用系统开发,一个项目就是一个工程,让学生在完成项目的过程中用软件工程的思想来设计程序。在学习C语言程序设计的基本知识时,提供程序项目让学生读程序,通过讲解程序代码功能教授理论知识,既让学生体会理论与实践的融合,又借鉴了优秀的程序设计。每次课结合课堂内容给出至少一半的时间让学生自己完成程序项目的算法分析、程序编写与调试,让学生实际感受程序设计的过程。每一章内容结束后,根据所学内容,完成小型应用系统的相应模块,如顺序结构讲授完成后让学生完成主菜单界面的设计;在选择结构完成后让学生实现主菜单到子菜单的切入;函数完成后让学生实现各功能的模块化,进行函数的编写。到学期结束每个学生就完成了一个小型应用程序的开发,积累了系统开发的相关经验。教授完所有内容后,利用8个左右的课时分组完成一个应用程序的开发,先通过组长抽签选择程序项目要求,由组长负责对组员进行任务的分工。每个组员完成一个功能模块,并把每个组员的任务分工情况写在纸上交给老师,在项目进行4-6课时左右,要求每组进行程序模块的整合,全组完成整个应用程序的调试。在完成项目后,教师对程序项目进行检查,从功能要求的完善性,界面的设计,程序设计规范等几个方面为程序打分,再对部分学生根据任务分工模块通过答辩的方式了解程序编写情况,组员协调情况等,最后给一组打出综合评分。 通过许多小程序项目、一个小型应用系统和一个应用程序的开发,让学生掌握了程序项目的设计方法,学会用软件工程管理的思想对程序项目进行算法设计,代码编写与调试。在项目开发过程中,教师明确以能力为主的教育目标,教师的角色是组织者与引导者,实际教学时不再进行知识陈列,而是去引导或答疑。让学生进入工作角色,使学生体验到取得成就的快乐。同时加强组长的管理,调控组员的分工与协作,对学生遇到的问题给出建议或解决方案,保证程序项目完成预期的功能并正确运行。 2.3.3 行动导向教学法 行动导向教学法以能力培养和素质教育为目标,倡导创新学习和自主学习。要求把知识转化为能力和素质的“能力本位”。在程序项目的设计过程中,学生通过分组讨论法和大脑风暴法,结合上网查阅等手段主动建构并综合运用所学知识,既保证了绝大部分学生能够自主完成课堂要求,使学生建立起学习的兴趣,开阔思维。同时,又可以使编程能力较好的学生充分发挥潜能,在完成要求的程序编写后,教师增加程序项目功能、优化程序代码或进行编程思路的改变,用另一种思路考虑程序编写,给出更个性化的设计,从而进一步培养学生的创造性。在分工与合作、探究式的学习过程中,把职业技能教育渗入课堂教学,不仅提高了学生程序编写能力,培养了学生自主探究学习和创新能力,也培养了学生与人交流、与人合作、解决问题的社会能力。 考核是检验教学效果的重要手段,与学习过程一致的考核方式可起到以考促学的目的。结合行动导向教学方法,设计了以“能力为本”的过程考核方案和评分标准。将考核贯穿于整个教学过程,提高平时考核比例为50%,期末考试为50%,同时加大学生课堂程序编写的数量和课外进行算法分析和程序编写的作业量。把学生的出勤、课堂纪律、程序编写能力和作业等按照比例放入到平时的考核中,既提高了学生对平时学习的重视程度,让学期成绩能真实地评估学生在学习过程中已具有的编程能力,又增加了学生的实践机会,督促了学生动手实践,提高程序的编写能力。 3 结束语 在分组教学、项目教学和行动导向方法的辅助下,以学生为主体,老师为引导,结合分组讨论、大脑风暴、项目教学、角色扮演等活动与方法。师生互动,从程序项目任务的提出、算法思想的描述、算法设计到程序的编写与调试,学生积极参与问题解决的整个过程,既提高了程序编写能力,激发了学生的学习兴趣,又培养了自主探究、协作学习的能力。 摘要:探索与实践C语言程序设计课程有效的学习方式与方法,在分组教学、项目教学法和行动导向方法的辅助下提升学生的程序设计能力和自主探究、协作学习的能力。 关键词:C语言,编程能力,分组,项目式,行动导向 参考文献 [1]段淼.关于C语言程序设计课程教学的思考[J].吉林:吉林建筑工程学院学报,2010(6):118-120. [2]胡建荣,罗杰红.高职C语言程序设计课程实践教学体系的设计[J].北京:计算机教育,2010(5):150-152. C语言程序设计课程是计算机专业一门非常重要的课程,很多教师觉得这门课程难教,学生也觉得难学。针对这一现象,根据实际教学经验,本文对这门课程的教学改革与实践进行了研究。其中对教学思想、教学手段、方法和成绩考核方式等内容进行了较为全面的论述与剖析。 目前,C语言程序设计这门课程已经成为高校学生的公共基础课程,并且是多种程序设计语言学习的起点,对于这门课程的学习,学生往往很难掌握,感觉比较枯燥,并且目前教师在这门课的教学过程中,还主要采用传统的单一教学模式,即黑板加粉笔。课程的教学形式主要是理论教学,教学的重点放在程序设计基础语法知识上,使学生感觉困惑,枯燥,不知道如何来利用这些知识把所学到的基础知识综合应用起来,且很难掌握编程思路。因此如何教好这门课程仍然是我们值得研究和探索的话题。本人根据十几年的实际教学经验,进行了研究和思考。 传统的教学思想都是先从程序设计基础开始讲,然后再进行程序设计,类似于盖房子。这样的方法往往是常量、变量、数据类型等这些语法基础知识讲得很多,占用了一定的学时,也没能使所学到的知识得到够实际运用,且无法掌握程序设计思想。所以应该运用树木生长的原理,要树根、树干、树枝、树叶一起长大。 1、因材施教,不能所有同一专业的班级同一个进度,同一种考核内容,要因材施教。在实际教学中掌握到不同班级的学生能力也不会完全相同,有的甚至相差很大,学生接受能力强进度就可以稍微快一些,如果学生接受能力不是很好,就放慢节奏,不能只强度进度,不顾学习效果。这个现象很普遍,在实践中对接受能力高的学生提出了高要求,包括平时的作业以及考试题的难易程度也增加了,同时对该班加快了授课进度。在有限的时间内学到了更多的知识,达到了良好的学习效果。 2、要实例化。比如在讲数据交换时,学生往往很难明白在计算机里两个数到底是如何交换的,这时我们就可以举个形象的例子,比如两个文具盒里各有一只笔,要交换这两只笔的例子。 3、学并快乐着。很多学生觉得这门课程很枯燥,为此我们提出口号“输入理想的程序,输出快乐的人生”,如果学生感觉做程序是一种煎熬的话,可以用C语言来编制一个身边的一些常见管理工具,这样既实用,又熟悉,比如可以编一个调查问卷的程序、超市的收费系统等,从中可以学到很多知识,再有就是学生成绩管理系统,如果这个和文件联系起来,可以提高学生的编程能力。学生在程序编写过程中,不断调试、改错、直到成功,很有成就感。 根据本专科学生的培养目标,结合自己多年的教学经验,通过对传统的《C语言程序设计》教学模式进行改革与实践,变老师主导型教学为与学生交互型学习的教学过程,在教学过程中不断探索新的教学方法和尝试先进的教学手段,首先,对教学用例进行了调整,用生活中常见的案例原型进行讲授。其次,充分利用现代教育技术资源,将实验环境搭建于课堂之上。从备课——上课——上机实践,进行了一系列的改革探索,很好地解决了C语言程序设计教学中出现的种种问题。结果表明:教学改革后,课堂气氛活跃了,开小差的同学少了,听课效率上去了,学生学习主动性也加强了,课外主动学习的兴趣浓了。进而,程序设计能力得到了普遍提高。 本人积极进行多媒体教学的尝试,大大革新了课堂教学的形式手段和途径 ,利用多媒体教学,借助多媒体辅助教学形象、直观的优势,对课程教学进行改革,可以提高学生学习C语言的兴趣和效果。多媒体教学模式的广泛应用,使教育技术更具有时代特色,更加科学化和系统化。运用多媒体教学,能够充分利用教学资源,对教与学的整个过程进行系统设计,能够达到利用最少时间得到最大的教学效果。但是本人觉得C语言程序设计这门课程并不适合完全采用多媒体教学,多媒体辅助教学在C语言程序设计这门课程教学中有利有弊,本人在实践中采用“多媒体教学模式”与“传统教学模式”相结合能达到很好的学习效果。 学生的考试考核方式是实现人才培养目标的重要组成部分,一个课程教学方式的改革与实施,其教学效果好坏评定应当凭借一个科学的测量方法,通过参照一个较为完善的课程标准进行科学的测量,再对测量结果进行科学地分析与判断,最后得出科学公正评价结论。为此,对学生的理论和实验都要考核,尤其要改变去过以理论为主的考核形式,本人认为这门课程实验课的考核应该占很大比例,在成绩考核过程中,实验考试成绩占70%,理论考试成绩占20%,平时成绩占10%,平时成绩包括出勤、作业、课程设计、课堂提问等,实践教学中证实,这种方法的确使学生编程能力得到很大提高,并且考核方式公正客观。 [1]谭浩强.C语言程序设计[M].清华大学出版社,2000. [2]杨文君,杨柳.C语言程序设计教程[M].清华大学出版社,2010. 【c实践报告】推荐阅读: 暑假社会实践报告-社会实践报告11-05 暑期实践周实践报告11-01 社会实践报告实践内容11-04 2023大学寒假社会实践报告 寒假社会实践报告大三08-26 社会实践报告,奶牛场生产社会实践报告例文09-04 超市社会实践报告,毕业实践论文09-23 石磊实践报告07-07 园林实践报告07-09 旅游实践报告07-22 创新基地实践报告06-256.C语言见习报告 篇六
7.c实践报告 篇七
8.c实践报告 篇八
一、引言
二、要转变教学思想
三、教学方法的改革
四、教学手段的改革
五、成绩考核方式的改革