创新课程设计实践报告

2024-08-02 版权声明 我要投稿

创新课程设计实践报告(精选8篇)

创新课程设计实践报告 篇1

学习报告

姓名:陈明健

学号:20120426

专业班级:

音乐学1201

报告提交时间:2014 年月 29 日

让我们的生活走向创新

我是文学与艺术学院的学生,我学习的是音乐学专业,第一次接触创新实践这门课程我觉得非常的有趣。但是我觉得对于我一个文科生来说其实也没什么的。因为兴趣很关键,而学校帮我们开设这个课程我觉得对我们非常有帮助尤其是对我们这些学习艺术文科类专业的学生来说,这样不仅增加了我们的实践能力还能提高我们的创新意识。

首先,我认为创新是指从产生新的构思、新的观念、新的理论、新的决策、新的规律、新的方法、新的设计、新的解释,新的知识、新的思想到这些新的观念、新的思想在实践中运用的过程。创新的成果当其体现在创新思维成果时,既认识成果;而当体现在将创新思维成果应用于实践所获得的创新实践成果时,既事实成果。这就是创新的概念,在我们的创新中,就必须有这样的思维,然后用于实践,才是完整的创新实践。而在创新当中,创新思维方法是很重要的,它不是凭空产生的,而是以掌握创新思维方法并灵活应用为前提的。所谓创新思维方法并不是意味着创新思维有一套自成系统的、特有的、专用的思维方法。创新思维方法是指在创新思维过程中需要运用的系列思维方法,它是通过对多种思维方法进行优化组合而推出的新的综合思维方法。

我曾经看过一则报道说美国历经百年风化的自由女神像翻新后,现场存有200吨废料难以处理。一个名叫斯塔克的人自告奋勇地承包了这一苦差事,他对废料进行分类处理,把废铜皮铸成纪念币,废铅铝做纪念尺,水泥碎块整理成小石碑,把朽木泥巴装进玲珑透明的小盒子里,让大家作为有意义的纪念品选购。这样,不仅处理了废物,斯塔克也由此大获其利。这种变废为宝的想法,就是成功利用发散思维的典型。所以说创新也要有思维,并不是凭空的。就像我们人一样,人生不可能一帆风顺的,总要经过各种大大小小的事情的,这才是人生。有些人对一些从未做过的事表示拒绝,这是一种懒惰的行为,更可以理解为是他们不敢尝试新鲜事。这种行为是不可提倡的,因为这样就永远不可能有创新,思维总是停留在过去,对未来总是跟着别人的步伐走,所以我们要绝对杜绝做这样的人哦。不管是什么行业,创新是不可避免的。尤其在这个发展迅速的社会中要想得到生存空间,一要是勤快,另外就是要学会开发自己的大脑,敢于创新。对于化学,这是更不可缺少的,化学主要就是搞研究,研究出新的物质,这是要做各种的尝试。

我觉得不管在那个行业都一样,必须要有创新,在我们音乐学也是一样,只要你能创新,也可以干出一番事业的。因为我们不能总是去模仿别人演过的东西,别人用过的版本等等。社会在向前发展,时代也在不断进步,各行各业的人们都以新的形象展现在新的时代。作为大学生的我们同样也要与时俱进,要以新的形象去面对新的时代,以新的特点去适应新的时代,这对每个大学生是十分重要的。我认为大学生应具备这样的新形象:敢于创新,重于实践。

而且我认为创新对一个国家来说显得极其重要。创新惯穿于人类发展的任何时期、任何角落,它是民族进步的灵魂、社会发展的枢纽、国家兴旺发达的不竭动力。创新加速了社会的进步,丰富了社会的财富。一个国家只有不断提高创新能力,才能立于不败之地。不创新就要被陶汰,就要被消灭。国家之间的竞争实际上是综合国力的竞争。而综合国力的竞争实质上是创新能力的竞争。在新时代中,各行各业都在飞速发展,如果没有创新精神,是难以适映现代社会的。所以说,勇于创新是大学生应具备的新形象。除了创新,实践也很重要。有了新方法,不去实践,也只是夸夸其谈,毫无实际意义。学校之所以重视我们大学生参加实践活动,就是想让我们在实践中得到锻炼,将新的创意运用到实践中去,这样有利于我们良好素质的培养,同时,我们创新能力也得到更好的发挥。而且,我们能在实践中得到真正的知识,只有你亲自做了,体验了,才会有新的感受,“绝知此事要躬行”也就是这个道理。所以说,重于实践也是大学生应具备的新形象。

而我认为创新技法主要有以下几点: 1.头脑风暴法:

头脑风暴法也称智力激励法,是由美国BBDO广告公司经理奥斯本创立。它是一种通过小型会议的组织形式,诱发集体智慧,相互启发灵感,最终产生创造性思维的程序法。2.综摄法

1952年,美国麻省理工学院的康顿教授发明了旨在开发人的潜在创造力的技法,叫做综摄法。综摄法通过已知的东西做媒介,将毫无关连的、不相同的知识要素结合起来,来打开“未知世界的门扉”,勾起人们的创造欲望,使潜在的创造力发挥出来,产生众多的创造性设想。

3、形态分析法

形态分析法是从系统的观点看待事物,把事物看成是几个功能部分的组合,然后把系统拆成几个功能部分,分别找出能够实现每一个功能的所有方法,最后再将这些方法进行组合。

4.KJ法(日本人川田喜)5.希望列举法

希望点列举发明法是从发明者的意愿提出各种新的设想,它可以不受原有物品的束缚,因此,它是一种积极、主动型的创造发明方法。6.缺点列举法

缺点列举法是一种针对事物的缺点来确定创新目标的方法。7.系统设问法

(1)奥斯本设问法(奥斯本检核表法)(2)5W2H法

①Why ②What ③When ④Where ⑤Who ⑥How to do ⑦How much(3)特性列举法

列名词特征:产品的组成部分、材料等。

列形容词特征:产品的性质、形状、色彩等。

列动词特征:产品的功能、作用、意义等。8.信息交合法

许国泰(中国)认为:人的思维活动的实质,是大脑对信息及其联系的输入反映、运行过程和结果表达,一切创造活动都是创造者对自己掌握的信息进行重新认识、联系的组合过程。把信息元素有意识地组成信息标系统,使它们在“信息反应场”中交合,就会引出系列的新信息组合(信息组合的物化是产品、信息组合及推导即是构思),导出技术发明、技术革新等成果。

在大学里面演出演员都需要证件,有时候发现到了演播厅却忘了带证件,跑回宿舍拿证件又太慢了,那时想着如果能有一双溜冰鞋该多好,那样速度可以快好几倍,就不会耽误考试。但是一般人穿溜冰鞋滑行可以,走起路来却不稳定,往往会滑倒。我想着,可以借鉴飞机起落架的结构,设计一双能把轮子折叠起来藏在鞋底或者鞋子的两边的溜冰鞋。那样的话就可以把溜冰鞋就可以两用了,当然这种鞋子的轮子材料硬度要够而且还要轻,这样鞋子耐滑而且走起路来不至于那么笨重。还可以设计一个简单的电路,安装一个小小的灯泡,这样晚上也可以行走。在进行优化的,还可以使用自动发电装置,靠滑行的时候将机械能装换成电能并且储存起来。当然,按照目前的技术水平,这个设想做出来的鞋子也许没人愿意穿的,原因有几个方面:

1、鞋子可能太重,不方便行走;

2、鞋子成本高,没有市场;

3、鞋子模型难以做的美观。

以上设想,是在特定的环境遇到特定的情况而产生的。根据需要而进行创造,与希望列举法的创造技法类似。

创新课程设计实践报告 篇2

关键词:机械设计,课程设计,创新设计

机械设计课程设计作为机械类专业和非机械类专业的一门公共基础课程,既是机械设计基础课重要的实践性教学环节,也是专业技术基础课与专业课知识学习的交接点。通过课程设计,可以把机械设计基础、机械制图、机械制造基础、工程力学、工程材料、互换性与测量技术等所修课程的知识进行综合运用,是对学生进行设计兴趣培养和设计能力锻炼的重要途径。因此,以提高本科生应用型和研究型人才培养质量为目的,提出在机械设计课程设计实践教学中引入创新设计[1,2],将有助于培养学生自主创新设计能力和独立思考能力,也为其他学科课程设计的教学实践提供有效途径和科学方法。

1 机械设计课程设计中存在问题

对于机械设计课程设计,一直以来都是以一级或二级圆柱齿轮减速器作为设计题目。减速器是一种比较典型的机械传动装置,包含了齿轮、轴、轴承、键、联轴器及箱体等大部分通用零件。目前的机械设计课程设计中存在以下问题。

首先,机械设计课程设计命题单一。现有的减速器课程设计指导书详细讲解了减速器设计各个步骤,学生只要按部就班、照猫画虎即可;减速器早已有系列标准,并由专业厂家生产。从这种意义上讲,以减速器为课程设计的内容,很容易使学生形成思维定式,不利于培养学生的创造性思维。

其次,课程设计中存在设计内容多而时间紧的矛盾。通常课程设计的时间安排是在理论教学完成以后统一布置题目,然后要求学生在两周的时间内完成设计。时间安排较为紧张,学生只能完成“减速器”的命题设计,无法安排创新设计的环节。

再次,学生对先修课程的综合应用能力较差。机械设计课程设计是对机械制图、工程力学和互换性与测量技术等先修课程结合工程实际的综合应用,在教学实践中发现学生的这一环节较为薄弱,主要表现为:不能很好地应用材料力学知识对在复合外载荷作用下的轴进行精确强度校核;在零件工作图上,不能正确应用工程制图基本知识,绘制零件的形状,结合工程实际的公差标注掌握得较差,尤其是轴零件图中几何公差和齿轮零件图中各项齿轮公差的标注更为欠缺。

最后,课程设计中缺乏应用现代工程设计方法和手段。现阶段课程设计学生多选用手工绘图或选用传统二维设计软件Auto CAD绘制工程图,难以全面地想象出减速器的三维实体模型,导致学生对自己设计的减速器结构似懂非懂,影响了设计质量。

2 引入创新设计的教学实践

2.1 基于统筹工程概念构建机械设计课程设计题目库

将机械原理课程设计和机械设计课程设计相结合,从产品设计的全过程出发,编排课程设计的内容。采用多种途径搜集课程设计题目,构建机械设计课程设计题目库,使得课程设计具有完整性、系统性和综合性,以满足不同学生要求,使得设计由模仿型变为思考型,并便于学生根据自身的兴趣灵活选题,从而培养学生自主创新设计的能力。搜集课程设计题目的途径包括校企合作研究项目、学生研究计划项目(SRP)、“挑战杯”大学生课外学术科技作品竞赛和全国大学生机械创新设计大赛等。

2.2 与理论教学同步采用“化整为零”方法进行机械设计课程设计的教学模式

采用“化整为零”的教学方式,将课程设计贯穿到理论教学的整个过程,从而解决设计内容多而时间紧的矛盾;并在理论教学中,引导学生综合应用机械制图、机械制造基础、工程力学、工程材料、互换性与测量技术等先修课程知识,以便学生有充分的时间发挥设计的创新性和学习的主动性与积极性,同时指导教师通过监督和指导,能及时发现问题或不合理的设计并督促学生及时改正。将机械设计的理论教学教材和课程设计教材合二为一[3],这样便于将课程设计的内容贯穿到理论教学中,图1是“螺纹连接与螺旋传动”的理论教学中涉及典型减速器的螺纹连接类型。

2.3 现代工程设计方法和手段在机械设计课程设计中的应用

鼓励学生采用Pro/E,Solidwork和UG等三维设计软件,先进行三维实体设计,再形成二维投影,符合一般人的思维习惯,有利于培养学生设计能力和创新意识,并使设计手段与现代企业要求接轨。另外,鼓励学生在三维实体设计的基础上,将三维图形模型直接调入有限元软件,进行CAE分析,从而拓宽学生创造设计能力的培养。

2.4 机械设计课程设计成绩评定方法

对于学生的成绩评定,组成答辩小组的教师制定详细的成绩评定标准,在学生正式答辩之前要先审阅学生的设计说明书和图纸,审核通过之后,再让学生分组参加答辩,答辩时通过学生间、师生间相互交流,对暴露出来的共性问题进行一次集中答疑,这样有利于保证设计的质量和提高答辩效果并且有助于培养学生的团队。课程设计评分标准如表1所示。

基于以上创新设计的教学实践方法,在某学生研究计划项目基础上,课程设计中选题“智能化宠物自动喂食喂水机”,运用Pro/E或Solidwork完成实体造型和CAE分析,并将设计成果申请了实用新型专利,学生既掌握了机械设计中机构设计、传动设计、零件的强度设计和标准件选取等基本理论知识,又充分发挥了其积极主动性,并通过分组完成课程设计,增强了学生的团队合作精神。图2是“智能化宠物自动喂食喂水机”三维结构简图。

3 结束语

本校机械电子、机械设计及自动化和过控(轻机)专业的机械设计课程设计中引入创新设计的教学实践,学生根据自身的兴趣灵活选题,课程设计质量有明显提高,并极大地发挥了学生的创造设计能力。总之,机械设计课程设计实践教学中引入创新设计,对提高教学质量,激发学生对本课程的学习兴趣,增强学生的团队合作精神,都有较大程度的促进作用。今后需要在非机械专业的课程设计中如何引入创新设计做进一步的研究。

参考文献

[1]吕仲文.机械创新设计[M].北京:机械工业出版社,2003.

[2]徐起贺.机械创新设计[M].北京:机械工业出版社,2015.

[3]黄平,朱文坚.机械设计基础-理论、方法与标准[M].北京:清华大学出版社,2012.

创新课程设计实践报告 篇3

关键词:跨界概念;家具设计教学;实践

社会发展使得家具行业从满足功能主导到以设计为主导的业界状况,中国的家具设计教学模式需要跟上时代,才能使中国家具产业做大做强,现实的状况是家具教学过程中观念、手段落后影响了家具设计行业,也影响到整个设计行业水平,教学中运用跨界手段提出新的方法新的思维来解决一些问题。

一、家具设计课程教学的现状

(一).教学模式相对滞后。家具行业也是传统的加工行业,家具设计课程开设也比较早,由于之前的经济条件制约家具设计发展,教学模式也比较落后,近 20 年内,我国社会经济长足发展,各领域发生了前所未有的变革,早期建立起来的一些教育模式和教育方法已经明显跟不上教育形势发展的步伐。比如林产工业延伸的家具设计专业,所使用的教材基本是木材加工专业的内容,难以满足家具设计专业学生的知识需求,也导致我国高校的家具设计专业教学与国际家具设计教育相比,还存在较大的差距。

(二).教学方式过于单一。现代的课堂教学应该是多样的,学生们获得的信息是多渠道的,而且学什们掌握的新事物很快,我们可以利用这些引导他们到新的课堂学习过程中,传统的满堂灌很难激起学生的兴趣,业忽视了学生们的能动性。家具设计需要学生的兴趣需要学生创新,采用“粉笔 + 黑板”的形式,教师在讲台上侃侃而谈,学生在讲台下昏昏欲睡,这样的课堂气氛可想而知。

(三).理论与实践相脱节。家具设计需要理论课程的指导,家具设计更需要实践课程的感知,传统的家具设计课程忽视了理论指导和实践创新之间的联系,现代家具设计更强调设计思想,因此出现理论与实践脱节,家具制造本身就是加工过程,需要通过实践来感知设计的空间、形态、结构、颜色、造型、造价、材料等工艺知识。大多数高校的家具设计专业教学过于重视理论传授,实习场地缺少,影响了实践课程的开展和学生认知。

二、跨界的概念与意义

跨界,是一种新锐的生活态度和审美方式的融合,英文为crossover 即交叉和跨越之意,也被解释为多领域与多风格的成功交汇。[1]设计,是美的再创造过程,通过美的再创造过程把设计转换到多个领域,呈现出新的设计样式、风格、把两个或多个不同领域、不同门类、不同文化、不同意识形态等范畴而产生的一个新设计的领域、形式、风格或行业等。从现代汽车设计所提出跨界概念就不难理解了,如创新汽车产品,用家用轿车式样设计带有SUV越野风格的元素或许能够满足更多不同消费者的需要,以获得更多的市场份额。家具设计即是家具专业核心课程又是艺术设计造型类基础课程。现代科技进步各行业界线模糊,特别是设计行业专业特点,就家具设计作为造型专业和基础空间设计的学习,领会设计的本质特点,让设计跨越到更多的领域成为美的普遍呈现,实践环节是实现这个理想的重要过程。跨界秉承双赢的理念,在这个创新的时代,跨界设计兼收并蓄,博采众长,真正做到了多元的交叉,技术与艺术的结合,打破传统的设计思维的定势。以创新实践为主题设计美的家具产品和工业产品。当今的设计界,跨界已经形成了潮流,许多不同领域的跨界设计合作,获得了巨大的商业成功!

三、跨界概念的实践教学环节

(一)设计师身份的跨界

从一个独立的设计师思想出发,自由设计,自主设计,模糊业界设计思想,把自己本来的设计思想表现出来,对有兴趣的设计想法把它发挥的极致。英国现代设计之父祖莫里斯(Morris)从壁纸、地毯设计、灯具设计跨越到家具设计的领域,不仅如此从建筑师跨界到艺术家大有人在,汉斯.瓦格纳(Hans Wegner)等。现代社会职业被分的很细,细分的职业必须合作才能完成一个或者多个项目,也需要彼此之间的跨界组合,设计师也不能停留在一个职业位置,需要扮演多个身份。家具设计课程实践需要学生完成既定的跨界主题设计,提高他们的兴趣,增强学生们的衍变能力,实践课程让每个学生尝试不同的设计思路,不同的设计对象,不同的方法,磨练了多方位解决问题的能力。

(二)设计风格的跨界

“法无定法,然后知非法法也。”没有固定的法则就是最好的法则,设计也没有固定的方法,风格设计是设计的主旨所在,设计师必须了解风格才能很好推广使用,差异化的地域性格是长时间人们共同存在的思想文化、风俗习惯、价值观念、审美标准。使用不同的风格设计才能反映出设计的变化之处,学生们只有了解它的特点才能准确的表达,跨界设计把不同风格、不同文化、不同含义的符号和图形运用到设计中去。跨越风格才能创新设计,家具设计实践课程学习通过实实验过程的摸索才能更好的表现。家具设计课程实践中可以通过尝试主题设计,让明式家具的设计风格跨界欧洲经典,地中海风格跨界美洲田园风风格,或许不会成功,但提供了创新意识和想法。

(三)材质运用的跨界

木材是传统的家具主要材料,木材的易加工特性符合当时的科技水平,木材制作家具有着自身的优势,从创新跨界的角度我们需要了解更多的材质,家具材料的选择为我们提供更多的使用体验,材质的跨界还影响工艺,工艺效果又关系的品质,品质因素是家具设计的另一个目标设计,材质能给我们消费者很直观的认识,能引起视觉和触觉的双重感觉,视觉和触觉是色彩心理的感受。家具实践环节引入材质跨界概念把更多的不同的材质美学和材料设计运用到现代设计中去至关重要的因素,家具设计的跨界不局限于风格的多样化,也表现在材质的使用和搭配上。塑料、铁艺、实木、皮革、木材、瓷器、皮革与布料等根据设计方案选择装饰的材料特征,材料跨界能够使普通材料经过合理的搭配,产生意想不到的视觉、触觉的效果,利用创新材质于旧材料搭配能够在能在冲突的极致之中产生别样的融合,给人带来独特的视觉和心理感受。通过家具设计的实践环节的材料跨界是的学生们掌握更多的材料知识,尽快的用到实践创作中去。

(四)造型及功能的跨界

现代家具设计注重家具的多功能,功能延伸是造型和功能的必须尝试,家具设计实践课程给功能设计和造型创意带来很多方便,实践室造型可以经过多次推敲,使得造型更加完善,功能更加合理,现代家具设计是结合了美学、力学、仿生学、人体工程学以及建筑学相结合的学科。现代家具设计越来越朝着造型艺术化及功能的复合化方向。跨界设计使得这些想法能够方便的实现,功能跨界让现代家具更加人性化。

家具设计课程学习需要实践环节来完善课程效果,把课程实践环节加入跨界思想目的是使家具设计课程从理论到实践有全方位的了解,引导学生掌握并感兴趣主动学习这门课程。

参考文献:

[1]郭琼,涂登云,李重跟.设计竞赛对家具设计课程教学的作用与启示[J].家具与室内装饰,2011,01:100-102.

[2]葛绪君.基于职业能力培养的“家具设计与工艺”课程教学改革与实践[J].中国林业教育,2011,03:49-52.

C语言课程设计实践报告 篇4

2014—2015学年第1学期

学 院: 计算机学院 专业班级: 软件工程5班 学 号: ***6 学生姓名: 陈洪阳 指导教师: 戴俊雅

成 绩:

时 间:

2015年 1月5日

实践1.猜数游戏 题目概述:

编程先由计算机“想”一个1~100 之间的数请人猜,如果人猜对了,在屏幕上输出人猜了多少次才猜对此数,以此来反映猜数者“猜”的水平,则结束游戏;否则计算机给出提示,告诉人所猜的数是太大还是太小,最多可以猜10 次,如果猜了10 次仍未猜中的话,则停止本次猜数,然后继续猜下一个数。每次运行程序可以反复猜多个数,直到操作者想停止时才结束。

程序设计概要与分析:

在源程序的开头中包含stdlib和time库函数,这样我们就可以调用srand()和rand()函数,其中调用srand()提供一个种子,它是一个unsigned int类型,取值范围是0~65535,然后调用rand(),根据提供给srand()的种子值返回一个随机数,我们用rand()%100就把随机决定的数值范围确定在1~100之间,然后定义一个num,记录这个随机产生的随机数,定义input,来储存用户输入的猜数值,用times来记录猜的次数,用do while循环来执行用户猜的次数有10次,用if else条件语句来判断用户是否猜中,或猜得太大、太小,用一个while循环来做总嵌套,设置n的值一开始不为零,while循环的条件是当n的值不等于0,最后用户就可以修改n的值来决定是否退出。

程序代码:

#include #include #include

int main(){

int n=1;while(n!=0){

srand((unsigned)time(NULL));int num,input;int times=0;num=(rand()%100)+1;printf(“在1~100间猜一个数n”);scanf(“%d”,&input);do{

if(input==num){

} else if(input>num){

} else if(input

}

}

} printf(“你猜的数太小了,请再猜一个n”);scanf(“%d”,&input);times++;}while(times<9);if(times>=9)printf(“你已经猜了10次都猜不中,你输了n”);printf(“继续下一轮新的猜数请按1,退出请按0n”);scanf(“%d”,&n);return 0;运行结果示例:

选择继续下一轮新的猜数,猜了10次都没猜中

心得体会:

要懂得如何生成一个随机数,并且要确定它的范围在1~100之间,同时我们还要用do while循环体把猜数的次数控制在10次,每当我们输入猜想的数时就要做出判断,看看是否猜中,或者猜得太大或太小,输出提示信息。也懂得了通过修改while判断循环里面的条件,使得循环体里面的程序受我们修改的条件控制,可以继续循环执行或者不再继续执行。

实践2.成绩排名次 题目概述:

某班期末考试科目为数学(MT)、英语(EN)和物理(PH),有最多不超过30 人参加考 试,学号可以用输入的序号代替。考试后要求:(1)计算每个学生的总分和平均分;

(2)按总分成绩由高到低排出成绩的名次;

(3)打印出名次表,表格内包括学生编号、各科分数、总分和平均分;(4)任意输入一个学号,能够查找出该学生在班级中的排名及其考试分数。

程序设计与概要:

定义存储学生信息的结构体,包括学生编号,姓名,各科成绩,总分,平均分还有名次。该结构体命名为student,然后定义结构体数组student s[],首先输入准备录入学生信息的人数,用amount来记录人数,用一个for循环,从0~amount-1,依次输入每个学生的各种信息,如学号,姓名,数学、英语和物理成绩。用grade[]数组来存这三科的成绩,如grade[0]存储数学成绩,grade[1]存储英语成绩。输入之后,再用一个for循环把每个同学的总分求出来,总分再除去3求出该名同学的平均分。按总分成绩由高到低排出名次,用两个for循环嵌套,第一个循环从0~amount,表示从第一个同学开始拿出来比较,第二个循环从1~amount,表示除了之前取出的同学以外的每一个同学,如果前一位同学的总分小于后一个同学的话,就交换两人的信息,第二个循环比较之后,便会把总分最高的同学的信息储存在第一个,然后我们设置排名rank的值为1,rank++,进行筛选第二名的,之后对应地把rank的值设给学生的总分排名

打印学生信息,输出表格的基本框架后,用一个for循环,依次输出每个学生的信息,最后还有根据学号查询学生信息,用户输入要查询的学生学号,在for循环里面依次比较,如果找到学号与用户输入相同的,便输出该名学生的信息。

程序代码:

#include #include #include #define M 30 struct student { unsigned int num;char name[10];int grade[3];int sum;float ave;int rank;};student s[M];int amount;

void input(student s[]);void title();

void list(student s[]);int main(){ input(s);int i=0;for(i=0;i

//要求1 计算总分平均分

s[i].sum=s[i].grade[0]+s[i].grade[1]+s[i].grade[2];

s[i].ave=(float)s[i].sum/3;} //要求2 按总成绩排序

int rank=1;student t;for(i=0;i

for(int j=i+1;j

{

if(s[i].sum

{

{t=s[i];

s[i]=s[j];

s[j]=t;

}

}

}

s[i].rank=rank;

rank++;} //要求3 打印名次表

title();list(s);//要求4 查询

int number;printf(“请输入你要查询学生的学号:n”);scanf(“%d”,&number);for(int i=0;i

if(number==s[i].num)

{

printf(“学号t姓名t数学t英语t物理t总分t平均分t排名n”);

printf(“%ut%st%dt%dt%dt%dt%5.2ft%dn”,s[i].num,s[i].name,s[i].grade[0],s[i].grade[1],s[i].grade[2],s[i].sum,s[i].ave,s[i].rank);

} } system(“pause”);return 0;}

void input(student s[]){ printf(“输入班上参加期末考试的人数(不大于30人)”);scanf(“%d”,&amount);printf(“请依次输入他们的学号,姓名,数学成绩,英语成绩和物理成绩n”);for(int i=0;i

printf(“第%d位同学的学号,姓名,数学成绩,英语成绩和物理成绩n”,i+1);

scanf(“%u%s%d%d%d”,&s[i].num,s[i].name,&s[i].grade[0],&s[i].grade[1],&s[i].grade[2]);} }

void title(){

printf(“ 学生成绩表n”);

printf(“-----------------------------n”);

printf(“学号t姓名t数学t英语t物理t总分t平均分t排名n”);

printf(“-----------------------------n”);}

void list(student s[]){ //n表示人数

int i;//rank=1;for(i=0;i

printf(“%ut%st%dt%dt%dt%dt%5.2ft%dn”,s[i].num,s[i].name,s[i].grade[0],s[i].grade[1],s[i].grade[2],s[i].sum,s[i].ave,s[i].rank);

printf(“-----------------------------n”);} }

运行结果示例:

确定录入人数之后,依次输入每个学生的信息

打印出名次表:

输入学生的学号,查询学生信息:

心得体会:

懂得了用结构体将不同的数据类型结合在一起,然后定义结构体数组,使得每个数组中的成员都具有不同的数据类型变量。而且同属于一个数据类型,也可以定义数组来表示相同的类型但是有多个不同值,比如成绩这个变量。也懂得了用for循环语句求总分,用for循环语句将数组从头到尾输出。

实践3.单科成绩统计 题目概述:

学生成绩统计(一维数组)从键盘输入一个班(全班最多不超过 30人)学生某门课的成绩,当输入成绩为负值时,输入结束,分别实

现下列功能:(1)统计不及格人数并打印不及格学生名单;

(2)统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单;(3)以直方图方式统计各分数段的学生人数及所占的百分比。形式如下: 分段 人数 图形 <60 3(10%)*** 60‐69 8(…)******** 70‐79 7(…)******* 80‐89 8(…)******** >=90 4(…)****

程序设计与概要:

定义一个结构体stu,里面有学生的姓名和成绩,然后定义一个s[]数组存放每个学生的姓名和成绩,输入函数中用一个for循环来依次输入每个学生的姓名,还有输入成绩,用if条件语句判断输入的成绩是否为负数,如果是就退出整个输入函数,同时,我们还用if条件语句来判断输入的成绩处于哪个分数阶段,定义n1、n2、等整形变量来存储各个分数段的总人数,变量num来存放输入的学生共有多少人,变量sum是将每个学生的成绩都加在一起,最后用sum/num就等于全班该门成绩的平均分,我们用一个for循环语句,判断每个学生的成绩是否小于60分,如果是就输出他的姓名,这样就可以打印出不及格学生的名单了。同样的,用一个for循环语句,判断每个学生的成绩是否大于等于平均分,如果是就变量count+1,用来记录成绩大于或等于平均分的学生人数,同时可将成绩大于平均分的同学姓名输出,这样就打印出了成绩在大于等于平均分的学生名单了。最后是输出分数段,用前面记录各个分数段人数的n值除以总人数再乘以100%就得出比例,每一个分数段都用一句for循环语句,根据n值的大小输入对应数目的*。

程序代码:

#include #include #define M 30 struct stu { char name[20];int score;};stu s[M];int i=0,num=0;int n1=0,n2=0,n3=0,n4=0,n5=0;float sum=0,ave=0;int count=0;void input(stu s[]);void getnotpass(stu s[]);

void getavg(stu s[]);void percent(stu s[]);int main(){ /*stu s[M];int i=0,num=0;int n1=0,n2=0,n3=0,n4=0,n5=0;float sum=0,ave=0;*/ input(s);getnotpass(s);getavg(s);percent(s);return 0;} void input(stu s[]){ for(i=0;i

printf(“请输入第%d个学生的姓名和成绩n”,i+1);

scanf(“%s%d”,&s[i].name,&s[i].score);

if(s[i].score<0)

break;

if(s[i].score>=0&&s[i].score<60)

n1++;

if(s[i].score>=60&&s[i].score<70)

n2++;

if(s[i].score>=70&&s[i].score<80)

n3++;

if(s[i].score>=80&&s[i].score<90)

n4++;

if(s[i].score>90)

n5++;

num++;

sum+=s[i].score;} printf(“学生信息录入完毕nnn”);} void getnotpass(stu s[]){ printf(“不及格人数为:%dn”,n1);printf(“不及格人员名单如下:n”);for(i=0;i

if(s[i].score>=0&&s[i].score<60)

printf(“%st”,s[i].name);} printf(“n”);ave=sum/num;} void getavg(stu s[]){ for(i=0;i

if(s[i].score>=ave)count++;} printf(“成绩在全班平均分及平均分之上的学生人数为:%dn”,count);printf(“成绩在全班平均分及平均分之上的学生名单如下:n”);for(i=0;i

if(s[i].score>=ave)

printf(“%st”,s[i].name);} printf(“nnn”);} void percent(stu s[]){ printf(“各分数段的学生人数及所占的百分比如下:n”);printf(“分段t 人数t 图形n”);printf(“<60t%d(%.0f%%)t ”,n1,(float)n1/(float)num*100);for(i=0;i=90t%d(%.0f%%)t ”,n5,(float)n5/(float)num*100);for(i=0;i

运行结果示例:

依次输入每个学生的姓名和成绩,当输入成绩为负时,便退出整个输入:

统计不及格人数还有打印不及格学生名单:

统计成绩在全班平均分及平均分之上的学生人数,并打印这些学生的名单:

以直方图方式统计各分数段的学生人数及所占的百分比:

心得体会:

懂得了在for循环体内用if条件判断语句判断输入的值为负值时退出循环体。用变量计数器把符合要求的计数起来,最后可以得出符合要求的值共有多少个,也懂得了用for循环从所有值里进行筛选符合条件的值出来,更懂得了在求百分比时候要强制类型转换,把int类型的计算结果给转换为float单精度类型。

实践4.函数与文件训练 题目概述:

将实践练习2 中的第2题利用函数的思想进行修改,并将学生的成绩等信息输出到文件中。要求函数参数中

包含结构体数组或指针。输出到ASCII 文件的信息包括每个学生的学号、三门成绩和名次,每人一行。

程序设计与概要:由于我的实践2中就已经用了函数,所以我只需要把学生的成绩等信息输出到文件中。用FILE *fp,fp就代表我们要对其操作的文件,用open函数,根据文件的所在位置还有文件名,打开文件,并对应要求进行只写的操作,如源代码中fp=fopen(“f: st udent.txt”,“w”),w代表写入操作,char一个c[]数组,存放对应项的名称,用fputs函数把数组里面的字符串写入到文件里面去,用一个for循环,循环调用fprintf函数,把每个学生的学号,各科成绩和排名都写入到文件当中去,最后关闭文件即可。

程序代码:

#include #include #include #define M 30 struct student { unsigned int num;char name[10];int grade[3];int sum;float ave;int rank;};student s[M];int amount;

void input(student s[]);void title();void list(student s[]);int save();//输出到文件中 int main(){ input(s);int i=0;for(i=0;i

//要求1 计算总分平均分

s[i].sum=s[i].grade[0]+s[i].grade[1]+s[i].grade[2];

s[i].ave=(float)s[i].sum/3;}

//要求2 按总成绩排序

int rank=1;student t;for(i=0;i

for(int j=i+1;j

{

if(s[i].sum

{

{t=s[i];

s[i]=s[j];

s[j]=t;

}

}

}

s[i].rank=rank;

rank++;} save();//要求3 打印名次表

title();list(s);//要求4 查询

int number;printf(“请输入你要查询学生的学号:n”);scanf(“%d”,&number);for(int i=0;i

if(number==s[i].num)

{

printf(“学号t姓名t数学t英语tC语言t总分t平均分t排名n”);

printf(“%ut%st%dt%dt%dt%dt%5.2ft%dn”,s[i].num,s[i].name,s[i].grade[0],s[i].grade[1],s[i].grade[2],s[i].sum,s[i].ave,s[i].rank);

} } system(“pause”);return 0;} void input(student s[]){ printf(“输入班上参加期末考试的人数(不大于30人)”);scanf(“%d”,&amount);printf(“请依次输入他们的学号,姓名,数学成绩,英语成绩和物理成绩n”);

for(int i=0;i

printf(“第%d位同学的学号,姓名,数学成绩,英语成绩和物理成绩n”,i+1);

scanf(“%u%s%d%d%d”,&s[i].num,s[i].name,&s[i].grade[0],&s[i].grade[1],&s[i].grade[2]);} } int save(){

FILE *fp;fp=fopen(“f:student.txt”,“w”);if(!fp){

printf(“can not open file!n”);

exit(1);} char c[]=“学号t 数学t 物理t 英语t 排名n”;fputs(c,fp);for(int i=0;i

fprintf(fp,“%ut %dt %dt %dt %dn”,s[i].num,s[i].grade[0],s[i].grade[1],s[i].grade[2],s[i].rank);} fclose(fp);} void title(){

printf(“ 学生成绩表n”);

printf(“-----------------------------n”);

printf(“学号t姓名t数学t英语t物理t总分t平均分t排名n”);

printf(“-----------------------------n”);}

void list(student s[]){ int i;for(i=0;i

printf(“%ut%st%dt%dt%dt%dt%5.2ft%dn”,s[i].num,s[i].name,s[i].grade[0],s[i].grade[1],s[i].grade[2],s[i].sum,s[i].ave,s[i].rank);

printf(“-----------------------------n”);} }

运行结果示例:

首先输入准备录入的学生人数,然后依次输入每个学生的信息:

打印出按总成绩排序后的学生信息表,以及根据学号查询:

在f盘中找到文件并打开:

心得体会:

懂得了用如何运用文件,把向程序中输入的数据全部输出到文件中去。用FILE *fp,fp就代表我们要对其操作的文件,用open函数,根据文件的所在位置还有文件名,打开文件,并对应要求进行只写的操作,如源代码中fp=fopen(“f: st udent.txt”,“w”),w代表写入操作,char一个c[]数组,存放对应项的名称,用fputs函数把数组里面的字符串写入到文件里面去,用一个for循环,循环调用fprintf函数,把每个学生的学号,各科成绩和排名都写入到文件当中去,最后关闭文件即可。

实践5.实践4(1)(2)题目概述:

每位学生信息包括:学号、姓名、性别、学院、10 门成绩。共有不超过100 位同学的信息存放在ASCII 文件StudentInfo.txt 中;不超过10 个学院的信息存放在CodeInfo.txt 中,性别代码存放在SexInfo.txt 中,均为代码和其对应的名称。要求:

1.定义至少包含以上学生信息和学院代码的结构体类型和指针(或数组)变量。2.函数实现从文件中输入信息到定义的数据中。

程序设计与概要:

定义一个结构体,名为student,里面的内容有学生的学号,姓名,性别,还有那个学院,以及10门成绩,构造结构体数组,student stu[100],用于存储100名学生的信息。定义读取文件中内容的函数,FILE *fp代表文件,调用fopen函数,通过文件所在位置以及文件名打开特定的文件,r表示只对文件进行读取,接着调用fscanf函数,把第一个位置的数据赋给学生的学号,用while循环体,循环的条件是调用feof判断文件是否读取结束,如果没有则返回0,用!feof()来让没读取结束的文件继续读取,接着再把同一行后面的数据分别赋给学生的姓名,性别代码和所属学院代码,再用一个for循环,把同一行后面10个数据分别赋给学生的10门成绩。一行读取完毕后,意味着已经读取完一个学生的所有个人信息,定义一个I值来存储已经读取学生的人数,每读完一人就i+1,再读取下一行的第一个数据赋给下一个学生作为他的学号。通过while循环把文件中的全部信息读取出来赋给所有学生,函数最后返回的是读取学生的人数i。定义结构体名为sxy,用于存储性别代码和代码对应的性别,可以在后面输出的时候,把对应的性别代码转变为用中文表示性别。定义一个结构体名为scode,用于存储学院代码和代码对应的学院名称,可以在最后输出的时候,把学院代码对应的学院名称输出。再定义一个输出函数,通过for循环,从0~i-1,把i个学生的全部信息输出,所以我们在主函数里面先调用读取文件中内容的函数之后再调用输出函数即可。

程序代码:

#include #include #include int readData(char *filename,struct student *stu);int readDataxy(char *filename,struct sxy *s1);int readDataco(char *filename,struct scode *s2);void printStudent(struct student *stu,struct sxy *s1,struct scode *s2,int n,int m,int k);struct student { int id;char name[10];int sexno;char sex[4];int deptno;char dept[20];int scores[10];float ave;

};struct sxy { int id;char sex[4];};struct scode { int id;char dept[20];};int main(){ struct student stu[100];struct sxy s1[2];struct scode s2[10];int n,m,k;n=readData(“f:StudentInfo.txt”,stu);m=readDataxy(“f:SexInfo.txt”,s1);k=readDataco(“f:CodeInfo.txt”,s2);if(n==-1||n==0)

return 0;if(m==-1||m==0)

return 0;if(k==-1||k==0)

return 0;printStudent(stu,s1,s2,n,m,k);

system(“pause”);return 0;} int readData(char *filename,struct student *stu){ FILE *fp;int i=0,j;fp=fopen(filename,“r”);if(!fp){

printf(“error1”);

return-1;} fscanf(fp,“%d”,&stu[i].id);while(!feof(fp))//feof返回0 表示文件还没结束 返回1表示结束

{

fscanf(fp,“%s%d%d”,stu[i].name,&stu[i].sexno,&stu[i].deptno);

for(j=0;j<10;++j)

fscanf(fp,“%d”,&stu[i].scores[j]);

++i;

fscanf(fp,“%d”,&stu[i].id);} return i;} int readDataxy(char *filename,struct sxy *s1){ FILE *fp;int i=0;fp=fopen(filename,“r”);if(!fp){

printf(“error2”);

return-1;} fscanf(fp,“%d”,&s1[i].id);while(!feof(fp)){

fscanf(fp,“%s”,s1[i].sex);

++i;

fscanf(fp,“%d”,&s1[i].id);} return i;} int readDataco(char *filename,struct scode *s2){ FILE *fp;int i=0;fp=fopen(filename,“r”);if(!fp){

printf(“error3”);

return-1;} fscanf(fp,“%d”,&s2[i].id);while(!feof(fp)){

fscanf(fp,“%s”,s2[i].dept);

++i;

fscanf(fp,“%d”,&s2[i].id);}

return i;} void printStudent(struct student *stu,struct sxy *s1,struct scode *s2,int n,int m,int k){ int i,j;printf(“ 学生信息统计n”);for(i=0;i

for(j=0;j

{

if(stu[i].sexno==s1[j].id)

{

strcpy(stu[i].sex,s1[j].sex);

}

} } for(i=0;i

for(j=0;j

{

if(stu[i].deptno==s2[j].id)

{

strcpy(stu[i].dept,s2[j].dept);

}

} } for(i=0;i

printf(“%d%8s%4s%12s”,stu[i].id,stu[i].name,stu[i].sex,stu[i].dept);

for(j=0;j<10;++j)

printf(“%4d”,stu[i].scores[j]);

printf(“n”);} }

运行结果示例:

心得体会:

懂得了从文件中输入信息到定义的数据中。就是要先构造与文件信息中相对应的结构体数组,然后用打开文件,需要知道文件的具体位置还有文件名,”r”就是表示只采取读取操作,用while循环,循环条件的判断标准就是用feof来判断文件是否读取到文件尾部,用fscanf把每个数据赋给对应的变量。其中最难解决的就是一开始学生文件里面的信息,学生性别用代号表示,学生所在学院也用代码显示,这样一来我们把文件中的信息赋给定义好的结构体

数组之后,用for循环把结构体数组一个一个输出后,显示的是性别代码和学院代码,我们要把代码都改为相对应的值,所以我们同样定义性别的结构体数组,学院的结构体数据,之后用for循环把性别数组里面的代号和学生数组中的性别代码想比较,用strcpy函数,相同的就把代码对应的性别赋给学生数组里面定义好的性别字符数组。同理的,学院代码相对同的就把代码对应的学院名称赋给学生数组里面定义好的学院字符数组。

实践6.实践4(3)(4)(5)题目概述:

每位学生信息包括:学号、姓名、性别、学院、10 门成绩。共有不超过100 位同学的信息存放在ASCII 文件StudentInfo.txt 中;不超过10 个学院的信息存放在CodeInfo.txt 中,性别代码存放在SexInfo.txt 中,均为代码和其对应的名称。要求:

3.函数实现排序(1):学生平均成绩的降序排序,并输出所有信息到显示屏。4.函数实现排序(2):学生姓名的升序排序,并输出所有信息到显示器。

5.函数实现查询(1):根据学号查询学生信息,并输出该生信息,并输出所有信息到显示器。

程序设计与概要:

同上个实践一样构造结构体名为student,用来存储学生的信息,如学生姓名,性别代号,学号,学院代号和成绩等。构造结构体名为sxy用来存储性别代号和性别名称,构造结构体名为scode用来存储学院代号和学院名称。用三个不同的函数来实现读取三个不同文件中的内容,把文件里面的内容放到以上构造的三个结构体里面去,定义输出函数,用for循环把每个学生的性别代号同sxy结构体数组中的代号对应,把代号对应的性别名称赋给每个学生的性别sex属性值中,把每个学生的学院代号同scode结构体数组中的代号对应,把代号对应的学院名称赋给每个学生的学院sdept属性值中,最后再用一个for循环把从第一个学生到最后一个学生的全部信息输出。实现要求3中的根据学生平均成绩的降序排序,要求在从文件中读取成绩之后要计算出总分然后再除以10门成绩得出平均分,然后定义一个函数,用双重for循环,把第一个学生同其他学生比较平均分,如果比下一个同学的平均分低就交换两个的位置,否则就继续与下一个同学比较,直到第一层的for循环结束退出为止。再用for循环把排序后的学生信息从第一位到最后一位输出即可。实现要求4中的根据学生姓名的升序排序,要求也是用双重for循环,用函数strcmp比较两个学生的姓名,把第一个学生的姓名同下一个同学比较,如何比下一个同学大,就交两个学生的位置,否则就继续与下一个同学比较,直到第二层的for循环结束,意味一个同学的位置确定,继续第一层for循环的下一个同学,直到第一个层的for循环结束,就意味所有同学比较完毕,再用for循环语句把从第一个位置的同学到最后一个位置的同学,把他们的信息输出。实现要求5的查询要求,需要我们从键盘上输入要查询的学生的学号,然后用for循环从我们的学生结构体数组中遍历一遍,如果有找到学号同输入的学号相同的学生,便把他的所有信息输出,否则则输出不存在该名学生。

程序代码:

#include #include #include int readData(char *filename,struct student *stu);int readDataxy(char *filename,struct sxy *s1);int readDataco(char *filename,struct scode *s2);void printStudent(struct student *stu,struct sxy *s1,struct scode *s2,int n,int m,int k);void search(struct student *stu,int n);void sortbyname(struct student *stu,int n);void sortbyave(struct student *stu,int n);struct student

{ int id;char name[10];int sexno;char sex[4];int deptno;char dept[20];int scores[10];double ave;};struct sxy { int id;char sex[4];};struct scode { int id;char dept[20];};int main(){ struct student stu[100];struct sxy s1[2];struct scode s2[10];int n,m,k,b;while(1){

system(“cls”);

printf(“1.显示学生信息n”);

printf(“2.姓名升序排序n”);

printf(“3.平均成绩降序n”);

printf(“4.学号查询学生信息n”);

printf(“0.退出n”);

printf(“n输入需要查询的序号:”);

scanf_s(“%d”,&b);

switch(b)

{

case 1:

n=readData(“f:StudentInfo.txt”,stu);

m=readDataxy(“f:SexInfo.txt”,s1);

k=readDataco(“f:CodeInfo.txt”,s2);

if(n==-1||n==0)

return 0;

if(m==-1||m==0)

return 0;

if(k==-1||k==0)

return 0;

printStudent(stu,s1,s2,n,m,k);

break;

case 2:

sortbyname(stu,n);

break;

case 3:

printf(“按平均成绩降序排序如下:”);

sortbyave(stu,n);

printStudent(stu,s1,s2,n,m,k);

break;

case 4:

search(stu,n);

break;

case 0:

return 0;

} system(“pause”);} system(“pause”);return 0;} int readData(char *filename,struct student *stu){ FILE *fp;int i=0,j;double sum;fp=fopen(filename,“r”);if(!fp){

printf(“error”);

return-1;} fscanf(fp,“%d”,&stu[i].id);while(!feof(fp))//feof返回0 表示文件还没结束 返回1表示结束

{

fscanf(fp,“%s%d%d”,stu[i].name,&stu[i].sexno,&stu[i].deptno);

for(j=0;j<10;++j)

{

fscanf(fp,“%d”,&stu[i].scores[j]);

sum=stu[i].scores[j];

}

stu[i].ave=sum/10;

++i;

fscanf(fp,“%d”,&stu[i].id);} return i;} int readDataxy(char *filename,struct sxy *s1){ FILE *fp;int i=0;fp=fopen(filename,“r”);if(!fp){

printf(“error2”);

return-1;} fscanf(fp,“%d”,&s1[i].id);while(!feof(fp)){

fscanf(fp,“%s”,s1[i].sex);

++i;

fscanf(fp,“%d”,&s1[i].id);} return i;} int readDataco(char *filename,struct scode *s2){ FILE *fp;int i=0;fp=fopen(filename,“r”);if(!fp){

printf(“error3”);

return-1;} fscanf(fp,“%d”,&s2[i].id);while(!feof(fp)){

fscanf(fp,“%s”,s2[i].dept);

++i;

fscanf(fp,“%d”,&s2[i].id);} return i;

} void printStudent(struct student *stu,struct sxy *s1,struct scode *s2,int n,int m,int k){ int i,j;printf(“ 学生信息统计n”);for(i=0;i

for(j=0;j

{

if(stu[i].sexno==s1[j].id)

{

strcpy(stu[i].sex,s1[j].sex);

}

} } for(i=0;i

for(j=0;j

{

if(stu[i].deptno==s2[j].id)

{

strcpy(stu[i].dept,s2[j].dept);

}

} } for(i=0;i

printf(“%d%8s%4s%12s”,stu[i].id,stu[i].name,stu[i].sex,stu[i].dept);

for(j=0;j<10;++j)

printf(“%4d”,stu[i].scores[j]);

printf(“n”);} } void search(struct student *stu,int n){ int m,col=0;printf(“请输入你要查询学生的学号:n”);scanf(“%d”,&m);for(int i=0;i

if(stu[i].id==m)

{

col=1;

printf(“%d%8s%4s%12s”,stu[i].id,stu[i].name,stu[i].sex,stu[i].dept);

for(int j=0;j<10;++j)

{

printf(“%4d”,stu[i].scores[j]);

}

} } if(col==0)printf(“不存在该名学生信息n”);} void sortbyname(struct student *stu,int n){ student temp;for(int i=0;i

for(int j=0;j

{

if(strcmp(stu[i].name,stu[j].name)>0)

{

temp=stu[i];

stu[i]=stu[j];

stu[j]=temp;

}

} } printf(“按姓名的升序排序如下!n”);for(int i=0;i

printf(“%8d%8s%4s%12s”,stu[i].id,stu[i].name,stu[i].sex,stu[i].dept);

for(int j=0;j<10;++j)

{

printf(“%4d”,stu[i].scores[j]);

}

printf(“n”);} } void sortbyave(struct student *stu,int n){ int i,j,flag;student s;for(j=0;j

flag=0;

for(i=0;i

{

if(stu[i].ave

{

s=stu[i];

stu[i]=stu[i+1];

stu[i+1]=s;

flag=1;

}

}

if(flag==0)break;} }

运行结果示例: 开始的菜单界面:

输入1便会显示文件中所有学生的信息:

输入2便会实现学生姓名升序排序,且把排序后的学生所有信息输出:

输入3便会实现学生平均成绩降序排序,且把排序后的学生所有信息输出:

输入4便会实现根据学号查询学生信息:

心得体会:

懂得了运用双重for循环比较全体成员,如题目中所要求的姓名升序排序还有平均成绩降序,比较平均成绩可以用值的大小进行比较,但是比较姓名的大小就要用strcmp函数进行比较,如果有需要交换位置的,就定义一个同类型的中间值,作为交换的协助者,帮助完成两个值的交换,完成整个过程之后,把交换完成后的全体成员从头到尾用for循环输出即可。

参考文献:

创新课程设计实践报告 篇5

1.1评分标准的改革

分数是评价学生学习成绩最直接、最重要的指标,大多数院校均制定了考试成绩占7000、平时成绩占30%的评分标准.考试主要考察学生对基本知识的掌握情况,就算在试题中加大考察创新能力和实践能力的试题份量,也仅仅只是从理论方面对学生的创新能力和实践能力进行了考察,这对学生创新能力的培养起不了太大的作用,而平时成绩多是依据作业、课堂表现等情况进行评分,其实质上也是考察了学生对基本知识的掌握情况.所以这一评分标准,已不再适应重在创新与应用能力培养的高等职业教育.在尝试教学中,评分改革为:考试3500,作业1000,纪律500,实验1000,创新提案1500,实践分析1500,操作1000.其中,实践分析是按每一种机构讲完后学生按照要求观察、分析、比较该机构在实际生产和生活中应用的报告评分;创新提案是按原理部分讲完后学生通过观察实际,从而发现问题,并以所学知识为依据,充分发挥自己的想象能力和创新能力,提出解决方案的可行性的大小评分;操作是在学完本课程后,学生在老师的帮助下,按照所学进行的简单、实用的小机械设计的优劣评分.评分标准的改革,可以从根本上改变学生对实践教学的态度.因为创新实践不再是兴趣的问题,而是直接与学生的学习成绩挂钩,从而间接影响学生就业的问题.这必然能引起学生对创新教学的积极响应,因而,评分标准的改革势在必行,这是创新教学模式的动力所在.1.2基础知识的教学,应更加紧密地联系实际

传统的教学方式主要以接受性教学为主,教师讲学生听,重视书本知识的“灌输”,忽视了学生知识运用能力和创新能力的培养.而要改变这一方式,就必须加强理论与实践的联系,倡导有效地接受、体验、发现、研究和创造相结合的基础教学模式.接受是指学生应接受哪些知识,也就是老师应重点讲解什么内容.传统的重点在因而不在果,重视每一个公式、每一个论点的推导,而不重视知识的实际运用.创新教学要加大实践教学,就必然不能再一成不变地逐点讲解了.应只讲其结果而不讲其原因,以节省课时,然后尽可能多地进行实例分析,讲清机构的运动、特点和应用.重点在于应用,应多讲怎样巧用、妙用,应注意哪些问题等实际问题;体验是指要引导学生、要求学生从实际生产和生活中体验所学机构是如何应用的;发现是指学生在体验中发现现有机械设计的不合理之处,或生活中可以利用所学而设计出机械来解决问题的地方;研究是指学生对发现的问题再深一步研究讨论,并提出设计方案;而创造是指学生在老师的指导下,对提出的方案利用所学进行具体地设计.这一基础教学模式是一个环环相扣、与实践结合极为紧密的教学模式,要实现预期的教学效果,必须采用合理有效的教学手段,在尝试教学中可以采取如下办法:

1)接受:教学中,尽可能多地利用现有模型和教具,在课堂上分析其运动和特点,并引人与之相应的实用机械,分析说明设计时应注意的问题.要尽可能多地带领学生到实验室、实习工厂和培训中心进行现场教学.2)体验:在接受教学的基础上,要求学生对所学的机构按下面的表格1进行分析.该表要求学生独立完成,实例分析中若有N名学生的结果相同,则这些学生评分标准中实践分析的分数X=15-0.3XN.实例分析要求画出机构运动简图,并分析其用在此处的优点,能否用其它机构代替等.3)发现:在体验的基础上,要求学生认真观察、体验生产和生活,寻找现有机械设计的不合理之处,或生活中可以利用所学而设计出机械来解决问题的地方,并以报告的形式提出应改造哪些细节或设计出什么样的东西.这不仅仅要求是纯机械的,应鼓励学生尽可能地利用所学、所知,或通过查阅资料所得的知识构思出机、光、电一体化,甚至纯电子的设计构思.这样,可以培养学生综合运用所学知识和查阅资料的能力,使本课程的创新教学上升到一个新的高度.4)研究和创造:这二者是需要大量的时间去完成的,放在课外兴趣小组指导进行.1.3应进一步加强实践教学环节

高职《机械设计基础》课程的实践教学一般实验为10学时左右,课程设计是进行减速器的设计,为期两周,这些已经远远赶不上高职创新教学的要求了.在尝试教学中按照表2进行.实践教学环节的加强,不但可以增强学生的实践能力和知识运用的能力,还可以充分地调动学生的学习积极性,取得更好的教学效果.1.4建立课外兴趣小组

课外兴趣小组的建立,可以进一步培养学生创新意识、创新思维、创新能力;开拓学生知识面;提高学生查阅资料的能力;更新课本知识,是学生了解最新机械行业发展状况的第二课堂.1)经费筹集:采取学生交一点,学院补助一点的方式.2)成员:有兴趣的学生.3)活动时间与地点:每周二、四晚(机械设计实验室).4)活动内容:

(1)集体学习:了解机械行业发展状况;了解先进的设计方法;阅读相关书籍,以提高认识、开拓视野,使学生的知识与时代保持同步.(2)组织讨论:讨论、评比学生研究后提出的设计方案的可行性大小,并以此为依据评定创新提案部分的分值.(3)操作设计:从讨论结果中选出十个经过讨论改进、可行性最大的提案,以小组成员为主干,全班学生为成员,在老师的指导下完成这些方案的初步设计.并以设计的结果为依据评定操作部分的分值.2教学效果的对比分析

课程结束后,把实验班与对照班按表3做了对比分析:

从上表的对比分析可以看出,该创新教学模式是适应高职教育、培养具有创新能力的高素质应用型人才较好的创新教学模式.3经验总结

在实施该教学模式的过程中,曾出现了许多偏差,获得了下面几点教训和经验:

创新课程设计实践报告 篇6

作品名称:简易塑料袋抽拉装置

主要材料:废弃塑料瓶,塑料袋

作品介绍:所制作的“变废为宝”的作品是塑料袋抽拉装置,是为了方便每个家庭的关于塑料袋的使用,想到利用抽纸的原理,设计一个既美观,又实用的简易塑料袋抽拉装置。本装置不仅方便实用,而且还可以反复循环利用,在瓶中所有塑料袋抽拉完毕之后还可以加入新的塑料袋,相当环保。此外,该装置为透明材料设计,使用者可以在瓶身DIY自己喜欢的花式、颜色。而且,还可以将该装置挂在墙上,如挂在冰箱旁边的墙上,在瓶身还可以粘贴一些便签,具有提示的功能。从以上这些功能可以知道该作品真正做到了“一物多用”,充分发挥了所使用材料的功能。

该作品可能相比之下显得比较简单,但是该作品的创新理念绝对是非常好的,该作品将生活中常见的两种物品结合起来,是组合法的思想,同时,该作品将我们最常见的抽纸的原理结合起来。

“变废为宝”作品设计报告

一、设计思路

在一开始我们小组就针对选题问题进行了激烈的讨论,最终在大家的共同建议下,我们决定设计一个类似于抽纸那样的塑料袋抽拉装置。设计这个装置是我们小组在采取头脑风暴法的创新技法后确定的。

设计这个作品,是为了方便每个家庭的塑料袋的循环使用。从我们前期的讨论中我们发现基本在每一个家庭中都会循环使用买菜和买商品用过的塑料袋,用来装垃圾。可是,这些塑料袋的放置问题却很让人头疼,所以我们结合塑料袋的特性和抽纸的原理,决定设计一款利用和抽纸同样原理的装置来管理和使用这些塑料袋。这样就会让更多的家庭不会因为“占地方”,“不好看”等问题来拒绝重复使用那些只用过一次的塑料袋了。

二、作品设计与制作过程

在确定了所要设计的作品的大致方向后,我们小组立即分工合作,寻找适合该作品的可行性的方案。

首先我们想到的用来盛装塑料袋的容器是用过的抽纸盒,但是在实际测

试之后发现这个方案并不可行,因为用过的抽纸盒对于塑料袋来说太短太窄。所以我们再次结合塑料袋本身的特性,发现大瓶的饮料瓶可以达到这个要求。于是我们决定采用大瓶饮料瓶来完成这个功能。接下来就是关于塑料袋的一些小问题了。在设计方案论证的一开始,我们并没有静下心来仔细分析,笼统的将塑料袋装进瓶中,决定利用塑料袋本身的摩擦力,从瓶口抽取塑料袋,结果发现事实并不是我们想象的那样,有时候会因为抽取力度的不合适导致一次性抽取的塑料袋实际上并不是一个,而且还会出现有时候根本抽取一个塑料袋之后,下一个塑料袋不会跟着出来的一系列问题。于是我们小组成员在宿舍仔细讨论之后决定再认真研究一下抽纸的原理,结果发现抽纸是一张一张叠起来的,我们恍然大悟。放弃了最初的从瓶口抽取塑料袋的方法,决定采用和抽纸类似的原理,在瓶子的侧身开一条缝,从侧面抽取塑料袋。

在作品的继续制作基本完成后,我们发现为了方便使用和该装置的放置,我们还在瓶身两头设计了一根绳子,这样就可以方便该装置直接挂在墙上,同时也设计了一个粘性面,可以方便将该装置直接粘在厨房的墙上,取用方便,充分考虑了该装置的实用性。

三、作品不足与改进思路

我们这次的“变废为宝”作品设计,由于是第一次做类似的创新设计,我们小组所设计的作品还存在着许多不足。比如在盛装塑料袋的容器上能不能再做一些改进,因为在塑料瓶上的开口,由于材质的原因,开口边缘部分会比较锋利,是不安全的,不小心容易划伤手。所以我们在后续的学习中还会继续改进这个缺点。还有一个很大的问题就是对于塑料袋的处理,如果每一次使用之前都需要将要使用的塑料袋进行抽纸那样的折叠处理的话,那么步骤

就会很繁琐,所以我们准备下一步仔细研究下抽纸是如何折叠成那种便于抽拉的形状的。由于我们考虑的不周全,所设计的作品还存在着许多不足之处,我们一定会努力改进。

四、感想与体会

创新课程设计实践报告 篇7

临床护理综合技能应用课程开设于第四学期, 以临床病例为主线, 在模拟病房通过情景设计、角色扮演以及模块化训练的形式完成。

本课程作为护理专业的重要实践课, 在课程设计理念和思路上符合职业教育的要求, 具有以下特点并体现了5方面的融合。

(1) 在设计临床典型病例时参照临床护理工作路径, 融入基础和专科技能, 突出病区管理、分级护理、人文沟通、护士岗位职责等内容, 实现了学习内容和岗位要求相融合。

(2) 本课程教学要求在模拟病房/手术室完成, 体现了学习情境和真实工作情景相融合。

(3) 在学习过程中要求学生根据病例设计模拟工作情景, 通过角色扮演完成岗位任务, 实现了教学组织形式和临床实际工作过程相融合。

(4) 从设计病例到组织授课, 均由来自临床一线的护理专家和教学一线的授课教师共同完成, 实现了行业专家和专业教师相融合。

(5) 在考核过程中, 学生分小组抽取临床病例进行综合技能考核, 评分标准包括护理程序实施、临床技能操作、医疗文件处理、健康宣教、护患沟通、人文关怀和团队合作等方面, 体现了学业评价与职业标准相融合。

2 教学设计

2.1 内容的选取和组织

临床护理综合技能应用课程遵循学生职业能力培养的基本规律, 根据临床护理岗位对高职高专护理专业人才所需知识、技能和素质的要求, 参考国家护士执业资格考试大纲, 以护理学基本技术为核心, 整合、归纳和选取母婴护理、儿童护理、成人护理、老年护理、急救及重症监护技术的重要知识点、技能点。通过设计典型临床病例, 依据临床护理工作路径划分模块, 采用岗位导向模式组织教学, 在强化学生护理操作技能的同时, 加强临床思维、人际沟通和解决临床工作实际问题能力的训练, 使学生尽快适应临床护理工作岗位的要求, 提高就业竞争力和职业能力。

“妊娠高血压疾病护理”是一个以病人入院到出院 (经过治疗—抢救—手术前—手术—手术后护理) 的时间发展为横轴划分教学模块, 按病房和手术室护士 (主班护士、治疗护士和责任制护士以及器械护士、巡回护士) 的岗位任务为纵轴进行情景设计的典型教学案例。本案例模块划分、岗位角色和主要工作任务详见表1。

2.2 教学的条件和实施

2.2.1 建设设施齐全、功能完备的模拟化病房

模拟病房是保证教学顺利完成的基本条件。模拟病房最好能够配置智能模拟人, 利用模拟病房的空间、布局和设施, 通过模拟护理工作情景, 引导学生遵循护理程序, 练习各种操作技能, 观察病人治疗效果和病情转归, 对病人进行整体护理, 从而达到综合实训的目的。

2.2.2 教学过程

(1) 分配任务:以每班50人为例, 10人为一组, 共分5组, 每组承担1个模块的工作任务。各组的角色任务包括编剧 (写脚本) 、导演 (安排角色和排练) 、剧务 (物品准备) 、病人、家属、医生、主班护士、责任护士、治疗护士等。每组选出1位组长, 并配备一位指导教师。

(2) 资料准备:教师课前及时下发病例、相关模块材料及任务要求。学生按要求积极准备, 并通过网络、图书、见习等方式解决问题、收集材料。

(3) 课前排练:按照模块任务和要求, 各组组长组织编写脚本、分配角色、准备物品、进行排练。

(4) 小组展示:每个模块的情景教学均安排在模拟病房/手术室进行。每个模块平均4学时, 前2学时全班集中进行小组成果展示, 授课教师和其他学生观摩。

(5) 课堂讨论:小组组长对整个准备工作和演示过程进行说明和自评, 再由教师和其他各组学生进行点评, 点评内容包括学习态度、仪表着装、沟通交流、团队合作、应变能力及人文理念等方面, 最后任课教师就本模块及拓展内容进行提问和总结。

(6) 分组练习:在展示、点评、讨论和总结后, 全班学生5人为一组, 分为10小组进行练习, 参与本模块展示的10位学生, 分别进入各小组进行指导。

(7) 总结汇报:每个模块教学任务完成后, 学生上交实训报告, 教师进行教学总结, 所有文字材料交教研室存档。

2.3 考核方法和形式

全部模块完成后, 进入考核阶段。学生以小组 (5人) 为单位进行综合实训项目考核。考核前一天抽取病例, 每班考核安排4学时, 每组平均20分钟。考核分数按照理论提问, 单项操作技能, 医疗文件处理, 综合职业素质 (包括仪表着装、服务态度、沟通能力、临床思维、健康宣教、团队合作、应变能力及人文理念等方面) 的权重进行计算。

3 特色与创新

临床护理综合技能应用课程的病例设计独特, 教学组织形式新颖。为全面锻炼和培养学生的临床思维和实际工作能力发挥了以下积极作用。

(1) 依据病人从入院到出院, 经过治疗—抢救—手术前—手术—手术后护理的过程划分教学模块, 与护士真实的工作路径结合, 增强了学生的职业认同感[1], 为学生以后从事临床护理工作奠定了基础。

(2) 按照病房/手术室护理岗位工作任务设计教学情景, 是行动导向高职教育模式在课程中的体现, 通过对学科体系的解构和行动体系的重构[2], 提高了实训教学的时效性和完整性。

(3) 基于建构主义的教学观[3], 组织情景教学和进行综合技能考核, 有助于发挥学生学习的主动性、积极性、合作性, 对锻炼他们获取和处理信息的能力、利用原有知识构建新的知识网络以及提高职业能力和素养等方面, 都起到了重要的促进作用。

4 结语

本课程通过一个典型临床病例从诊断、治疗、护理, 再从病情变化到转归的模块化设计, 加入各种护理岗位所需要的全部基础护理以及专科护理理论和技术, 帮助学生在实习前短时间内综合和强化了原有的知识和技能, 提升了职业能力, 同时也解决了高职院校因为学生多、课时紧、实训条件不完善等原因不能满足广泛开展综合实训的难题。另外, 考虑到临床各科疾病的复杂性和独特性, 每类教学模块可发挥自身特色、自成系列、单独使用, 这种设计理念使课程具有不断提升的空间, 不仅适合学校学生使用, 还适用于临床低年资护士的培训和考核。

临床护理综合技能应用课程设计理念及教学方法的创新和实践, 体现了教学与临床无缝对接, 符合职业教育的方向和要求。希望在今后教学中不断积累经验, 进一步充实和完善教学案例, 满足护理高职教学实践的要求。

参考文献

[1]张頔.临床护理路径的实施对护生职业认同的影响[J].中国实用护理杂志, 2011, 27 (5) :8-9.

[2]周常青.论岗位导向型的综合课程模式[J].新课程研究 (职业教育) , 2008 (9) :22-24.

创新课程设计实践报告 篇8

关键词:字体设计;教学改革;实践;创新

在当今信息时代的背景下,字体设计广泛的运用在广告设计、影视设计、包装设计、多媒体应用设计等领域。在高等教育专业课中,众多院校对字体设计的教学还只是停留在对字形结构的基础训练上,对于字体的内涵衍生和文化思维方面研究较少。在如今的社会活动背景下,传统的字体设计教学方法已经过时,教师应有效的结合新社会、新信息的知识结构引导学生理论与实践并用完成新型的教学案例,调动学生的自主学习的积极性,促使学生的设计技能能与社会接轨。

一、传统字体设计课程教学中存在的问题

(一)理论知识教学机械化

传统的字体设计课程教学中主要是重视文字结构的变形和不同字体的书写规律的掌握和识别。在教学中,教师往往对这些基础知识千遍一律的进行讲授和对中文、拉丁字母字体的临摹,那么在教学中会让整个理论知识传授变得枯燥乏味,容易让学生产生厌学心理。但是这些传统的字体设计理论知识是整个课程框架的基础不能删除,不然会导致学生对字体文化的误导和失判。

(二)学生的字体设计应用能力与社会需求脱节

学生在学习字体设计过程中,过于追求设计效果忽视了字体本身的文化魅力和实际运用,学生习惯性的模仿教师所给案例缺少自己的创新思维。大部分学生在学习字体设计课程后,只能做基本的字体变化,很少能与社会实践案例相关联,因此学生的设计能力并没有很好的与社会需求达到共识,缺少学习字体设计中的分析能力。

二、字体设计课程教学创新性改革

(一)课程内容模块化

字体设计课程根据时代需要创新,并且教师在设计课程时要精心组织。笔者根据教学实践把字体设计课程分为理论基础、创意字体、课题训练三个模块。理论基础是学生掌握字体设计的必需条件,遵循字体设计原则在可读性和艺术性上进行深一步的创意设计。创意字体的学习过程主要是培养学生对字体设计中形式美和创意思维的运用,只有遵循形式美的规律将笔画进行组合再创造才能做到审美上的统一。而课题训练是带领学生进行社会实践型的设计活动,把所学的字体设计知识转化成设计能力服务于设计活动,这也是考察学生是否较好的掌握字体设计的专业能力。

(二)教学内容丰富化

教学设计中教师通过教学内容的拓展给学生带来不一样的知识点,在字体设计创作中,教师更应当培养学生的联想能力。善于运用联想思维的学生都能举一反三、闻一知十和触类旁通,从而获得创新的构思。另外也更应该让学生学会逆向思维的思维方式,在创意字体设计中,逆向思维模式能使学生创作出来的字体作品更具独特性,在常规中求变异、求新、求奇,从相似中寻找创意元素并从中寻求突破。教师也可通过互联网媒体技术向学生展示当今不同类型的字体设计的实践案例进行欣赏,让学生了解最新的设计动态以便为今后的字体设计活动做好铺垫。

(三)制作手段多样化

在字体设计的教学活动中,最初的设计实践训练是让学生通过手绘或者电脑软件来设计字体内容。面对大量的作业练习,学生难免会对此教学方法感到枯燥,那么通过改革,教师可以更多的鼓励学生用新材料、新工艺、新方法来完成字体设计作业,这样不仅能训练学生的动脑、动手能力,还能够激起学生对字体设计的热情和灵感。在信息时代下,不同表现形式的字体设计更容易受到大家的追捧和喜爱,因此在学生时代教师应引导学生尝试不同的展现设计能力的渠道,也可以让字体设计成为新奇前卫的新玩意。

(四)实践课题新型化

在培养学生综合设计能力时,在教学改革实践中将字体设计教学与市场经济紧密联系,充分考虑到字体设计在社会活动中所展现的社会性、应用性、市场性和审美性,笔者将实践课题分为电影海报字体社、视觉导视字体设计和包装字体设计。从这些结合市场经济的新型课题来看,更能够促使学生掌握和运用字体设计的特点和精华,将课堂教学实践延伸到社会实践中与市场经济相接轨。在此阶段学生会身临其境的感受到从课本上学习不到的新知识和设计方法,也能提到自己的审美能力和与人沟通的能力。

三、教学成果展示与体会

通过项目的案例训练,学生体验到从理论到实践整个过程的创作经历,字体设计教学改革与实践,从作品展示中可以看出学生思维活跃、个性张扬得到体现,在开放式的教学氛围中,课题和市场紧密联系进行字体创意设计,力求设计创意独特而又不脱离市场。学生通过课程学习中的课程讨论与课程创作环节,总结学习经验,能够具体地运用课堂中所学的专业技能有针对性的对行业以及市场进行调研、分析,对行业已经存在或将会面临的问题提出可行建议或改进方案。这样一来,以往“教师到学生”的照本宣科的灌输式教学变为“教师到学生,学生到教师”的互动式教学,可以提高学生的学习积极性和学习兴趣。每周的课程都有模拟方案竞标解说环节,在这个环节里,学生将各自小组关于课程创作的内容,以口头讲解的形式向同学与老师分享,以学生集体互评、教师点评的方式促进学生发现自己的不足与优势,互相交流、互相提高,增强学生的团队协作能力和语言组织能力。利用各种资源,把字体设计实际项目或者模拟项目带到课堂上来,学生可以结合自己学习到的方法和技能,对正在进行中的各种实际项目发表观点、提出方案,同时积累受到认同的宝贵经验,为未来进入工作岗位打下基础。

在教学改革过程中,根据学生特点,字体设计课程教学过程中应该注重以学生为主体,教师为主导的教学原则。课堂上的交流很重要,设计方案的讨论应该成为课程教学改革的重要特点,培养学生的组织能力、逻辑能力、交流能力和团队协作能力。利用校外资源,实现课程理论与实践的延伸。把字体设计实际项目或者模拟项目带到课堂上来,让学生切实感受到学科的前沿和实际应用,理论联系实际,加深学生对专业知识的理解。

【参考文献】

[1]吴剑.创字录[M].北京:人民邮电出版社,2015

[2]彭凌燕.浅谈字体设计教学改革与实践[J].装饰,2010(05)

[3]丁玲.浅谈字体设计教学理念与方法[J].艺术与设计,2009(05)

上一篇:电工基础试题及答案下一篇:企业离退休职工管理的几点思考